免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

STM32F334R8 驅(qū)動 MR25H40CDF MRAM:SPI 接口與掉電保護實戰(zhàn)

STM32F334R8 驅(qū)動 MR25H40CDF MRAM:SPI 接口與掉電保護實戰(zhàn) 1. 項目緣起與方案選型1.1 為什么要在工業(yè)場景里折騰 MRAM做嵌入式這行十幾年存儲方案的選擇一直是個繞不開的話題。早些年做工業(yè)數(shù)據(jù)采集器EEPROM 擦寫壽命不夠用FRAM 容量又上不去NOR Flash 寫入前還得先擦除整個扇區(qū)掉電保護邏輯寫得人頭大。直到 MRAM磁性隨機存儲器這類器件逐漸成熟才算找到一種能兼顧速度、壽命和掉電安全性的方案。MR25H40CDF 是 Everspin 推出的一款 4Mbit 串行 MRAMSPI 接口40MHz 時鐘最讓人省心的是它沒有寫入延遲——數(shù)據(jù)寫進去就落盤不需要像 Flash 那樣等待內(nèi)部編程周期。這一點在工業(yè)現(xiàn)場特別關(guān)鍵設(shè)備可能隨時斷電如果寫入過程中掉電Flash 方案很容易丟數(shù)據(jù)甚至損壞扇區(qū)而 MRAM 的物理機制決定了它寫入即持久。STM32F334R8 則是 ST 家的一款 Cortex-M4 內(nèi)核 MCU72MHz 主頻帶 FPU 和 HRTIM高分辨率定時器在數(shù)字電源、電機控制、工業(yè)傳感器采集這些場景里出鏡率很高。它片內(nèi) Flash 只有 64KBRAM 12KB跑復(fù)雜應(yīng)用時經(jīng)常捉襟見肘外掛一顆 MRAM 來存參數(shù)、日志、校準數(shù)據(jù)是很自然的思路。這個組合的核心價值在于用 SPI 接口把非易失存儲擴展到 MCU 外部同時保留 MRAM 的字節(jié)級隨機寫入、近乎無限的擦寫壽命和即時持久化特性。適合做工業(yè)儀表、數(shù)據(jù)記錄儀、電機驅(qū)動器參數(shù)存儲、以及任何對掉電數(shù)據(jù)完整性有要求的嵌入式項目。1.2 SPI 接口選型背后的考量MR25H40CDF 只提供 SPI 接口沒有并口版本。為什么選 SPI 而不是 I2C 或者并口這里有幾個實際考量。SPI 是全雙工同步串行總線速率比 I2C 高一個數(shù)量級。MR25H40CDF 支持最高 40MHz 時鐘STM32F334R8 的 SPI1 掛在 APB2 上最高能跑到 36MHz72MHz 二分頻SPI2 掛在 APB1 上最高 18MHz。用 SPI1 的話理論傳輸速率能到 4.5MB/s讀 4Mbit512KB全部內(nèi)容也就一百多毫秒。I2C 最快 400kHz 或者 1MHz差距明顯。并口雖然更快但引腳多、PCB 布線復(fù)雜在小型工業(yè)模塊里不劃算。SPI 只要四根線SCK、MOSI、MISO、CS加上電源和地六根線搞定PCB 走線清爽。還有一個容易被忽略的點MRAM 的 SPI 協(xié)議和普通 SPI Flash 高度兼容命令集類似READ、WRITE、WREN、RDSR 等但去掉了擦除相關(guān)的命令。這意味著如果你之前用 W25Q64 這類 Flash 寫過代碼遷移到 MR25H40CDF 時上層邏輯改動很小主要就是把擦除步驟刪掉寫入前不需要 WREN 之外的額外準備。注意MR25H40CDF 的寫操作不需要先擦除但每次寫入前仍然需要發(fā)送 WRENWrite Enable命令這一點和 Flash 一致。寫完一個字節(jié)或一頁后WREN 自動復(fù)位下次寫入要重新發(fā)。1.3 硬件連接與引腳規(guī)劃STM32F334R8 有多個 SPI 外設(shè)我一般優(yōu)先用 SPI1因為它的時鐘源是 APB2頻率更高。具體引腳分配如下STM32 引腳功能MR25H40CDF 引腳說明PA5SPI1_SCKSCK時鐘建議串聯(lián) 22Ω 電阻PA6SPI1_MISOSO主入從出PA7SPI1_MOSISI主出從入PA4GPIO_OutputCS片選軟件控制3.3V電源VDD加 0.1uF 去耦電容GND地VSS靠近芯片放置CS 片選我用的是軟件控制沒有用 SPI 外設(shè)的硬件 NSS。原因很簡單硬件 NSS 在多從機場景下容易出問題而且 STM32 的硬件 NSS 在某些模式下會自己抖動調(diào)試起來費勁。軟件控制雖然多一行代碼但時序完全可控想什么時候拉低就什么時候拉低配合 MRAM 的高速寫入反而更穩(wěn)。PCB 布線方面SPI 信號線盡量等長SCK 作為時鐘線要遠離模擬信號。如果板上還有 ADC 或者運放SPI 走線最好包地處理。MRAM 芯片靠近 MCU 放置走線不超過 10cm超過這個距離就要考慮信號完整性問題可能需要降低 SPI 時鐘或者加緩沖。2. MR25H40CDF 核心機制與操作要點2.1 MRAM 的物理原理與性能邊界MRAM 的全稱是 Magnetoresistive Random Access Memory磁性隨機存儲器。它的存儲單元是一個磁性隧道結(jié)MTJ由兩層鐵磁材料夾一層極薄的絕緣層構(gòu)成。一層是固定磁化方向另一層是自由磁化方向。當(dāng)兩層磁化方向平行時電阻低代表邏輯 0反平行時電阻高代表邏輯 1。寫入時通過自旋極化電流改變自由層磁化方向讀取時測量隧道結(jié)電阻。這個機制帶來幾個關(guān)鍵特性。第一寫入沒有延遲電流脈沖結(jié)束數(shù)據(jù)就穩(wěn)定了不需要像 Flash 那樣等待電荷注入浮柵。第二擦寫壽命近乎無限Everspin 標稱 10^14 次以上實際測試中基本不用擔(dān)心寫壞。第三數(shù)據(jù)保持時間超過 20 年而且不需要供電維持。第四抗輻射、抗磁場干擾能力比 Flash 強在工業(yè)電磁環(huán)境里更可靠。但 MRAM 也不是沒有短板。容量密度比 NAND Flash 低成本高4Mbit 的芯片價格能買幾十兆的 Flash。所以它適合存關(guān)鍵數(shù)據(jù)不適合存大塊日志或者固件。另外MRAM 的寫入電流相對較大高頻連續(xù)寫入時功耗會比 Flash 高一些電池供電場景要算一下功耗預(yù)算。MR25H40CDF 的具體參數(shù)如下參數(shù)數(shù)值說明容量4Mbit (512K x 8)字節(jié)尋址接口SPI模式 0 和模式 3 都支持最高時鐘40MHz讀操作寫入周期無延遲字節(jié)/頁寫入擦寫壽命10^14幾乎無限數(shù)據(jù)保持20 年工業(yè)級工作電壓2.7V ~ 3.6V典型 3.3V工作溫度-40°C ~ 85°C工業(yè)級封裝DFN-85mm x 6mm2.2 SPI 通信協(xié)議與時序細節(jié)MR25H40CDF 的 SPI 協(xié)議和標準 SPI Flash 非常接近支持模式 0CPOL0, CPHA0和模式 3CPOL1, CPHA1。我一般用模式 0因為 STM32 的 SPI 默認配置就是模式 0省得改。命令集方面常用的有這幾個WREN (0x06)寫使能寫入前必須發(fā)WRDI (0x04)寫禁止一般不用主動發(fā)RDSR (0x05)讀狀態(tài)寄存器WRSR (0x01)寫狀態(tài)寄存器READ (0x03)讀數(shù)據(jù)任意地址WRITE (0x02)寫數(shù)據(jù)頁內(nèi)寫入FAST_READ (0x0B)快速讀支持更高時鐘狀態(tài)寄存器只有一位有用WELWrite Enable Latchbit 1。寫入前發(fā) WRENWEL 置 1寫入完成后 WEL 自動清 0。其他位是只讀或者保留位不用管。時序上要注意幾個點。CS 拉低到第一個 SCK 上升沿之間要有至少 5ns 的建立時間STM32 的 GPIO 翻轉(zhuǎn)速度足夠快但如果你用 HAL 庫的HAL_GPIO_WritePin函數(shù)調(diào)用開銷可能就有幾百納秒所以 CS 操作最好用寄存器直接寫或者用__NOP()配合。寫入時序是這樣的CS 拉低 → 發(fā) WREN (0x06) → CS 拉高 → CS 拉低 → 發(fā) WRITE (0x02) → 發(fā) 24 位地址MR25H40CDF 是 19 位地址但協(xié)議上發(fā) 24 位高 5 位忽略→ 發(fā)數(shù)據(jù)字節(jié) → CS 拉高。注意 WREN 和 WRITE 之間必須拉高 CS這是命令邊界。實操心得很多人第一次用 MRAM 會忘記 WREN 和 WRITE 之間要拉高 CS結(jié)果寫不進去。我當(dāng)年調(diào)這個的時候邏輯分析儀抓了半天發(fā)現(xiàn) WREN 命令被當(dāng)成 WRITE 的一部分了。記住每個 SPI 命令都是獨立的 CS 周期。2.3 頁寫入與地址邊界處理MR25H40CDF 支持頁寫入一頁 256 字節(jié)。但和 Flash 不同的是MRAM 的頁寫入沒有“頁對齊”的硬性要求你可以從任意地址開始寫任意長度。不過如果寫入跨越 256 字節(jié)邊界地址會回卷到頁首覆蓋之前的數(shù)據(jù)。這一點和 Flash 一樣是硬件行為不是 bug。舉個例子從地址 0x00FF 開始寫 10 個字節(jié)實際會寫到 0x00FF 到 0x0008其中 0x0100 回卷到 0x0000。所以寫跨頁數(shù)據(jù)時要么分兩次寫要么確保起始地址和長度不跨頁。我的做法是封裝一個MRAM_Write函數(shù)內(nèi)部自動處理跨頁拆分void MRAM_Write(uint32_t addr, uint8_t *buf, uint32_t len) { while (len 0) { uint32_t page_remain 256 - (addr % 256); uint32_t write_len (len page_remain) ? len : page_remain; MRAM_WritePage(addr, buf, write_len); addr write_len; buf write_len; len - write_len; } }這樣上層調(diào)用就不用關(guān)心頁邊界了。MRAM_WritePage內(nèi)部就是標準的 WREN WRITE 流程。讀操作就簡單多了READ 命令 (0x03) 可以從任意地址連續(xù)讀沒有頁限制地址自動遞增讀到 0x7FFFF 后回卷到 0x00000。如果你要讀整個芯片直接發(fā)一個 READ 命令然后連續(xù)讀 524288 個字節(jié)就行。3. STM32F334R8 端驅(qū)動實現(xiàn)3.1 CubeMX 配置與 SPI 初始化用 STM32CubeMX 配置 SPI1 的步驟不復(fù)雜但有幾個參數(shù)容易設(shè)錯。我一般這樣配Mode: Full-Duplex MasterData Size: 8 BitsClock Polarity: LowClock Phase: 1 EdgeNSS: SoftwareBaud Rate Prescaler: 2APB2 72MHz / 2 36MHzFirst Bit: MSBCRC: Disabled36MHz 是 SPI1 在 72MHz 主頻下的最高速率MR25H40CDF 支持 40MHz所以 36MHz 完全在規(guī)格內(nèi)。如果你發(fā)現(xiàn)通信不穩(wěn)定先把預(yù)分頻改成 4 或者 8降到 18MHz 或 9MHz 試試排除信號完整性問題。GPIO 配置方面SCK、MOSI、MISO 設(shè)為 Alternate Function Push-PullVery High Speed。CS 設(shè)為 GPIO Output初始電平 High。這里有個細節(jié)CS 的 GPIO 速度也要設(shè)成 Very High否則拉低和拉高的邊沿不夠陡高速 SPI 下可能被從機誤判。初始化代碼用 HAL 庫生成后我一般會加一個MRAM_Init函數(shù)做兩件事拉高 CS然后讀一次狀態(tài)寄存器確認通信正常。uint8_t MRAM_Init(void) { MRAM_CS_HIGH(); HAL_Delay(1); uint8_t status MRAM_ReadStatus(); if (status 0xFF || status 0x00) { return 1; // 通信失敗 } return 0; // 成功 }讀狀態(tài)寄存器返回 0xFF 通常意味著 MISO 一直高可能是芯片沒供電或者 CS 沒接對。返回 0x00 可能是 MISO 一直低檢查一下是不是短路了。3.2 底層讀寫函數(shù)實現(xiàn)底層函數(shù)我分成四個MRAM_WriteEnable、MRAM_ReadStatus、MRAM_Read、MRAM_WritePage。每個函數(shù)都直接操作 SPI 和 GPIO不依賴 HAL 的 SPI 傳輸函數(shù)因為 HAL 的函數(shù)調(diào)用開銷在高速場景下有點大。#define MRAM_CS_LOW() HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET) #define MRAM_CS_HIGH() HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET) static void MRAM_WriteEnable(void) { MRAM_CS_LOW(); uint8_t cmd 0x06; HAL_SPI_Transmit(hspi1, cmd, 1, 10); MRAM_CS_HIGH(); } static uint8_t MRAM_ReadStatus(void) { uint8_t cmd 0x05; uint8_t status; MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 1, 10); HAL_SPI_Receive(hspi1, status, 1, 10); MRAM_CS_HIGH(); return status; } void MRAM_Read(uint32_t addr, uint8_t *buf, uint32_t len) { uint8_t cmd[4]; cmd[0] 0x03; cmd[1] (addr 16) 0xFF; cmd[2] (addr 8) 0xFF; cmd[3] addr 0xFF; MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 4, 10); HAL_SPI_Receive(hspi1, buf, len, 1000); MRAM_CS_HIGH(); } void MRAM_WritePage(uint32_t addr, uint8_t *buf, uint32_t len) { uint8_t cmd[4]; cmd[0] 0x02; cmd[1] (addr 16) 0xFF; cmd[2] (addr 8) 0xFF; cmd[3] addr 0xFF; MRAM_WriteEnable(); MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 4, 10); HAL_SPI_Transmit(hspi1, buf, len, 1000); MRAM_CS_HIGH(); }這里有個性能優(yōu)化的點HAL_SPI_Transmit和HAL_SPI_Receive在傳輸大量數(shù)據(jù)時內(nèi)部是逐字節(jié)輪詢的36MHz 下傳 512KB 大概要幾百毫秒。如果你追求極致速度可以用 DMA。SPI1 的 TX 和 RX 都支持 DMA配置好之后讀 512KB 數(shù)據(jù)能壓到幾十毫秒。不過 DMA 配置復(fù)雜一些還要處理傳輸完成中斷看項目需求決定。注意MRAM 的寫入速度受限于 SPI 時鐘和 MCU 的發(fā)送能力。36MHz 下理論寫入速率是 4.5MB/s但實際因為 WREN 命令和 CS 翻轉(zhuǎn)的開銷連續(xù)寫入大概在 2-3MB/s。如果你要頻繁寫大量數(shù)據(jù)算一下時間預(yù)算。3.3 數(shù)據(jù)存儲結(jié)構(gòu)設(shè)計外掛 MRAM 之后怎么組織數(shù)據(jù)是個需要提前想清楚的問題。我一般把 512KB 的空間分成幾個區(qū)域區(qū)域起始地址大小用途配置區(qū)0x000004KB系統(tǒng)參數(shù)、校準系數(shù)日志區(qū)0x01000256KB循環(huán)日志帶時間戳備份區(qū)0x41000252KB固件備份、大數(shù)據(jù)塊保留區(qū)0x7F0004KB魔術(shù)字、版本號、CRC配置區(qū)存結(jié)構(gòu)體每次修改后整體寫入配合 CRC 校驗。日志區(qū)用環(huán)形緩沖區(qū)寫指針存在保留區(qū)每次寫入后更新指針。備份區(qū)存不常變的數(shù)據(jù)比如出廠校準表。結(jié)構(gòu)體定義要注意字節(jié)對齊。STM32 默認 4 字節(jié)對齊如果結(jié)構(gòu)體里有uint8_t和uint32_t混用編譯器會插入填充字節(jié)。寫入 MRAM 時是按字節(jié)流寫的讀回來直接強轉(zhuǎn)指針可能因為對齊問題出錯。我的做法是用__attribute__((packed))或者手動序列化。typedef struct __attribute__((packed)) { uint32_t magic; uint16_t version; float calib_k; float calib_b; uint32_t crc; } Config_t;寫入前算 CRC讀出來后校驗不匹配就加載默認值。這個套路在工業(yè)項目里很常見能有效防止數(shù)據(jù)損壞導(dǎo)致的異常行為。4. 實操驗證與問題排查4.1 讀寫測試與性能實測驅(qū)動寫完之后第一步是跑一個全片讀寫測試。我一般寫一個測試函數(shù)先擦除...等等MRAM 不需要擦除。直接寫 0x00 到 0xFF 的遞增模式然后讀回來對比。void MRAM_Test(void) { uint8_t wbuf[256], rbuf[256]; for (int i 0; i 256; i) wbuf[i] i; for (uint32_t addr 0; addr 0x80000; addr 256) { MRAM_WritePage(addr, wbuf, 256); MRAM_Read(addr, rbuf, 256); if (memcmp(wbuf, rbuf, 256) ! 0) { printf(Mismatch at 0x%05X\n, addr); return; } } printf(MRAM test passed\n); }實測下來36MHz SPI 時鐘全片 512KB 寫入加讀取對比大概 1.2 秒完成。其中寫入約 800ms讀取約 400ms。這個速度對于工業(yè)數(shù)據(jù)記錄完全夠用。如果你發(fā)現(xiàn)測試失敗先降低 SPI 時鐘到 9MHz 再試。如果低速能過高速不過基本是信號完整性問題檢查一下 SCK 走線有沒有過長、有沒有串?dāng)_。如果低速也失敗用邏輯分析儀抓 SPI 波形看命令和數(shù)據(jù)是否符合預(yù)期。4.2 常見問題速查表現(xiàn)象可能原因排查方法解決措施讀回全 0xFFMISO 未連接或芯片未供電萬用表測 VDD 和 MISO 電壓檢查供電和焊接讀回全 0x00MISO 短路到地斷電測 MISO 對地電阻修復(fù)短路寫入后讀回不變WREN 未發(fā)或 CS 時序錯誤邏輯分析儀抓 WREN 和 WRITE確保 WREN 和 WRITE 之間 CS 拉高跨頁寫入數(shù)據(jù)錯亂地址回卷檢查寫入起始地址和長度拆分跨頁寫入高速下偶發(fā)錯誤信號完整性降低 SPI 時鐘測試加串阻、縮短走線、包地數(shù)據(jù)偶爾丟失電源波動示波器看 VDD 紋波加去耦電容、穩(wěn)壓4.3 掉電保護與數(shù)據(jù)完整性MRAM 的最大賣點就是掉電安全但前提是寫入操作已經(jīng)完成。如果 MCU 在發(fā) WRITE 命令的過程中掉電MRAM 可能只寫了一半數(shù)據(jù)。雖然 MRAM 的寫入是原子性的單個存儲單元要么寫成功要么保持原值但多字節(jié)寫入過程中掉電可能出現(xiàn)部分字節(jié)更新、部分字節(jié)未更新的情況。對于關(guān)鍵數(shù)據(jù)我的做法是雙備份加 CRC。比如配置區(qū)存兩份地址 0x00000 和 0x00800每份帶 CRC。讀取時先讀第一份CRC 通過就用不通過讀第二份都不通過加載默認值。寫入時先寫第二份再寫第一份確保任何時候至少有一份是完整的。日志區(qū)用環(huán)形緩沖區(qū)每條記錄帶序號和 CRC。上電后從保留區(qū)讀寫指針然后掃描最近幾條記錄找到最后一條 CRC 正確的記錄從它后面繼續(xù)寫。這樣即使掉電時正在寫日志最多丟一條記錄不會影響整個日志區(qū)。實操心得MRAM 雖然寫入快但不要在主循環(huán)里頻繁寫。我見過一個項目每采集一次數(shù)據(jù)就寫一次 MRAM結(jié)果 SPI 總線占用率太高影響了其他外設(shè)。后來改成攢夠 64 字節(jié)寫一次或者定時 100ms 寫一次問題解決。存儲器件再快也要考慮總線帶寬和系統(tǒng)整體調(diào)度。4.4 與 Flash 方案的對比與遷移建議如果你之前用的是 W25Q64 這類 SPI Flash遷移到 MR25H40CDF 時硬件上基本兼容引腳定義幾乎一樣。軟件上主要改這幾個地方第一去掉所有擦除相關(guān)的代碼。Flash 寫入前要發(fā) 0x06 WREN、0x20 扇區(qū)擦除、0x05 讀狀態(tài)等待擦除完成MRAM 全都不需要。第二寫入前仍然要發(fā) WREN但不需要等待。第三地址范圍變了W25Q64 是 8MBMR25H40CDF 是 512KB如果你的代碼里有地址越界檢查記得改。第四性能特性不同。Flash 的擦除很慢幾十到幾百毫秒所以通常要攢一批數(shù)據(jù)再寫。MRAM 沒有擦除寫入也快可以更頻繁地寫但要注意 SPI 總線占用。第五壽命不同。Flash 擦寫 10 萬次左右MRAM 是 10^14 次基本不用考慮磨損均衡。如果你之前為 Flash 寫了磨損均衡算法遷移到 MRAM 后可以刪掉簡化代碼。從成本角度看MR25H40CDF 比同容量 Flash 貴不少但比 FRAM 便宜而且容量更大。在需要頻繁寫入、掉電保護、長壽命的場景里這個成本是值得的。如果只是存固件或者不常改的參數(shù)用 Flash 更劃算。5. 工業(yè)場景下的擴展思路5.1 多芯片級聯(lián)與容量擴展512KB 在某些應(yīng)用里可能不夠用比如高頻數(shù)據(jù)記錄儀一天就能寫滿。這時候可以掛多顆 MR25H40CDF用不同的 CS 引腳片選。STM32F334R8 的 GPIO 足夠多掛四顆就是 2MB掛八顆就是 4MB。多芯片管理的核心是地址映射。我一般定義一個邏輯地址空間比如 0x000000 到 0x3FFFFF 對應(yīng)四顆芯片每顆 512KB。讀寫函數(shù)根據(jù)地址高兩位選擇 CS 引腳低 19 位作為芯片內(nèi)地址。#define MRAM_CHIP_SIZE 0x80000 #define MRAM_CHIP_NUM 4 void MRAM_SelectChip(uint32_t addr) { uint8_t chip addr / MRAM_CHIP_SIZE; switch (chip) { case 0: HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET); break; case 1: HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); break; // ... } }多芯片的缺點是 PCB 面積增大CS 走線增多。如果空間緊張可以考慮用 SPI 片選譯碼器用 3 根 GPIO 控制 8 個 CS節(jié)省引腳。5.2 與 RTOS 結(jié)合的任務(wù)調(diào)度在跑 FreeRTOS 或者 RT-Thread 的項目里MRAM 讀寫要加互斥鎖。SPI 總線是共享資源如果多個任務(wù)同時讀寫 MRAM不加鎖會導(dǎo)致 CS 時序混亂數(shù)據(jù)錯位。我的做法是創(chuàng)建一個二值信號量每次 MRAM 操作前獲取操作后釋放。如果某個任務(wù)要寫大量數(shù)據(jù)可以分塊寫每塊之間釋放一下信號量避免長時間占用總線導(dǎo)致其他任務(wù)超時。SemaphoreHandle_t mram_mutex; void MRAM_WriteTask(uint32_t addr, uint8_t *buf, uint32_t len) { xSemaphoreTake(mram_mutex, portMAX_DELAY); MRAM_Write(addr, buf, len); xSemaphoreGive(mram_mutex); }如果對實時性要求高可以把 MRAM 操作放到一個低優(yōu)先級任務(wù)里通過隊列接收寫請求批量處理。這樣高優(yōu)先級任務(wù)不會被 SPI 傳輸阻塞。5.3 數(shù)據(jù)加密與安全存儲工業(yè)設(shè)備有時候需要存一些敏感數(shù)據(jù)比如校準密鑰、設(shè)備證書。MRAM 本身沒有加密功能數(shù)據(jù)是明文存儲的。如果設(shè)備可能被物理拆解MRAM 里的數(shù)據(jù)能被直接讀取。簡單的做法是在 MCU 端做加密后再寫入。STM32F334R8 沒有硬件加密引擎但可以用軟件 AES。ST 的 CryptoLib 提供了 AES-128 的軟件實現(xiàn)加密 512KB 數(shù)據(jù)大概幾百毫秒對于不常寫的數(shù)據(jù)可以接受。更安全的做法是用 STM32 的讀保護功能防止通過調(diào)試接口讀取 Flash 里的密鑰。但 MRAM 是外部芯片讀保護管不到。如果安全要求極高可以考慮用帶加密功能的存儲芯片或者把密鑰存在 MCU 內(nèi)部 Flash 的受保護區(qū)域MRAM 只存加密后的數(shù)據(jù)。注意軟件 AES 加密會消耗 CPU 時間如果寫入頻繁可能影響系統(tǒng)實時性。建議只對關(guān)鍵數(shù)據(jù)加密日志和普通參數(shù)可以明文存儲。5.4 低功耗設(shè)計考量電池供電的工業(yè)傳感器功耗是核心指標。MR25H40CDF 的待機電流典型值 10uA寫入時峰值電流 15mA讀取時 5mA。STM32F334R8 在 Stop 模式下 1uA 左右。如果系統(tǒng)大部分時間在休眠MRAM 的待機功耗可以忽略。但要注意 CS 引腳的狀態(tài)CS 拉高時芯片進入待機拉低時即使沒有時鐘也在耗電。所以休眠前一定要把 CS 拉高。寫入策略上不要頻繁喚醒寫 MRAM。可以攢一批數(shù)據(jù)喚醒后一次性寫入然后繼續(xù)休眠。MRAM 的寫入速度快喚醒時間短整體功耗比 Flash 方案低因為 Flash 擦除要等很久MCU 得一直醒著。實測一個數(shù)據(jù)記錄儀方案每 10 分鐘喚醒一次采集 1KB 數(shù)據(jù)寫入 MRAM然后休眠。平均功耗 50uA 左右兩節(jié) AA 電池能用兩年以上。如果換成 Flash擦除等待會讓平均功耗翻倍。6. 調(diào)試工具與實戰(zhàn)技巧6.1 邏輯分析儀抓包要點調(diào) SPI 器件邏輯分析儀是必備工具。我用的是 Saleae Logic 88 通道100MS/s 采樣率抓 36MHz SPI 夠用。抓包時注意幾點第一采樣率至少是 SPI 時鐘的 4 倍36MHz SPI 需要 144MS/s 以上Logic 8 的 100MS/s 在 36MHz 下只能看到大概波形細節(jié)可能失真。如果條件允許用 Logic Pro 16500MS/s能看清每個邊沿。第二觸發(fā)條件設(shè)成 CS 下降沿這樣每次命令都能抓到。解碼器選 SPI配置 CPOL0、CPHA0、MSB First位序和 MCU 配置一致。第三看波形時重點檢查 CS 和 SCK 的關(guān)系。CS 拉低后第一個 SCK 邊沿之前MOSI 應(yīng)該已經(jīng)穩(wěn)定。如果 MOSI 變化和 SCK 邊沿太近可能是 GPIO 速度不夠或者代碼里操作順序有問題。6.2 用 J-Link 調(diào)試 MRAM 讀寫J-Link 不僅能燒錄 STM32還能通過 RTTReal Time Transfer輸出調(diào)試信息。我在 MRAM 驅(qū)動里加一些 RTT 打印實時看讀寫地址和數(shù)據(jù)比串口方便不占用 UART 資源。#include SEGGER_RTT.h SEGGER_RTT_printf(0, MRAM write addr0x%05X len%d\n, addr, len);如果懷疑某個地址的數(shù)據(jù)不對可以用 J-Link 的 Memory Browser 直接看 MCU 內(nèi)存里的緩沖區(qū)對比 MRAM 讀回的數(shù)據(jù)。J-Link 還能測 SPI 傳輸耗時在傳輸前后讀 DWT-CYCCNT算出實際時鐘周期數(shù)驗證 SPI 速率是否符合預(yù)期。6.3 批量生產(chǎn)時的測試方案產(chǎn)品量產(chǎn)時每塊板子都要測 MRAM。手動跑測試函數(shù)太慢我一般做一個自動化測試工裝MCU 上電后進入測試模式通過 UART 接收命令PC 端發(fā)指令跑全片讀寫測試返回 PASS 或 FAIL。測試內(nèi)容至少包括芯片 ID 讀取如果有、全片寫入遞增模式、全片讀取校驗、邊界地址測試0x00000、0x7FFFF、跨頁寫入測試。測試時間控制在 5 秒以內(nèi)產(chǎn)線能接受。如果發(fā)現(xiàn)不良品記錄故障地址和現(xiàn)象方便分析是焊接問題還是芯片問題。常見的不良是 CS 虛焊、MISO 和 MOSI 接反、電源濾波電容漏貼。這些在目檢時不容易發(fā)現(xiàn)但測試能抓出來。6.4 長期運行的數(shù)據(jù)可靠性驗證工業(yè)設(shè)備可能連續(xù)運行幾年MRAM 的數(shù)據(jù)保持能力需要驗證。我做過一個加速測試在 85°C 環(huán)境下連續(xù)寫入 100 萬次然后讀取校驗沒有出現(xiàn)錯誤。Everspin 的 datasheet 標稱 10^14 次實際使用中基本不用擔(dān)心壽命。但數(shù)據(jù)保持方面高溫會加速磁性退化。如果設(shè)備工作在高溫環(huán)境建議定期比如每月做一次數(shù)據(jù)巡檢讀出來校驗 CRC發(fā)現(xiàn)錯誤就用備份恢復(fù)。這個邏輯可以放在系統(tǒng)空閑任務(wù)里不影響正常功能。另外MRAM 對強磁場敏感。如果設(shè)備附近有電機、繼電器或者大電流走線MRAM 要遠離這些干擾源或者加磁屏蔽。實測中距離 10cm 以上的繼電器動作對 MRAM 沒有影響但如果貼著放寫入時可能出現(xiàn)位翻轉(zhuǎn)。7. 個人實操體會與建議這個方案我從 2021 年開始在幾個工業(yè)項目里用累計出貨幾千臺現(xiàn)場反饋很穩(wěn)。最大的感受是MRAM 的“寫入即持久”特性讓掉電保護邏輯簡化了至少一半。以前用 Flash 的時候要設(shè)計雙備份、寫前擦除、掉電檢測、恢復(fù)流程代碼量大且容易出 bug。換成 MRAM 后寫入就是寫入掉電就掉電數(shù)據(jù)不會丟省心很多。選型上MR25H40CDF 的 4Mbit 容量在參數(shù)存儲場景夠用但如果要存大量日志建議選更大容量的型號比如 MR25H256256Kbit或者 MR4A16B16Mbit 并口。SPI 接口的 MRAM 目前最大到 4Mbit再大就要用并口或者換其他技術(shù)路線。驅(qū)動開發(fā)上我建議先把底層讀寫調(diào)通用邏輯分析儀確認時序正確再往上搭數(shù)據(jù)結(jié)構(gòu)和應(yīng)用邏輯。很多人一上來就寫復(fù)雜的存儲管理結(jié)果底層有問題查半天查不出來。分層調(diào)試逐層驗證效率最高。最后分享一個小技巧MRAM 的 CS 引腳上拉一個 10k 電阻到 3.3V防止 MCU 復(fù)位期間 CS 浮空導(dǎo)致誤操作。雖然 MRAM 寫入需要 WREN誤觸發(fā)的概率很低但加上拉電阻成本幾乎為零能提高可靠性。我在早期版本上沒加后來有一次現(xiàn)場設(shè)備頻繁復(fù)位懷疑是 CS 干擾加上拉后問題消失。這種細節(jié)datasheet 上不會寫但實際項目中很關(guān)鍵。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲综合婷婷六月丁香五月| 五月色情婷婷| 色色激情网| 五月总合激情网| 五月综合777| 九九99免费视频| 色欲Av五月天| 五月婷婷激情综合| 色欲色天天香综合| a九九热www| 被强行糟蹋的女人A片| 欧美25p| 丁香九月婷| 8050一级网| 99精品在线观看视频| 九九久久视频| 看久久性爱视频| 亚洲人成网亚洲欧洲无码久久| 99热在线观看成人| 欧美综合激情| 五月伊人婷婷| 国产片天天爽夜夜爽| 婷婷九九色| 久久婷婷五月丁香网| 天天情色五月天| 五月婷色| 激情婷婷五月久久| 色婷五月天综合网| 丁香六月久久| 丁香婷婷网| BBWCUCKOLD精品熟妇| 五月婷婷丁香五月| 亚洲五月色| 情婷婷五月天在线| 五月丁香成人版| 成人精品一区二区三区四区五区| 最新日本A片| 久久最新色| www.久久色.com| 国产99久久久国产精品免费看| 色综合久| 亚洲精品白浆高清久久久久久| 久久久久亚洲AV成人无码电影| 人妻操逼视频| 五月丁香好婷婷A片网| 五月激情站| 丁香五月激情综合啪啪| 五月在线| 色婷婷婷婷| 一丁香五月天月AV| www夜夜| 99热9999| 国产精品扒开腿做爽爽爽A片唱戏| 玖玖色综合网| 最近中文字幕大全免费版在线 | 影音先锋一区二区资源站| 无码视频国内精品久久久| 亚洲六月婷婷| 99在线视频观看| 91呦呦呦| 婷婷综合激情| 开心综合激情综合| 97热这里精品在线视频| 99精品久久| 欧美99热| 在线免费观看激情视频| 激情五月婷婷综合| 先锋资源 996| 五月丁香婷婷网在线在线| 97超碰在线免费观看| 丁香婷婷六月天| 99热91| 午夜天堂啪啪| 丁香五月AV综合激情| 综合激情啪啪| 日本爆乳片手机在线播放| 狠狠99| www.精品99| 99这里只有| 在线观看国产高清视频免费网站| WWW·色色色·COM| 婷婷区日本| 色色色.com| 亚洲99精品欧美一区| 四川女人毛多水多A片| 亚洲色碰| 五月丁香久久激情综合| 97婷婷狠狠| 久久激情五月| www.夜夜操.com| 丁香六月激情四射| 婷婷五月丁香综合网| 久热在线观看视频9| 婷婷五月天黄色网址| 99热大香蕉| 熟女五月天久久综合| 强伦轩人妻一区二区电影| 91色噜噜狠狠狠狠色综合| 五月色亚洲| 久久91久久精品久久| 超碰在线中文字幕| 四色AVwww| 超碰chaompinm| 淫五月停停| 这里只有精彩视| 妻久久人久久| 色九九中文字幕| 综合激情在线| 思思热视频在线| 亚洲成人在线播放| 97色久| 97操碰| 免费无码毛片一区二区A片| 五月天婷婷激情四射综合| 8区视频在线| 秋霞影音91人妻久久| www.henhenl| 五月四色激情| 丁香五月婷婷天| 五月婷婷色五月| 久久久九九九 99| 思思久久精品视频| 激情五月天色色| 丁香婷婷性久久| 五月丁香久久久| 99热综合网| 毛v一区二区视频| 欧美成人网婷婷综合在线| 丁香五月六月综合激情| 激情丁香久久久久久| 森林影视大全,最好看的2019年视频 | 精品久色| 久久婷婷成人| 天天操天爱综合| 婷婷视频网| 97丁香五月| 看国产探花操逼三级片| 百度一下国产精品A| 99热这里只有精品亚洲| 无码AV久久久久久久久| 人妻久热| 久操婷婷| 噜色精品| 草榴视频黄色网| 婷婷色情小说| 激情骚五月| 久久A区B区| 色综合激情图区| 五月丁香婷婷激情| 亚洲成人精品三区| 99精品免费| 欧美久人人| 99色色色色| 91高潮喷水久久久久久久久| 丁香五月人妻| 9久视频| 4399亚洲视频| 热99国产精品| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 婷婷在线精品| 插插插丁香五月婷婷| 久久婷婷啪啪视频| 99热精品网| 天天干天天做| 日日夜夜爽| 婷婷六月香| 色色COm| 国产色色色色色| 九九热最新| 婷婷成人五月天成人文学| 日本一区二区三区精品视频| 青青草激情网| 亚洲永久免费| 99热这里只有精品5| 超碰人人操| 操一区| 久久这里只有国产| 欧美熟女视频 色婷婷| 精品人妻久久久| 波多婷婷久久| 久久五月综合| 开心婷婷五月中文字幕组| 在线综合啪| 涩五月婷婷| 五月天大香蕉| 99热99极品观看| 日本啪啪天堂| 六月香五月婷| 国产av一区二区三区| www好屌操| 六月婷色六月| 天天干天天曰天天射| 99精品在这里| 丁香网五月天激情| 五月天婷婷六月激情网| 自拍视频99| 91碰碰视频| 天天做综合| 任我肏视频精品| 激情伊人| 久久五月丁香| www.六月丁香看AV| 国产激情综合五月| 亚洲第一成人无码A片| 久热99| 色爱亚洲| 99久久国产宗和精品1上映| 这里只有精彩视| 色综合久久88| 丁香婷婷影院| 国产亚洲成AV人片在线观黄桃| 五月丁香六月婷婷网| 色色日韩网| 九色视频入口91| 色五月丁香五月| 夜夜爽天操| 色吧五月| 婷婷综合五月天| 免费日本aⅴ中文字幕 | 香港九九六区八区99| 成人视频在线免费播放| 五月天婷婷激情在线色图| 99五月丁香丁| 色色色无码| 婷丁香久综合| 婷婷丁香视频在线观看免费| 婷婷五月天久久| 中文字幕成人版| 丁香五月激情综合| 色999亚洲人成色| 婷婷五月综合亚洲| 婷婷五月av| 99精品久久久久久久婷婷久久| 9191avse| 人人操99| 玖玖在线视频福利| 婷婷丁香五月天哟啪| 久久婷婷激情四射五月天| 国产看真人毛片爱做A片| 五月婷婷人人人操| caop在线| 天天干天天操天天拍| 久久久久久久久99精品| 综合狠狠干| 真实亲子乱子伦高清在线观看| 久久草婷婷丁香网站| 五月丁香色色| 九九av| 五月综合丁香婷婷| 99热r| 九九人人操| 久久五月激情| 色视频2025| 91精品久久久久久| 最新午夜理论片| 丁香六月狠狠| 天天拍久久| 婷婷综合伊人丁香| 26uuu成人网| 五月亚洲| www.五月婷婷.com| 成功精品影院| 青青久久五月| 久草a片| 丁香五月综合激情性爱| 九九碰九九爱97超碰| 五月久熟女| 久久99视频| 26UUU一区二区| 丁香五月情色| 激情五月少妇| 99热自拍| 无码激情AAAAA片-区区| www.五月婷| 99久久.www| 六月丁香六月婷婷欧美| 久久五月天婷婷| 99精品在线| 丁香五月91| 久久婷婷成人综合色怡春院| 亚洲春色奇米影视| 久久99看免费| 五月丁香WWW| 天天爱天天做天天爽| 丁香五月亚综合图片| 中文av网站| 色婷久九| 成人草榴视频| 婷婷五月色图| 久热最新视频 | 五月婷婷天天| 婷婷丁香熟妇综合网| 亚洲情综合五月天| 亚洲无码yw| 激情久久久| 五月天色婷婷图片| 九九五月天| 欧美性生交XXXXX无码小说| 欧美情色电影一区二区| 激情六月丁香| 可以看的AV网站| 伊人久久大香网| 专区无日本视频高清8| 色婷婷四虎| 色五月综合激情| 五月天色婷婷图片| 色综合天天综合成人网| 超碰爱爱爱| 26uuu.| 丁香五月天激情视频| 五月丁香六月成人| 一起草aV| 五月天激情网页| 免费婷婷| 婷婷五月天激情诱惑| 综合AV在线| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 日本色天堂| 五月色情| 凹凸探花电影| 久久视频这里有精品99| 欧美超碰人人| 五月天婷婷青青草| 99精品偷自拍| 丁香五月 综合| 九九99热| 午夜丁香六月婷| 噜噜噜噜在线| 国产真实乱了老女人视频| 人人插9| 五月丁香六月色婷婷| 九九re精品视频在线观看| 日日操夜夜擼| 日本美女天天日天天爽| 啪啪一区| 无码九九| 伊人五月天在线| 久久婷婷五月综合| 99精品视频在线观看免费| 深爱婷婷丁香五月激情| 狠狠插.com| 丁香久久| 91九色首页| www.无码com| 开心五月激情婷婷| 久久久久久久久18久久| 五月婷婷黄色视频| 激情六月下句是什么| 一级性爱视频| 色情五月| 久久五月天色婷婷| 欧美综合五月丁香六月婷| 色欲色香综合网| 99久久国产综合精品五月天喷水\| 五月丁香综合激情在线观看| 激情丁香五月婷婷| 五月六月激情婷婷| 国产69久久久欧美黑人A片| 五月亚洲激情| 婷婷五月花.97| 五月天色婷婷图片| wuyuedingxiang| 亚洲欧州色情在线观看| 丁香五婷| va亚洲中文在线| 婷婷五月天影视网址| 极品五月天| 深爱丁香激情| 午夜成人av在线| 亚洲国产色色| 婷婷射图五月天| 色色99| 婷婷狠狠综合网入口| 色欲Av五月天| 丁香五月大香蕉在线99| 玖玖资源站中文| 99热九九九九| 丁香五月激情网| 久久香蕉福利| h在线看免费版在线看| 亚洲熟妇AV综合网五月丁香伊人| 美女久久婷婷| 色色色色热| 久久五月天色婷婷| 五月丁香六月激情综合| 这里只有精彩视| 国产亚洲色婷婷久久99精品9j| 激情噜噜噜| 激情九月综合| 69凹凸成人综合网| 五月婷婷导航| 午夜丁香六月婷| 久久婷婷五月综合色和| 五月婷婷天| 色婷婷五月天成人网| 在线色五月婷婷| 成人精品视频99在线观看免费| 丁香五月冃欧美| 成人在线视频男人的天堂4399| 色婷婷免费观看| 伊人大香五月天| 国产精品 的国产| 丁香五月天啪啪| 色婷五月丁香久亚洲| 日本人妻操| 激情五月婷婷五月| 婷婷六月丁香五月| 丁香五月婷婷色综合基地| av一区二区电影免费在线观看| 五月色婷婷中文字幕| 婷婷五月天激情偷拍| 9在线9在线婷婷在线国产| 五月综合久久| 五月丁香婷婷欧美| 26UUU精品一区二区c〇m| 99色精品| 亚洲AV成人一区二区在线观看| 婷婷涩五月| 狠狠狠狠狠狠狠狠狠狠狠色宗合图片 | www.夜夜操| 国产裸舞表演WWWW| 国产精品色色666| www.99热这里精品| 久久色大香蕉| 狠狠干狠狠干| 天天狠天天叉| 97色天堂| 热99AV网站| 婷婷爱综合| 另类激情四射| 日韩AV在线免费观看| 国产AV国片偷人妻麻豆| 亚洲五月天激情| 天天操比比| 99精品在线观看视频| 精品三区影院| 99亚洲欧洲| 久久五月天婷婷| 久草婷婷视频| 狠狠狠狠狠狠草| 亚洲精品字幕| 婷婷久久综合久| 国产成人AV在线| 久久色亭亭五月天| 五月婷婷激情| 思思热在线视频精品| 操日本人妻视频| 久久久色婷婷五月天| 五月天丁香网站| 婷婷99丁香| 99热伊人综合| 夜夜AVV| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 综合一本道| 九九热这里只有精品31| 久久66精品| 天天在线天天综合网色| 五月婷人妻| 国产精品久久99| 思思久久网| 99精品热| 色综合久久五月| 天天弄天天爽| 婷婷六月丁香色| 国产 A片 自拍| 夜夜骑操AV| 国语对白性爱视频播放| 婷婷伊人激情婷婷| 中国激情网| 这里只有精品视频一区| 五月丁香六月成人| 99毛片| 日本色99| 亚洲另类在线观看| 任我干视频在线观看| 大香蕉 婷婷| 婷婷色激情五月天| 99热www.| 四色女婷婷| 久久草婷婷丁香网站| 5月色亭亭视频| 天天做天天爱天天爽在| 天天谢天天操| 99热碰碰热| 热九九精品| 人人草人人爱| 91干网站| 99re在线精品视频| 色婷婷五月天激情在线播放| 久久婷婷色五月| 99免费热视频在线| 婷婷成人五月天| 国产欧美精品AAAAAA片| cao久久| 91热爆在线| 精品国产va久久久久久久| 久色中文| 99在线视频资源| 97碰在线视频| 婷五月天| 久热这里有精品视频| 色色 9| 欧美在线视频免费播放| 欧美搡BBBBB摔BBBBB| 任我肏视频精品| 日本三级日本三级三级人妇四虎| 深爱激情九九五月天 | 丁香久久激情俄| 中文字幕九九九九| 天天夜天天色天天| 99无码视频| 亚洲性受XXXX五月丁香| 午夜不卡成人一区二区| 色色五月天网站| 婷婷97狠狠成人网站| 大香蕉人人网| 5月婷婷六月丁香| 亚卅毛片| 色综合9| 97亚洲色 torrent magnet| 另类激情网| 激情五月丁香婷婷| 色99色| 五月丁香色婷婷基地| 99玖玖免费视频| 蜜桃婷婷丁香综合久久开心亚洲| 婷婷色中文字幕| 天天夜夜爽| www.久久爱| 91精产一区三区免费观看| 天天天天天操| 人人爽天天爽| 无码啪啪| 久久综合首页| 五月丁香久久婷| 天天爱天天做综合| 久9视频| 曰曰久久| 99久精品视频| 婷婷色色欧美| 五月天 另类图片| 国产精品人成A片一区二区| 婷婷天堂视频| 五月丁香六月色| 色欲久久99精品久久久久久| 婷婷色色播五月天| 精品影院| 丁香五月婷婷成人综合| 久草热久草在线视频| 99在线er热| 亚洲热久久| 激情丁香五月综合| 新精品99| 婷婷五月丁香综合瑟瑟| 午夜无码精品色综合久久| AV在线中文| 天天爽天天日天天舔| 欧美肉大捧一进一出免费视频| 九九热黄色| 五月婷婷人人人操| 日日噜噜夜夜狠狠久久丁香六月| 99九九精品视频| 天天干,天天操,天天射| 97干婷婷| 欧美99热| 99自拍视频在线观看| 五月丁香婷婷无码中文| 欧美在线| 色宗合久久五月婷婷| 中文字幕视频色婷婷| 26uuu欧美亚洲日韩| 日本不卡高字幕在线2019| 婷婷色色综合激情| 91久久久久久久久久18| 天天搞天天色综合| 91婷婷五月丁香碰| 婷婷激情九月| 婷婷激情五月天7| www.五月天| 狠狠狠狠狠狠草| 激情婷婷丁香五月| 欧美25p| 秋霞AV美国| 日韩狠狠色| 婷婷中文字幕| 一二线视频 另类| 久久九九在线视频| 伊人久久综合| 噜噜五月天综合| 深情六月婷婷综合久久| 亚洲色99综合天堂| 国产日产成人亚洲欧美国产VA| 婷婷综合在线| 婷婷久热| 在线播放人妻| 涩五月婷婷| 97福利视频| 大地9中文在线观看免费高清 | 婷婷五月天激情丁香| 毛v一区二区视频| 五月婷婷激情综合| 思思热在线视频99| 玖玖色资源| 人妻久久久久久| 五月天激情开心网| 丁香婷婷六月天| 精品夜夜澡人妻无码AV| 婷婷丁香五月色| 99综合| 亚洲第一成人无码A片| 亚洲色爱综合| 99免费热在线精品| 婷香狠狠爱五月| 婷婷丁香在线| 五月婷婷天| 九九精品在线视频观看| 色婷婷丁香AV综合| 丁香五月欧美| 这里只有精品无码| 五月丁香久久| 五月婷婷之综合激情| 久久中文人妻系列| 婷婷色情五月| 精品亚洲国产成AV人片传媒| 九色91国产| 日本九九热| 狠狠色色| 波多野结衣AV无码Porn| 91色五月在线观看| 欧美美女视频| 婷婷丁香在线| 激情五月激情综合网| 色亚洲中文| 99福利导航| 久久日婷婷| 色5月婷婷| 91肏| 亚洲aV写真天天综合网久久| 免費亭亭成人| 丁香六月婷婷综情欧美| 99综合自拍| 五月婷无码| 成人做爰A片免费看视频| 97干网站| 日日干日日| 日本社区五月天激情| 开心婷婷五月花| www.99视频| 91免费看片| 一级七香蕉| AV亚洲在线| 三级片AAA久久久AAA久久久AAA| 丁香五月电影| 婷婷中文无码| 99在这里有精品| 久久九九网| 久久色五月天| 婷婷99狠狠躁天天躁中文| 熟女人妻一区二区三区免费看| 欧美色偷拍| 国产SUV精品一区二区883| 六月综合婷婷开心伊人| http://www.sd-xiangsu.com/| 婷五月天在线草| 久久狠狠高潮亚洲精品 天天摸夜夜摸夜夜狠狠摸 | 色五月婷婷激情综合网| 天天想夜夜爽天天爽| 97操视频| 97人人干| Av性爱网站| 77799热| 婷婷五月成人色综合| 99ri视频| 色婷婷五月天激情| 深爱激情五月天色婷婷| 国产又黄又爽又激情不遮挡视频在线观看| 色必久悠悠影院| 婷婷天天舔| 久久婷婷五月丁香| 色综合综合网| 五月丁香性| 亚洲午夜一区二区| 99久久九九| 夜夜爽天天爽| 亚洲成av人影院| 亚洲狠9| 密视AV综合在线| 九伊人网| 色五月婷婷中文字幕| 婷婷激情四射| 蜜乳国产网站| www.色婷婷.com| 九九热视频99| 国产精品久久久久久久久久久久 | 青草视频在线播放| 九月婷婷人人操人人舔人人爱| ady狠狠入| 五月天婷婷社区久久综合| 色婷婷久久综合久色综| 日本91在线播放| 中文字幕丰满孑伦无码专区| 色婷婷影视99| 热久久91| 人人看人人草人人摸| 激情VA视频| 五月丁香综合激情| 天久综合91综合首页| 五月婷久草| 狠狠丁香| 丁香五月天成人| www.久久爱.com| 成人在线日韩| 夜夜爱影院| 888精品福利地址| 91wwmm导航| 久久久久9| 伊人大综合| 狠狠爱婷婷爱| 中文不卡一二区| 亚洲综合色色| 91狼友视频在线观看| 直接看的AV| 丁香激情久久| 熟妇天天综合| 成人操呦av| 精品一二三区久久AAA片| 99久久久久久www| 亚洲成人网无码| 国产VA亚洲VA96| 另类视频五月天| 激情性爱网站| 五月丁香激情综合六月涩涩爱| 色色色热| 伊人久久婷婷五月综合97色| 欧美熟女99| 久久久久思思热| 97人妻碰碰中文无码久热丝袜| 98色丁香五月婷婷综合网| www.日日日.com| 人妻AV在线观看| 五六月婷婷久久| 丁香婷婷五月天色综合| 狼人狠狠操| 丁香九色不卡aaa| 五月丁香WWW| 综合色99| 99久精品视频| 丁香五月天AV| 射满了还射免费在线观看 -午夜版全集-新视觉影院| 丝袜激情网| 婷婷久久亚洲| 婷婷在线五月综合| 五月天六月天| 色婷婷丁香五月| 91碰| 香蕉视频91| 成人国产网站| 狠狠激情五月天| 亚洲国产精品成人午夜| AV天堂淫乩| 亚洲六月婷婷| 99色激| 婷婷在线视频| 99人人干| 99操逼| 五月丁香久久网| 色欲婷婷五月天丁香| 久久人五月| 久草五月天| 97自拍视频网| 五月天婷婷婷| 无码一级片| 五月婷亚洲精品| 色停停影院五月天| 伊人五月天在线| 一本九九色| 99这里只有精品|v| 婷婷五亚洲| 国产日韩精品SUV| 极品 少妇 内射| 荫道BBWBBB高潮潮喷| 亚洲天堂AV免费片| 久久AV无码精品人妻系列试探| 九九国产精视频| 天天爽夜爽| 日本天天综合| 91干婷婷| 99热精品在这里| 色五月婷婷1| 国产精品日日躁夜夜躁| 青青草tp| 嫩草AV久久伊人妇女超级A| 天天综合干| 日本激情综合| 激情五月婷婷开心网| 激情五月色综合网| 天天肏夜夜肏| 婷婷5月天激情综合| 国产av一区二区三区| 免费视频这里只有精品| www,超碰| 天天做夜夜爽| 色婷婷五月亚洲| 婷婷五月丁香激情图片| 婷婷五月综合啪| 亚洲九九夜夜| 天天揷综合网| 婷婷在线播放| 五月份婷婷| 操逼五月婷婷| 26uuu丁香婷婷五月| 婷婷五月小说色综合| 欧美成人猛片AAAAAAA| 六月丁香久久| 亚洲区,视频区,视频区免费| 97久久人人人干| 丁香五月六月综合欧美| 国产日产成人亚洲欧美国产VA| 99精品国产乱码久久久人妻| 五月天 无码| 5月激情天| 一本久婷婷综合| 久久婷婷影院| 婷婷五月天美女视频| 欧洲一区二区| 一级AV片| AV电影在线播放| 99爱免费视频在线观看| 九热久| 亚洲第一成人无码A片| 丁香五月婷婷偷拍| 亚洲 在线 性爱 | 性天天中文网| 色五月天影视| 中文在线视频久9| 成人AV在线电影| www.俺去也com| 五月婷婷无码| 五月婷在线观看| av婷婷丁香 六月| 亚洲欧洲小视频9| 99免费在线视频| 开心五月婷婷婷美女| 丁香五月婷婷六月婷婷| 日本欧特黄色刺激一区影视久精品无码| 色婷婷五月天偷拍| 99网| 五月丁香六月合| 99re在线观看| 国精产品一区二区三区| 99这里有精品视频| 激情综合网五月| 婷婷丁香色五月| 婷婷综合五月天激情| 欧美综合123区| 婷婷婷五月香蕉| 激情五月天视频| 色婷婷丁香综合中文字幕| 亚洲综合草草| 丁香九色不卡aaa| 麻豆AV一区二区三区| 九九热婷婷| 五月丁香久久网| 任你搞在线观看视频| 九九热中文| 人人摸人人搞| 噼里啪啦完整版中文在线观看 | 天天久| 一本色道久久88加勒比| 久久99网站| 狠狠色成人影片| www.久99| 在线综合婷婷| 天天爽天天| 午夜激情婷婷| 婷婷久久色| 超91热| 五月视频日本免费观看| 超碰在线91| 超碰93在线观看| 桃色激情网| 五月婷婷亚洲天堂97色婷婷| 干亚洲天堂| 成人在线网址| 激情五月,激情综合网| 国产日韩亚洲欧美在线观看| 香蕉97碰碰碰欧美| 久久激情综合| 99综合网| 激情综合网五月在线播放| 色色色婷婷五月| 婷婷丁香五月激情密臀av| 亚洲成人黄色网| www.金莲av| 婷婷亚洲五月丁香综合在线| 日日撸夜夜操| 婷婷亚洲日本| 99性视频| 婷婷综合五月| 综合网五月| 日本高清久久| 色香欲综合| 婷婷色色网| 五月婷av| 久久无码激情视频| 午夜色婷婷| 丁香婷最新动态| 五月婷婷色五月| 亚洲综合网区| 久久婷婷影院| 99热在线里有精品| 国产精品99久久久久久久女警| 丁香六月婷婷综合激情欧美| 丁香色婷婷五月天| 婷婷午夜| 亚洲五月婷| ,99视频久久| 国产看真人毛片爱做A片| 六月婷婷狠狠色在线观看| 国自产拍偷拍精品啪啪一区二区| www.狠狠色.com| 激情婷婷丁香| 婷婷丁香五月高清| 六月激情丁香一道本7777| 丁香激情五月天| 超碰免费99| 26uuu在线观看| 婷婷五月天成人动漫| 国产精品久久久久久久久久久久 | 专区无日本视频高清8| 婷婷五月天深爱| 99久久超级| 色屌丝中文字幕| 97人凄人人操人人爽| www久久久| 天天爽天天日人人爱 | 我想看国产大学生口爆吞精的视频| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 婷婷五月天综合网| 六月天六月婷| 亚洲av无码影院| 91色综合网| 色久播播| 成人婷婷色综合| 欧洲亚洲精品| 九九Av| 99超超碰| 婷婷五月激情六月| 五月丁香婷婷啪啪| 中文字幕日产A片在线看| 狠狠干五月丁香综合网| 98色花堂98t.R| 激情五月丁香五月| 开心五月色婷婷综合开心网| 天天操五月天| 色999五月色| 婷婷五月天色综合| 久久性刺激| 欧美99热| 九九热视频精品| 丁香五月婷婷基地| 五月天色色无码| 婷婷六月色开 | 婷婷区日本| 婷婷五月天激情综合| 色色五月婷婷久久| 婷婷综合在线| 开心激情网五月| 五月天婷婷基地| 丁香五月综合狠狠| 亚洲AV综合网| 色婷婷五月网| 久久多色| 一本到不卡高清DVD| 五月丁香六月香香蕉| 五月噜噜| 99综合一区| tingtingcaobi| 天堂久久精品| 婷婷五月色综合| 色~性~乱~伦~噜| 九月丁香网婷婷| 五夜婷婷| 99在线精品视频免费观看20| 天天色天天搡| 婷婷中文字暮| 欧美日韩欧美| 国产免费一区二区三州老师F1F1| 婷婷激情区| 99人妻碰碰碰久久久久禁片| 四色五月婷婷| 91色久| 婷婷色五月开心五月| 色青青视频| 久热大香蕉| 色婷婷操逼网| 色网五月婷婷| 色播五月天激情| 99爱爱网| 五月天社区狠狠| 熟女重口味αV| 2016日日夜夜操| 中文字幕操比影片| 亚洲色五月| 五月婷婷亚洲| 婷婷五月天在线一区| 五月丁香啪啪激情| 伊人久久艹| 超碰97久久| 丁香婷婷影院| 国产精品久久久久久亚洲毛片| 色婷婷久久综合| 深爱激情婷| 国产熟女日日骚五月丁香爱| 丁香五月六月久久综合 | 天天狠狠六月婷丁香影院| xxx综合在线| 久久久妻人人人| 亚洲成人网在线观看| 五月丁了香蕉综合| www.第四色99| 成人亚洲精品久久久久 | 日本色婷婷| 综合色激情| 情涩婷婷五月天| 狠狠搞综合色| 99久久国产宗和精品1上映 | 97自拍视频在线| 991精品在线视频| 深爱激情六月天| 九九热视频免费| 韩国婷婷丁香五月| 五月激情丁香五月宗合| 婷婷五月天伊人在线| 九月婷婷| 九色视频91| 91婷婷丁香| 色婷婷综合久久久久| 好色婷婷| 日韩另类在线观看| 五月丁香啪。| 日韩无码91| 伊人九九综合| 啪色综合| 天天综合 99久久婷婷| 成人永久免费视频在线观看| 青青草99热久久精品国| 高清国产一级婬片a免费| 五月婷婷丁香五月| 五月丁香婷婷色播无码| 国内精品免费一区二区2009| 久月久在线视频| httpwww色com日本| 91av成人| 久久码久久无清| 色色五月丁香婷婷综合| www.色色com| 久人操| 久久丝袜婷婷| 99操逼| 综合激情网五月激情| 男人天堂亚洲综合| 激情丁香网| 丁香婷婷在线| 五月婷亚洲精品| 激情图片久久| 三级三久久线久久99久目本WW| 九九热九九| 色色色色综合网| 另类少妇人与禽zOZZ0性伦| 八戒青柠影视剧在线观看| 伊久大香蕉| 狠狠色噜噜狠狠亚洲A∨| A级毛片高清免费不卡播放谢谢谢谢| 玖玖婷婷精品| 精品久久99| 久久久久综合激动五月天| 五月婷婷五月天天| 啄木鸟丝袜美女福利视频| 丁五月激情视频免费| 任我肏| 婷婷五月天色色| 大香蕉色婷婷伊人在线| 色婷综合| 7777激情基地| 深爱激情九九五月天 | 婷婷五月天亚洲综合| 亚洲激情综合| 专区无日本视频高清8| 99碰碰碰| 玖玖爱资源站| 色婷婷欧美在线| av性爱网站| 五月丁香激情四射| 婷婷丁香六月天| 久久人人添人人爽添人人片αV | 99热热热天天人人人超超碰| 91啪啪啪啪| 国产伦理精品高清在线观看网站一区二区| 人人爱天天摸摸天天爱| 婷婷综合色五月天| www.五月婷婷| 亚洲第一成人无码A片| 69精品人人人人人人| 久热这里只有国产| 永久地址 色| 四虎成人精品永久免费AV九九| www.夜夜| 97碰碰电影| 国产色色网站网址| 久久综合人妻| 亚洲成人在线播放| 九九热99在线视频| 69热在线| 色综合激情| 无码色| jiuse91在线| 综合久久婷婷五月丁香| 五月婷精品| 天天干,夜夜爽| 色色色色色色色色色色色色色色,网站| 99在线观看视频| A A色色| 国产亚洲99久久精品| 日韩在线视频9色| 国产激情综合| 婷婷六月久久综合导航| 婷婷五月天成人| 老师把我爽高潮了免费A片| 狠狠爱五月婷婷| 午夜成人AV在线| 久久久天堂国产精品女人| 91久久五月天| 色综合性视频| 91九色首页| 韩国97天堂| 综合激情五月综合激情五月激情1| 玖玖资源在线视频| 国产成人精品亚洲线观看| 丁香五月激情网| 国产成人网站在线观看| 79亚洲精品少妇| 开心婷婷五月| 免费做A爰片77777| 婷婷爱爱蜜臀天天操| 色五月天在线| 精品人妻伦一二三区久| 日本精品九九九| 五月丁香婷庭在线| 国产色色视频| 七七九色| 婷婷婷婷婷婷婷五月丁香| 四LLL少妇BBBB槡BBBB| 97碰超级人人看| 久机视频这只有精品| 中文字幕无码人妻少妇免费视频| 99在线精品免费视频| 日本WWW九九九| 久草九一| 久久婷婷六月综合资源| 九九九九综合| a色婷婷| 色综合色色色色色| 狠狠五月天| 色婷婷色99国产综合精品| 美欧成人视频| 大香蕉丁香| 天天日天天日天天搞| 五月天激情网站| 99久久婷婷国产综合精品草原| 五月婷婷亚洲色视频| 色亭亭丁香五月天| 先锋av性爱成人电影| 天天拍天天操| 国产日批视频免费播放| www.久久久.com| 99色.com| 99re热视频这里只精品5| 五月天丁香婷婷网| 婷婷美女精品视频| 热久精品| 全亚洲最大的婷婷五月天网站COM| 色五月婷婷综合在线| 色色五月激情| 97 A I色色| 免费日本aⅴ中文字幕| A A色色| 欧美成人在线观看| 五月色婷婷综合丁香精品无遮挡| 亚洲天堂99| 丁香六月AV| 综合婷婷| 天天爱天天做天天舔| 99热婷婷| 亚洲成色综合网站免费观看| 中文字幕黄色片| 丁香婷婷五月天校园春色| 99久久极情精品一区| 影音先锋按摩| 日韩aaaaa| 国产亚洲99| 五月丁香六月激情综合| 九九精品这里只有| 少妇性按摩无码中文A片| 丁香五月婷婷色五月| 激情内射人妻1区2区3区| 色狠狠六月| 99ri网站在线观看| 五月婷婷开心丁香| 91综合网| 婷婷六月色开 | 亚洲综合另类| 婷婷丁香第一页| 婷婷色色综合| 婷婷99狠狠躁| 天堂爱啪啪| 午夜大香蕉| 99热这里只有精品亚洲| 国产SUV精品一区二区883| 区区欧美你爱| 啪啪东京热| 婷婷色在线观看| 激情五月伊人婷婷| 婷婷五月丁香综合| 亚洲成人无码网站| 婷婷天堂综合| 5月婷婷综合| 婷婷五月激情基地| 色色色综合色| www婷婷| 丁香五月av| 色色 9| 丁香久久五月婷综合| 日韩色色视频| 人人干AV| 91综合在线视频| 日本va欧美va国产激情| 色情五月天首页| 中文字幕不卡视频| 男女99免费视频| 97婷婷丁香五月天激情图片| 大大香蕉综合在线| 婷婷涩涩五月天| 激情综合青草| 九色成人AV在线| 一起草无码| 亚洲日韩人妻操逼| 91N 一起草| www99热| 色婷婷a三区麻| 婷婷激情六月综合| 国产FREESEXVIDEOS性中国| 激情五月婷婷六月丁香| 成人在线精品| 午夜伊人大香蕉| 91肏| 99精品在| 狠狠爱婷婷爱| 色呦精品| 五月天综合激情网| 狠狠狠人妻| 超碰国产av| 色五月婷婷777| 嫩草视频在线观看| 中文字幕久久一区二区三区| 国产精品久久..4399|