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

ARTICLE DETAIL

資訊詳情

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

STM32F469II 與 MR25H40CDF MRAM 工業(yè)存儲(chǔ)方案實(shí)戰(zhàn)

STM32F469II 與 MR25H40CDF MRAM 工業(yè)存儲(chǔ)方案實(shí)戰(zhàn) 1. 為什么 MRAM 在工業(yè)嵌入式場(chǎng)景里越來(lái)越受關(guān)注搞過(guò)工業(yè)數(shù)據(jù)采集或者電力終端的朋友應(yīng)該都有體會(huì)選存儲(chǔ)芯片這件事很多時(shí)候比選主控還讓人頭疼。EEPROM 擦寫(xiě)壽命不夠、FRAM 容量太小、NOR Flash 寫(xiě)入速度慢還怕掉電、SRAM 又得配電池。這幾年 MRAM 慢慢進(jìn)入大家的視野尤其是 Everspin 的 MR25H40 系列4Mbit 容量、SPI 接口、號(hào)稱(chēng)無(wú)限次擦寫(xiě)、掉電數(shù)據(jù)不丟聽(tīng)起來(lái)像是把上面幾個(gè)痛點(diǎn)一次性解決了。我最近在一個(gè)工業(yè)數(shù)據(jù)記錄器的項(xiàng)目里用 STM32F469II 搭配 MR25H40CDF 做了一套數(shù)據(jù)存儲(chǔ)方案跑了大概三個(gè)月積累了一些實(shí)操經(jīng)驗(yàn)。這篇文章就把整個(gè)選型思路、硬件設(shè)計(jì)、驅(qū)動(dòng)實(shí)現(xiàn)、踩過(guò)的坑都梳理一遍。不管你是剛接觸 MRAM 的嵌入式新手還是正在做存儲(chǔ)方案選型的老手應(yīng)該都能從中找到有用的東西。MR25H40CDF 是 Everspin 出的 4Mbit512KBSPI MRAM工作電壓 2.7V 到 3.6VSPI 時(shí)鐘最高 40MHz支持標(biāo)準(zhǔn) SPI Mode 0 和 Mode 3。跟傳統(tǒng)存儲(chǔ)方案比它的核心優(yōu)勢(shì)在于寫(xiě)入不需要擦除、寫(xiě)入速度接近 SRAM、擦寫(xiě)次數(shù)理論上無(wú)限官方標(biāo)稱(chēng) 10^14 次以上、數(shù)據(jù)保持時(shí)間超過(guò) 20 年。這些特性放在工業(yè)現(xiàn)場(chǎng)那種高溫、震動(dòng)、頻繁斷電的環(huán)境里價(jià)值就非常明顯了。STM32F469II 是 ST 家的高性能 M4 系列180MHz 主頻帶 Chrom-ART 圖形加速器2MB Flash、384KB SRAM外設(shè)資源豐富SPI 接口有好幾個(gè)。選它主要是因?yàn)轫?xiàng)目需要驅(qū)動(dòng)一塊 RGB 屏做實(shí)時(shí)數(shù)據(jù)顯示同時(shí)還要跑數(shù)據(jù)記錄和通信協(xié)議棧F469 的性能和存儲(chǔ)空間都?jí)蛴?。MR25H40CDF 掛在 SPI2 上跟屏幕的 LTDC 接口不沖突整體架構(gòu)比較干凈。2. 方案整體設(shè)計(jì)與關(guān)鍵選型考量2.1 存儲(chǔ)介質(zhì)對(duì)比為什么最終選了 MRAM在確定 MR25H40CDF 之前我對(duì)比了幾種常見(jiàn)的非易失存儲(chǔ)方案。這個(gè)對(duì)比過(guò)程其實(shí)挺關(guān)鍵的因?yàn)椴煌瑘?chǎng)景下最優(yōu)解完全不一樣。存儲(chǔ)類(lèi)型寫(xiě)入速度擦寫(xiě)壽命掉電保持容量范圍寫(xiě)入前是否需擦除典型功耗EEPROM慢ms級(jí)100萬(wàn)次是KB級(jí)否字節(jié)級(jí)低NOR Flash中等10萬(wàn)次是MB級(jí)是塊級(jí)中FRAM快10^12次是KB~MB否低MRAM快接近SRAM10^14次是KB~MB否中SRAM電池最快無(wú)限依賴(lài)電池MB級(jí)否高含電池維護(hù)從表里能看出來(lái)MRAM 在寫(xiě)入壽命和寫(xiě)入速度這兩個(gè)維度上優(yōu)勢(shì)明顯。工業(yè)數(shù)據(jù)記錄器需要每秒寫(xiě)入幾十條記錄每條記錄幾十字節(jié)一天下來(lái)寫(xiě)入次數(shù)輕松上萬(wàn)。如果用 EEPROM100萬(wàn)次的壽命大概幾個(gè)月就耗盡了NOR Flash 雖然容量大但塊擦除機(jī)制導(dǎo)致小數(shù)據(jù)頻繁寫(xiě)入時(shí)效率極低還需要額外的磨損均衡算法。MRAM 的字節(jié)級(jí)寫(xiě)入和無(wú)擦除特性讓固件設(shè)計(jì)大大簡(jiǎn)化。FRAM 其實(shí)也是候選但容量做到 512KB 以上的型號(hào)選擇少價(jià)格也不便宜。MR25H40CDF 的 512KB 容量剛好夠存一周的原始數(shù)據(jù)加上 SPI 接口簡(jiǎn)單最終就定了它。2.2 STM32F469II 的 SPI 外設(shè)分配與引腳規(guī)劃STM32F469II 有 6 個(gè) SPI/I2S 接口但不是每個(gè)都適合掛 MRAM。SPI1 通常留給調(diào)試或者高速外設(shè)SPI2 和 SPI3 比較靈活。我最終把 MR25H40CDF 掛在 SPI2 上原因有幾個(gè)SPI2 的引腳PB13/PB14/PB15在 PCB 布局上離 MRAM 芯片近走線(xiàn)短SPI2 不跟 LTDC 的引腳沖突SPI2 的時(shí)鐘源來(lái)自 APB1配置起來(lái)跟系統(tǒng)時(shí)鐘的耦合關(guān)系清晰。片選信號(hào)用的是軟件片選GPIO 選的是 PB12。這里有個(gè)細(xì)節(jié)STM32 的硬件 NSS 在某些模式下會(huì)有時(shí)序問(wèn)題尤其是多從機(jī)場(chǎng)景。軟件片選雖然多占一個(gè) GPIO但控制靈活調(diào)試的時(shí)候也方便用邏輯分析儀抓波形。MR25H40CDF 的 CS 建立時(shí)間和保持時(shí)間要求不苛刻軟件片選完全能滿(mǎn)足。引腳分配如下SPI2_SCK - PB13SPI2_MISO - PB14SPI2_MOSI - PB15MRAM_CS - PB12GPIO 輸出MRAM_WP - 接 VDD不用的寫(xiě)保護(hù)直接拉高M(jìn)RAM_HOLD - 接 VDD不用的保持功能直接拉高注意MR25H40CDF 的 WP 和 HOLD 引腳內(nèi)部沒(méi)有上拉懸空會(huì)導(dǎo)致?tīng)顟B(tài)不確定。即使不用這兩個(gè)功能也必須明確拉到 VDD 或 GND。2.3 電源與去耦設(shè)計(jì)要點(diǎn)MRAM 的寫(xiě)入電流比讀取電流大不少尤其是在高頻寫(xiě)入的時(shí)候。MR25H40CDF 的數(shù)據(jù)手冊(cè)標(biāo)稱(chēng)寫(xiě)入電流典型值 25mA峰值可能到 40mA。如果電源去耦沒(méi)做好寫(xiě)入瞬間的電壓跌落可能導(dǎo)致寫(xiě)入失敗或者數(shù)據(jù)錯(cuò)誤。我在 MRAM 的 VDD 引腳旁邊放了兩個(gè)電容一個(gè) 100nF 的陶瓷電容緊貼引腳另一個(gè) 1uF 的陶瓷電容稍微遠(yuǎn)一點(diǎn)。這兩個(gè)電容的作用不一樣100nF 負(fù)責(zé)濾高頻噪聲1uF 負(fù)責(zé)提供寫(xiě)入瞬間的電荷緩沖。PCB 走線(xiàn)上電源線(xiàn)盡量粗從 LDO 到 MRAM 的路徑上不要有大的電感或者過(guò)孔。另外STM32F469II 和 MR25H40CDF 的電源域要一致。如果 STM32 用 3.3VMRAM 也用 3.3VSPI 電平匹配就沒(méi)問(wèn)題。如果 STM32 用 1.8V 核心電壓但 IO 是 3.3V那也沒(méi)問(wèn)題因?yàn)?F469 的 IO 電壓是可配的。但千萬(wàn)別出現(xiàn) STM32 IO 是 3.3V 而 MRAM 供電是 2.5V 的情況這樣高電平識(shí)別可能出問(wèn)題。3. SPI 驅(qū)動(dòng)實(shí)現(xiàn)與 MRAM 操作細(xì)節(jié)3.1 STM32CubeMX 配置 SPI2 的關(guān)鍵參數(shù)用 CubeMX 配置 SPI2 的時(shí)候有幾個(gè)參數(shù)需要特別注意。我先把配置截圖的關(guān)鍵項(xiàng)列出來(lái)然后解釋每個(gè)參數(shù)為什么這么選。Mode: Full-Duplex MasterData Size: 8 BitsClock Polarity (CPOL): LowClock Phase (CPHA): 1 EdgeNSS Signal Type: SoftwarePrescaler: 4APB1 時(shí)鐘 45MHzSPI 時(shí)鐘 11.25MHzFirst Bit: MSB FirstCRC Calculation: DisabledCPOL 和 CPHA 的組合決定了 SPI 的工作模式。MR25H40CDF 支持 Mode 0CPOL0, CPHA0和 Mode 3CPOL1, CPHA1。我選的是 Mode 0也就是 CPOL Low、CPHA 1 Edge。這個(gè)模式下時(shí)鐘空閑為低電平數(shù)據(jù)在第一個(gè)邊沿上升沿采樣。用邏輯分析儀抓波形的時(shí)候Mode 0 的波形最直觀(guān)調(diào)試方便。預(yù)分頻系數(shù)選 4SPI 時(shí)鐘跑到 11.25MHz。MR25H40CDF 最高支持 40MHz為什么不用更高的時(shí)鐘因?yàn)?PCB 走線(xiàn)長(zhǎng)度和信號(hào)完整性限制。我的板子上 SPI 走線(xiàn)大概 3cm沒(méi)有做阻抗匹配11.25MHz 下波形還很干凈再高就開(kāi)始出現(xiàn)振鈴了。工業(yè)環(huán)境里穩(wěn)定性比速度重要11.25MHz 的讀取速度已經(jīng)能到 1.4MB/s足夠用了。提示如果你的 PCB 走線(xiàn)很短1cm且做了阻抗控制可以嘗試 20MHz 甚至 40MHz。但建議先用示波器看波形確認(rèn)沒(méi)有過(guò)沖和振鈴再提高頻率。3.2 MR25H40CDF 的命令集與讀寫(xiě)時(shí)序MR25H40CDF 的命令集跟標(biāo)準(zhǔn) SPI Flash 很像但有幾個(gè)關(guān)鍵區(qū)別。先看常用命令命令名稱(chēng)命令碼功能說(shuō)明地址字節(jié)數(shù)數(shù)據(jù)字節(jié)數(shù)WREN0x06寫(xiě)使能00WRDI0x04寫(xiě)禁止00RDSR0x05讀狀態(tài)寄存器01WRSR0x01寫(xiě)狀態(tài)寄存器01READ0x03讀數(shù)據(jù)31~NWRITE0x02寫(xiě)數(shù)據(jù)31~N跟 NOR Flash 最大的區(qū)別是MRAM 沒(méi)有擦除命令。寫(xiě)入之前不需要發(fā)擦除指令直接 WREN 然后 WRITE 就行。這個(gè)特性讓固件邏輯簡(jiǎn)化了很多不用維護(hù)擦除塊管理。寫(xiě)操作的完整時(shí)序是這樣的拉低 CS發(fā)送 WREN0x06拉高 CS拉低 CS發(fā)送 WRITE0x02發(fā)送 3 字節(jié)地址24位高位在前發(fā)送要寫(xiě)入的數(shù)據(jù)字節(jié)可以連續(xù)多個(gè)拉高 CS注意第 3 步和第 4 步之間必須拉高 CS這是 WREN 命令生效的必要條件。我一開(kāi)始沒(méi)注意這個(gè)細(xì)節(jié)WREN 和 WRITE 連在一起發(fā)結(jié)果寫(xiě)入一直失敗。后來(lái)看數(shù)據(jù)手冊(cè)才發(fā)現(xiàn)WREN 需要 CS 的上升沿來(lái)鎖存。讀操作簡(jiǎn)單一些拉低 CS發(fā)送 READ0x03發(fā)送 3 字節(jié)地址讀取數(shù)據(jù)字節(jié)可以連續(xù)多個(gè)拉高 CS讀操作不需要 WREN也不需要等待。MRAM 的讀取是即時(shí)的沒(méi)有 NOR Flash 那種等待周期。3.3 HAL 庫(kù)驅(qū)動(dòng)代碼實(shí)現(xiàn)基于 STM32 HAL 庫(kù)我封裝了幾個(gè)核心函數(shù)。先看初始化部分#include stm32f4xx_hal.h extern SPI_HandleTypeDef hspi2; #define MRAM_CS_PIN GPIO_PIN_12 #define MRAM_CS_PORT GPIOB #define MRAM_CMD_WREN 0x06 #define MRAM_CMD_WRDI 0x04 #define MRAM_CMD_RDSR 0x05 #define MRAM_CMD_WRSR 0x01 #define MRAM_CMD_READ 0x03 #define MRAM_CMD_WRITE 0x02 static void MRAM_CS_Low(void) { HAL_GPIO_WritePin(MRAM_CS_PORT, MRAM_CS_PIN, GPIO_PIN_RESET); } static void MRAM_CS_High(void) { HAL_GPIO_WritePin(MRAM_CS_PORT, MRAM_CS_PIN, GPIO_PIN_SET); } static uint8_t MRAM_WriteEnable(void) { uint8_t cmd MRAM_CMD_WREN; MRAM_CS_Low(); HAL_SPI_Transmit(hspi2, cmd, 1, 100); MRAM_CS_High(); return 0; } static uint8_t MRAM_ReadStatus(void) { uint8_t cmd MRAM_CMD_RDSR; uint8_t status 0; MRAM_CS_Low(); HAL_SPI_Transmit(hspi2, cmd, 1, 100); HAL_SPI_Receive(hspi2, status, 1, 100); MRAM_CS_High(); return status; }寫(xiě)數(shù)據(jù)函數(shù)uint8_t MRAM_Write(uint32_t addr, uint8_t *data, uint16_t len) { uint8_t cmd; uint8_t addr_buf[3]; if (addr len 0x80000) { return 1; // 超出512KB范圍 } addr_buf[0] (addr 16) 0xFF; addr_buf[1] (addr 8) 0xFF; addr_buf[2] addr 0xFF; MRAM_WriteEnable(); MRAM_CS_Low(); cmd MRAM_CMD_WRITE; HAL_SPI_Transmit(hspi2, cmd, 1, 100); HAL_SPI_Transmit(hspi2, addr_buf, 3, 100); HAL_SPI_Transmit(hspi2, data, len, 1000); MRAM_CS_High(); return 0; }讀數(shù)據(jù)函數(shù)uint8_t MRAM_Read(uint32_t addr, uint8_t *data, uint16_t len) { uint8_t cmd; uint8_t addr_buf[3]; if (addr len 0x80000) { return 1; } addr_buf[0] (addr 16) 0xFF; addr_buf[1] (addr 8) 0xFF; addr_buf[2] addr 0xFF; MRAM_CS_Low(); cmd MRAM_CMD_READ; HAL_SPI_Transmit(hspi2, cmd, 1, 100); HAL_SPI_Transmit(hspi2, addr_buf, 3, 100); HAL_SPI_Receive(hspi2, data, len, 1000); MRAM_CS_High(); return 0; }這幾個(gè)函數(shù)跑下來(lái)讀寫(xiě)都正常。但有個(gè)性能問(wèn)題每次讀寫(xiě)都要重新拉 CS、發(fā)命令、發(fā)地址開(kāi)銷(xiāo)不小。如果頻繁讀寫(xiě)小數(shù)據(jù)效率會(huì)很低。后面我會(huì)講怎么優(yōu)化。3.4 寫(xiě)入速度實(shí)測(cè)與優(yōu)化我用邏輯分析儀抓了寫(xiě)入 256 字節(jié)的波形算了一下時(shí)間。SPI 時(shí)鐘 11.25MHz每個(gè)字節(jié) 8 位加上命令和地址開(kāi)銷(xiāo)寫(xiě) 256 字節(jié)大概需要 240 微秒左右。理論計(jì)算256 字節(jié) × 8 位 / 11.25MHz ≈ 182 微秒加上命令和地址的 4 字節(jié)開(kāi)銷(xiāo)總共約 185 微秒。實(shí)測(cè) 240 微秒多出來(lái)的部分是 CS 拉高拉低的間隔和 HAL 庫(kù)的函數(shù)調(diào)用開(kāi)銷(xiāo)。如果要提高寫(xiě)入速度有幾個(gè)方向提高 SPI 時(shí)鐘到 20MHz 以上需要確認(rèn)信號(hào)完整性用 DMA 傳輸替代阻塞式傳輸減少 CS 的切換次數(shù)連續(xù)寫(xiě)入時(shí)保持 CS 低電平我試過(guò)用 DMA 傳輸寫(xiě)入 256 字節(jié)的時(shí)間降到了 150 微秒左右。但 DMA 的配置復(fù)雜一些而且需要處理傳輸完成中斷。對(duì)于數(shù)據(jù)記錄器這種應(yīng)用寫(xiě)入頻率大概每秒幾十次阻塞式傳輸完全夠用沒(méi)必要上 DMA。實(shí)操心得如果你的應(yīng)用需要高頻寫(xiě)入比如每秒上千次建議用 DMA 加雙緩沖。如果只是中低頻記錄阻塞式傳輸更簡(jiǎn)單可靠出問(wèn)題也容易排查。4. 數(shù)據(jù)存儲(chǔ)架構(gòu)與可靠性設(shè)計(jì)4.1 環(huán)形緩沖區(qū)設(shè)計(jì)512KB 的 MRAM 看起來(lái)不大但如果每條記錄 32 字節(jié)能存 16384 條。按每秒一條算能存 4.5 小時(shí)。對(duì)于工業(yè)現(xiàn)場(chǎng)的數(shù)據(jù)記錄這個(gè)容量需要配合環(huán)形緩沖區(qū)來(lái)用覆蓋最舊的數(shù)據(jù)。環(huán)形緩沖區(qū)的設(shè)計(jì)思路很簡(jiǎn)單維護(hù)一個(gè)寫(xiě)指針每次寫(xiě)入后指針后移寫(xiě)到末尾就回到開(kāi)頭。同時(shí)維護(hù)一個(gè)記錄計(jì)數(shù)器用來(lái)判斷緩沖區(qū)是否已滿(mǎn)。但實(shí)際實(shí)現(xiàn)的時(shí)候有幾個(gè)細(xì)節(jié)要注意。第一個(gè)細(xì)節(jié)是寫(xiě)指針的持久化。如果寫(xiě)指針只存在 RAM 里掉電后就丟了重啟后不知道從哪里繼續(xù)寫(xiě)。所以寫(xiě)指針必須定期存到 MRAM 里。我是在 MRAM 的固定地址比如 0x00000存一個(gè)頭部結(jié)構(gòu)體包含寫(xiě)指針、記錄總數(shù)、校驗(yàn)和。每次寫(xiě)入新記錄后更新頭部。但這樣每次寫(xiě)入都要寫(xiě)兩次 MRAM一次數(shù)據(jù)一次頭部效率減半。優(yōu)化方案是批量更新頭部。比如每寫(xiě)入 100 條記錄才更新一次頭部。掉電時(shí)最多丟失 100 條記錄的指針信息但數(shù)據(jù)本身還在 MRAM 里可以通過(guò)掃描恢復(fù)。這個(gè)取舍要看應(yīng)用對(duì)數(shù)據(jù)完整性的要求。第二個(gè)細(xì)節(jié)是記錄格式的設(shè)計(jì)。每條記錄除了數(shù)據(jù)本身還需要一個(gè)時(shí)間戳和一個(gè)校驗(yàn)字段。時(shí)間戳可以用 RTC 提供校驗(yàn)字段用 CRC16 或者簡(jiǎn)單的累加和。我用的結(jié)構(gòu)體是這樣的typedef struct { uint32_t timestamp; uint16_t data_len; uint8_t data[24]; uint16_t crc; } Record_t;這個(gè)結(jié)構(gòu)體 32 字節(jié)剛好對(duì)齊。CRC 計(jì)算覆蓋 timestamp、data_len 和 data 字段。讀取的時(shí)候先校驗(yàn) CRC校驗(yàn)失敗就跳過(guò)這條記錄。4.2 掉電保護(hù)與數(shù)據(jù)完整性MRAM 的掉電保護(hù)能力比 Flash 強(qiáng)很多因?yàn)閷?xiě)入是即時(shí)的不需要等待擦除或者編程完成。但系統(tǒng)級(jí)掉電保護(hù)還是要做因?yàn)?STM32 本身掉電后 GPIO 狀態(tài)不確定可能產(chǎn)生錯(cuò)誤的 SPI 時(shí)序。我的做法是在電源輸入端加一個(gè)電壓檢測(cè)芯片當(dāng)電壓低于 3.0V 時(shí)觸發(fā)中斷STM32 在中斷里完成當(dāng)前寫(xiě)入操作并拉高 CS然后進(jìn)入停機(jī)模式。這個(gè)窗口大概有幾百微秒足夠完成一次 32 字節(jié)的寫(xiě)入。另外MRAM 的 WP 引腳在正常工作時(shí)拉高但在系統(tǒng)初始化階段我建議先拉低再拉高確保 MRAM 處于已知狀態(tài)。有些批次的 MRAM 在上電瞬間狀態(tài)寄存器可能不確定雖然概率很低但工業(yè)產(chǎn)品要考慮到。注意MR25H40CDF 的狀態(tài)寄存器里有一個(gè) WEL 位寫(xiě)入使能后該位為 1寫(xiě)入完成后自動(dòng)清零。調(diào)試的時(shí)候可以通過(guò)讀狀態(tài)寄存器來(lái)判斷 WREN 是否生效。如果 WEL 一直是 0說(shuō)明 WREN 命令沒(méi)有正確執(zhí)行檢查 CS 時(shí)序。4.3 數(shù)據(jù)讀取與校驗(yàn)流程讀取流程比寫(xiě)入簡(jiǎn)單但校驗(yàn)不能省。我的讀取函數(shù)會(huì)先讀頭部獲取寫(xiě)指針和記錄總數(shù)然后從最舊的記錄開(kāi)始讀逐條校驗(yàn) CRC。如果某條記錄 CRC 失敗就標(biāo)記為無(wú)效并跳過(guò)。實(shí)際跑下來(lái)MRAM 的讀取誤碼率極低三個(gè)月運(yùn)行沒(méi)有出現(xiàn)一次 CRC 失敗。但校驗(yàn)邏輯還是要保留因?yàn)楣I(yè)環(huán)境的電磁干擾不可預(yù)測(cè)而且校驗(yàn)開(kāi)銷(xiāo)很小讀 32 字節(jié)多算一個(gè) CRC16 大概多花幾微秒。如果應(yīng)用需要更高的可靠性可以在 MRAM 里存兩份數(shù)據(jù)一份原始數(shù)據(jù)一份備份。讀取的時(shí)候兩份對(duì)比不一致就報(bào)錯(cuò)。但這樣容量減半需要根據(jù)實(shí)際需求權(quán)衡。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 SPI 通信失敗的排查思路SPI 通信失敗是最常見(jiàn)的問(wèn)題表現(xiàn)可能是讀出來(lái)全是 0xFF、全是 0x00或者數(shù)據(jù)隨機(jī)。排查的時(shí)候按以下順序來(lái)先看 CS 信號(hào)用示波器或者邏輯分析儀抓 CS 引腳確認(rèn)每次通信前有正確的拉低和拉高。CS 如果一直是低電平MRAM 會(huì)認(rèn)為一直在通信中狀態(tài)機(jī)可能錯(cuò)亂。再看 SCK 和 MOSI確認(rèn)時(shí)鐘極性、相位跟 MRAM 要求的一致。Mode 0 和 Mode 3 的波形差別很大抓一次波形就能看出來(lái)。檢查 MISO如果 MISO 一直高阻可能是 MRAM 沒(méi)有供電或者 CS 沒(méi)有正確拉低。如果 MISO 有信號(hào)但數(shù)據(jù)不對(duì)檢查地址和數(shù)據(jù)順序。讀狀態(tài)寄存器發(fā) RDSR 命令看返回的狀態(tài)字節(jié)。正常情況應(yīng)該是 0x00 或者有 WEL 位。如果返回 0xFF說(shuō)明 MISO 沒(méi)有連通。我遇到過(guò)一次詭異的問(wèn)題讀出來(lái)的數(shù)據(jù)偶爾會(huì)錯(cuò)一位。查了半天發(fā)現(xiàn)是 SPI 時(shí)鐘太快PCB 走線(xiàn)又沒(méi)有做阻抗匹配導(dǎo)致 MISO 上的信號(hào)有反射。把時(shí)鐘從 20MHz 降到 11.25MHz 后問(wèn)題消失。所以遇到偶發(fā)錯(cuò)誤先降速試試。5.2 寫(xiě)入不生效的幾種原因?qū)懭氩簧ǔS羞@幾個(gè)原因WREN 沒(méi)有正確執(zhí)行WREN 命令后必須拉高 CS否則寫(xiě)使能不生效。這個(gè)前面強(qiáng)調(diào)過(guò)了。WP 引腳狀態(tài)不對(duì)如果 WP 引腳被拉低狀態(tài)寄存器的 WPEN 位如果使能了寫(xiě)入會(huì)被阻止。檢查 WP 引腳的電平。地址越界MR25H40CDF 的地址范圍是 0x00000 到 0x7FFFF超出這個(gè)范圍的行為未定義。寫(xiě)入前一定要檢查地址。電源電壓不足MRAM 寫(xiě)入時(shí)需要的最低電壓是 2.7V如果電源跌落到 2.5V寫(xiě)入可能失敗。用示波器看寫(xiě)入瞬間的 VDD 波形。5.3 常見(jiàn)問(wèn)題速查表現(xiàn)象可能原因排查方法解決方案讀出全 0xFFMISO 未連通檢查 MRAM 供電和 CS確認(rèn)供電和片選讀出全 0x00MOSI 未連通檢查 MOSI 走線(xiàn)修復(fù)走線(xiàn)或換引腳寫(xiě)入后讀回不變WREN 未生效讀狀態(tài)寄存器 WEL 位確保 WREN 后拉高 CS偶發(fā)數(shù)據(jù)錯(cuò)誤SPI 時(shí)鐘過(guò)快降低時(shí)鐘測(cè)試降速或做阻抗匹配寫(xiě)入失敗電源跌落示波器看 VDD增加去耦電容CS 一直低GPIO 配置錯(cuò)誤檢查 GPIO 初始化重新配置推挽輸出5.4 調(diào)試工具與技巧調(diào)試 SPI 設(shè)備邏輯分析儀是必備的。我用的是 Saleae 的 8 通道邏輯分析儀配合它的 SPI 解碼器可以直接看到命令、地址、數(shù)據(jù)的解析結(jié)果。比用示波器一個(gè)字節(jié)一個(gè)字節(jié)地?cái)?shù)方便太多了。另外STM32CubeIDE 的調(diào)試功能也可以利用。在 SPI 傳輸函數(shù)里打斷點(diǎn)看 HAL_SPI_Transmit 的返回值。如果返回 HAL_TIMEOUT說(shuō)明 SPI 外設(shè)配置有問(wèn)題如果返回 HAL_OK 但數(shù)據(jù)不對(duì)那就是時(shí)序或者硬件問(wèn)題。還有一個(gè)技巧在 MRAM 的 CS 引腳上接一個(gè) LED通過(guò)三極管驅(qū)動(dòng)每次 CS 拉低時(shí) LED 閃一下。這樣不用儀器也能大致判斷通信是否在發(fā)生。當(dāng)然這個(gè)方法只適合低頻通信高頻下 LED 根本反應(yīng)不過(guò)來(lái)。6. 性能優(yōu)化與擴(kuò)展思路6.1 批量讀寫(xiě)與頁(yè)模式MR25H40CDF 支持連續(xù)讀寫(xiě)也就是一次 CS 周期內(nèi)可以讀寫(xiě)多個(gè)字節(jié)。利用這個(gè)特性可以批量讀寫(xiě)數(shù)據(jù)減少 CS 切換開(kāi)銷(xiāo)。我的數(shù)據(jù)記錄器每次寫(xiě)入 32 字節(jié)如果改成攢夠 256 字節(jié)再寫(xiě)CS 切換次數(shù)減少到原來(lái)的八分之一整體寫(xiě)入效率提升明顯。但批量寫(xiě)入有個(gè)風(fēng)險(xiǎn)如果攢數(shù)據(jù)的過(guò)程中掉電這部分?jǐn)?shù)據(jù)就丟了。所以批量寫(xiě)入適合對(duì)數(shù)據(jù)完整性要求不那么苛刻的場(chǎng)景或者配合掉電檢測(cè)使用。6.2 與文件系統(tǒng)的結(jié)合如果應(yīng)用需要更復(fù)雜的數(shù)據(jù)管理可以在 MRAM 上跑一個(gè)輕量級(jí)文件系統(tǒng)比如 LittleFS 或者 SPIFFS。這兩個(gè)文件系統(tǒng)都是為嵌入式設(shè)計(jì)的支持掉電保護(hù)。但 MRAM 的擦寫(xiě)壽命無(wú)限文件系統(tǒng)的磨損均衡機(jī)制其實(shí)沒(méi)必要反而增加了開(kāi)銷(xiāo)。所以用不用文件系統(tǒng)要看應(yīng)用的數(shù)據(jù)組織需求。我的項(xiàng)目里數(shù)據(jù)格式固定直接用環(huán)形緩沖區(qū)就夠了沒(méi)必要上文件系統(tǒng)。但如果要存日志文件、配置文件、固件備份等多種類(lèi)型的數(shù)據(jù)文件系統(tǒng)會(huì)更方便。6.3 多片 MRAM 擴(kuò)展容量512KB 不夠用的時(shí)候可以?huà)於嗥?MR25H40CDF。SPI 總線(xiàn)可以?huà)於鄠€(gè)從機(jī)每片用一個(gè)獨(dú)立的 CS 引腳。STM32F469II 的 GPIO 足夠多掛 4 片 MRAM 也就多占 4 個(gè)引腳。多片 MRAM 的地址管理有兩種方式一種是線(xiàn)性擴(kuò)展把 4 片當(dāng)成一個(gè) 2MB 的連續(xù)空間地址的高 2 位用來(lái)選片另一種是分片管理每片存不同類(lèi)型的數(shù)據(jù)。線(xiàn)性擴(kuò)展對(duì)上層軟件透明但需要改讀寫(xiě)函數(shù)分片管理更靈活但上層要維護(hù)分片映射。實(shí)操心得多片 MRAM 的時(shí)候SPI 總線(xiàn)的負(fù)載電容會(huì)增加高速通信時(shí)波形可能變差。建議每片 MRAM 的 CS 走線(xiàn)盡量等長(zhǎng)SCK 和 MOSI 走線(xiàn)用菊花鏈或者星型拓?fù)渚唧w看 PCB 布局。6.4 低功耗設(shè)計(jì)考量工業(yè)設(shè)備很多是電池供電或者需要低功耗運(yùn)行。MR25H40CDF 的待機(jī)電流典型值 10uA寫(xiě)入電流 25mA讀取電流 15mA。如果系統(tǒng)大部分時(shí)間在休眠M(jìn)RAM 的待機(jī)功耗可以接受。低功耗設(shè)計(jì)的關(guān)鍵是減少 MRAM 的活躍時(shí)間。我的做法是數(shù)據(jù)先緩存在 STM32 的 SRAM 里攢夠一批再寫(xiě)入 MRAM。STM32 在休眠時(shí)MRAM 的 CS 保持高電平SPI 外設(shè)關(guān)閉。喚醒后先初始化 SPI再操作 MRAM。另外MRAM 的 HOLD 引腳可以用來(lái)暫停通信但實(shí)際用處不大因?yàn)?CS 拉高本身就相當(dāng)于暫停。HOLD 引腳在低功耗設(shè)計(jì)里可以直接拉高不用管。7. 實(shí)際項(xiàng)目中的經(jīng)驗(yàn)與教訓(xùn)這個(gè)項(xiàng)目從選型到量產(chǎn)前后大概花了四個(gè)月。中間踩了不少坑有些是技術(shù)問(wèn)題有些是流程問(wèn)題。挑幾個(gè)有代表性的說(shuō)說(shuō)。第一個(gè)坑是 PCB 布局。第一版板子把 MRAM 放在了 STM32 的背面SPI 走線(xiàn)穿過(guò)板子長(zhǎng)度大概 5cm。結(jié)果 SPI 時(shí)鐘跑到 10MHz 以上就開(kāi)始出錯(cuò)。第二版把 MRAM 挪到 STM32 同一面走線(xiàn)縮短到 2cm問(wèn)題解決。所以 SPI 設(shè)備的布局能近就近別為了省空間把走線(xiàn)拉長(zhǎng)。第二個(gè)坑是電源去耦。第一版板子只在 MRAM 電源引腳放了一個(gè) 100nF 電容寫(xiě)入的時(shí)候偶爾失敗。后來(lái)加了 1uF 電容問(wèn)題消失。MRAM 的寫(xiě)入電流是脈沖式的100nF 的電荷量不夠需要更大的電容來(lái)緩沖。第三個(gè)坑是固件升級(jí)。MRAM 里存的數(shù)據(jù)格式在固件升級(jí)后可能不兼容。我的做法是在 MRAM 頭部加一個(gè)版本號(hào)固件啟動(dòng)時(shí)檢查版本號(hào)不匹配就執(zhí)行數(shù)據(jù)遷移或者清空。這個(gè)機(jī)制在第一次升級(jí)的時(shí)候沒(méi)做導(dǎo)致舊數(shù)據(jù)讀出來(lái)全是亂碼后來(lái)補(bǔ)上了。第四個(gè)坑是測(cè)試覆蓋。實(shí)驗(yàn)室測(cè)試的時(shí)候MRAM 讀寫(xiě)都正常。到了現(xiàn)場(chǎng)設(shè)備裝在變頻器旁邊電磁干擾很強(qiáng)偶爾出現(xiàn)寫(xiě)入失敗。后來(lái)在固件里加了寫(xiě)入后回讀校驗(yàn)校驗(yàn)失敗就重寫(xiě)問(wèn)題才解決。所以工業(yè)產(chǎn)品的測(cè)試一定要考慮電磁兼容場(chǎng)景。8. 寫(xiě)在最后的一些個(gè)人體會(huì)MR25H40CDF 加 STM32F469II 這套組合在工業(yè)數(shù)據(jù)存儲(chǔ)場(chǎng)景里算是比較省心的方案。MRAM 的無(wú)限擦寫(xiě)和即時(shí)寫(xiě)入特性讓固件設(shè)計(jì)簡(jiǎn)化了很多不用再糾結(jié)磨損均衡和擦除管理。STM32F469II 的性能和存儲(chǔ)資源也足夠跑復(fù)雜的應(yīng)用邏輯。如果讓我給正在選型的朋友一個(gè)建議我會(huì)說(shuō)先明確你的數(shù)據(jù)寫(xiě)入頻率和可靠性要求。如果寫(xiě)入頻率低、數(shù)據(jù)量小EEPROM 或者 FRAM 可能更便宜如果需要大容量、低成本NOR Flash 加磨損均衡也能用。但如果你的場(chǎng)景是高頻寫(xiě)入、頻繁掉電、工業(yè)環(huán)境MRAM 多花的那些錢(qián)省下來(lái)的調(diào)試時(shí)間和維護(hù)成本絕對(duì)值得。最后分享一個(gè)小技巧MRAM 的讀寫(xiě)函數(shù)封裝好之后可以寫(xiě)一個(gè)自測(cè)試函數(shù)上電時(shí)跑一遍全片讀寫(xiě)校驗(yàn)。這個(gè)自測(cè)試大概花幾百毫秒但能提前發(fā)現(xiàn)硬件問(wèn)題避免設(shè)備裝到現(xiàn)場(chǎng)才發(fā)現(xiàn)存儲(chǔ)壞了。我在量產(chǎn)固件里加了這個(gè)自測(cè)試返修率明顯下降。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
九九热这里只有精品9| 丁香六月激情综合| 成人网站免费sxj| 无码成人播放器| 久草热视频在线观看| 91日韩美女被插视频| 丝袜大香蕉| 六月丁AV| 天天做天天双| 激情丁香婷婷六月天| 丁香五月-激情综合| 久久免片| 丁香五月丁香伊人| 婷婷色五月综合丁香| 成人AV片播放| 婷婷香草网| 日本久久性| 五月婷婷婷婷婷婷艺术| 丁香五月aV| 色婷婷色综合激情91| 国产精产国品一二三在观看| 五月天婷婷久久视频| 五月天综合图片| 久久综合99| 色欲五月婷婷| 26UUU精品一区二区Com| 婷婷五月天激情偷拍| 亚洲激情五月| 99人人操| 天堂综合久久| 婷婷五月色色| 五月香蕉婷婷| 99热丁香| 美女黄频aⅴ视频| 综合五月激情| 婷婷五月色花丁香社区| 亚洲在线成人| 操操日韩| 天堂久久精品| 激情综合网五月在线播放| 日韩一级网站| 日本天堂免费99| 丁香五月第四色88| 天天夜夜六月丁香五月婷婷老师| 五月丁香花激情综合网| 婷婷五月天啪啪| 99er在线观看| 久久思思热视频| 激情五月婷婷综合视频| 五月丁香六月婷婷手机无线| 久久66成人网站| 婷婷色在线| 婷色五月| 国产偷人爽久久久久久老妇APP| 久久99热这里只有精品| 丁香激情五月| 丁香色色五月| 婷色天堂| 任你搞在线观看视频| 99丁香婷婷综合网| 色婷婷AⅤ| 日日操夜夜操中国无码| 日熟女| 久婷视频| 久久婷婷五月天懂色| 五月丁香91| 9久国产精品| 99在线免费视频播放| www.seqingwuyuetian| 亚洲精品无人区| 97caop| 噢美99| 色婷婷狠狠久久综合五月| AV片在线观看| 九色视频91疯狂| 久久久18| 五月亭亭综合五码| 成人av播放| 伊人久久艹| 人人爱国产| 五月婷婷激情| 伊人三级激情| 天天更新天天亚洲| www.夜夜| 人妻熟女一区二区AV| 九月丁香婷婷| 99视频在线啪| 高清激情av在线观看| 五月天婷婷六月| 五月丁香操亭亭网| 日本欧美成人片AAAA| 欧美熟女视频 色婷婷| 五月丁香花激情啪啪网| 国产精品在线视频| 噜噜操操| 五月丁香六月激情综合| 久久婷婷资源| 99爱视频在线免费观看| 深爱激情综合网| 亚洲黄色网址| 做爱夜夜干天天操| 色色色热热热| 激情五月丁香五月| 97色婷婷在线观看| 开心婷婷五月中文字幕组| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 亚洲AV免费国产电影| 婷婷色丁香五月| 热久久思思热思思| 久久五月丁香婷婷| 五月丁香色婷婷久久| 五月情四婷婷| 五月婷婷六月丁香在线| 大香蕉九九热| 五月亭亭开心网| 色五月激情网| 99re热精品在线视频| 久久这里都是精品视频| 婷婷丁香六月天| 欧美日本日韩| 99在线er热| 婷婷五月天堂| 午夜激情四射影院| 色色色色色爱| 青草视频在线播放| 日本色婷婷综合| 丁香五月天婷婷激情| 激情六月天| 97色色色| 欧洲不卡视频| 99 re视频一区| 五月激情婷婷女| 狼人久草| 国内裸舞二区| 激情小说五月天| 欧美 日韩 成人在线| 婷婷综合五月天亚洲综合| 日日操夜夜撸| 五月色丁香综合| 色婷婷操逼| 人妻中文av| 亚洲综合狠狠艹| 欧美成人va| 六月丁香色色| 九九黄色网| 婷婷七月丁香色色| 国产综合婷婷| 天天做天天爱高潮片| 99视频九九热| 亚洲99综合| 国产精品色婷婷久久久精品| 久久婷婷网站| 五月婷婷五月天| 激情丁香社区| 国产人妻777人伦精品HD| 色综合久久综合中文综合网| 天天干电影| 婷婷天堂综合| 99超级碰免费视频| 亚洲色色色色| 久久sp免费视频| 婷婷五月深深爱| 欧美A级成人婬片免费看理论| 亚洲综合色网站| 色色色热热热| 快乐激情五月色婷婷| 色婷| 99热这里只有精品2016| 人操91在线| 老司机伊人| 麻豆忘忧草午夜| 午夜亚洲国产精品av一区二区| 日本乱论99| 东京热免费视频| 亚洲国产成人AV在线| 婷婷丁香五月欧美人| 另类少妇人与禽zOZZ0性伦| 五月丁香久久| 欧美激情综合| 婷婷综合网站| 91oumei| 激情五月天小说| 免费日本aⅴ中文字幕| 综合在线丁香五月| 色都都狠狠色都都色综合色| 丁香五月天激情综合| 丁香五月激情综合婷综| 97碰免费视频在线| 91精品熟女| 久热免费视频| 五月婷伊人| 亚洲综合色色| 九九热在线视频,| 色五月综合激情网| 五月丁香婷婷视频| 9久热| 能看的av网站| 亚洲婷婷五月天综合| 色色色99| 久久婷婷五月天激情唯美| 日韩五月婷婷久久| 97人人操| 大香蕉99热| 日韩aaa| 色色亚洲无码| 五月婷婷黄网站大全| 国产精品色色| 亚洲性爱干干| 九热视频免费观看| 色噜噜狠狠一区二区三区| 青青操绿aaa一区日v| 少妇人妻人伦A片| 丁香五月激情鲁| 午夜在线成人网站免费观看| 亚洲AV网站| 激情五月亚洲综合网| 天天婬色综合| 婷婷六月丁香开心深深爱| 色婷婷电影网| 99九九热视频| 亚洲色五月天在线| 九九精品热播| 五月天色小说| 色婷婷婷婷| 日本片日本片祼观看网站在线看中文版网页在线看 | 二级黄色毛片| 伊人婷婷五月天| 99这里只有精品在线观看| www.色九月| 丁香婷婷色九月| 天天插综合在线| 九九伦子片| 成人午夜无码视频| 天天日,天天射,天天舔| 五月丁香美女| 97欧美在线| 成人国产欧美大片一区| 激情另类综合| 99热这里是精品| 99在线视频精品| 蜜乳av一级av| 婷婷中文字幕| 久久与婷婷| 色青五月天| 99热99精品| 性做久久久久久久免费看| 亚洲色欲AAAAAA| 影音先锋毛片网站| 九九激情视频| 9色婷婷| 67194国产| 激情色视频| 99热在线观看免费中文| 99久久精品国产色欲| 久热在线中文字幕色999舞| 久久久久久久97| 日韩一本操| 人人澡玖玖一| 可以免费观看的AV| 日韩九九| 99热99re6国产在线播放| 天天日,天天射,天天插| 欧亚洲在线高清视频| 婷婷狠狠爱| 欧美性猛交AAAA片黑人 | 色欲婷婷五月天| 久久激情五月网| 五月激情开心婷婷| 第2色五月婷| 久9久9久9久9久9久9| 久re在线| 日日操夜夜操不卡| 婷婷综合性爱网| 婷婷五月色| 五月婷啪啪| 婷婷五月天高清无码| 91热er| 超碰在线91| 99亚洲视频| 色五月婷婷丁香凹凸| 欧亚成人A片一区二区| 日韩欧美颜射| 天天干狠狠| 婷婷五月情天| 五月丁香免费看| 五月草影视| 丁香六月天色婷婷| 婷婷五月天亚洲丁香| 色色综合日韩| 婷婷夜夜夜夜| 99综合激情久久精品久久| 五月天激情网址| 五月天婷综合网站| 亚洲婷婷月丁香五月| 99热99成人| 俺来也综合网精品一区| 五月激情六月| 狠狠狠五月婷婷六月丁香| 丁香五月 综合| 深爱五月月天| 久久这里只有精品网| 日本天天综合| 亚州性爱99| 久久久精久人妻| 热久久国产视频| va婷婷在线免费观看| 第一区久久网站| 久99久热只有精品国产99| 狠狠搞综合色| 色婷婷亚洲精品天天综| 超碰在线9| 九九re精品视频在线观看| 精品爆操| 久久久噜噜噜久久人妻| 国产肥白大熟妇BBBB视频| 国产美女无遮挡裸体毛片A片| 少妇出轨做爰高潮A片| 精品国产一区二区三区四区阿崩| 色婷婷播放| 任我肏视频精品| 99热性色| 天天日夜夜高潮| 色婷綜合网| 色综合中文色综合网| 久操无码| www.com操| 婷婷五月天精品| 狠狠穞A片一區二區三區| 中美日韩成人在线| 少妇被躁爽到高潮无码文| 日韩十国产极品久久| www,天天干| 91免费看片| 色色色热| 五月婷婷欧洲| 91九色网| 79精品视频| 激情视频综合| 人人干av| 五月婷婷之综合激情在线| Caoporn公开| 婷色五月天| 丁香五月自拍| 夜丁香五月婷婷| 婷婷五月色综合| 色婷六月| 97精品人人A片免费看| 超碰免费电影| 欧美激情五月综合| 九九综合久久| 欧美25p| 少妇人妻丰满做爰XXX| 亚洲在线成人| 婷婷丁香视频在线观看免费| 五月婷视屏在线观看| 变态另类9| 91妻人人爽人人看片| 9热在线观看| 久热这里只有精品在线观看| 激情小说五月天| 99在线精品观看99| 97久久久免费福利网址| 99热99免费| 五月天激情久久| 国产偷人爽久久久久久老妇APP| 自拍视频在线观看9| 99er这里只有精品视频| 丁香五月婷婷影院| 国产午夜伦鲁鲁| 热99玖玖99玖玖99九九| 人人色婷婷五月天| 九色PORNY9l原创自拍| www.婷婷激情网.com| 五月丁香六月综合情在线观看| 天天日天天干天天插天天射| 六月婷婷综合| 综合色色婷婷| 亚洲丁香五月天视频| 国产成人一区二区三区在线观看| 影音先锋色婷婷| 亚洲五月天婷婷在线| 五月花婷婷| 色五月婷婷激情基地| 人妻肉射免费观看| 97色色色| 99re思思| 丁香五月电影| 成人 九九九九| 五月色无码| 亚洲激情在线| 亚洲精品亚洲人成人网| 亚洲熟女色| 操操操91| 久久色这里只有精品| 欧美色综合天天久久综合精品| 五月天婷婷网站888| 丁香桃色网| 婷婷在线中文字幕| 另类视频综合| 午夜色婷婷| 亚洲激情五月| 激情丁香五月天| a免费在线| 久热这里精品免费| 国自产拍偷拍精品啪啪一区二区| 综合五月丁香久久| 囯产精品久久欠久久久久久九大| 色色色色色热| 色五月在线播放| 九九自拍网| 国产九九一区二区三区| 激情久久丁香| 日本天堂爱爱| 日日干天天射| 99综合视频| 婷婷99视频在线| 婷婷五月天亚洲色| 婷婷激情久久| 婷婷丁香五月亚洲| 色五月婷婷五月天激情综合| 91干视频| 女性自慰系列第五页| 激情五月天综合网| 亚洲午夜AV| 97干在线| 99在线观看视频精品| 影音先锋女人AA鲁色资源 | 欧美日本国产欧美日本韩国99| 久久婷婷丁香五月一二三| 99综合| 开心丁五月| 综合久久99| 亚洲在线激情婷婷五月| 少妇高潮呻吟A片免费看软件| 五月婷婷六月爱| 三十熟女| 九玖欧洲亚洲| 91日在线视频| 99综合自拍| 婷婷五月天奸女| 狠狠色狠狠操| 高清无码中文字幕aVDV| 大胆伊人久久| 久九色| 色欲婷婷夜夜| 色九九综合| 色 丁香婷婷| 97人碰人操| 婷婷免费视频| 激情婷婷| 99ri在线视频| 五月天俺去也| 色伊人婷婷| 思思精品视频| 性色99| 伊人喵咪a V| 人人色婷婷| 色五月琪琪| AA丁香综合激情| 五月丁香激情深爱婷婷| 97香蕉久久超级碰碰高清版| 亚洲精品无码一区二区| 天天舔天天摸| 26uuu淫色| AV片在线观看| 成人午夜无码视频| 婷婷开心六月| 亚州精品色情无码A片| 亚洲亚洲人成综合网络| 天天做天天爱天天爽| 九九精品在线视频观看| 97操碰日本女人| 激情久久综合| 久久视频在线| 成人精品一区二区三区四区五区 | 婷婷九月| 久久婷婷大香蕉| 青草激情综合| 五月天成人网在线观看| 色国产五月| 九九中文字幕九| 五月天综合激情网| 亚洲综合色五月| 色综合久久综合中文综合网| 色操综合| 五月婷在线| 99热只有| 婷婷五月噜噜| 全网最新网黄大秀直播高清,主播国产录屏在线| 婷婷综合九色伊人| 天天插天天爽| www.日本91| 五月丁香婷婷婷婷综合网| 五月丁香大相交| 激情五月黄色| 日韩另类| 午夜亚洲国产精品av一区二区| 97婷婷丁香五月天激情图片| 99热日韩| 97精品自拍视频| 苗黎美女四级成人版一级二级毛片| 婷婷色啪| 婷婷日欧美在线观看| 亚洲欧洲自拍图片专区五月天| √天堂资源在线人妻熟女| 欧美性生交XXXXX无码小说| 伊人久久大香蕉网| 婷婷五月天天爽| 丁香五月欧美色综合| 性五月激情| 色色色97| 亚洲爱婷婷| 六月色丁香婷婷| 婷婷综合久久| 99精品网| 激情四射婷婷| 99久视频| 激情婷婷六月天| 天天综合亚洲综合| 天天日日天天| 五月六月丁香婷婷在线观看| 玖玖资源站国产| 五月丁香激| 丁香社92视频| 任你干线上免费视频有3吗| 98国产精品综合一区二区三区| 思思热99热| 91色五月| 欧美精品999| 99riAV国产精品视频| 欧美97p| 色波激情五月天| 超碰人人操| 久久天堂婷婷五月| 丁香花成人区| 激情综合网激情五月天| 日韩av在线免费观看| 亚洲免费av观看| 九九色中文| 狠狠色噜噜狠狠狠狠狠色综合久久| 一本道在线电影| 激情婷婷| http:色情日本com| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 激情五月天在线观看色婷婷| 色五月丁香总合网| 综合激情网| 五月天婷婷久色| 久久狠狠色| 五月丁香色五月| 丁香五月综合福利视频导航| 色五月色综合| 桔色成人官方网站| 丁香五月激情鲁| 亚洲最大五月天成人网| 亚洲成人av在线播放| 激情五月色婷婷| 美女网黄| 开心五月深爱婷婷| 99熟女啪啪视频| 任你日视频| 色五月激情婷婷| 99热免| 激情五月天 婷婷| 久久久网站| 日本不卡一区二区三区| 99久久五月婷婷| 天天综合久久| 久久精彩综合视频| 丁香五月婷婷精品视频| 色婷婷丁香五月在线观看| 桃色五月天| 久热91| 思思热在线视频精品| 无码免费人妻A片AAA毛片西瓜| 操精品9| 波多野结衣AV无码Porn| 久久伊人9| 亚州精品色情无码A片| 婷五月天在线草| 色欲资源网| 五月丁香六月婷婷激情网| 丁香五月欧美成人| 日本人妻伦在线中文字幕 | 色色色图| 五月天婷婷激情| 日韩无码专区| 日韩精品一品二区三区的使用体验| 中文字幕成| 这里只有精彩小视频视频网站| 丁香五月色综合色播五月| 99re热免费观看视频精品| 久久五月激情综合| 人妻少妇色综合| 97超级碰| 91婷婷丁香五月天免费视频网站| 99国产性感视频| 影音先锋色婷婷| 国产看真人毛片爱做A片| 蜜臀99久久精品久久久久| 超黄亚洲瑟瑟网站| nvrentiantang av| 国产毛片精品一区二区色欲黄A片| 在线免费观看激情视频| 久久黄色免费视频| 色婷久| 乱岳熟女50岁| 成人婷99最新| 涩五月色婷婷| 五月天大香蕉| 97人操人免费视频| 天天爽综合| 91九色首页| 亚洲亚洲人成综合网络 | 伊人大香蕉综合在线| 人人人操Av| 婷婷五月激情图片| 岛国在线观看91| 久草五月婷婷| 91视屏在线观看com.wwwvv| 久久婷婷综合五月天| 五月综合激情| 午夜婷婷久久 | 婷婷五月噜噜| 午夜丁香婷婷| 99热爱爱干干日| 草逼大片| 国产午夜精品一区二区三区四区 | 久久激情中文| 思思99热热热99| 天天爱天天爽| 丁香五月色情av| 噜综合| A1片久久久| 亚洲视频一区| 午夜丁香婷婷| 色噜噜狠狠色综合成人网| 婷婷五月天渟渟| 婷婷丁香五月激情图片| 日日噜噜夜夜狠狠久久丁香五月| 99热精品超碰| 无月播播激情在线观看视频| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 久久婷婷网址| 五月天激情开心网| 成人精品视频99在线观看免费| 97自拍视频在线| 开心综合激情综合| 激情五月天在线免费美女视频| 亚洲精品无AMM毛片| 丁香无月在线观看| 伊人久久婷婷| 热久久91| 久操热| 久热伊人在91| 六月色婷婷| 99婷婷五月天激情| 色婷婷丁香五月天在线观看| 丁香五月天婷婷大香蕉| 精品国产va久久久| 91seAV| 五月婷婷中文| 久久九九re热| 婷婷丁香五月婷婷| 色爱99| 这里只有精品视频| 人人操人人操919999| 久狠狠狠| 182TV亚洲| 丁香五月中文字幕| 久久婷婷亚洲| 99热亚洲| 99er6| 五月丁香色综合| 六月激情婷婷色| 日本猛少妇色XXXXX猛叫| 第二色AⅤ| 九九九九国产| 丁香午月AV中文字幕| 狠狠综合| 五月婷婷丁香五月婷婷| 影音先锋五月天婷婷丁香在线观看| 99热亚洲精品| 干一干xxxx| 日本三级黄色大片| 77799热| 五月激情综合网婷婷| 99视频只有这里精品| 国产毛片欧美毛片久久久 | 天天夜天天色天天| 91精品综合久久久久久五月天| 婷婷五月天视频亚洲| 亚洲午夜一区二区| 北京熟妇搡BBBB搡BBBB| 夜夜爽天操| 中文字幕五月久久婷| 色婷婷狠狠18禁| VA国产在线综合网站| 丁香五月婷婷天激情| 激情五月五月婷婷| 婷婷五月激情四月综合 | 视频一区二区在线| 狠狠干综合网| 午夜精品777| 色97啪啪| 久久性爱视频网站| 婷婷亚洲在线| 九月婷婷激情| 97人妻碰碰中文无码久热丝袜| 五月丁欧美| 狠狠色丁香乆乆| 婷婷五月色惰| 欧美激情丁香五月天久久婷婷一区| www99精品日韩| 欧美色色色色色色| 婷婷激情欧美| 性视频久久| 日日做A爰片久久毛片A片英语| 激情婷婷啪啪| 2015好吊操| 丁香五月婷婷五月基地| 天天干,夜夜爽| 亚洲激情.com| 综合97五月| 任我肏视频精品| 天天干天天干天天干天天干天| 深爱五月激情网| 亚洲XX网| 日韩精品一区二区三区,四区,五区视频| 激情五月天视频| yazhou seshipin| 日韩在线一级| 99久re热视频精品98| 婷婷婷婷婷开心无码播放| 五月丁香综合啪啪啪啪啪| 久久33视频| AV九九| 91日日日| 中文AV网站| 日韩六十路91性交电影| 综合婷婷| 影音先锋91资源站| 亚洲五月六月婷婷| 人人爱操| 丁香五月婷婷视频| 色噜噜在线| av婷婷丁香 六月| 六月婷婷七月丁香| 99热九九九九| 五月婷婷色欲| 六月丁香网| 天天色99| 五月天涩涩| 欧美性爱特黄一级aaaassss| 五月天伊人av| 精品激情| 久久超视频| 成人免费超碰| 玩熟女五十AV一二三区| 国产成人av在线| 久久五月天综合| 久久久久久丁香五月| 热无码A∨| 色色色999| 激情亚洲婷婷| 99久精品视频| 日韩成人电影av| 六月婷婷色色网| 欧美激情性做爰免费视频| 婷婷99狠狠躁天天| 日韩操逼大片| 91干视频| 亚洲免费观看高清完整版AV线| 岛国AV网| 天天爽天天干天天| 色天天综合| 九九精品在线网| sewuyuejiqingwang| 日韩黄黄| 在线VA视频| 亚洲va日| 欧美三级黄色片久久| 超碰色婷婷| 婷婷五月天网址| 欧美、日韩、中文、制服、人妻| 日本97人人| 伊人青涩网| 亚洲国产色婷婷| 激情五月天第四色| 九九超日本| 成人AV网站在线| 婷婷久久伊人| 97色啪| 久草大| 大香蕉久久伊人婷婷五月丁香| 五月婷婷激情综合| 五月天婷婷色五月天| 六月99天天婷婷激情综合| 综合激情啪啪| 这里只有精品在线播放| 中文字幕性爱丰满| 婷婷亚洲欧美丁香五月| 日本色爽| 色九月| 欧美性爱五月天| 欧美交换配乱吟粗大25P| 天堂无码人妻精品AV一区| 99热18| 极品少妇XXXX精品少妇偷拍| 五月Huangsewang| 婷婷五月天成人视频| 99热亚洲综合| 在线观看996精品| 国产韩日亚洲美州欧亚综合在线| 激情丁香久久| 亚洲九九99精品视频在线播放| 丁香婷婷视频一区二区| 久久 天天| 99热在线精品观看| 99re在线播放| .肏屄视频一区二区| 久久久久婷| 外国碰视频网站97| 五月花综合网| 久久这里只有精品22| 激情色色色| 二色av| 丰满少妇乱A片无码| 丁香五月激情啪啪啪| 99精品一二三四视频| 五月开心婷婷网| 内射激情在线| 91.com男女操| 天天日天天色| 日韩久久欧亚| 五月婷视频久久| 婷婷AV丁香| 国产精品久久久海的味道| 久久婷婷综合网| 少妇真实被内射视频三四区| 一本九九色| 91丨九色丨熟女| 色五月 激情婷婷 综合五月天| 五月丁香六月婷婷综合网站 | 91人人操人人看| 久久只有这里精品免费| www.亭亭五月天| 黄色三级日本| 欧美天堂婷婷日韩| 久久久激情视频| 欧美视频在线观看噜噜| 情色婷婷五月天| 欧美性猛交XXXX乱大交极品| 色爱99| 丁香婷婷五月天色播| 一本色道久久综合狠狠躁小说| 天天插天天干| 性爱网六月丁香| 五月天开心激情网色欲无码| 九九热只有精品| 97人人超| 婷婷丁香五月激情密臀av| 天天色综合色| 久久五月网| 婷婷五月丁香国产| 久久精品爱爱| 六月婷婷综合| 婷婷字幕在线| 六月婷婷深深爱| 中文av网| 琪琪布丁香社区激情五月天| 五月停停色| 久久99大| 五月色亭丁香| 99re视频在线播放| 国产精品久久欧美久久一区| 欧美五月婷婷| 亚洲视频伍月婷婷| 国外亚洲成AV人片在线观看| 91在线日| 九九在线精点品| 亚洲精品无人区| 91精品久久久久久综合五月天| 欧美美美女性色视频| 96自拍视频九色在线观看| 日韩操人| 神马欧美精| av首页在线| 激情99热| 五月婷婷之综合激情| 亚洲另类av| 99热这里只有精品最新| 久久机热/这里只有精品| 日本久久超碰| 舔色婷婷| 五月天激情日色在线| 色色五月丁香婷婷| 婷婷色五月婷| 午夜激情久久| 色综合久久久久久久久五月| 国产真人做爰视频免费| 五月花婷婷在线精品视频| 日日噜狠狠| 色婷婷狠狠久久YY| 99在线小视频| 色婷婷综合在线| WWW.色婷婷.COM| 国产精品天天狠天天看| 欧美99热| 五月丁香另类图片| 99精品久久久久久久久| 久久机热这里只有精品| 综合aV在线| 午夜爱爱爱成人| 丰满老熟妇BBBBB搡BBB| 激情五月天婷婷久久久久久久久久久| 九热视频| 轮奸综合网| 丁香六月综合激情| 4399在线观看免费高清电视剧| 久色网| 武则天精品久久| 99亚洲精品视频| 日韩色五月| 亚洲在线资源| 亚洲欧洲国产精品| 久久综合激情| 大香蕉人妻| 丁香久久久| 26uuu精品一区二区| 久久伊人大香蕉| 丁香 婷婷 激情 综合 五月| 天天色天天操天天射| 激情婷婷丁香五月天| WWW.99热| 这里都是精品99| 日日夜夜干| 色情五月天se| 98色花堂98t.R| 夜夜大香蕉婷婷丁香| 超碰亚洲天堂| 五月色婷婷综合色| 被男人添B超爽视频| 激情五月婷婷色综合| 丁香情色五月| 99色亚洲| 99爽视频| 久久婷婷五月天| 久久激情综合| 久久se 综合网| 另类视频五月天| 亚洲另类婷婷综合| 丁香六月婷| 爱婷婷久久视频| 日本九九九九九九| 丁香五月天黄色片| 久热这里只有精品在线观看 | 日本天堂免费99| 久久99网站| 91人人人人人| 五月六月丁香激情| 久热 91| 九月婷婷综合| 色婷视频| 久婷婷婷| 影音先锋女人AA鲁色资源 | 婷婷六月色| 亚洲A色| 丁香五月久久| 99国产精品白浆在线观看免费| 99视频网| 狠狠综合久久| 欧美日韩二区在线| 久久这里有精品| 亚洲成人免费电影| 亚洲激情四射色| 女同激情久久av久久| 国产色婷婷亚洲| 亚洲在线成人| 色色色地址| 激情五月天啪啪| 婷婷丁香综合| 99色综合| 岛国AV网站| 久久这里只有精品久久| 欧美色激情四射| 黄网免费看| www.夜夜.com| 色色吧综合| 日韩中出视频| 色综合五月天| 丁香午夜天| 草操网| 日都一级A片| 国产精品激情AV久久久青桔| 夜夜久久综合网| 丁香婷五月| 91se在线观看| 国产美女无遮挡裸体毛片A片| 十一月婷婷激情四射| 在线五月色播| 亚洲人妻Av| www.金莲av| 亚洲热综合| 五月婷婷精品视频| 色情婷婷。| 日韩不卡123| 九九在线精点品| 色玖玖综合| 思思w99| 五月丁香久久精品在线观看| 久久婷婷五月天激情新地址| 色婷婷基地| 亚洲精品婷婷| www.热99热| 丁香五月六月久久综合| 99综合熟女| 九九热免费视频| 五月婷婷色播| 亚洲日日操| 就爱干 在线| 99色色爰| 久久精品婷婷| 色婷婷色综合激情91| seuuu婷婷| 五月丁香婷草| 伊人五月天在线| 激情综合网亚洲色图| 日本精品在线噜噜噜| 操日视频| 9热在线视频| 97超级碰| 在线观看国产高清视频免费网站 | 久久99久久99精品免视看婷婷| 996er在线观看| 九月丁香婷婷综合| 激情五月色综合网| 国内久久亭亭| 操操操91| 六月合五月婷| 人人人人人人人草| 天天综合图片| 天天网站天天爽| 久草天堂| 亚洲欧洲国产精品| 亚洲成人另类| 强壮公让我夜夜高潮A片视频| 夜夜爽天天干| 99色婷婷| 丁香色五月天| 涩综合婷婷| 狠狠草狠狠草| 99re热视频这里只精品5| 色色免费网战视频| 丁香五月激情无码视频| 蜜桃婷婷丁香| 天天日夜夜草进麻麻的子宫| 婷婷五月天另类视频| 夜夜骑日日操| 五月色婷婷中文字幕| 99久久网站| 97久久视频| 婷婷伊人綜合中文字幕| 色欲人妻综合aaaaaaaa网| 色婷婷电影| 99五月丁香丁| 色色亚洲无码| 五月天天天开心激情网| 五月色情婷婷开心五月色情| 丁香五月久久综合| 亚州精品久久久久AV无码| 91小黄书网址在线观看| 俺也去在线视频 | 99热永久在线观看| 激情丁香社区| 色五月婷婷婷婷婷婷婷婷婷婷| 九九热超碰| 久久综合激情五月天| 激情五月图| 深爱开心五月天| 婷婷六月色情| 五月婷婷在线免费观看 | 以及AA大片看看| 亚洲中字AV电影在线网站| 丁香五月亚洲综合丝袜| 激情五月婷色| 国产综合婷婷| 99热伊人| 一本久久亚洲五月婷婷| 五月婷婷免费视频| 丁香五月亚洲| 日韩淑女人妻luan伦激情精品一区二| 亚洲熟女色| 天天日天天操心| 超碰在线caop| 久久九九囯产| 超碰在线免费9| 秋霞学生妹一二级| 丁香五月六月激情| 九九热精品| 色情五月综合婷婷| 欧美日韩成卜| 久久aaaaa| 欧美欧盟性爱网| 色五月婷婷丁香婷婷| 26uuu欧美宗合| 久婷婷婷| 欧美经典片免费观看大全| 日韩AC在线免费观看| 日本久久超碰| 激情五月第四色| 蜜臀嫩草| 丁香花五月天激情| 色五月激情五月| 91干网| 好好干Av| 五月天激情视频五月天| 婷婷丁香九月| 国产成人精品123区免费视频| 伦乱人妻| 任你草| 婷婷噜噜| www夜夜操| 五月婷婷视频| 99精品热视频| 丁香婷停五月激情综合深爱| 九月激情综合| 国产精品久久久爽爽爽麻豆色哟哟| 激情丁香久久| 一本久久亚洲五月婷婷| 国产色色视频| 久久婷婷色综合| 91久久久久久久久久18| 91丨九色|PRNY熟妇| 情婷婷五月天在线| 天天做天天爱| 99噜噜噜在线播放| 亚洲精品第一国产综合亚AV| WWW色色色COm| 午夜婷婷六月天| 五月天婷婷色| 97高清国语自产拍| 丁香六月婷婷综合欧美| 欧美熟女乱又伦| 夜夜操夜夜操| 99精品偷拍视频| 人妻AV在线| 色婷六月| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | www.91.com黄| 久久网婷婷| 超碰免费99| 婷婷丁香五月综合网上| 婷婷色导航| 色五月婷婷av| 国产无套精品一区二区| 99热综合| 五月丁香激情综合网| 99热九九热| 色99网站| 丁香九月综合激情| 五月停停激情网| 人与禽A片啪啪| 热九九在线| 五月天丁香婷| 色99视| 久久在线人妻| 国产成人精品一区二三区熟女在线| 五月色导航| WWW,五月| 色色COm| 亚洲国产精品二二三三区| 91精品久久久久久77777| 婷婷六月激情丁香| 中文字幕欧美日韩VA免费视频| 爱操人妻| 日本99在线视频| 五月黄色婷婷| 丁香五月在线视频黑人| 超碰99在线| 久热大香蕉| 五月综合激情网| 97男人天堂| 少妇口诉沐足视频播放器网址| 欧美激情性做爰免费视频| 五月丁香婷婷色| 色婷婷88| 激情久久肏屄视频| 五月 激情视频| www.97干视频| 五月天另类视频| 96精品成人无码A片观看金桔 | 婷婷五月俺要去| 亚洲中文字幕AV| 天天射综合网站| 五月婷婷影| 97色啪| 99激情视频| 99精日本久久| 婷婷五月天成人网站| 播丁香五月婷婷欧美| 六月婷婷国产| 五月丁香久久综合91| 久久久激情视频| 亚洲九九夜夜| 五月天色色网站| 色婷婷小说网| 六月丁香激情综合网| 色婷另类| 91人妻人人做人碰人人爽九色| 欧美丁香五月97色| 大香蕉五月天婷婷丁香91| 丁香五月成人婷婷| 夜夜久久综合网 | 色,激情五月天| 久久人人妻| 综合逼五月激情婷婷| 午夜成人片400| 激情开心五月婷婷| 乱岳熟女50岁| 婷婷日日天天| 亲子乱AV-区二区三区| 99热这里只有精品在线播放| 91大屁股精品| 人人操AV| 六月丁香婷婷色狠狠久久| 久久伊人大香蕉| 亚洲久久视频| 97超级碰人人| 婷婷五月天激情电影小说| 久久久jd| 99热在线精品观看| 亚洲激情网站无码| 国产av一区二区三区| 久久免费婷婷视频| 超碰97干| 丁香五月天婷婷激情| 激情婷婷五月亚洲| 亚洲综合网在线| 婷婷五月在线播放| 欧美婷婷日本| 丁香五月婷婷色| 狠狠操性爱av| www.99热在线| 久热伊人| www.夜夜騎夜夜狠| 色婷大香蕉| 大香蕉久久久久| 美女五月天婷婷| 丁香五月婷婷综合激情啪啪啪| 欧美色频| 人人爱干人人爱草| 操大屄五月天视频| 99久在线精品99re5热视频| 9+1视频网址| 六月婷婷综合| 色五月天本日| 67194中文字幕| 丁香六月激情| 六月丁香好婷婷| 婷婷激情六月综合| 五月花婷婷| 色五月婷婷91在线| 亚洲第一黄网| 五月天色官网| 97色色综合|