免费国产精品自在自线-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
返回資訊列表
草草色情综合网| 激情人妻蜜夜系列区| 99在线观看| 精品夜夜澡人妻无码AV| 97碰| 天天插插天天| 热99这里只有精品视频| 99热在这里只有免费精品| 亚洲视频久久| 午夜丁香久久久久久| 影音先锋四区| 99热日韩| 久久9精品视频| 婷婷五月天激情五月天网站| 五月天色婷婷视频| 欧美婷婷六月丁香综合色| 成人精品网站在线观看| 久久五月婷综合| 丁香六月欧美| 五月丁香久久| 99热九九热| 婷婷五月天电影区小说区| 激情综合青草| 青青夜夜狠狠夜夜狠狠| 丁香激惜男女| www.五月天婷婷姐姐| 激情丁香社区| 国产成人+综合亚洲+天堂| www热久久yy9| 在线观看中文字幕亚洲| 丁香五月激情啪| 波多婷婷久久| 冬月かえでAV无码播放| 色九月国产| 91精选国| 婷婷玖玖丁香| www.婷婷五月天| 操操日韩| 九九色精品| 亚州色婷婷| 91丨九色丨老农村| www.久久久久久久| 色丁香五月天射婷婷爱婷婷| 天天爱天天做综合| 五月天激情子轮| 深爱激情AV| 丁香五月天天| 五月丁香六月婷婷亚洲| 久久婷婷成人综合色怡春院| 色5月婷婷色| 成人电影AV在线观看| www.五月天| 日本操逼九九九九58日本操逼| 丁香色啪综合| 丁香五月婷婷六月| 亚洲av免费在线| 婷婷射综合| 99视频网址| 五月婷婷六月丁香五月| 思思热精品在线| 日韩成人AV在线| 亚洲AV免费在线| 91色在线/日韩| 99色热| 九九综合| 日本三级网址| 六月综和久久| 色五月丁香婷婷久草| 色七七九九| 国产在线中文字幕| a性生活久久无| 久久人人添人人爽添人人片αV| 五月综合人妻| 亚洲中文字幕av| 第四色五月激情网| 99激情视频| 日韩av在线免费观看| 五月婷精品| 天天插天天干| 高清国产AV| 久热9| 日韩砖区| 97久久精品| 婷婷丁香熟妇综合网| av在线播放网站| 人人操人| 性婷婷| 婷婷五月激情视频| 五月激情综合网| 99热伊人综合| 色综合色综合色综合高潮| 伊人深爱综合| 婷婷成人五月天| 九九美女视频| 激情纯色婷婷五月天在线不卡视频| 婷婷干五月综合在线播放| 99操无码视频观看| 亚洲永远av在线播放| 棕合影院色色| 婷婷五月天啪啪| 色色色色五月| 久久999久久999久久999久久| 九九国产精视频| www.五月丁香av| 五月婷婷激情日本| 五月激情综合性爱| 天天色综合综合| 欧美日韩成人一区二区| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 久久婷婷桃花五月天| 亚洲AV网站在线观看| 五月婷婷,六月激情| 九九热视| 婷婷五月综合基地| 99爱精品视频| 激情综合网激情五月婷婷| 4399在线观看免费高清黄色视频| 色停停五月天| 99视频啪啪| 男人天堂亚洲综合| 色播五月天激情| 99热精品超碰| 婷婷五月天电影网| 加勒比久热| 精品一二三区视频立| 五月天婷婷视频小说| 五月婷婷六月激情| 丁香六月成人网| 婷婷丁香人妻天天爽| 婷婷久久18| 五月综合777| 日韩视频99| 26uuu四色| 丁香五月,激情五月,深爱五月| 99色色最新视频| 人人爱操| 婷婷激情丁香五月天综合| www,com,五月色色| 影音先锋一区| 深爱激情六月天| 99免费偷拍视频| 天天色综合网吨吧| 亭亭丁香97| 青青草视频福利| 综合激情婷婷| 五月婷六月丁| 色婷在线视频| 色婷婷免费观看| www,超碰| 深爱激情六月天| 国产精品视频| 夜夜爽天天爽| 俺也去综合| 色噜噜狠狠色综无码久久合欧美| 五月丁香婷婷激情在线视频| 免费观看全黄做爰的视频| WWW,激情五月天,COM| 久久丁香五月婷婷| 99热这只有| 婷婷五月花| 天天日综合网射| 另类专区在线观看| 丁香五月在线看| 久婷狼色诱惑在线| 亚洲天堂爱爱| 色五月激情综合| 国产古装妇女野外A片| 亚洲色婷婷网站| 日本少妇裸体做爰高潮片| 久久婷出差欧美色两性综合网| 婷婷色中文字幕| 五月婷婷激情四季| 大香蕉视频99| 久久久激情视频| 、激情六月天| 丁香av网| 爱射综合| 青青草日本亚洲| 丁香五月之久操视频| 激情婷婷五月天日本系列 | 九九Y精品热播| 九九热在线精品| 久久婷婷综合网| 色五月婷婷在线| 欧美婷婷五月无砖| 婷婷激情综合色五月久久图片| 伊人激情综合网| 深爱激情中文五月天av| 午夜激情四射影院| 五月天婷婷视频| 日韩av干| 欧美在线视频99| 国产精品VIDEOSSEX久久发布| 色色婷婷综合网| 97操碰在线视频| 99热一区| 97操碰在线视频| 思思色播| 丁香五月六月综合激情| 热久91| 亚洲在线资源| 日韩AV大全| 色婷五月天| 五月停性愛| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 亚洲激情免费视频| 天天五月香欧美| 99热色综合| 五月丁香色色网| 九色色| 亚洲五月天婷婷| 字幕网AV中文字幕| 久久丁香五月| 思思99久久| AV天堂婷婷五月天| 综合激情五月丁香| 欧美日本综合网| 免费观看高清无码| 婷婷五月色播天| 婷婷丁香五月亚洲| 久久久大香蕉| 天天综合精品| 亚洲天天| 天堂草在线看www| 99热免费网站| 五月天色狠狠| 亚洲五月天第一综合干| 欧美婷婷| 久热九九| 99热综合在线| 嫩草AV久久伊人妇女超级A| 热热99爱爱| 99久久超级| 国产av天堂| 色九月| 激情图片婷婷| 久久婷狠狠色| 五月丁香啪啪啪综合网| 五月婷婷av| 99热一区| 亚洲五月婷婷| 丁香五月激情网| cc精品国产性传播| 久久这里只有精品8| 五月丁香做爱视频| 日本VA视频| 五月综合婷婷久久在线| 五月丁香六月婷婷综合网缴情| 日韩砖区| 久久成人天| 六月婷伊人| 五月激情婷婷开心五月| 亚洲VA在线| 日本特黄aaaaa| 久久6这里只有精品| 色婷婷视频| 丁香婷最新动态| 操91| sewuyue第四色| 六月婷婷无码观看| 狠色狠色综合久久| 五月丁香亭亭| 51国精产品自偷自偷综合| 大香蕉九九| 九九色影院| 91操操| 亚洲人妻av| 99热.com| 久久综合五月天激情小说网站| 免费视频WWW在线观看网站| 疯狂做受XXXX高潮A片| 成人综合网站| 久热爱大香蕉在线蜜臀悦色 | 嫩草AV久久伊人妇女超级A| 久久五月天激情美女| 就要爱综合| 五月丁香六月婷婷,婷| 激情综合网,婷婷| 蜜乳国产网站| 另类图片天天影视在线观看| 精品亚洲国产成人A片在线鸭王| 99在线精品免费视频| 欧美性生交XXXXX无码小说| 99人人爽| 天天色播| 激情九九综合网| 婷婷五月天激情小说| 9月色婷婷| 久久怕怕视频| 久久婷婷五月综合网| 99亚洲视频| 国产精品电影| 九九激情视频| 狼人久草| 色色色色av色色色色| 日本99色| 日韩av手机在线观看| www.激情com| 亚洲国产成人综合| 亚洲99手机免费看视频 | 九九性视频| 五月天婷婷成人| 色五月婷婷基地| 国产99热| 嫩草视频观看| 欧美成人无码一区二区三区| 久久WW| 日日操日日撸| 69精品人妻不卡视频| 影音先锋毛片网站| 九九99一区| 五月丁香啪啪啪啪| 丁香五月 性爱| 99热这里只有精品1025| 99热精品6| 91爱操| 全部老头和老太XXXXX| 色婷婷精品视频| 5月婷婷综合| 综合色综合| 综合婷婷| 久久婷婷五月天激情| 久久久妻人人人| 激情小说之五月| 激情綜合網址| 97干在线看| 99色最新在线视频| 99久在线精品99re8热| 少妇大叫太大太粗太爽了A片 | 就要爱综合| 天天综合亚洲综合| 综合网色| 亚洲六月色婷婷| 97色色色视频| 青柠影视免费高清电视剧| 狠狠五月激情丁香六月| 色99网| 久久婷婷五月天| 亚洲国产网址| 丁香五月乱中文字幕| 免费视频无码| 日本久久99| 婷婷五月色天| 1024你懂的欧美曰韩| 情五月亚洲婷婷| 伊人婷婷大香蕉| 日韩av免费版| 26uuu亚洲欧美| 91精品综合久久久久久五月丁香| 天天透天天干| 欧美美女国产日韩一区二区久| 综合噜噜| 五月丁香综合成人社区| 久草热在线视频| 北条麻妃伊人| 婷婷五月18永久免费视频| 大香蕉九九| 色天堂A| 99操逼| 我淫我色婷婷五月天激情四射| 亚洲美女婷婷五月天| 99久.| 激情国产综合| 久9热视频| 97性高潮久久久| 欧美激情五月| 九九热在线视频观看免费10| 色综合天天综合成人网| 91视频久久久| 伊人婷婷大香蕉| AV在线不卡播放| 可以直接看的av网站| 天天做天天爱天天爽| 伊人干综合| av在线免费网站 | 色哟哟www| 激情综合国产| 六月丁香五月天| 97碰碰视频在线观看| 色五月婷婷在线| 天天噜日日噜综合无码| 中文字幕无码人妻少妇免费视频 | 色婷婷先锋| 97九色视频| 婷婷六月啪啪| 亚洲国产精品二二三三区| 色情丁香五月天| 婷婷情色开心五月天99| 99视频在线观看网址| 精品网站:999WWW| 亚洲成人中心| 99久久a线观| 婷婷激情图片| 婷婷五月深深爱| 丁香五月天社区婷婷| 婷婷在线激情| 色婷婷国产精品综合在线观看| 色色五月天网站| 久9久9久9久9久9久9| 五月婷婷色五月| 免费色色色| 国产精品美女久久久久AV超清| 丁香伊人综合| 色色色97| 欧类av怡春院| 五月之婷婷| 爆乳熟女一区二区三区爆乳| 大香蕉综合在线| 天天综合五月天| 9l视频自拍9l九色成人| 免费一区二区三区| 99在线观看视频| 亚洲舔观看| 丁香综合久久| 狠狠狠狠狠狠| 操逼三区| 五月婷六月| 777影视理论片大全在线观看| 9久热这里只有精品| 色播五月综合网| 色色色色五月| 五月综合激情图片| 久久超级碰碰| 狠狠色婷婷综合开心影视| 九九碰九九爱97超| 天天爱夜夜爽| 另类婷婷丁香| 九月婷婷综合| 婷婷的色色五月天| 热99玖玖99玖玖99九九| 99热这里是精品| 婷婷五月丁香伊人| 男人综合网| 91久久九久久九久久九久久九久久 | 人五月天婷婷喷水| 操一区| 色色色色色色网站| 五月婷婷婷自由综合| 亚洲精品无码久久| 99亚洲精美视频在线观看| 草了bav视频在线观看| 96精品久久久久久久久| 99热这里只有精品4| 色色综合网站| 日本97在线视频| 五月丁香综缴情性爱| 免费黄色片子| 婷婷午夜精品久久久| 91女人18毛片水多国产| 91色呦哟| 成人做爰黄A片免费看直播室男男| 亚洲熟女色| 婷婷六月花| 美女亚洲五月丁香| 久久五月天激情美女| 欧洲S级在线观看| 九九色黄色| 曰韩少妇内射免费播放| 丁香五月av| 99热免| 激情99热| 久热AA| 涩五月色婷婷| 色五月丁香伊人| 千人斩操逼| 中文字幕婷婷五月天| 欧美激情综合色综合啪啪五月| www网站在线观看| 久久婷婷影院| 国产毛多水多女人A片| A久久| 九月丁香| 99re思思久久| 亚洲午夜av| 第四色五月天| 人妻中文在线| 强辱丰满人妻HD中文字幕| 五月丁香综合网| www.五月天婷婷| 五月丁香五月综合欧美| 夜精品无码A片一区二区蜜桃 | 99噜噜| 九九久热| 六月婷婷色色色| 六月激情综合| 婷婷五月激情天| 逼里香不卡| 色五月综合网| 丁香五月婷婷日本| 人人人操97| www激情五月天| 久久久久久性爱视频| 丁香色五月天| 五月丁香啪啪| 久久R激情| 久久99热这里只频精品6学生| 亚洲九九九九| 人人爱人人摸人人澡| 婷婷性福五月天| 激情婷婷五月天在线观看| 九九九成人在线视频| 天天舔天天摸视频| 亚洲在线资源| 99久久9| 激情五月色婷婷| 五月天综合婷婷| 丁香六月激情综合| 91妻人人爽人人看片| 在线播放成人| 激情五月天婷婷直播| 婷婷丁香六月影视| 亚洲综合激情五月久久| 亚洲va成人va成人va在线观看| 五月丁香影视| 九九激情视频| 婷婷免费成人视频| 色色色热| 九九99在线免费在线观看视频| 六月婷婷综合| 亚洲美女婷婷五月天| 99精品久久久久| 日日爽日日| 色婷婷五月天视频在线| 九九热超碰| 综合天堂AV久久久久久久| 亚洲黄网AV| 四色五月视频| 五月丁香直播| 久久偷拍综合五月天| 亚洲精品亚洲人成人网| 日本网站久久| 五月丁香久久综合| 婷婷中文字幕版| 久久婷丁香五月| 午夜精品人妻无码一区二区三区| www99久久| 色亚洲色宗合| 五月丁香六月激情综合| www.9797国产| 99热这里只有精品搜| 激情五月综合网| 亚洲噜色| 婷婷午夜精品久久久| 久久91久久精品久久| 婷婷伊人网| 色。 婷婷婷| 久久婷婷伊人| 99视频在线播放大全| www开心激情网| 在线婷婷| 五月激情射| 欧美综合五月丁香五月天| 色五月综合在线| 亚洲AV成人无码电影| 我爱宗和色| 五月丁香啪啪| 99在线综合视频| 精品色色网| 任你草| 日本一级黄色电影| 综合性爱网| 抽插特写| 婷婷射婷婷舔| 任你爽在线视频| 99高级会所久久| 久久婷婷网| 九九综舍久久| 五月婷六月丁| 一级片操逼视频| 99热久只有精品首页| 久热伊人| 99热九九这里只有精品| 久久六月综合| 色热久资源| 狠狠操综合| 色五月婷婷激情基地| 亚洲色模骚货| 日韩xx在线| cc精品国产性传播| AA丁香综合激情| 人人草公开操| 丁香六月婷婷久久综合| 色 丁香婷婷| 少妇AB又爽又紧无码网站| 五月丁香婷婷综合在线| 亚洲最大在线| 婷婷综合网| 、激情六月天| www.狠狠操| 日韩综合久久| 丁香婷婷激情| 五月丁婷婷| 久久人人添人人爽添人人片αV | 十月色综合| 五月丁香六月婷婷综合| 色爽九九| 狠狠艹狠狠艹| 超碰人人摸人人操| 99久久激情视频| 亚洲AV另类| 涩涩涩.com| www99xxxx五月丁| 久青草影院| 亚洲天堂久久| 欧美日韩精品人妻狠狠躁免费视频 | 开心五月婷婷在线| 成人色图情色成人网 www.5b5b5bcom 五月天 | 丁香婷最新动态| 色色色五月婷婷| 五月丁香拍拍激情综合| 肏日网在线看| www色婷婷| 91尤物九色在线| 精品人妻伦一二三区久久| 99re这里只有精品在线观看| 成人网站av免费网站推荐| 亚洲成人免费电影| 人人操人av| 大香蕉大香蕉在线影院| 国产成人精品一区二三区熟女在线| 99亚洲大片精品永久在线观看| 青柠影视免费高清电视剧| 四色AVwww| 超碰免费人妻| 五月久久丁香| 久碰视频| 激情五月天小说| 99性视频| 婷婷五月在线| 91五月天| 亚洲一区二区无码蜜乳av| 七七色色综合| 精品人妻久久久| 人人性久久| 久久色大香蕉| 五月婷婷AV| 天天操九九插| www.天天干.com| 婷婷五月天毛片| 老司机伊人| 99成人无码| 超碰在线视屏| 久久亭亭电影| 久超免费视频| 成人综合网站| 凹凸操Av| 五月婷在线色视频| 色婷婷丁香网| 色五月婷婷丁香凹凸| 超碰91在线| 天天干天天做| 色欲丁香久久| 国产色色在线| 99碰网站| 视频久久9| 激情五月婷婷综合网| 中文字幕 中文字幕明步| 婷婷婷婷婷开心无码播放| 天天五月丁香五月| 五月天激情四射网站| 婷婷99视频全集高清| 一区二区三区视频| 99热精品在线| av在线激情| 噜噜色婷婷| 人色五月天婷婷| 婷婷五月天色色| 玖玖午夜视频| 日韩有码一区| 丁香五月婷婷五月| XX色综合| 日韩中文字幕| 久久A极片| 专区无日本视频高清8| 日日夜夜婷婷| 色五月天婷婷| 色婷婷亚洲婷婷| 五月天另类小说| 人人爱摸视频| 日韩 中文 欧美| 婷婷成人视频| 色婷婷五月色| 久热婷婷| 99热精品在线| 91久久综合亚洲鲁鲁五月天| 九色PORNY自拍成人精彩视频| 五月天激情小说网| 久9精品视频| 99超级碰碰| 97干网站| 色吧五月婷婷| 99视频只有精品| 国产精产国品一二三在观看| 噼里啪啦在线观看免费完整版视频| 五月婷婷丁香六月| 国产精品色| 少妇人妻丰满做爰XXX| 被强行糟蹋的女人A片| 丁香六月婷婷色XXXXX| 色五月婷婷在线| 天天色粽合合合合合合合| 色播播五月| 日本婷久久| XX久久| 俺去也五月| 欧美成人精品A片免费一区99| 国精产品一区一区三区免费视频| 五月婷狠狠| 婷婷玖玖五月天| 亚洲综合99| 婷婷激情五月天在线视频| 伊人狠狠操| 天天色天天操天天射| 婷婷五月天激情综合| 婷婷五月综合久久中文字幕| 综合色影院| 九九热只有精品| 日韩AV片| 五月激情在线| 色色97丁香婷婷五月天| 婷婷四月 成人 狠狠干| 五月天色婷婷网| 日韩狠狠色| 国产精品扒开腿做爽爽爽A片唱戏| 69凹凸成人综合网| 色综合色色色色| 婷婷丁香五月天婷婷| 99久久思思| 五月天激情四射网站| 日韩一级片| 久久婷婷大香蕉| 九九热超碰| 黄色笑话深爱激情网丁香五月婷婷啪啪啪啪啪 | 五六月婷婷久久| 一本狠婷婷综合| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 九九热精品99| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 丁香五月久久社区| 丁香女人五月天| 激情欧美丁香五月| 中文字幕丰满孑伦无码专区| 中文字幕,综合,91| 婷婷五月天日日日干干干| 97人人做| 热99在线| 精品久9| 丁香五月综合高清在线| 五月天亭亭俺也| 年轻的妺妺伦理HD中文| 婷婷久久女人| 色婷婷五月天激情综合| 婷婷中文字幕| 伊人高清无码| 天天色·欧美| 久久色天堂| 综合色视频| 天天撸夜夜爽| 天天日天天插| 五月丁香精品| 色婷婷丁香五月| 97超级啪啪在线观看| 激情婷婷五月亚洲| 99自拍视频在线观看| 九月婷婷综合在线| 欧美狠狠草| 超碰国产AV| av婷婷丁香| 五月丁香在线婷婷蜜桃| 97干在线| 婷婷激情肏屄网| 亚洲综合新99视频| 激情五月丁香五月| 丁香婷婷五月综合影院| www.射伊蕉婷婷| 久久激情婷婷| 婷婷六月丁香综合| 色无码| 九九色婷婷| 丁香桃色网| 丁香色五月 97干| 日本色久| 9精品视频在线观看| 婷婷综合网| 久久99jiu9| 天天插天天插天天插| 色综合色香蕉网| 九九热99精品| 色五月丁香A欧美com| 婷婷丁香成人网址| 色香蕉婷婷| 亚洲五月天天| 久久免片| 再次出发二| 激情综合啪啪| 激情五月天婷婷图| 亚洲欧洲另类| 色在线五月天免费| 婷婷综合仓库中文| 久久婷婷色丁香| 激情五月黄色| 黄色激情五月天| 五月丁香五月丁香五月丁香五月丁香91| 26uuu精品一区二区| 久热re视频在线观看网站| 99久久免费精品| www.色多多婷| 色亭亭五月天丁香综合AV - 百度 - 百度| 婷婷玖玖丁香| 丁香婷婷视频在线| 婷婷射图| 亚洲免费99| 热久久思思热思思| 婷婷五月天99综合网站| 丁香五月23111| 亚洲国产黄色电影| 丁香五月激情婷婷| 色婷婷五月成人网| 色爱综合网| 99热在线免费观看精品| 大香焦A∨| 婷婷六月天激情影院| 色综合色综合色综合| 亚洲乱码w在线观看| 五月天激日本色情在线| 万月丁香狠狠爱| 成年人最刺激的综合网| 99色综合网| 99视频在线9| 久久色天堂| sisi热国产| 婷婷五月娱乐在线| 亚洲综合激情五月久久| 丁香五月 综合| 婷婷丁香综合在线| 久九色| 丁香五月天天高清在线| 激情六月丁香| 日韩一级一片内射视频4K| 噜噜狠狠色综合久| 成人五月天在线视频在线观看 | 丁香五月123| 99网| 色播五月综合网| eeuus五月婷| 亚洲爱婷婷| 丁香五月电影| 婷婷午夜精品久久久| 五月婷婷花| www.主妇. com| 国产永久一黄| 婷婷亚洲影院| 激情内射p| 五月激情六月| 激情综合亚洲| 久久码久久无清| 激情人妻蜜夜系列区| 九九婷婷五月天| 亚洲成人高清在线| 精品人妻伦九区久久AAA片| av色色国产| 99久re热视频精品98| 激情电影五月婷婷| 欧美大片免费观看| 丁香六月欧美| 婷婷丁香五月综合激情视频| 五月婷婷丁香深深爱| jiujiujiuwuyuetian| 伊人久久丁香五月91| 五月天成人综合| 日本综合色色| 性爱久久| 五月丁香六月婷婷综合| 情情五月天色| 狠狠大香婷婷爱| 日韩操逼大片| 婷婷丁香91| 色99视| 久9综合| 亚洲综合五月天婷婷| 色婷婷电影网| 天天日天天干天天操| 日本高清久| 五月婷婷视频28| 五五月丁香花激情综合网| 久久婷婷五月综合色奶水99啪| 六月婷婷青青青视频| 日本波多野结衣视频| 情欲禁地| www.天天干| 国产日韩欧美性爱| 99A片| 丁香成人色情五月天| 99热这里只有精品69| 日韩成人网站精品久久大全| 五月婷婷婷综合网| 婷婷色吧| 五月丁香毛片| 涩九九九九| 综合五月丁香六月婷婷| 婷婷中文字幕在线| 亚洲第二AV| 久久九九囯产| 免费成人网在线观看| 久久日韩婷婷五月| 久草丁香婷婷五月天婷| 日本eVa一区=区视频| 日韩av手机在线观看| 欧美成人精品A片免费一区99| 极品少妇XXXX精品少妇偷拍| 五月天色五月| 亚洲热热视频| 久久久久婷婷| 久久99热网| 超碰97在线观看免费| 久久综合55| av在线不卡播放| 色99在线观看| 国产精品第一国产精品| 狠狠CAO日日穞夜夜穞AV| 亚洲中文字幕AV在线| 影音先锋男人av资源站| 97操| 久久久WWW| 5月色婷婷| 国产热精品| 色色色色色色色色网站| 影音先锋天天日| 丁香五月成人婷婷| 亭亭五月色男人| 五月婷婷激情中文字幕| 久久久com| 亚洲精品99| 狠狠色综合久久久久| 99热在线爱| 草草视频91| 密乳视频| 婷婷五月丁香欧洲| 热久精品| 十二区无码| 97丁香五月| 插插插丁香五月婷婷| 欧美综合激情五月天| 色大综合| 色人久久| 激情六月婷婷啪啪| 色99视频| 久色五月| 丁香婷婷激情| 中文字幕人妻一区二区| 婷婷色婷婷| 五月婷婷视频ab| 丁香婷婷基地| 亚洲综合网在线| 丁香六月啪| 五月婷AV| 激情丁香婷婷| 久久婷婷六月综合综合| 99精品这里只有免费视频| 亚洲视频图片婷婷五月| 高清一区二区三区日本久| wwwav大香蕉| 久久精品天| 五月婷婷深深爱| 九九热思思热| 五月丁香性爱| 三日本无码| 天天干,天天舔| 精品久久艹| 91丨九色丨东北熟女| 91视频人人做97| 五月婷婷亚洲综合网| 天天综合在线网| 秋霞免费视频| 久久天堂婷婷五月| 伍月激情天| 九九99九九99偷拍视频免费看| AA片在线观看视频在线播放| 中文字幕,综合,91| 亚洲综合在线丁香五月| 亚洲五月天婷婷| 青草青草视频2免费观看| 精品99在线| 五月天堂在线| 久久久婷婷| 操操人人| 六月天无码网址| 性色五月天| 久久婷综合网| 91精品综合久久久久久五月丁香 | 日本熟女二区| 伊人干综合| 久久精品噜噜噜成人A∨色欲| 国产亚洲在线| 亚洲免费av在线| 日本婷婷五月天| 亚洲视频五区| 午夜五月天| 99干免费视频| 深爱激情小说五月婷婷| 丁香五月天激情综合| 婷婷色情 | 开心深爱五月天| 天天夜夜爽| 一区=区操屄高清大全av| 五月丁香网站在线播放| 五月天开心网| 亚洲色图81p| 色婷婷狠狠| 久9热插入| 人人看人人摸人人| 日韩黄在免| tingting五月天亚洲| 亚洲色五月| 色色丁香| 99热最新| 久久女婷| 激情五月天影院| 大香网伊人久久综合| 婷婷玉月丁香五月在线视频| 综合久久婷婷| 激情久久婷婷| nvrentiantang av| 色97啪啪| 在线观看婷婷5月| 大香av| 日本久久人人| 综合99视频| 九九99九九99偷拍视频免费看| 亚洲欧美成人在线| 综合色播| 婷婷丁香高潮了| 免费观看全黄做爰的视频| 五月婷婷激情色情网| 操B视频在线播放| 99热精品6| 啪啪视频99| 五月婷婷丁香婷婷| 日本在线观看aaa 99| 天天日天天爽夜夜爽| 另类视屏| 91九色精品熟女内射| 婷婷五月天美女| 丰满少妇猛烈A片免费看观看| 日本久久综合| 久热超碰| 天天操天天操| 大香蕉视频99| 色5月婷婷色| 色婷婷文字幕| 丁香五月婷婷网| 激情综合无码| 天天操综合网| 日本熟女三区| 99久热视频在线| 婷婷色五天| 99热精品在线观看| 国产亚洲精品久久久久久郑州| 日韩精品色| 色色婷婷婷丁香五月天| 亚洲av网站| 九九视频这里只有精品在线播放| A片试看120分钟做受图片| 狠色色狠网| 五月丁香91| AV在线观看网站| 婷婷色吧| 欧美交换配乱吟粗大25P| 亚洲第一视频 久久| 人人性久久| 激情五月综合| 韩国天天婷婷| 伊人久久艹| 2050人人操免费工开爱| 久热精品视频| 天堂网操| 精品无码久久久久久久久| 五月婷婷丁香社区| 五月开心婷婷极品激情| 人妻中文av| 婷婷色导航| 噜噜色五月| 97色伦另类图片小说视频| 五月丁香 啪啪| 伊人婷婷大香蕉在线| 五月丁香婷婷色色色| 深爱丁香激情| 久碰久操| 五月丁香亭亭AV女优| 激情小说五月天| 操人久久| 狠狠干2007| www.精品99| 五月色亭丁香| 色综合色综合网| 婷婷五月天社区| 思思久久96热在精品国产,| 五月天色色网站| 亚洲精品另类| 被男人添B超爽视频| 狼人婷婷综合| 青青草原福利在线| 26uuu.| 99操久久| 婷婷五月丁香四射| 久久久婷| 五月丁香婷婷在线| 99热a片免| 激情 婷婷 丁香五月天| 丁香婷婷人妻| 色播五月综合网| 色播五月丁香综合| 97一区二区| 天天综合精品| 超碰超碰在线| 婷婷丁香人妻天天爽| 色99综合视频| 精品99久久久久成人网站免费| 色色色97| 99re免费视频| 天天色中文字幕女优AV| 欧美色五月| 日韩在线视频中文字幕| 丰满熟女人妻一区二区三| 337p大胆噜噜噜噜噜91Av| 色爆五月| 色五月婷婷777| 国产毛片精品一区二区色欲黄A片| 色碰碰视频| 91狠狠色丁香| 来吧亚洲综合网| 这里只有精彩视频| 欧美婷婷五月激情| 99这里的视频都是精品| www超碰| 色综合久久44| 五月天丁香婷| 成人永久免费视频在线观看| 人人综合久| 激情99| 五月综合丁香婷婷| 日本激情91| 婷婷五月天AV在线| 久久99婷婷| 亚洲网视屏| 久九色| 久久九九综合| 99开心五月五月丁香激情| 少妇日麻屄| 五月婷婷开心色伊人| 狠狠88综合久久久久噜噜噜| 天天激情综合| 婷婷色影院| www.夜夜操.con| 99er6| 五月天综合区| 五月天色官网| 青青草性爱视频| 婷婷五月天国产手机在线视频观看| 人人爽欧美婷婷久久久五月丁香| 久久久A级视频| 九九热精品99| 久久免费9| 十月丁香婷婷| 亚洲六月婷| 婷婷开心久久| 欧美VA在线观看| 99热8| www.夜夜操| 色www久视频| 怡春院天天干| 九九热自拍| 91avse| 91精品又长又大又粗又爽又猛| 色色五月婷婷久久| 婷综合| 丁香五月婷婷激情123| 天天精品视频在线观看视频| 天天日,天天插| 人人爱人人摸人人澡| 久久99热这里只频精品6学生| 久久婷狠狠色| 五月丁香激情啪啪| 亚洲精品久久久久久久久久吃药 | 久久ww| 日本不卡高字幕在线2019| 五月丁香婷婷伊人日韩| 女人天堂久久| 久久婷婷成人视频| 99热这里只是精品| 丁香五月天激情综合| 99热.com| 色婷青青| 五月天色色婷婷| 久久性视频| 天天日,夜夜爽| 激情网婷婷婷| 超碰97人人操| 97在线观视频免费观看| 99热69| 色五月婷婷天天干| 日韩五月丁香| 色色丁香婷婷综合| 97很鲁在线视频| www.1024久久| 久久精彩免费视频精彩免费视频| 天天爽在线视频| 综合伊人狠狠| 99热亚洲| 色色爽爽天天| 激情五月天激情网| 婷婷综合五月| 夜夜资源站| 91碰碰碰久久久久| 免费成人网在线观看| 成人噜噜网| 天天综合 99久久婷婷| 日韩中文欧美| 日本在线观看aaa 99| 99无码免费视频| 91久久电影| 丁香五月婷婷五月基地| 亚洲欧洲色色| 久99久热| 9久热在线精品| 色色色色av777| 色婷婷影院| 婷婷久久内射| 色XX综合网| 亚洲中文字幕在线观看| 五月天久久久| 97精品在线| 1024久婷| 五月色精品| 免费看欧美成人A片无码| 91婷色| 狠狠操狠狠操AV| 97色碰碰公开视频| 色五月在线| 五月天激情小说| 新久久五月天激情| 五月丁香婷草| 综合色网站| 婷婷狠狠操| 欧美三级视频| 婷婷五月中文字幕国产| 久久久亚洲精品一区二区三区浴池 | 丁香六月激情蜜桃| 婷婷综合网| a在线观看| 成人网在线视频| 探花搜索结果 - 黄上黄| 五月天色婷婷激情| 成人av在线网| 亚洲AAAA网| 秋霞少妇AV网站| 伊人天天色| 熟女少妇内射日韩亚洲| www。五月天。com| 这里只有精品久久| 情婷婷五月天在线| 大学生高潮无套内谢视频| 色婷精品91| 丁香五月网址| 这里只有精品视频222| 五月丁香综合啪啪|