99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

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
返回資訊列表
天啪天啪天啪天啪| 91丨九色丨熟女丰满| 婷婷色网站| 91精品国产99久久久久久天美| 天天舔天天爽| 亚洲另类电影| 区美毛片子| 激情丁香久久| 成人av免费观看| 婷婷天天五月天| 色五月色五天色情网| 26uuu亚洲欧美另类| 91色在线 | 日韩| 国产美女无遮挡裸体毛片A片| 五月激情婷婷六月| 思思热再线视频| 内射综合网| 日本V在线观看不卡视频网站| 97在线刺激| 99精品免费欧美小视频 | 综合网视频| 看婷婷五月天网| 日韩有码一区| 啪啪五月婷婷| 99热欲| 五月综合激情网| 五月天另类激情在线| 丁香五月综合在线| 五月婷婷丁香五月婷婷| 激情五月丁香六月婷婷| 日日撸日日操| 四色AVwww| 97婷婷丁香五月| 五月婷婷基地| 免費亭亭成人| 一本伊人色婷| 色色网站免费| 五月丁香影院| 天天肏夜夜肏| 天天日日夜夜| 爱久久小说下载网| 人人操人人妻| 五月婷婷婷| 人人操人人妻| 99热国产婷婷| 久久激情综合| 天天摸天天舔在线视频| www.婷婷,com| 婷婷五月花丁香| 五月婷婷精品无在线| 亚洲综合新99视频| 婷婷五月色亚洲| 五月天深爱激情网| 九九干视频| 激情五月天色播| 亚洲综合五月天婷婷| 婷婷六月天激情| 日本va欧美va欧美va| 狠狠五月天激情| 中文不卡一二区| 思思热99在线| 国产成人AV在线播放| 99热综合| 色区久久| 色婷婷综合丁香五月天| 啊v视频在线观看| 啪啪一区| 婷婷五月天六月| 色区域网站视频| 五月婷婷六月丁香综合| 97福利视频| 婷婷亚洲综合| 色婷婷激情五月天丁香| 五月天激情图片| 开心婷婷五月天综合| 5月丁香婷婷| 色丁香久久久| 岛国AV网| 美国天天操无码| 国产精品国产| 99热精这里只有精品| 狠狠色婷婷六月激情网| 99久在线精品99re8热| 99久久国产宗和精品1上映| 亚洲熟妇AV乱码在线观看| 五月丁香久久激情综合| 欧美一级色| 色色色综合视频| 九九热在线视频,| 夜夜干天天操| 欧美怡红院黄站| 久久免费干| WWW.99视频| 婷婷丁香五| 五月天色婷婷网| 中文字幕永久免费| 丁香香蕉婷婷| 六月婷婷影院| JAPANRCEP老熟妇乱子伦视频| 婷婷碰碰| 丁香五月激情欧欧美| 五月婷婷第四色| 婷婷综合色| 思思久久99热只有频精品66| 91精品婷婷国产综合久久| 精品99久久久久成人网站免费| 中文国产五月天| 人人草人人舔| 一起草日本| 婷婷激情四射| 91要啪| 精品香蕉99久久久久网站| 亚洲蜜乳AV| 免费AV黄在线播放| 色吧五月婷婷| 超碰在线国产9| 色婷婷五月综合网| 超喷97免费在线视频| 操逼六区| 五月婷婷AV| 五月婷婷综合激情小说| 天天色综合色| 成人视频网| 超碰人人操在线| 丁香婷婷五月基地| 日本综合九九| 人人视频色| 狠狠的日| 蜜桃婷婷五月| 操碰97| 色哟哟精品| 激情五月天影院| 久久色六月| 免费的日逼视频| 婷婷色操| www.99热在线观看| 亭亭色网| 欧美97色| 久久激情五月婷婷| 99热国产这里只有| 亚洲亚洲人成综合网络| 丁香五月久久综合| 亚洲正能量欧美| 五月婷婷丁香大陆免费| 狠狠爱深色婷婷综合| 五月丁香久久网| 九月婷婷综合| 色婷婷五月丁香在线观看| 亚洲成人免费在线| 丁香五月AV在线| 99热官网精品在线| 99热在线99| 五月天开心激情综合网| 人人舔人人色人人高潮| 婷婷丁香激情五月天色色色| 九九精品在线观看视频6| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 狠狠色网| 9色在线| 99九九玖玖| 婷婷五月综合久久中文字幕| 欧美日本VA| 亚洲成人在线播放| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 97日在线视频| 久久九九免费视频| 伊人狠狠干| 少妇水多A片太爽了| 久久婷婷五月综合激情国产| 超碰精品国产首页| 久色网| 99久久99热这里只有精品| 欧美黄色一级录像| 另类激情五月| 99在线国| 精品在线网站| 天天爱天天天射AV| 色婷婷伊人| 无码色色色色色| 99精品久久| 五月丁香婷婷啪啪综合网| 亚洲色99综合天堂| 99综合| 情欲综合网| 五月婷婷玖玖综合玖玖爱| 5月丁香啪啪啪| 99精品国产在热久久婷婷| 99在线精品免费视频| 日日干综合| 久久久精品免费啪啪国| 色五月婷婷丁香五月| RenRenSe在线视频网站| 97视频久久| 无码激情AAAAA片-区区| 无码区婷婷五月花开| 婷婷五月天色丁香| 成人电影在线免费试看| 5Www色5夜| 人妻久热| 五月丁香性| 丁香五月激情宗合| 香蕉乱插| 欧美日本不卡黄色片| 丁香五月天黄色片| 舔色婷婷| 日本熟女内射| 五月丁香六月婷婷中文版| 97在线日本| 丁香五月天激情| 人人草开心五月天| 97好吊操| 精品视频这里只有精品| 色五月超碰| 午夜天堂一区人妻| 日韩成人av在线| 日本色婷婷五月天成人电影| 日本色图综合| 婷婷情色五月| 成人国产欧美大片一区| 亚洲六月婷婷| 色婷婷AV在线| 精品国产va久久久| 欧美va| 成人婷99最新| 婷婷五月天情色| 狠狠色丁香乆乆| 99热1| 丁香五月丁香伊人| 欧美性二区| 超碰京东热av男人的天堂| 色播五月网| 久久美女五月天| 五月丁香六月欧美综合| 噜噜噜噜婷婷五月天| 操婷婷久久| 免费看欧美成人A片无码| 97碰人人操| 色婷婷最爱五月| 婷婷五月天奸女| 伊人丁香花综合影院| 久久 婷婷 五月天| 九九精品自拍| 色吧婷婷| 97久人人| 日本免费91| 色婷婷激情视频| 成人精品一区日本无码网 | 婷婷伊人五月天| 夜夜人妻五月天| 任你爽精品免费视频6| 国产精品久久久久久久久久 | jiujiu无码五区| 大香蕉婷婷丁香| 五月丁香激情综合网官网| 五月天丁香| 夜夜谢天天干| 在线另类| 最近中文字幕2019视频1| 色婷婷丁香五月| 国产avapp 网| 亚韩在线视频| 午夜少妇在线观看视频| 超碰成人黄色网| 色五月av| 婷婷丁香五月综合网| 天堂无码人妻精品AV一区| 一级性爱视频| 天天揷综合网| 操草草草| 丁香五月综合激情性爱| 超碰在线人妻| 色综合播放| 日本的α片xxxwww| www 五月天 com| 99热青青草原| 婷五月天| 91蜜桃婷婷狠狠久久综合9色| 九九九色综合| 五月天色综合| 欧美丁香婷婷五月| 五月丁香婷婷激情爱爱| 超碰97免费在线| 日韩AV片| 天天综合天天做天天综合| 人人色AV| 色色亚洲视频| 欧洲色色| 天天透天天干| 九九Av| 婷五月天在线草| 五月婷婷亚洲综合网| 另类小说五月天综合网| 亚洲无码成人| 欧类av怡春院| 色五月婷婷综合在线| 大香蕉九操| 亚洲色9| 九九一综合精品| 色婷婷狠狠18| 久操热线| 99久久.www| 97精品欧美91久久久久久久| 天天日,夜夜爽| 久久久久久性爱视频| 综合色播| 好大好粗嗯啊-一级黄色大片免费观看-成人AV | 色色精品色| 中文字幕色色色| 夜夜爽天天干| 国产精品涩涩涩视频网站| 欧美一级a | 婷婷五月天伊人在线| 色五月六月婷婷| 丁香五月天之婷婷影院| 国产精品扒开腿做爽爽爽A片唱戏| 91av视频| 五月丁香综合精品| 粉嫩av蜜桃av蜜臀av| 亚洲欧洲中文日韩久久AV乱码| 久久丁香网| 亚洲综合99| 天天视频亚洲| 日本婷婷激情四射中文字幕在线观看| 久久婷婷伊人| 99∨VTV| 99在线精品免费视频| 大香蕉Av在线| 亚州精品久久久久AV无码| 99精品视频网| 五月婷网| 狠狠色丁香婷婷久久综合| 99久久久| 色五月天影视| 大香蕉五月天| 久久99操| 色五月婷婷在线| 成人精品免费在线观看| 欧美色播综合在线观看| 亚洲色热| 蜜臀A∨在线水帘洞| 97丁香五月| 中文字幕无码AV| 久久精品色| 天天做天天爱天天爽| 黄色中文字目| 99日这里只有精品| 超碰婷婷色| 婷婷色色五月天| 午夜成人综合| 婷婷五月大香蕉| 综合五月网| 91久女| 九九人妻福利| 欧美在线干| 情色五月天网站| 久久亚洲无码| 久久婷婷五月天激情四射| AAAA网站| 91疯狂操操操操| 激情5月婷婷| 天天干天天日蜜臀av| 99热这里只有精品手机在线观看| 99精品综合| 91精品综合久久久久久五月丁香| 久热九九| 九九视频免费| 欧美交换配乱吟粗大25P| 婷婷成人网五月天| 久久婷五月天| 狠狠五月综合在线| 久久9RE热视频精品98| 五月婷婷免费看| 色婷婷丁香AV综合| 激情五月婷婷在线观看| 国产精典视频在线观看| 亚洲五月花| 天天射夜夜爽| 超碰日韩成人| 久久六月综合| 久久久激情视频| 色色色com| 五月丁香激情片| 丁香六月激情综合| 亚洲综合婷婷五月| 色婷婷最新域名| 第五色色色婷婷| www.黄色片-久久成人国产精品在线播放-999AV | 亚洲欧洲中文日韩久久AV乱码| 九九成人高清视频| 大香蕉娱乐| 99精品视频网| 激情综合五月激情XXXX| 精品五月花| 五月99久久| 在线另类| 天啪天啪天啪天啪| 九色视频91| 91操色| 天天日天天肏天天奸| 亚洲色 视频| 成人无码免费一区二区中文| 精品婷婷| anquye五月| 亚洲热久| 欧洲色区| 五月丁香啪啪啪| 色五月久久成人婷婷| 碰99在线| 色婷婷综合视频| 五月丁香啪啪激情| 性色av大香综合| 99色在线视频| 久久伦乱| 99在线视频在线观看| 日韩精品无码AV| 九九免费视频| 91精品综合久久久久久五月丁香| 色婷婷狠狠干| 国产44页| 亚洲午夜成人av电影网| 日韩一级片| 五月婷婷深爱六月| 丁香六月婷婷一区| 婷婷五月无码| 国产在线网| 99久在线精品| 色久天| 国产99久久久| 久久免费试看120秒| 热99在线| 色五月综合资源推荐| 激情开心五月婷婷| 日韩人妻无码专区| 大香蕉久久婷婷| 丁香五月天视频| 五月天另类激情在线| 99色啊| 九九亚洲无码| 九九人人精品| 六月丁香婷婷大香蕉| 色五月首页| 大香蕉婷婷久久| 色六月天| 婷婷五月天激情在线观看| 99热超碰在线| 久热大香蕉| 韩国97天堂| 欧美顶级少妇做爰HD| 日本超碰在线| 日本一级黄色电影| 91无码视频| 激情丁香图片| 五月婷婷亞洲中文| 99.色| 色婷婷视频| 丁香五月天啪啪| 久久在这里99| 97香蕉久久超级碰碰高清版| 日本天堂免费99| 亚洲AV电影av| 五月婷久久综合| 九九色video| 777米奇影视第四色| 天天干狠狠| 色色色色色色色色色色色色色97| 亚洲激情综| av在线免费网站| 五月天天视频| 五月天婷婷基地综合网| 亚洲AV网站在线观看| 色五月天在线观看| 色五月婷婷亚洲| 九九热精品6| 婷婷五月天a| 久色中文| 久久精品亚洲一级牲爱综合| 色五月婷婷五月天| 亚洲AV网址| 91婷婷搞| www.99热| 亚洲12p| 久久人人添人人爽添人人片αV | 丁香五月综合在线视频| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 91久久婷婷| 丁香五月天啪啪| 青青草免费公开视频| 八戒青柠影视剧在线观看| 国产美女无遮挡裸体毛片A片| 99久久九九| 精品人妻伦九区久久AAA片| 亚洲综合网在线| 久热99狠| 久久92| 人妻爽爽爽久久久久久久久| 久久五月天激情视频| 久久五月天激情| 天天艹夜夜艹| 97在线视频观看| 国产乱人偷精品人妻A片| 欧美综合激情| 99婷婷国产最新视频| 婷婷五月天激情网| 亚洲午夜AV| 只有久久精品免费| 色综合丁香婷婷| 婷婷五月色播放| 国产成人精品一区二三区熟女在线| 雪千夏麻豆| 玖玖婷婷婷丁香五月| 亚洲av网站| 天天摸天天舔天天爽| 久久机热思思热| 五月丁香中文字幕| 九九久久网| 老美AA片| 超碰成人在线观看| 色情五月天A片| 99热这里是精品| 免费无码毛片一区二区A片| 五月丁香A片| 日韩成人网址| 婷婷色五月综合| 五月综合久久| 99久精品| 五月丁香婷婷激激激综合网色播| 玖玖爱伊人| 五月天色综合| 丁香五月性| 天天视频亚洲| 高清无码网址| 综合另类视频| 丁香五月天婷婷中文字幕| 九九99精品| 久re热视频| 婷婷深爱色五月| 99热新网址| 九九精品re免费视频| 思思热国产视频| 天天日综合| 国产婷婷色综合AV蜜臀AV| 亚洲AV久久久久久久久久久久久久久久 | 久热视频这里只有精品68| 夜夜爱伊人| 亚洲精品一二三| 国产精品色色666| 欧美久久网| 99操不停| 这里只有精彩视| 国产精产国品一二三在观看| 狠狠操之狠狠操| 在线观看亚洲视频影院| 亚洲无码AV片| 天堂草在线观| 香蕉久久五月| 久久综合伊人综合在线| 丁香五月婷婷五月| 91九色精品熟女内射| 人人播| 日本久碰| 人妻无码精品一区| 五月丁香亭亭AV女优| 玖玖精品资源| 成人AV在线中文版| 色色丁香五月婷婷| 精品人妻午夜一区二区三区四区 | 涩 五月 婷婷 狠狠| 开心激情网五月| 日韩AV在线免费| 成人开心五月天| 国产婷婷久久| 久久婷婷五月综合伊人| 午夜丁香| 国产精品美女久久久久AV超清| bbwcuckold精品熟妇| 丁香五月影院| 视频这里只有精品16| 激情五月天网| 伊人狠狠狠综合| 久久R激情| 五月丁香久久激情网| 精品国产AV色一区二区深夜久久 | 久久99热这里只有精品| 人人爽欧美婷婷久久久五月丁香 | 国产人妻操逼| 超碰人妻在线| 都市激情五月婷婷综合| 无码字幕中文| 五月天婷婷成人网| 婷婷五月电影| 中文字幕 中文字幕明步| 久久性爱视频免费| 丁香六月婷婷缴情欧美| 五月天激情AV| 操逼六区| 人妻体体内射精一区二区| 五月丁香婷婷激情| 在线色婷婷| 天天激情欧美美女| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 午夜不卡久久精品无码免费| 人。妻久久| www.日本91| 婷婷久热| 激情校园 亚洲| 亚洲无码AV片| 思思热视频在线观看| 五月婷婷五月丁香综合| 精品一区久热| 婷婷丁香五月亚洲| 婷婷伊人五月| 欧美日韩成人一区二区| 九九无码| 久久少妇视频| 91狠狠综合久久久久久| 99视频综合| 成人版视频在线观看| 丁香伊人激情| 人人性久久| 7777激情基地| 99热久久这里只有精品| 日本激情91| 亚洲色婷婷网站| 久久图色4| 婷婷丁香五月亚洲| 六月婷婷中文字幕| 韩国情人在线电视剧免费观看高清版全集 | 亚洲一级AV在线免费播放| www.五月.com| 久播影院免费观看电视剧大全最新网| 国产91视频| 色97啪啪| 国产av一区二区三区| 91超级碰在线| 五月婷婷九月婷婷九月婷婷| 激情五月黄色小说| 五月婷婷国产| 色婷青青| 欧美日韩99| 琪琪色五月天| 五月天婷婷爱| 狠狠狠人妻| 大香蕉久操| 9婷婷内射| 婷婷97色| 中字幕视频在线永久在线观看免费 | 狠干综合| 久久桃花网色婷婷| 日日夜夜狠狠| 超碰av在线| 色婷婷AV在线| 中文字幕婷婷五月天在线观看| 热99国产精品| 婷婷97碰碰| 激情亭亭五月| av超碰在线| 色综合婷婷| 八戒青柠影视剧在线观看| 色综合久久88色综合天天看| 看国产探花操逼三级片| 国产日批视频| 五月激情网五月综合网| 超碰三级秋霞| 99精品自拍| 激情綜合網址| 天天久| 思思久日精品视频| 亚洲99视频| 五月丁香伊人网| 99热这是里只有精品| 欧美三级欧美一级| 色综合天堂| 人妻AV在线观看| 丁香六月婷| 九九性爱网| WWW久| 色九月婷婷丁香| 五月婷婷亚洲色图| 九九久久高清| 亭亭五月基地在线| 五月丁香婷婷在线| 在线99热| 久久九区| 秋霞免费三级片| 五月丁香A片| 婷婷六月丁香激情| xxx综合在线| 色 五月婷婷基地| 婷婷激情五月综合在线视频| 五月丁香婷中文字幕 | 粉嫩AV久久一区二区三区| 噜噜在线| 九九99偷拍视频| 天色色综合网| 9月色婷婷| 午夜丁香 婷婷| 五月丁香六月婷| 永久思思热在线| 五月天婷婷午夜丁香| 深爱五月亚洲| 丁香五月婷中字幕| 九九热99免费视频| 激情五月婷| 99视频综合| 久啪欧美| 欧美精品999| 免费试看小视频 99| 婷婷五月天在线观看免费| 99热这里只有精品9| 亚洲精品国产setv| 日韩av一区二区在线/日产精品久久久| 麻豆观看夏晴子| 99精品网址| 婷婷激情五月综合| 麻豆123区| 五月丁香六月婷婷姐| 日本精品99| 综合六月久久| 五月丁香婷婷综合久久| 天天干,噜噜色,狠狠色| 久久丝袜婷婷| 国产美女无遮挡裸体毛片A片| 丁香五月婷婷五月基地| 色综合综合色| 丁香六月色婷婷综合| 中文色婷婷| 九热视频| 97超碰9久热婷婷热| www.99热视频| 亚洲激情.com| 色婷婷中文在线| 天天操天天操天天操天天操天天操| 欧美婷婷色| 欧美成综合在线观看| 五月丁香网av| 99色综合| 婷婷五月综合国产精品| 激情五月天婷婷直播| 丁香婷婷久久综合在线| 玖玖在线视频| 91在线日本| 五月婷综合性中心| 亚洲综合色色| 精典久久| 色婷婷婷婷五月天| 亚洲精品V天堂中文字幕| 国内9l视频自拍老熟女九色| 开心婷婷五月花| www.97碰碰com| 啪啪日本欧美| www.五月天。com| 99色在线视频| 亚洲操B视频| www激情婷婷com| 日本不卡高字幕在线2019| 成人视屏在线观看| www.五月天色色.com| 五月天婷婷Av| 白天AV月月| www.色婷婷| 九九香蕉网| 激情中文在线| 亚洲亚洲人成综合网络| 思思热99er在线视频| 色哟哟www| 久久精品国产AV一区二区三区 | 九热视频免费观看| 在热视频精品| 成人在线观看精品| 天天日日天天| 午夜少妇在线观看视频| 五月丁香日本在线视频观看| 99这里有精品视频| 久9热在线视频| 日本久久人| 玖玖五月丁香| 超碰9| 91精产一区三区免费观看| 另类五月激情| 九九XX视频| 五月婷在线色视频| 四川女人毛多水多A片| 毛片新网地| 综合色情网| 五月婷婷人人人操| 丁香五月婷婷Av| 五月天婷婷丁香导航| 欧美碰碰碰| 色色综合色| 九热视频精品| 蜜臀av粉嫩av懂色av| 丁香六月| 狠狠干在线| 天天摸天天舔在线视频| 天天色播| 国产精品久久久丁香五月八戒视频| 国产AV一区二区三区最新精品| 少妇丁香婷婷 | 日日爽日日| 久婷婷五月天影院| 99热日韩| 久久久色婷婷五月天| 性做久久久久久久免费看| 开心五月丁香综合久久| A A色色| 久久婷婷亚洲无码一起| 久久99久久99精品免观看粉嫩| 日本色99| 麻豆AV一区二区三区| 五月丁香无码| 海外网站专业操老外| 九月丁香| 色狠狠六月| 色五月激情综合网站| 九九亚洲综合| 五月久久五月激情| 伊人久久丁香狠狠婷婷综合香蕉| 天天透天天爱| 91啪啪| www,婷婷,com| 国产精品成人AV在线| 婷婷五月天中文字幕.| 综合 激情 婷婷| 成人免费高清在线播放| 丁香婷婷综合精品六月初| 无码 av电影| 精品爆操| 婷婷大美在线| 密臀av无码人妻精品| 天天干,夜夜爽| 亚洲狠狠狠| 五月停亭六月,六月停亭的英语 | 人人色婷婷五月天| 99久久偷拍视频| 色五月六月| 婷婷激情啪啪| 碰碰91| 色婷婷成人久久| 在线观看中文字幕| 五月综合缴情网| 国产精品久久..4399| 黄色片久久| 超碰99热| 婷婷五月天激情综合深爱激情| 综合久久97| 久草婷| 丁香色五月 97干| 日日噜狠狠色| 伊人超碰| 99欧美| 久久一伦| 色婷婷呢狠禁久禁| 亚洲九区| 91色情播放| 先锋男人99资源| 久久久99视频| 香蕉久久av一区二区三区| 97av在线视频| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 久久色五月| 五月丁香六月停停| 婷婷五月激情四月综合 | 丁香五月婷婷色综合| 五月丁香婷婷色| 亚洲人成色A777777在线观看| 四色 爱 婷婷 精品 亚洲 五月天| 综合五月丁香六月婷婷| 蜜臀av 粉嫩av 懂色av | sewuyuetingtingiii| www.婷婷com| 精品久热| 丁香婷婷噜噜| 99爱免费在线视频| 婷婷五月永远18免费久久久| 欧美内射AA| 97日在线视频| 九九人人精品| 97成人在线视频精品| 青青久久五月| 九九爱激情| 五月丁香综合| 亚洲欧洲中文日韩久久AV乱码| 久婷五月| 99九九热在线观看| 超碰成人在线观看| 99re热在线视频观看| 情久久综合五月天| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | A久网| 九九热在这里只有精品| 五月婷婷久久综合| 婷婷天天综合| 2025天天爽天天摸| 亚洲无码成人性爰网| 精品人妻久久久| 我要色综合五月婷婷| 人人爱干人人爱草| 性色播| 五月丁香婷婷久久| 日日操,夜夜撸| 五月第四色| 五月激情影院| 99久在线精品99re8| www.激情五月| 性做爰A片免费视频A片直播| 97综合视频在线| 大胆伊人久久| www.99久| 亚洲舔观看| 中文字幕婷婷五月天在线观看| 婷婷五月天在线一区| 婷婷五月综合网| 亚洲综合五月| 日本黄色一级| 天天综合91入口| 综合大香蕉| 亚洲视频在线观看99| 五月丁香婷中文| 啪到高潮激情丁香五月| 午夜爱爱网站| 香蕉综合网| 五月丁香影视| 99日本视频在线观看专区| 色99免费视频中文| 五月丁香大香蕉| 色婷婷影音| 婷婷五月天视频免费在线观看| www.久久| 91夫妻网站九色| 97色永久免费视频| 91热在线| 丁香六月激情综合网| 美英法精品无码免费视频| 亚洲婷婷丁香| 在线只有精品| 停停六月 综合| 99精品久久久| 欧美A级网站| 日韩按摩二区| 色婷婷亚洲婷婷在线观看| 青草五月天| 狠狠色色色| 67194成I人在线观看线路1| 激情丁香久久| 丁香五月婷婷色偷偷| 色久天| 99ri视频在线观看| 色欲Av五月天| 色色色网站| 人妻丰满精品一区二区A片| 色五月婷婷自拍| 五月情综合| 色激情五月天| 99久久九九视频| 久久婷婷夜| 人妻内射麻豆视频| 中文字幕精品在线观看| 亚洲乱码日产精品BD| 久久精品99久久久久久| 六月丁香五月亭亭| 五月丁香六月激情视频| 啪啪啪综合网| 婷婷五月天丁香激情| 婷婷丁香五月天色区| 五月婷婷草| 丁香五月狠狠在线观看| 丁香五月婷婷激情网| 婷婷六月天亚州| 色色色综合网| 国产91九色| 久狠日av| 色婷婷丁香五月| 原琪琪色影院| 无码网站视频| 97精品人人A片免费看| 中文精品在| 亚洲成人在线五月天| 成人做爰A片免费看视频| 国产精品汇聚精彩第二页 - 高清完整版在线 - 青蛙AV | www...com黄在线观看| 婷婷六月色| 五月丁香好婷婷A片网| 色六月 婷婷| 婷婷丁香五另类网站| 激情久久五月天| WWW、日本色丁香、co m| 丁香五月天欧美在线| 五月天婷婷视频| 无码区婷婷五月花开| 婷婷五月色情天| 91狼友视频网页更新| 激情丁香婷婷五月天| 这里只有精品免费视频在线观看| 国产成人精品一区二区三区视频 | 99热天堂| 欧美色色日韩| 综合激情五月天六月婷免费视频| 无码人妻少妇色欲AV一区二区| 黄色片avv| 91人妻视频| 搡BBBB搡BBB搡五十| 婷婷丁香五月天欧美| 噜噜视频| 久久婷婷六月天| 青娱乐美女福利视频美臀| 99色视频在线| 色色综合五月| 久久99成人性爱高清视频| 日韩无码AV电影网站| 五月情四婷婷| 亚洲精品久久久无码| 激情综合婷婷五月| 久色网| 五月丁香六月综合情在线观看| 91久热| 欧美日韩91| 新97人人上人人| 九九亚洲视频| 狠狠综合网| 9.1综合网| 五月天久久婷婷| 99re思思精品视频在线观看| 亚洲超碰在线| 色综合久久天天综合网 | 亚洲成人AV在线播放| 国产精品色婷婷久久久精品| 噜噜操操| 婷婷午夜精品久久久| 99热激情| 精品无码av丁香五月激情| 色欲一区二区三区精品A片| 五月丁综合在线观看| 色爱爱综合网| 五月天天视频| www.久久综合| 色色色色色色网站| 久色成人| 91碰碰碰久久久久| 噜噜色五月| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 丁香五月综合网| 天天操综合网站| 610018岁成人视频| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 婷婷色Av| 亚洲AV成人无码电影| 日本色色网站| 97亚洲色 torrent magnet| 国产精品国产成人国产三级| 色五月激情视频在线综合| 五月日韩中文字幕| 六月 丁香 视频| 亚洲无码另类| 99国产精品久久久久久久久久久| 五月天激情网开心网| 五月天停婷基地| 超碰国产在线| 337午夜福利| 超碰人人色| 成人午夜天| 超碰在线观看9| 久久er这里只有精品| 欧美99热| 天天日天天摸| 日本三级大片| 色婷婷aV四虎| 丁香六月啪啪| 久草五月天| 丁香五月天无码AV| 91九色成人原创视频| 伊人久久艹| 丁香六月激情综合啪啪| 色婷婷六月天| www91色网站| www狠狠| 久久人妻伦理| 日韩色色色99| 五月婷婷综合影院| 久久婷婷精品| 色五月五月天色婷婷色五月| 开心深爱五月天| 操操自拍| 日本操B视频| XX色综合| 这里只有精品在线播放| 五月婷婷深深爱| 丁香五月伊人| 天天日天天色| 久9视频免费播放| 久久这里只有精品无码| 99爱视频精品| 精品一区二区三区三区| 亚洲日韩一页精品发布| 美女网黄| 婷婷俺去也| \\五月天婷婷激情| 天天性视频| 亚洲精品网址| 五月综合激情网| 色婷婷丁香| 91超碰人人操| 五月丁香六月在线| 综合色综合| 激情五月天丁香| 五月天婷综合| 婷婷色资源| 99re欧美精品| 91热爆在线| 亚洲激情婷婷| 婷婷五月天激情电影| 免费在线观看欧美激情xx小视频| 色婷婷在线视频久| 大功率国产在线| 香蕉久久六月| www.日本91| 五月色情婷婷| 丁香影院五月综合| 国产毛片精品一区二区色欲黄A片 国产人妻777人伦精品HD | 亚洲AV第二区国产精品| 六月伊人婷婷| 色噜噜狠狠色综合无码久久欧美| 色婷婷777狠狠| 亚洲欧洲小视频9| 亚洲情欲久久| 日韩综合成人| 五月婷三级片| 亚洲妇女熟BBW| 免费做A爰片77777| 久青草影院| 色婷婷六月| 色五月婷婷丁香五月| 日本综合色图| 婷婷中文在线| 激情五月婷婷丁香| 五月天丁香网站| 在线不卡视频| 婷婷无码视频| 亚洲综合五月| 欧美色色色色色| 亚洲色五月| 久久激情天堂| 久久色情| 67194成I人在线观看线路1| 婷婷狠狠18禁久久| 三级三久久线久久99久目本WW| 激情五月天色播| 激情久久久久久久久久久| 色色色网站| 任你爽精品免费视频6| 秋霞AV淫| 日日噜噜夜夜狠狠久久丁香六月| 天天激情站| 欧美97色| 色婷婷六月| 极品人妻VIDEOSSS人妻| 婷婷干| 淫荡A片| 五月丁香六月婷婷啪啪| www,8050,午夜三级| 丁香五月天殴美激情| va亚洲中文在线| 97碰碰在线观看视频| 日日干天天爽| 激情玖玖sh| 99在线播放| 91精品久久久久久77777| 激情深爱婷婷网| 这里只有精彩视| 九热免费视频| 天天干天天爽| 久久综合9| 超碰99热| 99爱视频精品| 五月四色色| 日本99色| 99热99极品观看| 国产乱妇无乱码大黄AA片| 字母不卡码人逼| 成人永久免费视频在线观看| 亚洲综合在线伊人婷| 五月激情网五月综合网| 五月丁香六月在线| 久久久久久激情| 99噜噜噜在线播放| 色欧美一级| 久久久久久久久久91| 久久狠色噜噜狠狠狠狠97| 99这里只有精彩视频| 日本久久综合| 一级片操逼视频| 婷婷免费无马| 婷婷 激情 五月| 玖玖五月| 99久久这里只有精品| 91九九热| 97丁香花五月天激情小说| 婷婷五月天美女视频| 99色视频| 99在线视频网址在线观看| 丁香五月自拍| 开心五月婷婷99| 亚洲操B| 91男人操女人视频| 日韩成人AV在线播放| 五月天色网站| 激情九月婷婷| 婷婷五月乱交换| 《诡秘之主》在线观看| 五月天婷婷久久视频| 亚洲超碰在线| 亚洲黄色操逼| 天天草天天爱| 在线观看av网站| 丁香五月激情五月| 91狠狠色丁香婷婷综合久久| 五月色婷婷综合| 一起草AV入口| 色欲久久综合| 天天色视频| 久久AV无码精品人妻系列试探| 色五月婷婷基地| 久久这里有精品视频| 午夜天堂一区人妻| 秋霞免费三级片| 色色日本| 丁香操逼| 在线五月色播| 五月色婷婷综合| AV色婷婷| 丁香五月综合在线观看| 久久人妻少妇嫩草AV| 激情久久久| 超碰在线人人| 天堂久热| 久久在这里有精品| 一本色道久久综合狠狠躁小说| 中文字幕不卡视频| 久久婷婷色五月| 五月激情在线| 无码九九| 狠狠搞狠狠操| 啪啪综合| 亚洲成人在线综合| 日日影院 | 婷婷五月丁香综合激情小说| 婷婷五月天基地| 久99视频在线观看| 91AV婷婷| 9久久精品视频| 丁香五月婷婷视频| 888久久久| 狠狠色婷婷六月激情网| 中日韩美欧成人一区二区精品在线| 久久综合五月天| 天天综合五月天| 97色97干| 丁香 亚洲 久久| 激情五月天啪啪| 丁香婷婷五月六月久久| 综合亚洲AV| 五月丁香综合中文| 91日精品| 色五月色图| 啪啪综合网| 欧美va在线| 99re久热只有精品6在线直播|