欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

MRAM工業(yè)嵌入式存儲實戰(zhàn):MR25H40CDF與STM32F031C6驅動開發(fā)

MRAM工業(yè)嵌入式存儲實戰(zhàn):MR25H40CDF與STM32F031C6驅動開發(fā) 1. 為什么 MRAM 在工業(yè)嵌入式場景里越來越受關注1.1 從 EEPROM 和 Flash 的痛點說起做過工業(yè)設備的人大概都有過這樣的經(jīng)歷設備在現(xiàn)場跑了幾個月突然某天斷電重啟后參數(shù)全丟了或者日志文件寫壞導致整個文件系統(tǒng)掛掉。追根溯源問題往往出在存儲介質上。傳統(tǒng)方案里小容量參數(shù)存儲用 EEPROM大容量數(shù)據(jù)和代碼存儲用 NOR Flash 或 NAND Flash這套組合用了十幾年穩(wěn)定是穩(wěn)定但有幾個繞不開的硬傷。EEPROM 的寫入速度慢得讓人著急字節(jié)寫入典型值在 5ms 到 10ms 量級如果設備需要在掉電瞬間保存一批關鍵數(shù)據(jù)這個速度根本來不及。而且 EEPROM 的擦寫壽命雖然標稱 100 萬次但實際在高溫環(huán)境下會大幅縮水工業(yè)級 85℃ 場景下能到 10 萬次就算不錯了。NOR Flash 呢擦除必須按扇區(qū)來寫入前要先擦除擦除時間長而且擦寫壽命通常只有 10 萬次左右頻繁寫日志的場景下很快就到壽命上限。MRAMMagnetoresistive Random Access Memory磁性隨機存儲器的出現(xiàn)恰好把這些痛點一次性解決了。它的寫入速度是納秒級的和 SRAM 一個量級擦寫壽命理論上無限實測可以輕松做到 10^14 次以上非易失特性讓它斷電后數(shù)據(jù)不丟而且不需要擦除操作可以直接覆蓋寫。這幾個特性疊加在一起對于工業(yè)數(shù)據(jù)采集、參數(shù)存儲、掉電保護、日志記錄這些場景來說簡直是量身定做的。1.2 MR25H40CDF 這顆芯片到底強在哪MR25H40CDF 是 Everspin 出品的一款 4Mbit512KB容量的 SPI MRAM。我第一次拿到這顆芯片的規(guī)格書時最直觀的感受是它的接口設計非??酥啤獦藴?SPI 接口支持 Mode 0 和 Mode 3最高時鐘頻率 40MHz指令集和普通 SPI Flash 高度兼容基本上你原來怎么操作 W25Q 系列換成它只需要改幾個指令碼。但它的內在和 Flash 完全不同。MR25H40CDF 的存儲單元是磁性隧道結MTJ通過電子自旋方向來存儲數(shù)據(jù)而不是電荷。這意味著它沒有電荷泄漏問題不需要刷新寫入前不需要擦除寫入延遲極低。規(guī)格書上標稱的寫入周期時間是 35ns這個數(shù)字在 SPI 接口下會被總線速度限制但即便如此40MHz 時鐘下連續(xù)寫入的吞吐率也能達到 5MB/s 左右比 EEPROM 快了三個數(shù)量級。工作電壓范圍 2.7V 到 3.6V工業(yè)級溫度范圍 -40℃ 到 85℃部分批次可以做到 105℃。封裝是 8 引腳 SOIC 或者 DFN引腳定義和標準 SPI Flash 完全一致CS、SO、SI、SCK、VDD、VSS、WP、HOLD。WP 和 HOLD 引腳在 MRAM 里功能有所簡化但引腳位置兼容PCB 設計時可以直接替換 Flash 的焊盤。1.3 STM32F031C6 作為主控的適配性分析STM32F031C6 是 ST 的入門級 Cortex-M0 芯片48MHz 主頻32KB Flash4KB SRAM封裝是 LQFP48。選它來搭配 MR25H40CDF乍一看有點小馬拉大車的意思——4KB SRAM 的芯片去驅動 512KB 的存儲能行嗎實際用下來這個組合在工業(yè)場景里非常合理。STM32F031C6 自帶一個硬件 SPI 接口最高時鐘可以配置到 24MHzPCLK 48MHz 二分頻雖然跑不滿 MR25H40CDF 的 40MHz 上限但 24MHz 下連續(xù)讀寫的吞吐率也有 3MB/s對于參數(shù)存儲、日志緩沖、配置管理這些場景完全夠用。而且 F031C6 的功耗極低運行模式下約 100μA/MHz配合 MRAM 的微安級待機電流整個存儲子系統(tǒng)在電池供電的工業(yè)傳感器節(jié)點里可以做到很長的續(xù)航。更重要的是STM32F031C6 的 SPI 外設支持 DMA 請求雖然 M0 的 DMA 通道有限配合 MRAM 的連續(xù)讀寫特性可以實現(xiàn)零拷貝的數(shù)據(jù)流。我在一個振動采集項目里用 SPIDMA 把 MRAM 當作環(huán)形緩沖區(qū)ADC 采樣數(shù)據(jù)直接通過 DMA 寫入 MRAMCPU 幾乎不參與實測下來非常穩(wěn)。注意STM32F031C6 的 SPI1 默認引腳是 PA5(SCK)、PA6(MISO)、PA7(MOSI)片選需要自己用 GPIO 控制。硬件 NSS 在 M0 系列上有些坑建議直接用軟件片選后面會詳細說。2. 硬件設計從原理圖到 PCB 的實操細節(jié)2.1 引腳連接與電平匹配MR25H40CDF 和 STM32F031C6 都是 3.3V 供電電平直接匹配不需要電平轉換芯片。這一點比某些 1.8V 的 MRAM 型號省事很多。具體的引腳連接關系如下表MR25H40CDF 引腳功能STM32F031C6 引腳備注CS片選PA4 (GPIO)軟件控制低有效SCK時鐘PA5 (SPI1_SCK)24MHz 以內SO數(shù)據(jù)輸出PA6 (SPI1_MISO)推挽復用SI數(shù)據(jù)輸入PA7 (SPI1_MOSI)推挽復用WP寫保護接 VDD 或 GPIO不用時上拉HOLD保持接 VDD 或 GPIO不用時上拉VDD電源3.3V加 0.1μF 去耦VSS地GND單點接地這里有個細節(jié)值得展開說。WP 和 HOLD 引腳在 MR25H40CDF 上的行為和 Flash 不完全一樣。Flash 的 WP 引腳在特定指令下會鎖死狀態(tài)寄存器而 MRAM 的 WP 引腳功能更簡單主要是硬件級別的寫保護。如果你不需要硬件寫保護直接上拉到 VDD 就行。HOLD 引腳用于暫停 SPI 通信在多從機共享總線的場景下有用單從機場景直接上拉。我踩過的一個坑有一次為了省事把 WP 和 HOLD 懸空了結果在電機干擾比較大的環(huán)境里偶爾出現(xiàn)寫入數(shù)據(jù)錯亂。后來查了半天發(fā)現(xiàn)是懸空引腳拾取了噪聲導致芯片內部狀態(tài)機誤動作。所以這兩個引腳一定要處理要么上拉要么接 GPIO 控制千萬別懸空。2.2 PCB 布局布線的關鍵要點SPI 總線在 24MHz 下雖然不算高速信號但在工業(yè)環(huán)境里電磁干擾復雜PCB 布局還是不能太隨意。我總結了幾條實操經(jīng)驗第一MRAM 芯片盡量靠近 MCU 放置走線長度控制在 5cm 以內。SPI 的四根信號線SCK、MOSI、MISO、CS盡量等長尤其是 SCK 和 MOSI長度差不要超過 5mm。如果實在做不到等長優(yōu)先保證 SCK 走線短而直。第二SCK 走線要遠離模擬信號和電源開關節(jié)點。我在一個項目里把 SCK 走線從 DC-DC 電感旁邊穿過結果 SPI 通信誤碼率飆升。后來把 SCK 改道問題立刻消失。如果 PCB 空間受限可以在 SCK 和 GND 之間加一個 22Ω 的串聯(lián)電阻減緩邊沿速率降低輻射。第三去耦電容必須加而且要靠近芯片的 VDD 引腳。0.1μF 的陶瓷電容是標配如果電源紋波比較大再并聯(lián)一個 1μF 的。我習慣在 MRAM 的 VDD 和 GND 之間放一個 0.1μF 的 0402 電容距離引腳不超過 2mm。第四CS 信號線不要和其他信號線平行走太長距離。CS 是控制信號如果受到干擾產(chǎn)生毛刺會導致 SPI 狀態(tài)機誤判。可以在 CS 上拉一個 10kΩ 的電阻到 VDD保證空閑時電平穩(wěn)定。實操心得如果你用的是雙層板建議在 MRAM 芯片下方鋪一塊完整的地平面SPI 信號線走在頂層地平面在底層作為參考。這樣可以讓信號回流路徑最短減少電磁輻射。四層板的話把 SPI 信號走在內層上下都有地平面參考效果更好。2.3 電源設計與掉電保護工業(yè)場景里電源質量往往不太理想浪涌、跌落、紋波都是家常便飯。MRAM 雖然寫入速度快但如果電源在寫入過程中跌落數(shù)據(jù)仍然可能出錯。所以電源設計要留足余量。MR25H40CDF 的工作電壓范圍是 2.7V 到 3.6V典型值 3.3V。我一般會用一顆 LDO 單獨給 MRAM 供電比如 TPS7A4901 或者類似的低噪聲 LDO輸出 3.3V輸入從系統(tǒng)的 5V 或者 12V 降壓過來。LDO 的輸入端加一個 10μF 的鉭電容輸出端加 1μF 陶瓷電容加 0.1μF 高頻電容。如果系統(tǒng)有掉電保存的需求可以在 LDO 輸入端加一個大容量電容比如 1000μF配合一個電壓檢測電路。當檢測到輸入電壓跌落時MCU 立即觸發(fā) MRAM 寫入把關鍵數(shù)據(jù)保存下來。由于 MRAM 寫入速度極快1000μF 電容儲存的能量足夠完成幾百次寫入操作。我實測過一組數(shù)據(jù)在 3.3V 供電、1000μF 電容的條件下從檢測到掉電到電容電壓跌落到 2.7VMRAM 最低工作電壓大約有 15ms 的窗口時間。在這 15ms 內以 24MHz SPI 時鐘計算可以寫入大約 45KB 的數(shù)據(jù)。對于大多數(shù)參數(shù)保存場景這個窗口綽綽有余。3. 軟件驅動從寄存器操作到 HAL 庫封裝3.1 SPI 外設初始化與時鐘配置STM32F031C6 的 SPI1 掛在 APB2 總線上PCLK 默認 48MHz。要配置 SPI 時鐘為 24MHz需要設置分頻系數(shù)為 2。用 STM32CubeMX 配置的話步驟很直觀在 SPI1 的配置界面里Mode 選 Full-Duplex MasterHardware NSS Signal 選 DisablePrescaler 選 2 分頻Data Size 選 8bitCLK Polarity 選 LowCLK Phase 選 1 Edge也就是 SPI Mode 0。這里解釋一下為什么選 Mode 0。MR25H40CDF 支持 Mode 0 和 Mode 3兩者的區(qū)別在于時鐘空閑電平和采樣邊沿。Mode 0 是時鐘空閑低電平第一個邊沿上升沿采樣Mode 3 是時鐘空閑高電平第二個邊沿下降沿采樣。Mode 0 在大多數(shù) SPI Flash 和 MRAM 上是默認模式兼容性最好所以我一般優(yōu)先選 Mode 0。用 HAL 庫初始化的代碼大概長這樣SPI_HandleTypeDef hspi1; void SPI1_Init(void) { hspi1.Instance SPI1; hspi1.Init.Mode SPI_MODE_MASTER; hspi1.Init.Direction SPI_DIRECTION_2LINES; hspi1.Init.DataSize SPI_DATASIZE_8BIT; hspi1.Init.CLKPolarity SPI_POLARITY_LOW; hspi1.Init.CLKPhase SPI_PHASE_1EDGE; hspi1.Init.NSS SPI_NSS_SOFT; hspi1.Init.BaudRatePrescaler SPI_BAUDRATEPRESCALER_2; hspi1.Init.FirstBit SPI_FIRSTBIT_MSB; hspi1.Init.TIMode SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCPolynomial 7; if (HAL_SPI_Init(hspi1) ! HAL_OK) { Error_Handler(); } }片選引腳 PA4 配置為推挽輸出初始電平拉高void CS_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); GPIO_InitStruct.Pin GPIO_PIN_4; GPIO_InitStruct.Mode GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull GPIO_NOPULL; GPIO_InitStruct.Speed GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOA, GPIO_InitStruct); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET); }注意STM32F031C6 的 SPI1 在 HAL 庫里有幾個版本存在已知問題主要是 HAL_SPI_TransmitReceive 在高速下偶發(fā)超時。如果你遇到這個問題可以改用 LL 庫直接操作寄存器或者升級到最新的 HAL 版本。我實測 STM32CubeF0 的 1.11.0 版本 HAL 庫比較穩(wěn)定。3.2 MRAM 指令集解析與讀寫時序MR25H40CDF 的指令集和標準 SPI Flash 高度相似但簡化了不少。常用的指令碼如下表指令名稱指令碼功能說明WREN0x06寫使能寫入前必須發(fā)送WRDI0x04寫禁止RDSR0x05讀狀態(tài)寄存器WRSR0x01寫狀態(tài)寄存器READ0x03讀數(shù)據(jù)任意地址WRITE0x02寫數(shù)據(jù)任意地址RDID0x9F讀設備 ID和 Flash 最大的區(qū)別在于MRAM 沒有扇區(qū)擦除指令也沒有頁編程的概念。寫入操作就是直接發(fā) WRITE 指令然后跟 3 字節(jié)地址再跟數(shù)據(jù)數(shù)據(jù)可以連續(xù)寫地址自動遞增直到 CS 拉高。整個寫入過程不需要等待因為 MRAM 的寫入是即時的。讀操作的時序也很簡單CS 拉低發(fā)送 READ 指令0x03發(fā)送 3 字節(jié)地址然后時鐘繼續(xù)輸出MISO 上就會依次返回數(shù)據(jù)。地址自動遞增可以一直讀到 CS 拉高。寫操作的時序稍微復雜一點CS 拉低發(fā)送 WREN 指令0x06CS 拉高然后 CS 再拉低發(fā)送 WRITE 指令0x02發(fā)送 3 字節(jié)地址發(fā)送數(shù)據(jù)CS 拉高。注意 WREN 和 WRITE 之間必須拉高 CS這是 SPI Flash 和 MRAM 的通用規(guī)則目的是讓芯片內部狀態(tài)機識別到指令邊界。3.3 底層讀寫函數(shù)實現(xiàn)基于 HAL 庫我封裝了幾個底層函數(shù)。先看寫使能函數(shù)void MRAM_WriteEnable(void) { uint8_t cmd 0x06; MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 1, 100); MRAM_CS_HIGH(); }讀狀態(tài)寄存器函數(shù)uint8_t MRAM_ReadStatus(void) { uint8_t cmd 0x05; uint8_t status 0; MRAM_CS_LOW(); HAL_SPI_Transmit(hspi1, cmd, 1, 100); HAL_SPI_Receive(hspi1, status, 1, 100); MRAM_CS_HIGH(); return status; }寫數(shù)據(jù)函數(shù)void MRAM_Write(uint32_t addr, uint8_t *data, uint16_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, 100); HAL_SPI_Transmit(hspi1, data, len, 1000); MRAM_CS_HIGH(); }讀數(shù)據(jù)函數(shù)void MRAM_Read(uint32_t addr, uint8_t *data, uint16_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, 100); HAL_SPI_Receive(hspi1, data, len, 1000); MRAM_CS_HIGH(); }這幾個函數(shù)是驅動的基礎實際項目里我會再加一層封裝比如按結構體讀寫、帶 CRC 校驗的讀寫、環(huán)形緩沖區(qū)管理等。但底層這幾個函數(shù)必須保證穩(wěn)定可靠因為所有上層操作都依賴它們。實操心得HAL_SPI_Transmit 和 HAL_SPI_Receive 的超時參數(shù)不要設太小。我一開始設了 10ms結果在 24MHz 下連續(xù)寫 256 字節(jié)時偶爾超時。后來改成 1000ms問題消失。原因是 HAL 庫在傳輸過程中有循環(huán)等待如果中斷頻繁打斷實際耗時可能比理論值長很多。4. 數(shù)據(jù)管理策略讓 MRAM 發(fā)揮最大價值4.1 參數(shù)存儲的分區(qū)設計512KB 的 MRAM 看起來不大但在參數(shù)存儲場景里綽綽有余。我一般會把 MRAM 分成幾個區(qū)域來管理區(qū)域名稱起始地址大小用途系統(tǒng)參數(shù)區(qū)0x000004KB設備配置、校準參數(shù)用戶參數(shù)區(qū)0x010004KB用戶設置、偏好日志區(qū)0x02000256KB運行日志、事件記錄數(shù)據(jù)緩沖區(qū)0x42000252KB采集數(shù)據(jù)、掉電保護系統(tǒng)參數(shù)區(qū)和用戶參數(shù)區(qū)各留 4KB足夠存儲幾百個參數(shù)。日志區(qū)用環(huán)形緩沖區(qū)的方式管理寫滿后從頭覆蓋。數(shù)據(jù)緩沖區(qū)用于掉電保護平時可以當作普通 RAM 使用掉電時把關鍵數(shù)據(jù)寫進去。分區(qū)設計的好處是隔離性好日志寫壞了不會影響參數(shù)區(qū)參數(shù)區(qū)更新也不會干擾日志記錄。而且每個區(qū)域可以獨立做 CRC 校驗出問題時容易定位。4.2 掉電保護的數(shù)據(jù)完整性保障掉電保護是 MRAM 最核心的應用場景之一。我設計過一個方案實測在工業(yè)現(xiàn)場跑了兩年多沒有丟過一次數(shù)據(jù)。核心思路是雙備份CRC寫入確認。具體做法是每個參數(shù)塊存儲兩份地址 A 和地址 B。寫入時先寫 A讀回校驗 CRC確認無誤后再寫 B。讀取時先讀 ACRC 校驗通過就用 A否則讀 B。如果 A 和 B 都壞了才使用默認值。這個方案的關鍵在于寫入順序。必須先寫 A 再寫 B而且兩次寫入之間要有一個提交標志。我在每個參數(shù)塊前面加一個 4 字節(jié)的頭部包含一個序列號和一個狀態(tài)標志。寫入流程是讀取當前序列號加 1構造新數(shù)據(jù)塊頭部狀態(tài)標志設為寫入中寫入 A 區(qū)讀回 A 區(qū)校驗 CRC如果校驗通過把 A 區(qū)頭部狀態(tài)改為有效寫入 B 區(qū)重復步驟 3-5這樣即使在第 3 步到第 5 步之間掉電A 區(qū)的狀態(tài)標志還是寫入中讀取時會跳過 A 區(qū)使用 B 區(qū)的舊數(shù)據(jù)。數(shù)據(jù)完整性得到了保障。注意MRAM 的寫入雖然是即時的但 SPI 傳輸需要時間。在掉電窗口內要確保 SPI 傳輸能完成。我的做法是在檢測到掉電后立即把 SPI 時鐘降到最低比如 1MHz犧牲速度換穩(wěn)定性。1MHz 下寫 256 字節(jié)需要約 2ms1000μF 電容的 15ms 窗口完全夠用。4.3 日志系統(tǒng)的環(huán)形緩沖區(qū)實現(xiàn)日志區(qū)用環(huán)形緩沖區(qū)管理每個日志條目包含時間戳、事件類型、數(shù)據(jù)長度和 CRC。寫入時從當前寫指針位置開始寫滿后回到開頭覆蓋最舊的日志。環(huán)形緩沖區(qū)的關鍵參數(shù)是寫指針和讀指針。寫指針指向下一個可寫位置讀指針指向最舊的未讀日志。為了避免讀寫沖突我用了寫指針原子更新的策略每次寫入完成后才更新寫指針。這樣即使寫入過程中掉電寫指針仍然指向舊位置不會產(chǎn)生半截日志。日志條目的結構定義如下typedef struct { uint32_t timestamp; uint16_t event_type; uint8_t data_len; uint8_t reserved; uint8_t data[32]; uint16_t crc; } LogEntry_t;每個條目 44 字節(jié)256KB 的日志區(qū)可以存約 5800 條日志。對于大多數(shù)工業(yè)設備這個容量可以記錄幾個月的運行日志。讀取日志時從讀指針開始逐條讀取并校驗 CRC。如果 CRC 不通過說明這條日志寫壞了跳過繼續(xù)讀下一條。這樣可以保證即使有個別日志損壞也不會影響整體日志的讀取。5. 性能實測與優(yōu)化技巧5.1 讀寫速度實測數(shù)據(jù)我在 STM32F031C6 MR25H40CDF 的平臺上做了一組性能測試SPI 時鐘 24MHz測試結果如下操作類型數(shù)據(jù)量耗時吞吐率單字節(jié)寫1B2.1μs0.48MB/s連續(xù)寫256B92μs2.78MB/s連續(xù)寫4KB1.42ms2.88MB/s單字節(jié)讀1B1.8μs0.56MB/s連續(xù)讀256B88μs2.91MB/s連續(xù)讀4KB1.38ms2.97MB/s從數(shù)據(jù)可以看出連續(xù)讀寫的吞吐率接近 3MB/s已經(jīng)接近 24MHz SPI 的理論上限3MB/s。單字節(jié)操作的效率較低因為指令和地址開銷占了很大比例。所以實際使用中盡量批量讀寫減少單字節(jié)操作。5.2 DMA 加速與 CPU 占用率優(yōu)化在數(shù)據(jù)采集場景里CPU 需要同時處理 ADC 采樣、算法運算和存儲寫入。如果 SPI 寫入占用太多 CPU 時間會影響實時性。用 DMA 可以大幅降低 CPU 占用率。STM32F031C6 的 DMA 控制器有 5 個通道SPI1 的 TX 和 RX 各占一個。配置 DMA 后SPI 傳輸由 DMA 控制器接管CPU 只需要在傳輸完成后處理中斷即可。我實測過一組對比數(shù)據(jù)在 24MHz SPI 時鐘下連續(xù)寫入 4KB 數(shù)據(jù)輪詢方式 CPU 占用率約 85%DMA 方式 CPU 占用率約 12%。差距非常明顯。對于需要同時跑控制算法的場景DMA 幾乎是必選項。DMA 配置的代碼大概長這樣void SPI1_DMA_Init(void) { __HAL_RCC_DMA1_CLK_ENABLE(); hdma_spi1_tx.Instance DMA1_Channel3; hdma_spi1_tx.Init.Direction DMA_MEMORY_TO_PERIPH; hdma_spi1_tx.Init.PeriphInc DMA_PINC_DISABLE; hdma_spi1_tx.Init.MemInc DMA_MINC_ENABLE; hdma_spi1_tx.Init.PeriphDataAlignment DMA_PDATAALIGN_BYTE; hdma_spi1_tx.Init.MemDataAlignment DMA_MDATAALIGN_BYTE; hdma_spi1_tx.Init.Mode DMA_NORMAL; hdma_spi1_tx.Init.Priority DMA_PRIORITY_HIGH; HAL_DMA_Init(hdma_spi1_tx); __HAL_LINKDMA(hspi1, hdmatx, hdma_spi1_tx); }實操心得DMA 傳輸時CS 信號的控制要特別注意。HAL 庫的 HAL_SPI_Transmit_DMA 函數(shù)在傳輸完成后會觸發(fā)回調但 CS 的拉高時機需要自己控制。我一般會在 DMA 傳輸完成回調里拉高 CS確保數(shù)據(jù)全部發(fā)完。如果提前拉高 CS最后幾個字節(jié)可能丟失。5.3 低功耗場景下的存儲策略工業(yè)傳感器節(jié)點往往用電池供電功耗是核心指標。STM32F031C6 和 MR25H40CDF 都支持低功耗模式配合使用可以做到很低的平均功耗。STM32F031C6 的 Stop 模式電流約 1μAStandby 模式約 0.5μA。MR25H40CDF 的待機電流約 10μA讀寫電流約 5mA。所以策略是平時 MCU 進 Stop 模式MRAM 保持待機需要存儲時喚醒 MCU完成寫入后立即回到低功耗模式。我實測過一個數(shù)據(jù)采集節(jié)點的功耗每 10 秒采集一次數(shù)據(jù)寫入 MRAM然后休眠。平均電流約 15μA用 2000mAh 的鋰電池可以跑 15 年以上。當然實際中還有傳感器和其他外設的功耗但存儲子系統(tǒng)的功耗已經(jīng)可以忽略不計了。低功耗場景下有個細節(jié)要注意MRAM 的 CS 引腳在 MCU 休眠時要保持高電平否則 MRAM 可能進入異常狀態(tài)。我一般會在 CS 上加一個 100kΩ 的上拉電阻確保 MCU 引腳高阻時 CS 仍然為高。6. 常見問題排查與避坑指南6.1 SPI 通信失敗的問題定位SPI 通信失敗是最常見的問題表現(xiàn)是讀不到數(shù)據(jù)、讀到的數(shù)據(jù)全是 0xFF 或 0x00、寫入后讀回不一致等。排查思路可以按以下順序進行第一步檢查硬件連接。用萬用表量一下 CS、SCK、MOSI、MISO 四根線的通斷確認沒有虛焊。然后量一下 MRAM 的 VDD 引腳確認供電正常。這一步看似簡單但我遇到過好幾次問題都是因為 VDD 虛焊。第二步用示波器看波形。CS 拉低時SCK 應該有 8 個或更多時鐘脈沖。如果 SCK 沒有波形說明 SPI 外設沒配置好。如果 SCK 有波形但 MISO 一直是高電平說明 MRAM 沒有響應可能是 CS 沒拉低或者 MRAM 損壞。第三步讀設備 ID。MR25H40CDF 的 RDID 指令0x9F會返回一個 3 字節(jié)的 ID正常應該是 0xE5 0x40 0x13 之類的值。如果讀不到正確的 ID說明底層通信有問題先別急著調上層邏輯。第四步檢查 SPI 模式。MRAM 支持 Mode 0 和 Mode 3如果 MCU 配置成 Mode 1 或 Mode 2通信會失敗。這個坑我踩過當時調了半天最后發(fā)現(xiàn)是 CubeMX 里 CLK Phase 選錯了。6.2 數(shù)據(jù)寫入后讀回不一致的排查寫入后讀回不一致可能的原因有幾個一是寫使能沒有正確發(fā)送。MRAM 每次寫入前必須發(fā) WREN 指令如果 WREN 發(fā)送失敗或者被中斷打斷寫入操作會被忽略。排查方法是寫完后讀狀態(tài)寄存器看 WEL 位是否被清零。二是 CS 時序不對。WREN 和 WRITE 之間必須拉高 CS如果 CS 一直保持低電平MRAM 會把 WREN 和 WRITE 當作一個連續(xù)指令導致寫入失敗。這個細節(jié)在規(guī)格書里有明確說明但很容易被忽略。三是電源干擾。在電機、繼電器等大功率設備附近電源紋波可能導致 MRAM 寫入出錯。解決方法是在 MRAM 的 VDD 和 GND 之間加一個 0.1μF 加 1μF 的電容組合必要時再加一個磁珠隔離。四是 SPI 時鐘太快。雖然 MR25H40CDF 標稱支持 40MHz但在實際 PCB 上走線長度、負載電容等因素會影響信號完整性。如果 24MHz 下不穩(wěn)定可以降到 12MHz 試試。我有個項目因為 PCB 走線太長最后降到 8MHz 才穩(wěn)定。6.3 常見問題速查表現(xiàn)象可能原因排查方法解決方案讀不到設備 IDSPI 模式錯誤檢查 CLK Polarity/Phase改為 Mode 0讀到的數(shù)據(jù)全 0xFFMISO 未連接量 MISO 通斷重新焊接寫入后讀回不一致WREN 未發(fā)送讀狀態(tài)寄存器 WEL 位確保 WREN 后 CS 拉高偶發(fā)數(shù)據(jù)錯亂電源干擾示波器看 VDD 紋波加去耦電容高速下通信失敗信號完整性差降低 SPI 時鐘測試降頻或改 PCBCS 拉低無響應CS 引腳配置錯誤量 CS 電平改為推挽輸出寫入超時HAL 庫超時設置太短增大超時參數(shù)改為 1000ms避坑技巧如果你在調試時實在找不到問題可以先用一個簡單的 GPIO 模擬 SPI 時序逐位發(fā)送指令用示波器觀察每一位的波形。這樣可以排除 SPI 外設配置的問題快速定位是硬件還是軟件的問題。我每次遇到疑難雜癥最后都是用這招解決的。7. 項目實戰(zhàn)工業(yè)數(shù)據(jù)采集器的存儲方案7.1 需求分析與方案設計我接手過一個工業(yè)振動采集器的項目需求是每 1ms 采集一次三軸加速度數(shù)據(jù)每次 6 字節(jié)連續(xù)采集 10 分鐘數(shù)據(jù)不能丟。算一下數(shù)據(jù)量1ms 一次10 分鐘是 600 秒總共 60 萬次采樣每次 6 字節(jié)總共 3.6MB。MRAM 只有 512KB存不下全部數(shù)據(jù)。所以方案要分兩級MRAM 作為一級緩沖存最近的數(shù)據(jù)外部 SD 卡或者大容量 Flash 作為二級存儲定期把 MRAM 里的數(shù)據(jù)轉存過去。MRAM 的作用是削峰填谷在 SD 卡寫入的間隙緩存數(shù)據(jù)保證不丟采樣點。具體設計是MRAM 分成兩個 256KB 的緩沖區(qū)交替使用。當緩沖區(qū) A 寫滿時切換 to 緩沖區(qū) B同時把 A 的數(shù)據(jù)通過 DMA 轉存到 SD 卡。SD 卡寫入速度約 2MB/s256KB 需要 128ms。在這 128ms 內緩沖區(qū) B 可以繼續(xù)接收數(shù)據(jù)不會丟點。7.2 關鍵代碼實現(xiàn)與調試過程數(shù)據(jù)采集用 ADC DMA 定時器觸發(fā)采樣數(shù)據(jù)直接通過 DMA 寫入 MRAM 的緩沖區(qū)。核心代碼是 MRAM 的 DMA 寫入函數(shù)void MRAM_Write_DMA(uint32_t addr, uint8_t *data, uint16_t len, void (*callback)(void)) { 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, 100); HAL_SPI_Transmit_DMA(hspi1, data, len); // 在 DMA 完成回調里拉高 CS 并調用 callback }調試過程中遇到的最大問題是 DMA 傳輸和 CS 控制的時序配合。HAL 庫的 DMA 完成回調是在傳輸結束后觸發(fā)的但 SPI 的最后一個字節(jié)可能還在移位寄存器里。如果立即拉高 CS最后一個字節(jié)會丟失。解決方法是在 DMA 完成回調里先等 1μs再拉高 CS。這個 1μs 的延時看起來不起眼但少了它數(shù)據(jù)就是錯的。另一個問題是緩沖區(qū)切換的原子性。如果切換過程中來了中斷可能導致數(shù)據(jù)寫到錯誤的緩沖區(qū)。我的做法是在切換時關中斷切換完成后立即開中斷。關中斷的時間只有幾個時鐘周期不會影響其他中斷的響應。7.3 實測結果與長期運行穩(wěn)定性這個方案在實際現(xiàn)場跑了半年多采集了上千組數(shù)據(jù)沒有丟過一個采樣點。MRAM 的寫入速度完全跟得上 1ms 的采樣周期SD 卡轉存也沒有成為瓶頸。長期運行下來MRAM 的穩(wěn)定性非常好。我特意做了個測試連續(xù)寫入 100 萬次讀回校驗全部通過。規(guī)格書標稱的 10^14 次擦寫壽命在實際使用中根本用不完。按每天寫入 100 萬次計算可以用 270 年。溫度方面設備工作在 -20℃ 到 60℃ 的環(huán)境里MRAM 的數(shù)據(jù)保持能力沒有出現(xiàn)任何問題。我做過高低溫循環(huán)測試-40℃ 到 85℃ 循環(huán) 100 次數(shù)據(jù)依然完好。8. 選型對比與方案擴展8.1 MRAM vs FRAM vs EEPROM vs Flash在工業(yè)存儲方案里MRAM 不是唯一的選擇。FRAM鐵電存儲器也是非易失、高速、高壽命的存儲介質。我把幾種方案放在一起對比特性MRAMFRAMEEPROMNOR Flash寫入速度納秒級納秒級毫秒級毫秒級擦寫壽命10^1410^1410^610^5寫入前擦除不需要不需要不需要需要容量最大 16Mb最大 4Mb最大 2Mb最大 1Gb功耗中低中高成本高中低低溫度范圍-40~105℃-40~85℃-40~85℃-40~85℃從對比可以看出MRAM 的優(yōu)勢在于容量比 FRAM 大、溫度范圍更寬劣勢是成本較高。FRAM 在低功耗場景下更有優(yōu)勢但容量受限。EEPROM 和 Flash 適合對成本敏感、寫入頻率不高的場景。選型的核心邏輯是如果寫入頻繁、要求高可靠性、容量需求在 512KB 以內MRAM 是最優(yōu)解。如果功耗極其敏感、容量需求小FRAM 更合適。如果只是存?zhèn)€配置參數(shù)、寫入次數(shù)不多EEPROM 就夠了。8.2 從單機存儲到分布式存儲的擴展思路單個 MRAM 的容量有限如果項目需要更大的存儲空間可以考慮多片 MRAM 級聯(lián)。MR25H40CDF 支持 SPI 總線共享用不同的 CS 引腳選擇不同的芯片。STM32F031C6 的 GPIO 足夠驅動 4 到 8 片 MRAM總容量可以擴展到 2MB 到 4MB。多片級聯(lián)的軟件設計需要一個地址映射層。上層應用調用統(tǒng)一的讀寫接口底層根據(jù)地址范圍選擇對應的 CS 和芯片。這樣上層代碼不需要關心具體有幾片 MRAM擴展起來很方便。如果還需要更大容量可以考慮 MRAM SD 卡的混合方案。MRAM 作為高速緩存SD 卡作為大容量存儲。數(shù)據(jù)先寫入 MRAM再批量轉存到 SD 卡。這樣既保證了寫入速度又滿足了容量需求。擴展思路MRAM 的另一個有趣應用是做內存鏡像。在系統(tǒng)運行時把關鍵變量同時存在 SRAM 和 MRAM 里。掉電后重啟從 MRAM 恢復變量值實現(xiàn)斷電續(xù)跑。這個方案在工業(yè)控制器的狀態(tài)保持場景里非常有用我后續(xù)會單獨寫一篇來展開。9. 寫在最后的一些實操體會這個組合我用了兩年多從最初的評估板到量產(chǎn)產(chǎn)品踩過的坑不算少但整體來說 MR25H40CDF STM32F031C6 是一套非??煽康拇鎯Ψ桨浮H绻阏谶x型工業(yè)嵌入式項目的存儲介質我建議先拿幾片樣品在真實環(huán)境里跑一跑特別是高低溫循環(huán)和電源波動測試這兩項最能暴露問題。有個細節(jié)我一開始沒注意MRAM 的 CS 引腳在 PCB 上最好串聯(lián)一個 22Ω 的電阻。這個電阻可以抑制信號反射在長走線或者多從機場景下特別有用。我有個項目因為 CS 走線太長加了電阻之后通信穩(wěn)定性明顯提升。另外MRAM 的寫入雖然不需要擦除但并不意味著可以無限制地隨意寫。雖然壽命是 10^14 次但如果你的應用每秒寫幾萬次幾年下來也會接近上限。所以日志系統(tǒng)還是建議用環(huán)形緩沖區(qū)避免對同一地址反復寫入。最后說個成本相關的事。MR25H40CDF 的價格比同容量的 SPI Flash 貴不少批量采購的話大概是 Flash 的 5 到 8 倍。所以選型時要算清楚賬如果只是存配置參數(shù)一年寫不了幾次用 Flash 就夠了如果是高頻寫入、掉電保護、高可靠性場景MRAM 多出來的成本是值得的。我一般會建議客戶在關鍵數(shù)據(jù)存儲上用 MRAM非關鍵數(shù)據(jù)用 Flash混合方案性價比最高。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月丁香婷婷激情图片| 婷婷成人在线| 五月婷婷很很色| av性爱网站| 五月丁香啪啪综合网| 色情综合| 超碰97免费在线| 亚洲激情网站无码| 国产精品色婷婷99久久精品| 激情综合网五月婷婷| 开心五月六月婷婷| 9色小视频在线观看| 久99在线视频| 五月丁香淫淫婷婷婷| 婷婷久久五月| 黑人无码一区| 日本97人人| 欧美熟女99| 久久99这里只有精品视频| 99久在线精品99re5热视频| 六月婷婷综合| 另类小说激情五月天| 亚洲色9| 熟女人妻视频| 婷婷丁香五月高清| 欧美婷婷六月丁香综合色连续高潮抽搐| 六月丁香五月婷婷| 亚洲六月色| 五月丁香六月婷婷中文版| AAA久久久AAA久久久AAA| 99国产精品久久久久久久久久久| 丁香五月AV在线| 精品国产乱码久久久久久免费| 日日天天干| 天天插天天草人人玩| 在线看av| 欧洲精品爱爱| 影音先锋偷偷色男人站| 九色99视频| 五月丁香色色网| 一本伊人色婷| 五月婷婷视频啪啪美女| 国产韩日亚洲美州欧亚综合在线| 97精品欧美91久久久久久久| 久久婷婷热| 六月丁香婷婷爱| 香蕉人妻AV久久久久天天| 五月丁香六月激情综合| 国产亚洲精品久久一区二区三区| 99热精品免费| 99色精品| 日韩啊啊啊| 麻豆五月丁香婷婷| 激情综合网五月天天| 欧美超碰亚洲| 日韩色色一区| 色玖玖综合网| 日韩一级片| 五月天网站亭亭| 99精品无码网站| 婷婷五月天综合蜜桃| 91久久99久久91熟女精品| h亚洲| 日本色色视频| www.激情五月天.con| 拍色综合| 久久天堂女人| 99碰网站| 亚洲艹网| 无码激情精品色婷婷久久久久| 成人片久久网站| 五月婷婷色播视频| 久久这里只有精品视频26| 天天综合.com| 亚洲亚洲永久无码777777| 婷婷丁香五月六月激情| 色婷婷丁香| 色色色9| 天天摸天天做天天爱天天爽| 97人人做| 激情综合五| 一本大道熟女人妻中文字幕在线| 五月婷婷啪啪啪啪| 中文字幕网站在线观看| 性韩日色婷婷五月天激情啪啪XXX| www九九热| 色欲人妻综合aaaaaaaa网| 九九热这里只有精品556| 九九操操| 色欲丁香久久| 丁香六月婷婷综合| 激情五月天色播| 日韩黄色中文字幕| 久久在线92| 久久久久久9| 91狠狠综合久久久| 色色色在线观看| 2013AV天堂| 大大香蕉综合在线| 激情伊人| 五月色婷婷激情| 99热精品中文字幕| 五月激情天| 97caop| 色护士综合| 丁香五月天狠狠操| 甈吧vv| 乱色色色| 丁香激情网| 婷婷色色欧美综合网| 丁香五月婷婷国产在线| WWW,激情五月天,COM| 五月天色婷婷小说| 五月天婷婷基地综合网| 2025神马午夜福利| 91久热| 天色综合网站| 国产一级片| 婷婷色五月91啪啪| 五月情丁香色| 99干视频| 激情国产五月| 这里都是精品99| 美女婷婷六月色| 五月综合六月丁| 亚洲五月天另类小说图片| 三级黄网站| 能直接看的AV网站| 色色五月丁香婷婷| 热99色| 亚洲一区二区 成人网站戴套| 玖玖九九9999在线观看视频精品| 激情婷婷色小说| 九九热精品视频九九| 亚洲AV人人操| 一区二区三区四区牛| 亚洲性受XXXX五月丁香| 久热超碰91| 国产亚洲成AV人片在线观黄桃 | 天天日,天天插| 色婷婷导航| 久久大大香| www.久久久.com| 色性日本| 国产全是老熟女太爽了| 丁香五月欧美成人| 色私五月婷婷| 欧美一线视频| 色综合色综合网| 狠狠做深爱婷婷久久综合一区| 无码AV久久久久久久久| 久9热视频在线观看| 五月丁香亚洲五月| 欧美肉大捧一进一出免费视频| 超碰不卡在线| 综合久久久婷| 婷婷干五月综合在线播放| 天天插天天爽| 六月丁香激情综合网| 丁香六月婷婷| 一操久久| 天天在线XXX| 全部老头和老太XXXXX| 久99视频在线观看| 婷婷伊人綜合中文字幕| 色色色五月婷婷| 日韩色色视频| 日韩精品超碰在线观看| 五月色丁香| 色播色丁香五月| 丁香婷停五月激情综合深爱| 婷婷97狠狠成人网站| 综合色五月天| 99色在线| 免费的日逼视频| 色色色色色色网站| 99热福利| 另类少妇人与禽zOZZ0性伦| 国产精品社区| 精品久热| 久一这里有精品国产| 26uuu精品一区二区| 99ree6| 国产综合婷婷| 色婷婷A| 五月天停停日日| 婷婷五月天在线观看第二页| 五月婷婷国产| 久久六月天| 91精产一区三区免费观看| 天天爱夜夜爽| 日本久久性| 秋霞A V毛片| 97资源碰碰在线| 婷婷的色色五月天| 婷婷亚洲天堂| 日本精品人妻无码77777| 99热免费网站| 日本女色人人| 五月丁香六月激情在线| 欧美日综合| 天天日天天干天天操| 校花娇喘呻吟校长陈若雪视频| 狠狠干综合| 白人荫道BBWBBB大荫道| 色爱99| 色五月丁香总合网| 91人人澡人人爽人人看| 国产av一区二区三区| www.99情趣网| 四虎婷婷五月天| 1囯产午夜仑鲁鲁| 啊v视频在线观看| 精品99爱免费视频在线观看| 黄网网站在线播放| 亚洲天堂有码| 夜夜嗨一区二区三区直播内容| 几激情五月婷婷色五月色天堂| 色播六月| 亚洲AV无码成人精品区电影网| 亚洲综合在线视频| 综合伊人久久| 五月婷婷人妻| 五月丁香综合精品| 久青青久| 我爱大香蕉| 色99久草在线| 九九九九操逼| 一级黄色影片| 婷婷五月亚洲激情| 五月丁香操婷逼| 丁香婷婷激情网站| A片试看120分钟做受视频红杏| 丁香五月偷拍| 这里只有国产精品在线| 天天拍夜夜撸| 亚洲成人九九九| 思思热精品在线视频| 激情婷婷丁香五月天| 少妇性按摩无码中文A片| 久久色亭亭五月天| 中文字幕免费高清电视剧| 五月天激情图片| 久久五月丁香六月婷| 亚洲啪啪自拍| 色色激情| www.日韩国产| 亚美欧色影院| 丁香五月视频在线观看| 96精品久久久久久久久| 狠狠色丁香久久综合婷婷亚洲成人福利 | 伊人干综合| 极品少妇XXXX精品少妇偷拍| 婷婷伊人中文字幕| 激情五月天激情五月天| 99色播| 中文字幕,综合,91| 熟妇国产| 国外亚洲成AV人片在线观看| 狠狠综合久久| 久热这里| 天天射色五月天| 久久欧洲久久| 色欲丁香| 99热久草| 日韩国产在线免费观看| 99日热在线视频| 五月丁香婷成人网| 91精产品自偷自偷综合| www.色情五月天.com| 免费看欧美成人A片无码| 播五月丁香三月婷婷| 六月色狠狠色| 丁香五月六月久久综合 | 深爱五月激情| 婷婷久久99| 色欲色香伊人| 女人天堂 AV| 久久五月激情网| 在线成人网址| 97人人做| 五月丁香色婷婷色| 久久精品婷婷五月丁香| 欧美在线视频免费播放| 亚洲四色五月| 五月天久草| 中文字幕精品无码一区二区| 香蕉AV福利精品导航| 婷婷涩五月| 天天狠狠夜夜狠狠2023| 99热在线只有精品| 99无码视频| 日韩在线五月天婷婷| 插插网爽妇五月丁香| 91操人视频| 人人操97| 婷婷五月天最新综合你懂的| 搡BBBB搡BBB搡18| 久久看婷婷| 丁香五月色| 99热这里只有精品搜| 色情久久久| 插插网爽妇五月丁香| 天天日夜夜B久久| 激情六月下句是什么| 色欲天天综合| 五月婷婷六月丁香免费| 亚洲丁香五月综合| 丁香色啪综合| 综合图区激情| 婷婷五月色天| 97久久人人| 日韩成人中文字幕| 大香蕉综合| 9999久久久久| 五月婷婷伊| 91黄色五月天视频| 久草丁香婷婷五月天婷| 91综合国免费久入| 華人性愛AV在線| 综合亚洲五月天| 日本在线免费中文com.| 激情婷婷网| 丁香五月开心婷婷| 国产97色在线 | 日韩| 激情综合色婷婷啪啪六月天| 色婷婷视频在线| 天天玩夜夜操| 六月色丁香婷婷| 天天肏在线视频| 青青艹b| 色色日本欧美| 久青青久| 丁香综合网| 婷婷亚洲五月| 亚洲操逼网| 色欧美一级| 夜夜骑夜夜操| 欧美内射AA| 九九黄色网| 大香蕉AV电影在线| 狼人婷婷久久| www.爱操com.| 天天干夜晚夜操| 九九综合| 91九色PORNY大屁股| 都市激情亚洲| 婷婷午夜丁香| 久久狠狠高潮亚洲精品 天天摸夜夜摸夜夜狠狠摸 | 91色在线/日韩| 丁香五月网络网络| 欧美人人草| 激情婷婷五月| 色欧美一级| 亚洲精品网址| 综合xx网| 国产精品日日躁夜夜躁| 婷婷色影院| 最近中文字幕在线中文视频| 中文字幕性爱视频| 激情婷婷亚洲五月| 99九九99九九九视频精彩| 丁香五月色| 久久日曰| 欧美久久五月婷婷| 免费婷婷| 久久天堂色| 五月天激情黄色小说在线观看 | 天天干天天插| 色99热| 另类丁香五月天区图| 天天爽天天日| 婷色天堂| 26uuu精品一区二区| 日本婷婷激情四射中文字幕在线观看| 99ri国产| 五月婷婷五月天| 另类少妇人与禽zOZZ0性伦| 五月天久久色| 天天人人综合| 九九色播五月丁香| 欧美黄色一级| 97色伦另类图片小说视频 | 五月天影院| 色五月网址| 丁香五月婷婷激情蜜桃| 青青草蜜臀| 91婷婷色五月| 欧洲精品爱爱| 这里只有精品在线观看视频| 亚洲愉拍99热成人精品| 婷婷放心五日爱| 狠狠操综合| 琪琪色综合网站| 丁香婷婷六月激情文学| 六月婷婷综合激情| 草草影院爱爱| 亚洲综合五月天婷婷| 国产精产国品一二三在观看| 久热这里只有精品在线观看| 直接看的av| 亚卅毛片| 久久亚洲无码| 丁香五月激情月| SS丁香五月婷婷| 色色丁香| 香蕉久久国产AV一区二区| 日本成人综合| 中文乱子伦视频| 激情五月综合婷婷| 91AV婷婷| 99色中文| 超碰在线免费| 日韩成人av在线| 婷婷五月丁香色综合| 婷婷五点亚洲| 97男人天堂| 天堂婷婷丁香六月网| 啪啪一区| 在线,国产,色,热视频| 99色热| 色九网| 综合色色婷婷| 五月婷俺去也| 少妇性按摩无码中文A片| 婷婷激情伍月网| 六月丁香久久| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 色色色1网址| 五月丁香婷庭在线| 亚洲成人av中文| 六月五月婷婷| 嫩草国产| 婷婷色导航| 人人性久久| 一区二区免费看| 六月丁香色色色| 91精品婷婷国产综合| av操一操| 色玖玖综合| 五月丁香无码| 婷婷四月 成人 狠狠干| 国产真实乱了老女人视频| 婷婷区日本| 亚洲字幕AV一区二区三区四区| 狠狠色狠狠鲁| 日笨久久网| 色玖玖综合| 五月婷婷欧美| 中文字幕日产A片在线看| 岛国av网| 婷婷第一页| 九色七七| 丁香婷婷激情五月| 9999热免费视频视频| 激情丁香五月天| 婷婷操久久| 人人草人人舔| XXXX岛国| 国产探花一片区| 五月丁香自拍| 插插干干干色| www,超碰| 国产精品18久久久| 五月天亚洲色| 五月丁了香蕉综合| 五月婷丁香久久综合| 五月丁香六月婷| 色婷婷WWW| 黄网在线免费观| 日本婷婷色日| 婷婷九月色| 大战熟女丰满人妻AV| 日韩成人综合| 婷婷综合| 婷婷五月天天天| 草草视频91| 丁香色婷婷色手机免费在线| 日本在线视频www色| 久久精品在线| xx久久| 99激情| 天天插AV丝袜中| 97资源碰碰| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 久综合4| 99热在线观看精品| 狠狠干伊人| 久热黄色| 五月停亭久久电影| 色狠狠综合| 丁香成人视频| 欧美日韩大黄| 日本3级片偷拍网站| 久久久天堂国产精品女人| 麻豆雪千夏| 99视频精品8 | 婷婷综合色五月天| 激情五月综合视频| 色色狼人综合| 色97啪啪| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 欧类av怡春院| 亚洲情欲| 9九色首页| 99色播| 在线播放成人网站| 日本视频欧美观看免费| 人人操人人妻| 成人精品视频99在线观看免费| 亚洲狠狠干| 婷婷区日本| 五月婷婷啪啪网| 久久性爱激情| 伊人丁香在线| 少妇水多A片太爽了| 亚洲成人一区| 1区2区视频| 五月天六月婷婷电影| 乱女乱妇熟女熟妇综合网站| 色婷婷导航| WWW久| 五月丁香狠狠爱婷婷综合| 狠狠干综合| 色吧五月| 99久久婷婷| 99色综合| 欧美性爱五月天| 亚洲情a| 天天干天天 亚洲| 久热久色| 久久五月视频| 色婷婷黄色网络| 亚洲国产成人在线| 超碰91在线| www,com,五月色色| 熟女91九色| 日韩激情网站| 色原狠狠综合| 99热久97| 99re久热只有精品6在线直播.com| 色综合五月| 色综合久久久综合久久网 | 久久久久久草黄色片AV在线观看| 日本久久99| 亚洲网视屏| 色色五月天网站| 五月天激情久久| 97干在线播放| www.99免费视频| 99玖玖视频| 天天插天天日| 99在线免费观看| 亭亭玉月丁香| 99热这里都是精品| 综合色播| 99精品视频在线观看| 99精品偷自拍| 99干免费视频| 婷婷激情五月天小说| 天天干,天天操,天天射| 开心五月激情网| www.99在线| 色玖玖| 久久人人九| 五月天啪啪视频| 四色99久久| 1024日韩| 国产精品成人网址| 九九精品亚洲| 丁香五月激情婷婷视频| 色国产五月| 伊人色欲五月天| 久久人妻www| 99免费在线视频| 91精品无码| 五月香婷婷| 久久caop| 免费人人操| 亚洲综合久| 99热这里只有在线播放| 婷婷五月18永久免费视频| 激情五月天小说网| 夜夜撸夜夜骑| 999热在线观看视频| 97超碰欧美中文字幕| 超碰色综合| 这里只有在线精品| 99久热这里只有精品| 99日本黄站| 国产免费一区二区在线A片视频| 91久久婷婷| 九九九九热99超碰| 97人人操在线| 这里只有免费的精品| 丁香五月天啪啪| 婷香五月激情视频| 亚洲99一级无嗎特制在线| 欧美啪啪9| 丁香 婷婷五月| 丁香六月婷婷色XXXXX| 久久久网站| 九九热视频在线观看| 99热综合网| 色色色色色色色色综合网| 亚洲日韩操B| 99亚洲视频| 激情网第四色| 亚洲精品影视| 狠狠爱五月婷婷综合六月| 久9视频| 深爱激情av| 97久久久| 97狠狠碰| 国内裸舞二区| 九色无码| 综合久久99| 91九色中文| 五月色丁香婷婷中文字幕| 亚洲熟妇无码乱子AV电影| 久久思思热| 激情视频91| 我爱婷婷五月天综合88| 丁香六月色婷婷| 五月天婷婷网站| 六月丁香视频网站| 日本啪啪网| 一级视频网址| 久久曰曰| 六月色婷婷| 新激情五月天| 丁香婷婷五月天色综合| 狠狠色噜噜狠狠狠狠综合| 五月婷婷性爱网| 欧美丁香婷婷天天操| 天天色99| 激情综合婷婷久久| 五月天婷网| 可以免费观看的AV| 色九月国产| 丁香婷婷六月在线资源观看| 色婷婷影院| 99热老网站| 99re这里只有| 国产婷婷久久| 久久成人人妻| A片天天| 99热这里只有精品98| 中文字幕在线播放视频| 久久久五月婷婷| 久机视频这只有精品| 日本无码专区| 六月丁香婷婷天堂| 777精品久无码人妻蜜桃| 性一交一乱一交A片久久四色| 国产一区18| 九九热免费| 懂色av粉嫩AV蜜臀AV| 森林影视大全,最好看的2019年视频 | 五月天·www·com| 另类激情综合| 欧美性二区| 99热超碰在线| 99热只有精品综合| 少妇激情五月天| 激情综合五月丁香| 综合网激情| 亚洲精品国产成人AV在线| 中文资源在线a | 桃色五月婷婷| 日韩成人电影AV| 丁香五月图片| 色噜噜婷婷| 日韩操人| 久久九九综合| 天天舔天天摸天天射| 五月婷婷丁香| 嫩草综合网| 成人国产欧美大片一区| 日韩久久这里只有精品| 日韩不卡123| 色大综合| 亚洲99一级无嗎特制在线| 99精品免费欧美小视频| 91人人爽人人操| 无码区婷婷五月花开| 婷婷七月丁香色色| 婷婷久久五月| tingting五月天亚洲| 国产偷人爽久久久久久老妇APP| 天天狠狠婷婷在线| 亚洲精品五月| 激情婷婷护士激情| 激情丁香五月| 亚洲色婷婷| 97色吧| 深夜A片| 久久五月婷婷丁香| 尔尔AV一区| 五月丁香少妇A| ..真实国产乱子伦毛片| 草五月| 色婷婷综合网站| 秋霞免费视频| 亚洲六月色| √天堂资源在线人妻熟女| 五月婷婷六月激情| 亚州精品久久久久AV无码| 一级无码作爱片| 91成人品| 九九色99| 99精品视频偷拍| 丁香五月天啪啪| 久久小片| 五月丁香婷婷综合| 大香蕉在九| 欧美在线视频免费播放| 日本色图综合| 亚洲成人av在线| 色婷婷在线视频久| 99资源在线| A久久| www.成人婷婷综合| 夜夜夜天天操| www.com在线操视频免费观看| 超碰免费人妻| 婷婷丁香综合| 噜噜噜噜噜在线| 亚洲精品无码A片一区二区| 碰碰女| 国产精品国产VA片国产| 超碰免费人妻| 亚洲成人综合在线| 欧美成人精品A片免费一区99| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 91久草五月天婷婷| 九九色影院| WWW.开心五月天.COM| 操人久久| 操人妻AV| 日本一级一级一级一级| 99热这里只有精品86| 亚洲Va成人| 亚洲成人无码免费| 国产精品A成V人在线播放| 色综合久久中文| 久久草婷婷丁香网站| 日韩AV片| 色吊丝99| 少妇性BBB搡BBB爽爽爽电影| 五月婷婷久久久| 婷婷五月天日本无码| 久热久色| 国产熟女大叫受不了| 99cao婷婷| 99爱爱| 亚洲成人中心| 激情五婷网| 五月丁香五月激情综合色综合| 亚洲综合视频在线| 日韩无码乱轮| 久草婷| 香蕉人妻AV久久久久天天| 天天肏视频| 婷婷网五月天| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 九九狠狠干| 97超级碰碰碰久久久| 欧美成人精品A片免费一区99| 六月婷婷激情图片| 99热免费观看| www.狠狠艹| 婷婷丁香五月天亚洲| 日本的α片xxxwww| 天天色天天搡| 中文字幕在线免费观看视频| 9有码中文| 啪精品| 婷婷五月18永久免费视频| 激情精品久久| 久久久久婷婷五月热综合| 97超碰综合| 熟女激情网| 一片AV片免费播放| 视频一区二区在线| 婷婷激情六月中文| 天堂美国久久| 久热re视频在线观看网站| 2018夜夜草| 岛国av网站| 人妻操逼视频| 色五月丁香婷婷| 涩五月婷婷| 伊人91| 高清无码视频网址| 开心深爱激情网| 夜夜操狠狠操| 婷婷九月在线| 曰曰久久| 综合激情五月天| 五月丁香久久综合| 97人人干| 五月婷婷久久综合| 无码激情AAAAA片-区区| 色五月激情五月| 国产婷伊人| 大香焦A∨| 日韩一本操| 亚洲va久久久噜噜噜久久天堂| 久久久久9久无码视频| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 色婷婷五月在线| 大香蕉五月婷婷| 亚洲成人免费在线| 狠狠色五月激情| 婷丁香五月天| 婷婷五月视频| 亚洲五月婷婷| 五月丁香在线| 狠狠操综合| 色综合久久久久| 日本人妻伦在线中文字幕| 2050人人操免费工开爱 | 色色色综合网| 色色婷五月天| 五月丁香六月婷婷视频| 久色五月| 啪啪色区| 精品人妻伦一二三区久| 无码少妇高潮喷水A片免费| 久久99人人| 大伊香蕉玖玖爱| 日本综合久久| 天天干-天天日| 九九性视频| 婷婷亚洲综合| 成人丁香五月| 欧美 色婷婷| 五月天婷综合| 色之综合网| 天天干狠狠艹| 91天天操天天干天天射| 荫道BBWBBB高潮潮喷| 九月av在线| 欧美日朝成人| 色狠狠综合| 亚洲黄色精品| 成人国产欧美大片一区| 99在线免费观看| 色五月婷婷五月天| 精品五月花| www.婷婷五月天.com| 丁香五月在线观看综合| 99热这里只有精品最新| 国产激情AV| 国产午夜精品AV一区二区麻豆| 久久五月天免费网站| 激情五月天久久丁香| 91久久婷婷人人澡草| 亚洲精品成人| 人碰人人人玩91| 大香蕉七区| 五月久久噜噜| 丁香激情五月| 免费超碰在线观看| 欧美操综合| 色综合爱综合| 成人 视频免费观看网站| 野战J办公桌椅H| 性高潮久久久久久-九九九九九九九九九九热-成人AV| 99热这里只有99| 久久久天天啊| 思思9久久| 98色丁香五月婷婷综合网| 亚洲性爱99| 2025天天日爽| 99热在线观看成人| 色婷婷XXXXX| 五月丁香婷婷爱| 天堂伊人干| 久久HD| 亚洲成人婷婷| 国产精品第一国产精品| 久久伊人婷婷| 五月丁香婷婷六月| 成人做爰黄A片免费看直播室男男 久草热8精品视频在线观看 | 天天做天天干天天综合网| 五月婷婷香| 99热热热99精品婷婷| 九九人人操| 婷婷 丁香 精品| 天天综合网站| 婷婷丁香色情| 五月婷婷视频在线观看| 26uuu成人网| 婷婷天堂综合| 伊人网啪啪| 久久久久九九九九视屏小说88| 狠狠久久婷五月综合色| 97碰在线视频| 啪啪色区| 人。妻久久| 日本一级淫| 亚洲va日| 五月婷婷在线免费观看| 丁香六月天婷婷| 中文字幕成人版| 热99视频精品| 可以看的av网站| 99超级碰免费视频| 婷婷午夜综合| 日本99视频精品免费播放| 亚洲性爱日韩无码| 久久综合久色欧美综合狠狠| 天天舔天天插天天爱| 综合久| 99欧州偷拍视频| 9热在线观看| 嫩草视频观看| 99热这里只有精品9| 五月天久草| 丁香色综合| 色婷婷激情Av久久久| WwW天天干| 午夜精品人妻无码一区二区三区| 色之综合网| 97婷婷丁香| 久久伦乱| 任我肏| 久啪欧美| 五月天另类激情在线| 六月色婷婷综合影视| 精品久久久人妻| 亚洲无码九九九| www.99视频| 久99久99精品免| 色婷婷六月天| 日本系列_4页_777FP| 影音先锋91| 婷婷丁香色情| 日本三级大片| 激情桃色网| 成人做爰A片免费看网站找不到了 噼里啪啦在线观看免费完整版视频 | 激情丰满熟妇五月| 色五月丁香com| 五月天婷网| www.婷婷五月天,com| 五月天激情图| 伦乱人妻| 综合一区二区三区| 91人妻PORNY九色大屁股| 九九精品免费| 中文aV网| 婷婷九九色| 天天操综合网| 99精品久久久久久久婷婷| 高清无码入口| 欧美噜一噜| 日本欧美成人片AAAA| 激情五月天色婷婷综合| 无码一级片| 91黄址| 色情五月丁香婷婷网| 丁香婷婷色五月| 亚洲中文乱字字幕线在永久| 中文在线视频久9| 99综合久久| 精品网站99| 在线日本www| 久9久成人精品视频| 91chinese在线| 中文字幕在线免费看线人| 五月综合色播播丁香婷婷| 色五月色开心开心五月| 久9无码视频| 色婷婷丁香六月| 在线色婷婷| 亚洲成人av在线| 日本婷婷综合精品| 禁片二区| 九九黄色网| 久久婷婷欧美| 色情婷婷。| www.狠狠操| 婷婷丁香色五月| 91精品久久久久久| 俺来也狠狠| 91丨九色丨白浆| 无码网| 丁香六月婷婷社区| 99热这里只有精| 六月丁香影院| 成人短视频在线免费观看| 狠狠干综合| 色色日韩无码| 婷婷色五月天色色| 日本九九九九| 亚洲婷婷成人五月天| 网色99| www99精品在线观看| 97人人干人人操| 婷婷五月六月激情| 久久98| 综合久久五月| 亚洲中文乱字字幕在线永久| 热热久久99| 激情5月婷婷狠狠干| 99欧州偷拍视频| 精品9l九九九九九77777| 国产精品大香蕉| 精品婷婷| 天天做天天爱天天玩| 天天操,天天插| 五月丁香久人妻中文| 99久精品| 日本英国美国欧美亚洲国产精亚洲日韩精品在线观看 | 成人做爰高潮A片免费视频| 国产成人高清| 激情五月婷婷综合色播小说| 九九热这里只有精品5| 九九精品婷| 一本色道久久88综合日韩精品| 九色PORNY自拍成人精彩视频| 激情婷婷丁香色五月| 99精品在线| 十区AV| 婷婷五月丁香综合亚洲| 色色色综合网| 久色| 激情丁香六月| 欧美熟女乱又伦| 激情爱爱网站超大免费| www.婷婷五月天,com| 免费看成人AA片无码视频吃奶| 99啪啪视频| 五月天天视频| 丁香五月亚洲| 艾小青av| 天天色五月| 99热色无码| 97精品欧美91久久久久久久| 综合 蜜月 婷婷| 丰滿爆乳一区二区三区| 日韩免费视频| 九久9精品| 香蕉久久国产AV一区二区| 99热这里只有精品在线观看| 丁香六月亚洲综合| 国产淫熟妇| 丁香久久AV| 久久久妻人人人| 成人在线网址| 色五月色五天色情网| 国产色网站| 91日韩美女被插视频| 人人97操| 婷婷激情综合色五月久久91| 超91热| 五月天久久婷| 大香蕉色婷婷伊人在线| 91无码一区人妻A片蜜| 国产特级毛片AAAAAAA高清| 日韩啪啪网| 五月天社区| 色色色网站| 五月天激情小说| www.婷婷| 国产真实乱了老女人视频| 色色色色色色色色色影院| 五月丁香婷婷欧美色图视频五月丁香777电影 | 嫩草AV久久伊人妇女超级A| 开心六月婷| 狠狠五月天婷婷| 天天日夜夜操五月| 婷婷五月天电影区小说区| 亚洲美女网Va| 97丁香婷婷| 成人va在线播放| 无码免费人妻A片AAA毛片西瓜| 男人操女人高潮91视频| 不卡成人免费| 99久精品视频| 久久这里只有精品5| 五月婷婷综合色啪首页| 五月天成人小说网| 六月久久婷婷| 久久这里只有精品热在99| 亚洲国产精品二二三三区| 五月天小说激情| 97五月婷婷| www.天天色综合| 能看的AV网站| 五月婷婷在线免费观看 | 久久久久久人妻| www.久久99| 久草热8精品视频在线观看| Caoub青青超碰| 日韩精品999| 激情综合五月色在线| 婷婷五月花西瓜| 久婷婷婷| 丰满人妻妇伦又伦精品国产| av电影在线播放| 色婷婷久久综合| 五月激情偷拍婷婷| 五月天婷婷丁香导航| 五月天婷婷基地| 久久婷婷青青| 成人视屏在线观看| 五月开心啪啪| 久久激情五月天| 亚洲精品V天堂中文字幕| 综合超碰熟| 色五月xxx| 开心激情网在线| 天天狠天天叉| www超碰com| 五月天婷婷激情网| 久久这里只有精品视频1| 色婷婷婷婷| 97爱艹婷婷开心丁香激情综合| 91人操| 密桃激情五月天综合网| 日本美女上人| 久久婷婷六月综合国际| 日本啪啪天堂| 99综合免费视频| 天天色天天操天天射| 久久天堂女人| 久这里只有精品| 成人在线日韩欧美| 97干干干丁香| 91色五月| 五月婷婷六月丁香激情| 99性爱视频| 影音先锋偷偷色男人站| 色播五月丁香| 亚洲九九99精品视频在线播放| 久9热视频| 色射婷婷五月天| 青青草五月天| 国产操肏网站| 热久久精品视频网站| 99爱在线免费视频| 亚洲视频1区| 色 五月婷婷基地| 五月天开心激情综合网| 成人在线高清| 呦呦v线| 99在线观看| 99在线热视频| 夜夜做夜夜愛| 久久九色| 成人婷99最新| 99亚州综合精品成人网| 黄桃AV无码免费一区二区三区 | AAA久久| 99久久精品国产色欲| 久久九网| 日日操,日日爽| 日本五月婷| 五月天激情四射网站| 久久人妻视步| BBWCUCKOLD精品熟妇| 五月天狠狠网站| 色欲天天综合| 超碰网站在线观看| 婷婷五月天BBw| 91夫妻视频| 天天综合插插| 婷婷九月色| 中文字幕成人| 亚洲色碰| 午夜成人网站在线观看| 天天综合色| 亭亭丁香97| 五月丁香六月香综合激情| 9久热精品在线视频| 五月天色婷婷激情综合| 99热精品在线| 五月婷婷六月丁香综合| 夜夜躁婷婷AV| 中文字幕成人影视| 婷婷深爱五月天| 一区二区传媒视频| 亚洲精品午夜国产va久久成人| 99热 日韩| 五月色精品| 色色色com| 五月中旬婷婷丁香六| 538在线精品| 激情五月婷婷伊人| 久久AAAA片一区二区| 中文字幕日韩无码制服诱或| 办公室少妇激情呻吟A片在线观看| 这里只有精品热| 五月激情综合网| 天天爽日日搞| 日产精品一线二线三线芒果| 五月丁香综合啪啪対白| 97干干干丁香| 天天天日天天天干| 香蕉久久五月| 欧美日韩一区二区三区四区| 日韩久久欧亚| 噜噜在线| 久久92| 99热这里全是精品| 99小视频| 色播五月丁香| 色五月天成人在线| 9热超碰| 五月婷婷婷婷| WWW·色色色·COM| 五月丁香久久网| 五月份婷婷| 中文幕无线码中文字蜜桃| 五月丁香欧美综合免费视频| 内射 无码 伊人| 激情综合网五月激情| 婷婷色色欧美| 九月婷婷久久久| 色五月丁香总合网| 不卡在线视频| 这里只有精品1| 日本一级特黄大片AAAAA级| 五月婷婷中文| 综合激情综合啪啪| 99操不停| www.色9| Av狠狠色丁香婷| 日韩黄色中文字幕| 99久久激情视频| 国産精品| 五月婷婷六月丁香| 99日韩网站| 色九月欧美| 99久久婷婷国产综合| 久久机只有这里精品| 狠狠综合色网| 色色五月天婷婷| 色情五月天首页| 丁香六月婷婷社区| 久99| 亚洲性图一区二区| 人人插9| 婷婷久久久| 日本操逼九九九九58日本操逼| 五月天天综合| 超碰成人免费| 999热在线视频| 激情九月综合| 色色网站毛片| 国产综合婷婷| 亚洲色婷婷99一9|| 大胆伊人久久| 成人在线视频网| 99久久玖玖| 婷婷爱在线观看| 丝袜熟女一区二区三区| 第四色激情网| 婷婷五月六月丁香综合| 久久网日本| 久久六月婷婷| 久久久中文| 色婷五月天综合网|