久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(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 擦寫壽命不夠、FRAM 容量太小、NOR Flash 寫入速度慢還怕掉電、SRAM 又得配電池。這幾年 MRAM 慢慢進(jìn)入大家的視野尤其是 Everspin 的 MR25H40 系列4Mbit 容量、SPI 接口、號(hào)稱無(wú)限次擦寫、掉電數(shù)據(jù)不丟聽起來(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ì)在于寫入不需要擦除、寫入速度接近 SRAM、擦寫次數(shù)理論上無(wú)限官方標(biāo)稱 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ì)比了幾種常見的非易失存儲(chǔ)方案。這個(gè)對(duì)比過(guò)程其實(shí)挺關(guān)鍵的因?yàn)椴煌瑘?chǎng)景下最優(yōu)解完全不一樣。存儲(chǔ)類型寫入速度擦寫壽命掉電保持容量范圍寫入前是否需擦除典型功耗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ú)限依賴電池MB級(jí)否高含電池維護(hù)從表里能看出來(lái)MRAM 在寫入壽命和寫入速度這兩個(gè)維度上優(yōu)勢(shì)明顯。工業(yè)數(shù)據(jù)記錄器需要每秒寫入幾十條記錄每條記錄幾十字節(jié)一天下來(lái)寫入次數(shù)輕松上萬(wàn)。如果用 EEPROM100萬(wàn)次的壽命大概幾個(gè)月就耗盡了NOR Flash 雖然容量大但塊擦除機(jī)制導(dǎo)致小數(shù)據(jù)頻繁寫入時(shí)效率極低還需要額外的磨損均衡算法。MRAM 的字節(jié)級(jí)寫入和無(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 芯片近走線短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í)間要求不苛刻軟件片選完全能滿足。引腳分配如下SPI2_SCK - PB13SPI2_MISO - PB14SPI2_MOSI - PB15MRAM_CS - PB12GPIO 輸出MRAM_WP - 接 VDD不用的寫保護(hù)直接拉高M(jìn)RAM_HOLD - 接 VDD不用的保持功能直接拉高注意MR25H40CDF 的 WP 和 HOLD 引腳內(nèi)部沒(méi)有上拉懸空會(huì)導(dǎo)致狀態(tài)不確定。即使不用這兩個(gè)功能也必須明確拉到 VDD 或 GND。2.3 電源與去耦設(shè)計(jì)要點(diǎn)MRAM 的寫入電流比讀取電流大不少尤其是在高頻寫入的時(shí)候。MR25H40CDF 的數(shù)據(jù)手冊(cè)標(biāo)稱寫入電流典型值 25mA峰值可能到 40mA。如果電源去耦沒(méi)做好寫入瞬間的電壓跌落可能導(dǎo)致寫入失敗或者數(shù)據(jù)錯(cuò)誤。我在 MRAM 的 VDD 引腳旁邊放了兩個(gè)電容一個(gè) 100nF 的陶瓷電容緊貼引腳另一個(gè) 1uF 的陶瓷電容稍微遠(yuǎn)一點(diǎn)。這兩個(gè)電容的作用不一樣100nF 負(fù)責(zé)濾高頻噪聲1uF 負(fù)責(zé)提供寫入瞬間的電荷緩沖。PCB 走線上電源線盡量粗從 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 的波形最直觀調(diào)試方便。預(yù)分頻系數(shù)選 4SPI 時(shí)鐘跑到 11.25MHz。MR25H40CDF 最高支持 40MHz為什么不用更高的時(shí)鐘因?yàn)?PCB 走線長(zhǎng)度和信號(hào)完整性限制。我的板子上 SPI 走線大概 3cm沒(méi)有做阻抗匹配11.25MHz 下波形還很干凈再高就開始出現(xiàn)振鈴了。工業(yè)環(huán)境里穩(wěn)定性比速度重要11.25MHz 的讀取速度已經(jīng)能到 1.4MB/s足夠用了。提示如果你的 PCB 走線很短1cm且做了阻抗控制可以嘗試 20MHz 甚至 40MHz。但建議先用示波器看波形確認(rèn)沒(méi)有過(guò)沖和振鈴再提高頻率。3.2 MR25H40CDF 的命令集與讀寫時(shí)序MR25H40CDF 的命令集跟標(biāo)準(zhǔn) SPI Flash 很像但有幾個(gè)關(guān)鍵區(qū)別。先看常用命令命令名稱命令碼功能說(shuō)明地址字節(jié)數(shù)數(shù)據(jù)字節(jié)數(shù)WREN0x06寫使能00WRDI0x04寫禁止00RDSR0x05讀狀態(tài)寄存器01WRSR0x01寫狀態(tài)寄存器01READ0x03讀數(shù)據(jù)31~NWRITE0x02寫數(shù)據(jù)31~N跟 NOR Flash 最大的區(qū)別是MRAM 沒(méi)有擦除命令。寫入之前不需要發(fā)擦除指令直接 WREN 然后 WRITE 就行。這個(gè)特性讓固件邏輯簡(jiǎn)化了很多不用維護(hù)擦除塊管理。寫操作的完整時(shí)序是這樣的拉低 CS發(fā)送 WREN0x06拉高 CS拉低 CS發(fā)送 WRITE0x02發(fā)送 3 字節(jié)地址24位高位在前發(fā)送要寫入的數(shù)據(jù)字節(jié)可以連續(xù)多個(gè)拉高 CS注意第 3 步和第 4 步之間必須拉高 CS這是 WREN 命令生效的必要條件。我一開始沒(méi)注意這個(gè)細(xì)節(jié)WREN 和 WRITE 連在一起發(fā)結(jié)果寫入一直失敗。后來(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; }寫數(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)讀寫都正常。但有個(gè)性能問(wèn)題每次讀寫都要重新拉 CS、發(fā)命令、發(fā)地址開銷不小。如果頻繁讀寫小數(shù)據(jù)效率會(huì)很低。后面我會(huì)講怎么優(yōu)化。3.4 寫入速度實(shí)測(cè)與優(yōu)化我用邏輯分析儀抓了寫入 256 字節(jié)的波形算了一下時(shí)間。SPI 時(shí)鐘 11.25MHz每個(gè)字節(jié) 8 位加上命令和地址開銷寫 256 字節(jié)大概需要 240 微秒左右。理論計(jì)算256 字節(jié) × 8 位 / 11.25MHz ≈ 182 微秒加上命令和地址的 4 字節(jié)開銷總共約 185 微秒。實(shí)測(cè) 240 微秒多出來(lái)的部分是 CS 拉高拉低的間隔和 HAL 庫(kù)的函數(shù)調(diào)用開銷。如果要提高寫入速度有幾個(gè)方向提高 SPI 時(shí)鐘到 20MHz 以上需要確認(rèn)信號(hào)完整性用 DMA 傳輸替代阻塞式傳輸減少 CS 的切換次數(shù)連續(xù)寫入時(shí)保持 CS 低電平我試過(guò)用 DMA 傳輸寫入 256 字節(jié)的時(shí)間降到了 150 微秒左右。但 DMA 的配置復(fù)雜一些而且需要處理傳輸完成中斷。對(duì)于數(shù)據(jù)記錄器這種應(yīng)用寫入頻率大概每秒幾十次阻塞式傳輸完全夠用沒(méi)必要上 DMA。實(shí)操心得如果你的應(yīng)用需要高頻寫入比如每秒上千次建議用 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è)寫指針每次寫入后指針后移寫到末尾就回到開頭。同時(shí)維護(hù)一個(gè)記錄計(jì)數(shù)器用來(lái)判斷緩沖區(qū)是否已滿。但實(shí)際實(shí)現(xiàn)的時(shí)候有幾個(gè)細(xì)節(jié)要注意。第一個(gè)細(xì)節(jié)是寫指針的持久化。如果寫指針只存在 RAM 里掉電后就丟了重啟后不知道從哪里繼續(xù)寫。所以寫指針必須定期存到 MRAM 里。我是在 MRAM 的固定地址比如 0x00000存一個(gè)頭部結(jié)構(gòu)體包含寫指針、記錄總數(shù)、校驗(yàn)和。每次寫入新記錄后更新頭部。但這樣每次寫入都要寫兩次 MRAM一次數(shù)據(jù)一次頭部效率減半。優(yōu)化方案是批量更新頭部。比如每寫入 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)閷懭胧羌磿r(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)前寫入操作并拉高 CS然后進(jìn)入停機(jī)模式。這個(gè)窗口大概有幾百微秒足夠完成一次 32 字節(jié)的寫入。另外MRAM 的 WP 引腳在正常工作時(shí)拉高但在系統(tǒng)初始化階段我建議先拉低再拉高確保 MRAM 處于已知狀態(tài)。有些批次的 MRAM 在上電瞬間狀態(tài)寄存器可能不確定雖然概率很低但工業(yè)產(chǎn)品要考慮到。注意MR25H40CDF 的狀態(tài)寄存器里有一個(gè) WEL 位寫入使能后該位為 1寫入完成后自動(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)流程讀取流程比寫入簡(jiǎn)單但校驗(yàn)不能省。我的讀取函數(shù)會(huì)先讀頭部獲取寫指針和記錄總數(shù)然后從最舊的記錄開始讀逐條校驗(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)開銷很小讀 32 字節(jié)多算一個(gè) CRC16 大概多花幾微秒。如果應(yīng)用需要更高的可靠性可以在 MRAM 里存兩份數(shù)據(jù)一份原始數(shù)據(jù)一份備份。讀取的時(shí)候兩份對(duì)比不一致就報(bào)錯(cuò)。但這樣容量減半需要根據(jù)實(shí)際需求權(quán)衡。5. 常見問(wèn)題與排查技巧實(shí)錄5.1 SPI 通信失敗的排查思路SPI 通信失敗是最常見的問(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 走線又沒(méi)有做阻抗匹配導(dǎo)致 MISO 上的信號(hào)有反射。把時(shí)鐘從 20MHz 降到 11.25MHz 后問(wèn)題消失。所以遇到偶發(fā)錯(cuò)誤先降速試試。5.2 寫入不生效的幾種原因?qū)懭氩簧ǔS羞@幾個(gè)原因WREN 沒(méi)有正確執(zhí)行WREN 命令后必須拉高 CS否則寫使能不生效。這個(gè)前面強(qiáng)調(diào)過(guò)了。WP 引腳狀態(tài)不對(duì)如果 WP 引腳被拉低狀態(tài)寄存器的 WPEN 位如果使能了寫入會(huì)被阻止。檢查 WP 引腳的電平。地址越界MR25H40CDF 的地址范圍是 0x00000 到 0x7FFFF超出這個(gè)范圍的行為未定義。寫入前一定要檢查地址。電源電壓不足MRAM 寫入時(shí)需要的最低電壓是 2.7V如果電源跌落到 2.5V寫入可能失敗。用示波器看寫入瞬間的 VDD 波形。5.3 常見問(wèn)題速查表現(xiàn)象可能原因排查方法解決方案讀出全 0xFFMISO 未連通檢查 MRAM 供電和 CS確認(rèn)供電和片選讀出全 0x00MOSI 未連通檢查 MOSI 走線修復(fù)走線或換引腳寫入后讀回不變WREN 未生效讀狀態(tài)寄存器 WEL 位確保 WREN 后拉高 CS偶發(fā)數(shù)據(jù)錯(cuò)誤SPI 時(shí)鐘過(guò)快降低時(shí)鐘測(cè)試降速或做阻抗匹配寫入失敗電源跌落示波器看 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 批量讀寫與頁(yè)模式MR25H40CDF 支持連續(xù)讀寫也就是一次 CS 周期內(nèi)可以讀寫多個(gè)字節(jié)。利用這個(gè)特性可以批量讀寫數(shù)據(jù)減少 CS 切換開銷。我的數(shù)據(jù)記錄器每次寫入 32 字節(jié)如果改成攢夠 256 字節(jié)再寫CS 切換次數(shù)減少到原來(lái)的八分之一整體寫入效率提升明顯。但批量寫入有個(gè)風(fēng)險(xiǎn)如果攢數(shù)據(jù)的過(guò)程中掉電這部分?jǐn)?shù)據(jù)就丟了。所以批量寫入適合對(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 的擦寫壽命無(wú)限文件系統(tǒng)的磨損均衡機(jī)制其實(shí)沒(méi)必要反而增加了開銷。所以用不用文件系統(tǒng)要看應(yīng)用的數(shù)據(jù)組織需求。我的項(xiàng)目里數(shù)據(jù)格式固定直接用環(huán)形緩沖區(qū)就夠了沒(méi)必要上文件系統(tǒng)。但如果要存日志文件、配置文件、固件備份等多種類型的數(shù)據(jù)文件系統(tǒng)會(huì)更方便。6.3 多片 MRAM 擴(kuò)展容量512KB 不夠用的時(shí)候可以掛多片 MR25H40CDF。SPI 總線可以掛多個(gè)從機(jī)每片用一個(gè)獨(dú)立的 CS 引腳。STM32F469II 的 GPIO 足夠多掛 4 片 MRAM 也就多占 4 個(gè)引腳。多片 MRAM 的地址管理有兩種方式一種是線性擴(kuò)展把 4 片當(dāng)成一個(gè) 2MB 的連續(xù)空間地址的高 2 位用來(lái)選片另一種是分片管理每片存不同類型的數(shù)據(jù)。線性擴(kuò)展對(duì)上層軟件透明但需要改讀寫函數(shù)分片管理更靈活但上層要維護(hù)分片映射。實(shí)操心得多片 MRAM 的時(shí)候SPI 總線的負(fù)載電容會(huì)增加高速通信時(shí)波形可能變差。建議每片 MRAM 的 CS 走線盡量等長(zhǎng)SCK 和 MOSI 走線用菊花鏈或者星型拓?fù)渚唧w看 PCB 布局。6.4 低功耗設(shè)計(jì)考量工業(yè)設(shè)備很多是電池供電或者需要低功耗運(yùn)行。MR25H40CDF 的待機(jī)電流典型值 10uA寫入電流 25mA讀取電流 15mA。如果系統(tǒng)大部分時(shí)間在休眠M(jìn)RAM 的待機(jī)功耗可以接受。低功耗設(shè)計(jì)的關(guān)鍵是減少 MRAM 的活躍時(shí)間。我的做法是數(shù)據(jù)先緩存在 STM32 的 SRAM 里攢夠一批再寫入 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 走線穿過(guò)板子長(zhǎng)度大概 5cm。結(jié)果 SPI 時(shí)鐘跑到 10MHz 以上就開始出錯(cuò)。第二版把 MRAM 挪到 STM32 同一面走線縮短到 2cm問(wèn)題解決。所以 SPI 設(shè)備的布局能近就近別為了省空間把走線拉長(zhǎng)。第二個(gè)坑是電源去耦。第一版板子只在 MRAM 電源引腳放了一個(gè) 100nF 電容寫入的時(shí)候偶爾失敗。后來(lái)加了 1uF 電容問(wèn)題消失。MRAM 的寫入電流是脈沖式的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àn)場(chǎng)設(shè)備裝在變頻器旁邊電磁干擾很強(qiáng)偶爾出現(xiàn)寫入失敗。后來(lái)在固件里加了寫入后回讀校驗(yàn)校驗(yàn)失敗就重寫問(wèn)題才解決。所以工業(yè)產(chǎn)品的測(cè)試一定要考慮電磁兼容場(chǎng)景。8. 寫在最后的一些個(gè)人體會(huì)MR25H40CDF 加 STM32F469II 這套組合在工業(yè)數(shù)據(jù)存儲(chǔ)場(chǎng)景里算是比較省心的方案。MRAM 的無(wú)限擦寫和即時(shí)寫入特性讓固件設(shè)計(jì)簡(jiǎn)化了很多不用再糾結(jié)磨損均衡和擦除管理。STM32F469II 的性能和存儲(chǔ)資源也足夠跑復(fù)雜的應(yīng)用邏輯。如果讓我給正在選型的朋友一個(gè)建議我會(huì)說(shuō)先明確你的數(shù)據(jù)寫入頻率和可靠性要求。如果寫入頻率低、數(shù)據(jù)量小EEPROM 或者 FRAM 可能更便宜如果需要大容量、低成本NOR Flash 加磨損均衡也能用。但如果你的場(chǎng)景是高頻寫入、頻繁掉電、工業(yè)環(huán)境MRAM 多花的那些錢省下來(lái)的調(diào)試時(shí)間和維護(hù)成本絕對(duì)值得。最后分享一個(gè)小技巧MRAM 的讀寫函數(shù)封裝好之后可以寫一個(gè)自測(cè)試函數(shù)上電時(shí)跑一遍全片讀寫校驗(yàn)。這個(gè)自測(cè)試大概花幾百毫秒但能提前發(fā)現(xiàn)硬件問(wèn)題避免設(shè)備裝到現(xiàn)場(chǎng)才發(fā)現(xiàn)存儲(chǔ)壞了。我在量產(chǎn)固件里加了這個(gè)自測(cè)試返修率明顯下降。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美αv.com| 裸体1区| 日韩中文字幕国产| 五十路熟女工口 | 午夜在线播放| 蜜臀av一区二区三区免费观看| 97亚洲色图| 日本色色网| 亚洲色图A| 久久亚洲影院一区二区| 欧美成人免费在线观看| 久久精品国产亚洲AV高级北京| 啊啊啊啊啊好大好舒服想要| 色诱中文字幕| 国产日韩在线播放| 好爽视频在线观看视频| 啊啊啊啊啊好大好舒服想要| 日本亚洲vr欧美不卡高清专区| 国产高清自拍视频| 草B在线| 天堂蜜桃无码视频一区二区| 色黄色美女大长腿午夜视频| 3PAV乱伦视频| 久9爱经典视频| 色99视频| 激情无码日韩| 日婷婷| 校园春色 亚洲| 人妻一区久久二区三区色播| 国产亚洲禁久一区二区| 视频国产欧美在线播放| 久操免费观看| 熟女熟妇一区二区三四区| 日韩一级二级三级免费看完整版国语版 | 26uuu最新| a片亚洲一本通视频| 九九99久久| 日韩黄色成人性爱| 极品尤物自安慰| 色香欲影| 青青草公开在线免费不卡视频| 黄网站黄视频网站进入口| 亚洲操逼视频网站| 爱我干综合| 中文字幕日韩电影人妻 | 人人爽夜夜操| 大稥蕉免费视频这里只有精品| 亚洲aV性爱| 九九色图| 97天天摸天天碰| 国产福利第一视频| 思思热er精品视频| 激情专区综合| 亚洲男人天堂Av| 伊人网av| 一及黄久一点| 伊人四虎综合| 操迟操逼在巾线Fre看| 一二三四视频中文字幕在线看| 97色在线视频| 日韩激情电影中文字幕| 韩国免费播放一级毛片| 黄色大片免费在线| 中国一区二区亚洲人妻| 国产三区免费在线观看| 九九热精品视频在线观看| 极品尤物自安慰| 久久人人爽人人爽人人片Ⅴ| 啊啊啊不要啊啊受不了了视频在线| 九月婷婷| 久久极品一区二区| 精品176精品2| 青娱乐 青青青操 日逼| 9久9久9久9久视频网站| 操婢日韩| 欧美熟妇视频| 亚洲免费97免费| 国产又长又大又粗的视频| 91超碰碰在线| 啊啊啊啊啊舒服| 视频黄站| 神马久久久久久伦理片| 亚洲色图大香| 中国的操老妇女| 欧美的精品的视频| 日韩欧美成人性爱在线| 女优免费一区二区永久| 日韩不卡一二三四| 91天美免费| 国产在线观看一区二区三区 | 人妻激情在线视频| 91操熟女| 2017人人操,人人摸| 亚洲成人黄色在线观看| 国产狂喷潮在线精品| 日韩成人大片在线观看| 91美女看B| 96久久久久| 操操逼操操逼操操逼逼| 婷婷五月天成人网| 久草线上视频免费看| 亚洲 欧美 精品专区 极品| 一级A啪啪啪啪| 人人爱夜夜爱| 欧美偷拍| 欧美性爱另类综合| 五十路人妻在线| 97ai亚洲| 色综合五月天| AV女资源| 99超碰色| 91久久九九精品国产综合| 精品人妻一区| 国产地址二三| 国产精品久久泡妞网站| 色爱综合网| 精品9999| 欧美丰满熟妇XXXX性ppX人交| AV中文字幕剧情1区2区3| 欧美性爱第1 页| 五月婷丁香| 九九国产| 日韩欧美成人大香蕉| 青青草AV色| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 69人妻精品一区二区绯色| 日本天堂网| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 日日爱99| 色婷婷丁香五月天| 凌辱美少妇久久aV| 亚洲中文字幕三级在线| 天天综合网合集91| 97超级久久强资源| 一区二区视频在线播放| 精品少妇高潮久久| 久久精品人体AV| 中文字幕熟女人妻丝袜| 无码heyzo高清一区| 东京热91| 欧美最婬乱婬爆婬性视频 | 这里有精品| 亚洲高清综合网| 精品久久久久久亚洲| 天美传媒婬乱在| 志村玲子视频一区二区| 乱性AV| 97日视频| 秋霞曰韩R级| 日本久久久久久久久久| 九月AV| 强奸乱伦大香蕉| 果冻传媒A片一二三区 | 中文字幕人妻资源在线| 欧美熟妇亚洲版| av东京热男人的天堂| 免费αV在线视频| 超碰97最新人妻| 精品人妻中文字幕高清| 亚洲男人的天堂网| 超碰久热| 宅男影院久久久,99| 超碰97综合网| 久久久av爱| 亚洲乱熟女一区二区三区大香蕉| 97久久精品| 熟女高潮合集-永久久久-成人AV| 亚洲欧美经典一区二区 | 99热这里是精品| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 久久久婷| 91青视频| 国产 v乱码一区二| 女人被男人桶爽视频网站| 久久久涩| SUV一区二区在线看| 色色五月丁香| 亚洲无码一二三区| 99草精| 一区二区三区四区姦女| 人人操AV| 久久久久9| 国产在线观看91精品一区| 夜夜嗨一区| 91l欧美在线| 女人久久久| 亚州日韩97| 亚洲青青青视频在线| 一区二区娱乐网站| 欧美日韩操逼动图| 亚洲 自拍偷拍 欧美| 99无码| 丰满人妻一区二区三区四区| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 男人亚洲天堂| 夜夜欧美 | 国产丝袜欧美在线视频| 亚洲无码视频免费在线观看网址!| 国产精品白丝www| 欧美在线大香蕉| 天天影视激情欧美| 91丨国产丨白浆| 亚洲午夜免费狠狠干| 全球成人中文在线| 亚洲中文一区二区三区视频| 国产精品婬乱一级毛片彝族| 强奸乱伦亚洲第一页| 国产精品精品系列在线观看| 日本操逼无码| 国产精品视频内谢女人| 人妻天天爽天天爽三区| 久久国产在线一区二区| 91精品亚洲内射孕妇| 97这里只有精品| 91在线欧美| www国产无码| 亚洲日韩电影| 秋霞一级鲁丝片A片| 亚洲乱妇p22| 91无遮挡| 亚洲精品第一| 色欲日韩欧美在线一区| 九九在线视频| 91九色丨国产丨爆乳| 欧美久久婷| 91色综合激情| 久久久久久久久国产| 精品一区二区三区四区外站| 亚洲日韩少妇一道本视频| 婷婷九月国产| 三上悠亚在线毛片91| 粉嫩av在线| 曰韩人妻中文字幕在线| 国产无码一二三区| 清清一区二区三区四区不卡视频| 精品国产91久久久久久一区黄无| 欧美A√综合网 | 立川理惠无码一区二区| 丁香六月啪啪| 精品人妻一区二区免费蜜桃| 欧美亚洲色图另类国产| 人人看人人摸人人色| 亚洲综合九九| 97欧美色资源| 亚洲丝袜少妇在线| .精品人妻一区二区三| 精品中文字幕第一页| 麻豆美女丝袜人妻中文| 色在线亚洲视频www| 伦理片秋霞免费影院| 涩五月婷婷| 91撸色网 玖玖网 欧美| 后入福利| 欧美国产精品| 男人的天堂2019AV| 一本大道久| 精品九九九| 伊人网综合在线视频| 久99久视频| 九九热五区| 少妇的嫩逼图片| 高清无码久操视频| 99热这里都是精品| 丝袜狠狠草尤物 91| 九九九网站| 久久精品毛片免费不卡| 91色鬼| 黑丝制服中文字幕| 偷窥自拍A片| 天天综合网1| 丰满人妻一区二区三区| 亚洲av噜噜噜噜噜噜| 顶级丝袜熟女一区二区三区| 男人的天堂2010| 美女91av| 人人操人人搞人人草| 深夜啪啪啪视频免费| 涩涩久久精品| 亚洲精品尤物yw在线影院| 日韩另类色图| 中文三一区| 中文字幕人乱码中文字的预防方法 | 国产精品日韩在线一区| 亚洲骚女一区二区三区| 欧美96精品在线| 国产九九九九九九九九| 久久精品高清无码一区| 日韩欧美成人综合在线| 亚洲情色在线| 中文字幕一区二区日韩网| 超碰久久中文| 日本孕妇一区二区视频操逼免费看 | 亚洲美女精品| 亚洲欧美另类小说| 亚洲高潮少妇| 美女黄网| 精品国产污一区二区三区| 欧美综合1性辶| 日韩一级免费性爱| 亚洲丝袜二区在线| 欧美99| 97久操| 国产毛片精品一区二区色欲黄A片| 国产91丝袜在线播放蜜月| 日韩操逼HD| 激情四射五月天| 日韩av在线播放不卡| 久草视频观看视频在线| 少妇高潮流水av免费| 欧美日韩99精品麻豆传媒| 婷婷五月天影院| 天天天做天天天爱天天天爽| 国产小u女在线观看| 色综九九九一区| 性爱综合网| 伊人天天久久动态图| 欧美大香蕉97| 亚洲免费人妻在| 蜜臀Av一区二区三区| 亚洲人妻AV| 国产久久久| 青青草吊丝| 国产一区二区三三视频| 人妻另类| 色呦呦、国产精品| 色五天伊人| 啊啊啊啊嗯嗯在线久久久| 天堂蜜桃无码视频一区二区| 人妻献身系列第54部| 后入式999| 五月婷婷六月激情| 一级做a爰片久久毛片图片| 四虎免费视频| 欧美熟妇乱码在线一区| 久久九九视频九九视频| 蜜臀久久久99久久久久 | 男男H黄动漫啪啪无遮挡网站| 精品人妻一区二区蜜桃视频| 亚洲91av| 99操碰| 日韩免费簧片| 欧美自拍网| 亚洲精品国产AV天美传媒| 亚洲少妇中文字幕网址| 日韩综合无码一区久久92| 九九热在线精品视频| 日本免费中文一区二区三区四区| 中文字幕在线观看网页| 91人妻尻屄视频| 3PAV乱伦视频| 玖玖无码超碰| 成人精品欧洲亚洲| 男人下部插入女人下部 | 韩国三级三级BD在线| 欧美一级A片在线看视频性色| 免费一二区| 亚洲熟女乱色一区二区三区久久久 | 国产真实野战在线视频| 啪啪啪精品| 热热色91| 老鸭窝成人| 97碰碰日本乱偷人妻中文的| AV一二区| 国产不卡片| 国产精品秘 福利姬在线观看| 九九精品无码专区免费| 国产黄色小视频网站| 我要色综合网| 精品国产乱子伦一区二区三区,精品一| 色网在线| 日韩 欧美 校园一区| 曰韩精品九九无码| 99热精品在线播放| 2020国产精品| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 亚洲淫色网中文| 亚洲欧洲小说图片视频| 这里都是精品| 黑人在线91| 超碰天天去日穴| 色婷婷一区二区三区久久午夜| 丝袜喷水在线| 亚州色图欧美| 久久一区二区加油站| 黄色高清久久无码依人| 中文字幕在线观看第二页| 亚洲久热| 色性欧美| 男人天堂站| 青青草九九九九九| 亚洲欧美九九九| 91麻豆天美国产| 亚洲永久AV无码精品秋霞| 久草精品国产蜜臀| 久久久∴| 国产精品乱码久久久、久久| 啊啊啊在线看| 97K超碰在线| 亚洲欧美另类图片| 国产精品无码成人精品| 狼狼色丁香久久婷婷综合五月| 亚洲精品一区二区精品| 国语精品内射在线观看| 青娱乐日韩无码| 综合久久婷婷| 日本一区二区三区欧美日韩中文字幕| 夜夜爽妓女| 色www精品视频在线观看| 欧美91网站| 快播久久人人aV| 亚洲91色| 欧美黄色片在线播放| 精品人妻av在线播放| 人人干人人搞人人摸| 亚洲欧美成人在线| 99啪啪| 97精品97久久| 黄片www视频免费| 无码人妻精品一区二区中文| 思思热免费视频观看| 婷婷五月色| 精品免费国产二区三区| 亚洲国产欧美中文永久| 亚洲av夫妻操穴网| 日韩天天本| 男人的天堂com| 91免费看一区二区三区 | 91女优在线观看| 密臀在线一区尤物| 亚洲三区视频| 五月久久HDAV| 午夜传煤十二区精品| 手机午夜电影神马久久| 中文字幕在线免费观看视频| 91爰爱欧美| 啊啊啊啊好多水| 精品人妻av在线播放| 激情综合五月天| 99精品高潮| 免费无码婬片AAAA片直播色戒| 欧美日韩性爱操大逼| 人人妻人人操人人乐| 激情四射婷婷六月天| 尤物视频视频官网| 亚洲精品99| 亚洲综合一| 成人五月天丁香激情综合| 女人午夜视频777| 男女激情中文字幕| 好色综合| 色丁香五月婷婷| 久久超碰天天| 大地资源在线观看中文第二页| 狠狠操一区二区| 国产99999| 国产成人网址| 久久精品一区一起草| 高清国产性猛交xxxx乱大交| 青青草视频导航官网| 2024黄色视频| 精品久久久久综合无码| 91小视频| 曰本特级特黄特色黄色A级网站高清在线免费看 | 人人摸人人添人人操| 91天堂视频| 亚洲成人黄色在线观看| 精品久久久av| 女人精品内射国产99| 久久人妻精品| 变态综合色| 99精品在线播放| 日韩在线观看AV| 国产精品香蕉热久久新品| 亚洲色图 综合| se01国产在线视频| 狠色婷婷久久一区二区三区_| 伊人网青青| 欧美综合色站| 国产精品亚洲无码| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 久久麻豆一区二区| 欧美日韩1234| 夜夜狼人妻| 级做a爱无码性色永久免费| 日日夜夜骚| 熟女激情综合网| 五十路熟女工口 | 97视频在线看| 久久精品老司| 国产偷拍自拍在线视频| 少妇贴图| 18岁禁 茉莉成人久久| 99精品欧美一区二区三区桃色| 久久精品人妻一区二区| 日本九九九九| 99亚洲国产精品色一区二区三区| 综合亚洲欧美精品日韩?v| 午夜久久一区二区无码中出 | 91性高| 欧美日韩中文亚洲v在线综合| 97视频一区| 爱射综合| 一区二区三区免费岛国片| 夜夜国自区| 亚州色交| 无色无码| 亚洲中文字幕熟女| 午夜精品人妻二区三区| 亚洲老熟妇xxx| 日韩欧美午夜一区二区| 国产怡红院在线| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 国产精品禁久久久精品| 国产日韩精品一区二区三区| 欧美中出1| 亚洲欧洲日本精品中文a∨| 五十路人妻在线| 女同在线视频一区| 韩国三级理论在线| 国产 日韩 欧美一区| 九九九九97| 九九九网页| 亚欧高清在线| 日韩免费大片一级播放| 超碰91在线| 欧美亚洲清纯| 加勒比伊人综合| 亚洲天堂色图| 婷婷五月天色色| 秋霞成人一级在线观看| 亚洲综合91| 欧美啪啪啪91| 欧美骚少妇| 日韩欧美丝袜诱惑| 久久本道| 亚洲精品视频二区| 国产人妻天天干精品| 美女人妻色网站| av片在线观看免费播放| 天天弄天天操| 乱伦熟女专区| 日本操逼视频在线| 91丝袜| 99热一区二区三区四区| 乱操9999| 蜜桃AV天堂| 黑人精品久久97| 久久精品72| 江都AV在线| 性色一线| 青青草原人妻| 啊啊啊com| 爽爽淫人网| 久久97| 99久久网站| 欧美色综合影院| 日韩一区二区三区四区五区| 欧美不卡二区| 国产浮力影院第1页| 国产人妖视频一区在线观看| 成人麻豆av电影网站| 人人操我人人干| 亚洲黄片免费在线播放| 影音先锋日本乱伦| 最新三级网址| 亚欧无码在线| 9999免费精彩视频| 一区二区 韩日AV| 亚洲91极品| 人妻在线中出视频| 国精综合一二三区影视| 我中文字幕6区 | 人妻一二三区| 人妻人人做人人澡人人爽欧美一区| xxxx网站亚洲精品| 深田咏美亚洲精品福利社| 自拍鲍鱼一区在线高清观看免费| 1024日韩| 日本三级日本三级三级人妇四虎| 麻豆AV96熟妇人妻| 麻豆黄站| 蜜桃久久一区二区| 午夜视频久久久久一区| 欧美系列在线一区二区| 亚洲综合激情五月久久| 欧美熟妇乱码在线一区| 嗯嗯啊啊好大好爽| 久久9久久| 久久精品一区二区一8| 国产女同视频在线播放| 岛国片在线观看视频亚洲| 亚洲nv男人的天堂网| 久久熟妇五十路一区| 涩涩久久精品| 久久东京热久久| 日本一区视频在线观看| 国产高潮AA片免费看| 色综合美国| 超碰97久久国| 97欧美精品| 女人喷水视频在线观看| caopeng97| 97少妇人妻中文字幕久久 | 精品一区二区啪啪啪| 久久久婷| 亚洲男人的天堂va亚洲男人社| 人人操 欧美| 看一级黄色视频| 91总综合网| 亚州性色| 日本日皮视频逼| 亚洲欧洲精品成人| 久久岛国| 欧美精品1区2区3区| 嗯嗯嗯啊啊啊操的我好爽| 96精品久久久| 亚洲性爱免费电影| 高清不卡视频| 97超碰超| 日本肏逼视频在线观看| 熟女欧美日韩综合婷婷| 福利视频合集| 大胆91| 精品久操| 亚洲美女自拍偷拍视频| 亚洲AV无码久久精品蜜桃小说| 老熟女网站| 97色色婷婷| 啊啊啊啊啊啊啊在线| 亚洲人成网站7777| 欧美亚洲玖玖玖| 东京男人天堂| 美女被艹尤物视频| 亚洲综合69| 不卡av在线中文字幕| 久久久久久久久久久久久9999| 这里只有97精品| 最新日韩黄片| 热G综合热G中文| 国产AV激情无码久久无码 | 亚洲精品乱码久久久久久蜜桃麻豆| 国产极品精品美女视频| 黑人天8A∨高清网站| 五月亭亭六月丁香| 91AV老熟女视频| 欧美91变态| 91熟女熟妇视频网站| 久久久偷拍| 天天日天天操心| 少妇的嫩逼图片| 五月天激情小说网| 国产精品操| 国语人妻精彩刺激| yiqicaoav| 亚洲丝袜色图| 涩涩这里只有精品视频| 亚洲爱爱视频一区二区| 操逼视频亚洲| 91N综合网| 另类小说五月天| 校园春色亚洲| 午夜天堂精品久久| 性爱乱伦视频免费| 校园春色欧美| 国产亚洲色婷婷久久99精品91| 99re这里只有| 久久久不能久久久久| 三男一女不戴套的A片| 国产又大又粗又长视频在线| 欧美激情另类一区二区| 国产91丝袜在线播放蜜月| 综合色播| 丁香五六月啪啪| 91性| 97色婷婷| 五十路六十路素人熟女| 国产高清在线自在拍69| 六月色婷婷| 在线中文字幕| 后入综合久久| 中文字幕在线观看AV| 双插性欧美一二三区| 亚洲少妇自拍中文字幕懂色| 中文字幕啊啊啊在线观看视频| 无码人妻精品一区二区三区99不卡| 日韩精品大香蕉伊人在线| 日韩成人网址| 精品国产乱码| 超碰97综合在线| 狠狠夜色午夜久久综合在线| 717影院理论午夜伦八戒| 久久久亚洲| 欧美国产操逼| 久久久久久久久久久97| 综合影视国产无码| 另类图片综合| 国产精品久久久久久久久久二区三区| 爱爱动态120秒| 国产精品色片一区二区| 久久这里只有精品9| 91少妇香蕉久久精品| 久久久天美| 97超碰色屌| 久久99网站| 伊人久久大香线蕉无码| 欧美色涩| 97在线观看视频| 国产成人主播| 99热99re超碰精品| 久久艹逼视频| 干干干天天| 亚洲欧美高清无码| 欧洲视频在线| 日韩av情韩国爱禁区av一区二区| 夜夜高潮夜夜爽| 99热这里都是精品| 亚洲成?V人片在线观看福利| 国产日韩区| 肏逼视频日本| 91亚洲在线| 麻豆av一区二区| 综合情欲网| 日韩精品电影| 国产精品视频在线播放 | 91亚洲欧洲| 高清无码学生妹高潮| 操少妞在线视频| 搞中出视频在线观看| 黄色二级片网站| 天堂蜜桃无码视频一区二区| 久久激情网| 99久久久久| 亚洲欧美经典一区二区| 色欲日韩欧美在线一区| 国产真实野战在线视频| AV网站高清无码在线观看| 日本精品网站在线中文| 亚洲啪啪视频免费| 九九精品无码专区免费| 香蕉国产精品麻豆亚洲欧美日韩| 日本精品一区二区三区四区的功能| 超碰精品97| 成人草草视频| 91狠狠综合久久| 熟女熟妇一区二区三四区| 久久久极品| 99999久久精| www亚洲欧美| 999999精品| 国产60页| 国产精品白丝在线播放 | 亚洲中文电影| 超碰欧美在线欧美| 国产人人干| 久久宗合97| 欧美性性性| 蜜臀久久99精品久久久| 亚洲欧美国产va在线播放频| 国产精品第一区第一页| 国产精品一区av在线| 青青操综合网| 毛片电影一区二区三区| 欧美另类丝袜熟女| JuliaAnnXXX888| 亚洲97| 成人七区| 99热在线播放| 97大色网| 中文字幕av一区二区三区人妻少妇| 性生活性生大爱77AV国产| 色香av| 日日插夜夜| 黑人精品成人一区二区三区 | 女人18精品一区二区三区| 欧美亚洲首页| 国产9 9在线 | 亚洲| www黄片免费看com| 国产又粗又又黄又猛| 九九热视频这里只有精品| 色香欲天天天天综合色| 777超碰| 伊人精品久久网站| 五月婷婷性爱| 99九九久久| 中韩中文字幕在线观看| 三级日本一区二区三区| 天天操天天舔| 熟女天天干| 国产精品伦理| 亚洲综合另类小说色区亚洲成av人片在www| 日韩性爱再线视频| 蜜桃臀 后入 一区 二区 三区 在线| 色超碰综合| 亚洲欲色| 特级毛片特黄久久免费看| 欧美亚洲综合色| 日韩色女精品| 91啦人妻| 色五月亚洲| 熟妇国产免费一区| 欧美夜夜草视频| 久久99精品视频| 天天看高清麻豆| 亚洲?V高清一区二区三区尤物| 久久精品店| 超碰1024久久| 东京热一区二区中文字幕| 大香蕉丝袜一级片| 天天色踪合| av无码av无码专区| 久久久男人的天堂| 97久久精品亚洲| 国产高清亚洲日韩一区| 97超碰总站| 国产一区二区三区影片| 男人的天堂va| 99热思思| 歐美性天天| 干超碰碰熟女| 啊啊啊好爽快点啊啊啊嗯嗯| 超碰美女97| 天美av在线观看| 日本一区视频在线观看| surenchaopeng| 久操 高清| 超碰97男人| 欧亚第一综合网| 97啪啪| 精品久久視頻在线| 五月天久久人妻| 黄片不用下载在线观看| 麻豆精品三区视频| 人人操人人爽人人操人人| 激情专区综合| 国产热av| 国产男女无套视频免费观看| 成人精品水蜜桃久久久久久久| av天堂精品久久| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠 | 亚洲天天影视综合网| 天天射天天操天天干天天吃2018| 国产黄a三级三级三级av在线看 | 天天爽天天| 最新制服中文第一页| 99热自拍| 亚洲图片欧美色| 69精品在线| 粉嫩av平台| 欧美婷婷久久| 亚洲va有码在线天堂| 91丝袜在线视频| 日本性爱不卡视频| 久热精品在线| 久操大香蕉手机视频在线看| 日日夜夜免费| 嗯嗯啊啊用力视频免费| 国产隔壁老王影院在线| 男人的天堂日本东京热| 黄色性爱网网| 啊啊啊啊好疼| 久久99国产综合精品女同| 亚洲一区中文精品| AV在线资源| 国产91久久九九免费精品无码| 青青草原伊人网| 久久久影院| 精品中文字幕第一页| 四虎免费视频| 久久久久13| 久久伊人亚洲AV无码网站| 劲爆欧美人妖三区91| 欧美丰满熟妇XXXX性ppX人交| 中文字幕乱妇免费视频| 色诱中文字幕| 欧美亚洲se91| 天天做日日爱夜夜爽| 久久无码精品| 色九九九综合| 99视频自拍| 国产精品久久久久久高清无码免费看 | 久久久专区| 日日夜夜干| AV天堂国产| 黑人性欧美| 超碰精品| 操碰97| 超碰在线观看av不卡| 91 综合网| 情侣操 逼视频99| 国产 日韩 欧美 人妻 熟女 中文| 久久久久久久九九九九九九| 91痴汉| 欧美综合制服在线| 亚洲精品 大香蕉| 操逼无码一区| 视频国产欧美在线播放| 伊人网一本| 久久久性爱视频| 人妻啊啊人妻啊| 日美免费黄片| 日韩熟女乱伦中出| 久久97超碰| 久草电影网| 亚洲性少妇| 丰满少妇一区二区三区四区观看| 岛国精品视频在线观看| 白天啪啪晚上啪啪视频| 1000部熟女视频在线观看| 中国熟妇| 美女上床网站| 黑人干亚洲| 蜜桃久久久久久久久久久久| 啊啊啊啊视频免费| 色色99| 日本国产成人亚洲精品无码| 亚洲精品无码成人久久久99| av网站国产主播在线| 亚洲熟女综合一区二区| 骚日日av| 国产成人精品一区| 四虎在线播放| 久久做97| 少妇同性| 久久9亚洲| 人妻久热在线| 亚洲有薄码区日本系列中文字幕| www色色com| 久久久国产成人一区二区三区在线| 国产曰批免费观看久久久| 欧美自拍偷拍综合图片| 黑人免费福利视频| 日本欧美中文字幕| 97在线视频免费| 欧美日韩在线小说 | 国产精品人妻熟女aⅴ| 久久久久久久久久va| 国产v片在线免费观看| 国产 日韩 欧美一区| 97啪啪| 91社区伊人| 麻豆国产精品午夜视频| 亚洲国产美女久久久久| 91AV入口| 嫩草在线视频| 深夜国产一区二区三区在线看| 性色生活片久久毛片婬片免费放女人一级毛片 | 欧美色网| www.99色| 精品人体无圣光凹凸| 777AV电影| 亚洲最新a在线观看| 欧美人妻一区| 午夜婷婷| 97精品国产97久久久| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 欧美日韩国产人人| 少好三P| 欧美天天搞| 女沟厕偷窥piss小便| 都市久久精品激情亚洲| 欧美日韩在线国产在线| 美女黄频a美女大全免费皮| 狠狠操综合| 色综合中文字幕不卡| 97 视频在线| 九草九九九| 五十路三区在线| 亚洲日韩视频二区| 久久精品国产96精品亚洲拳交| 99久re热视频精品98| 天天干2019| 99国内熟女露脸视频| 亚洲图片 欧美电影| 日本不卡一区二区| 人人操人人搞人人草| 免费AV播放| 97人人爱人人做人人乐| 色色青青久久| 97操| 日韩av不卡在线观看| 欧美性猛交美女自慰91| 欧美色天堂网在线视频| 国产乱码久久久| 亚洲视频中文一区| 久久精品国产72国产精品福利| 亚洲欧美大| 日产123区精品免费观看| 偷拍盗拍亚洲色图图片| 一级@啪啪视频| 天天摸,夜夜摸| 欧美日韩亚洲电影| 夜夜骑夜夜操| 99热只有这里有精品| 白丝1区2区3区| 亚洲中文字幕久久无码精品| 国产美女口爆吞精视频| 桃花色涩综合影院| 麻豆伊人网| 在线不欧美| 亚洲 欧美日韩 另类| 久久一区,青青青青草视频在线播放| 免费国产| 成全在线观看免费观看| 欧美视频在线第3页| 九九人妻| 性爱免费视频成人| 欧美日韩国产中文精品字幕自在自线,| 久久人体一区二区| 影音先锋乱伦资源| 中文啪啪视频| 亚洲色婷婷综合久久一区二区三区| 国模无码人体一区二区三| 久久天堂婷婷网| 中出91视频| 日韩 欧美 视频 在线 一区| 久久伊人在线五区| 亚洲熟女人妻中文字幕一区二区| 97欧美性爱| 日韩欧亚中文在线| 亚洲av国产av综合av卡| 欧美在线官网| 日本色日夜干| 五月婷婷五月天| 4tube欧美女厕所| 日本Xx性爱| 91欧美性| 日韩亚洲中文字幕在线| 女人的天堂大香蕉网| 久久性爱视频99| 天天摸夜夜摸| 天天影视色香欲综合网小说| 97舔舔| 亚洲学生妹高清av| 狠狠操夜夜操蜜桃视频三区| 老熟女综合网| 激情五月综合网| 国产熟女一区二区| 婷婷色在线| 亚洲精品欧洲色| 人妻天堂综合网| 色五月av| 97日本超碰综合| av网站免费看| 色 婷97| 亚洲性爱乱操x| 九九夜精品九九在线| 久久日韩精品一区二区| 久久精品老司| 国产一进一出视频网站| 亚洲欧洲第二视频在线观看色图| 天天操天天干一区二区| 91国精产品| 强奸a片网| 国产一线二线三线av| 中文字幕啊啊啊在线观看视频| 中文字幕在线观| 高树玛利亚无码流出| 日韩欧美午夜一区二区| 久久人妇| 在线观看av区| 美欧色综合| 欧美日韩淫加| 欧亚成人| 中国91AV| 日日日啊啊啊| 曰本人妻人人澡人人夹| 久操免费电影| 嗯啊啊啊轻点视频| 日本性爰一道本| 自拍啪啪视频| 男人天堂站| a v网站在线播放| 亚洲人综合19| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 九九九久千久久激情蜜桃在线看| 蜜乳视频网站| 久久精品六区| 嗯啊啊啊轻点视频 | 久久国99999| 欧美 亚洲 偷拍自拍| 国产高清自拍| 免费亚洲国产精品久久一区| 婷婷大香蕉| av在线观看不卡网站| 欧美在线电影| 国产精品。| 丁香五月偷拍| 涩涩这里只有精品视频| 欧美亚洲手机在线| 欧美少妇性乱| 黄色网址久久精品欧美喷水| 日本免费人成视频播放120秒| 老司机香蕉| 韩国国产欧美情侣视频在线| 六月婷婷综合| 国产日韩欧美亚洲精品95| 日本大香蕉综合网| 亚洲自拍欧美色综合| av中文字幕在线熟女| 中文字幕精品一区二区精| 淫荡网址| 日本ZZ高免费A级视频| 91久久18禁| 久久极品一区二区| 在线观看精品国产免费| www.亚洲黄色| 好吊色综合| 亚洲自拍小说| 日韩视频小说在线观看| 中文字幕日韩国产传媒欧美精品| 人人操人人操草草| 极品综合| av影片在线观看不卡| 黑人精品欧美一区二区蜜桃| AV在线资源| 国产精品久久久久绯色| 超碰狠狠操| 久久免费精品视频免一| 特级特黄一级毛片免费| 欧美91在线| 男人天堂资源| 欧美日韩亚洲少妇寂寞影院正在播放 | 99色热国产视频精品| 日语五十路和六十路亚洲国产精品 | 国产精品夜夜| 日韩欧美麻豆 | 狠狠干妹子| 中文字幕久久亚州无码| 夜夜福利| 亚洲男人天堂2016| 久久偷拍人| 色婷婷成人综合| 久九九九九九九热| 欧美中文字幕男人天堂久久精品 | 中文字幕在线观看第二页| 精品妇女一区二区三区| 色五月av| 国产刺激视频| 啊啊啊好爽快点啊啊啊嗯嗯| 色综合色综合网| 99热超碰在线| 噜噜在线| 熟女人妻av在线资源,黄色的资源| 亚洲高清在线| 亚洲精品男人的天堂| 夂久色| 亚洲情色五月天 | 天天插天天舔舔天天干| 91九久| 久久111| 91精品国久久久久久无码| 另类图片欧美激情综合| 九九九九九九九精品视频| 青草av在线| 色婷五月天| 久久久久13| 大香蕉在线86| A男人的天堂| 久久久一二三四区| 中文字幕激情小说|