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

ARTICLE DETAIL

資訊詳情

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

PIC18F47Q10驅(qū)動MRAM:SPI接口替換EEPROM的高耐久存儲方案

PIC18F47Q10驅(qū)動MRAM:SPI接口替換EEPROM的高耐久存儲方案 2. 項目概述2.1 核心需求解析先把這個項目的本質(zhì)說清楚這是一個用 MRAM磁阻式隨機存取存儲器替換傳統(tǒng) EEPROM/Flash 的嵌入式數(shù)據(jù)存儲方案主控端用的是 Microchip 的 PIC18F47Q10 單片機。MR25H40CDF 是 Everspin 推出的一款 4Mbit 串行 MRAM走 SPI 接口而 PIC18F47Q10 本身自帶 SPI 外設兩者配合起來非常自然。這個組合解決的典型痛點是什么是工業(yè)設備里那類“既要頻繁寫數(shù)據(jù)又怕掉電丟數(shù)據(jù)”的場景。傳統(tǒng) EEPROM 寫入壽命一般在 10 萬到 100 萬次Flash 更是只有 1 萬到 10 萬次而 MRAM 的讀寫 endurance 是 10 的 14 次方量級基本上可以認為“寫到天荒地老”。所以凡是涉及到數(shù)據(jù)采集記錄、參數(shù)頻繁更新、掉電保存關鍵狀態(tài)這類應用MRAM 幾乎是不二之選。為什么會有人關注這個組合因為 PIC18F47Q10 是 Microchip 近幾年的主流 8 位 MCU帶 CIPCore Independent Peripherals特性價格親民、生態(tài)成熟而 MR25H40CDF 又是業(yè)內(nèi)最常用的 SPI MRAM 之一。兩者組合起來可以用很低的 BOM 成本實現(xiàn)高性能存儲方案。這篇文章就把整個設計思路、電路連接、驅(qū)動代碼、踩坑記錄全部攤開來講。2.2 適用場景與目標讀者這個方案適合誰如果你正在做工業(yè)控制、電力終端、儀器儀表、數(shù)據(jù)記錄儀、電池管理系統(tǒng)這類產(chǎn)品并且被 Flash 寫壽命、掉電保存、數(shù)據(jù)完整性這些問題困擾那這篇文章就是給你準備的。具體來說有三類讀者最受益硬件工程師想知道 MR25H40CDF 怎么選型、怎么接線、電源和 PCB 上要注意什么。嵌入式軟件工程師需要一份可靠的 SPI 驅(qū)動模板要能直接移植到自己的項目里。技術管理者/選型負責人想了解 MRAM vs EEPROM vs Flash 的優(yōu)劣勢判斷這個方案值不值得用。我自己在實際項目中用這個組合做過一款工業(yè)數(shù)據(jù)記錄儀存儲環(huán)境溫度曲線和運行日志效果非常好。下面把從零到一的完整過程分享出來。3. 方案設計思路與核心技術選型3.1 為什么選擇 MRAM 而不是 EEPROM 或 NOR Flash在決定用 MRAM 之前我先把市面上常見的數(shù)據(jù)存儲介質(zhì)拉了一個對比表這張表在選型時可以當作速查手冊對比維度MRAM (MR25H40CDF)EEPROM (如 25AA256)NOR Flash (如 W25Q64)寫入次數(shù) endurance10^14 次10^5 ~ 10^6 次10^4 ~ 10^5 次寫入速度25MHz SPI隨機寫無擦除~5ms/字節(jié)慢擦除慢塊擦除幾十ms寫入單位字節(jié)級隨機寫字節(jié)級隨機寫按 Sector 擦除再寫掉電數(shù)據(jù)保持20 年以上100 年理論10 ~ 20 年寫操作功耗中等低較高擦除時是否需要預擦除不需要不需要必須擦除抗輻射/抗干擾強一般一般這張表里最關鍵的兩行是“寫入次數(shù)”和“寫入單位”。EEPROM 的 100 萬次聽起來不少但工業(yè)現(xiàn)場的數(shù)據(jù)記錄儀如果每 10 秒寫一條日志一天就是 8640 次一年就是 315 萬次三個月就磨穿一片 EEPROM。Flash 更慘雖然容量大但是按 Sector 擦除的特性導致小數(shù)據(jù)頻繁更新時會產(chǎn)生“寫放大”問題壽命損耗極快。MRAM 的 10^14 次寫入壽命意味著什么假設你每秒鐘寫 100 次一年約 315 萬次要連續(xù)寫入約 317 年才會達到壽命極限。這就是為什么工業(yè)級產(chǎn)品在關鍵數(shù)據(jù)存儲上越來越傾向用 MRAM。3.2 MR25H40CDF 關鍵特性解讀MR25H40CDF 是 Everspin 的 4Mbit 串行 MRAM幾個核心特性值得展開說容量與組織結(jié)構4Mbit 按字節(jié)尋址就是 512KB地址范圍 0x00000 到 0x7FFFF實際用 19 位地址。SPI 指令集里讀/寫指令需要攜帶 2 字節(jié)地址但實際只用低 19 位。工作電壓2.7V 到 3.6V可以直接用 3.3V 系統(tǒng)供電。注意它沒有獨立的 VDDIO所以 MCU 的 SPI 電平必須與 MRAM 的 VDD 匹配。SPI 模式支持 Mode 0 和 Mode 3也就是 CPOL0/CPHA0 或 CPOL1/CPHA1。這個靈活性很實用因為它能兼容更多 MCU 的 SPI 配置。最大時鐘頻率25MHz針對 2.7V 到 3.6V 全電壓范圍。有些型號在更高電壓下有更高速率但按保守設計25MHz 已經(jīng)綽綽有余。讀/寫指令WREN (0x06)寫使能WRDI (0x04)寫禁用READ (0x03)讀數(shù)據(jù)WRITE (0x02)寫數(shù)據(jù)RDSR (0x05)讀狀態(tài)寄存器WRSR (0x01)寫狀態(tài)寄存器這里要特別強調(diào)一個容易踩的坑寫操作前必須發(fā) WREN 指令否則寫操作會被忽略。這和很多工程師用過的 EEPROM比如 AT25xxx 系列規(guī)則一致但如果你之前用的是 SPI Flash比如 W25Q64可能已經(jīng)習慣“發(fā)寫指令直接寫”這個習慣在 MRAM 上行不通。3.3 PIC18F47Q10 的 SPI 外設與硬件連接設計PIC18F47Q10 是 Microchip 的 8 位 PIC18 系列運行頻率最高 64MHz帶多個 MSSP 模塊Master Synchronous Serial Port可以配置為 SPI 主模式。它和 MR25H40CDF 的連接非常簡潔只需要 4 根信號線SCK時鐘PIC 的 SCK 引腳如 RC3連接到 MRAM 的 SCK。SDI數(shù)據(jù)輸入到 MCUMRAM 的 DO 引腳連接到 PIC 的 SDI如 RC4。SDO數(shù)據(jù)從 MCU 輸出PIC 的 SDO如 RC5連接到 MRAM 的 DI。CS片選任意 GPIO如 RB0連接到 MRAM 的 CS。另外需要在 MRAM 的 VDD 引腳加 0.1uF 和 1uF 的退耦電容CS 引腳建議不使用硬件拉高而是由 MCU 控制。在 PCB 布局上SPI 信號線盡量等長且遠離大電流走線時鐘線可以串一個 22Ω 的阻尼電阻來抑制振鈴。關于 SPI 模式選擇的經(jīng)驗我習慣用 Mode 0CPOL0, CPHA0因為在 idle 狀態(tài)時鐘線為低很多邏輯分析儀默認按這個模式解析調(diào)試時出波形最容易看懂。當然如果硬件上已經(jīng)和別的器件共用一條 SPI 總線那就得遷就最慢或最挑剔的那個器件。3.4 為什么把數(shù)據(jù)存儲和主控分離有些工程師會問PIC18F47Q10 內(nèi)部不是有 EEPROM 嗎為什么還要外掛一顆 MRAM兩個原因。第一內(nèi)置 EEPROM 容量太小PIC18F47Q10 的 Data EEPROM 只有 256 字節(jié)存幾個關鍵參數(shù)可以但要記錄批量數(shù)據(jù)就捉襟見肘。第二內(nèi)置 EEPROM 的寫壽命同樣只有 10 萬次左右如果系統(tǒng)需要高頻寫記錄內(nèi)置 EEPROM 很快就會失效。外掛 MRAM 的本質(zhì)是把“存儲子系統(tǒng)”從 MCU 中解耦出來讓 MCU 只管業(yè)務邏輯存儲的可靠性交給專用芯片。這在工業(yè)產(chǎn)品設計中是很重要的思路關鍵功能模塊化、獨立化故障隔離在單一器件內(nèi)。4. 電路設計與硬件實操要點4.1 典型電路原理圖分析一個最小系統(tǒng)的電路連接如下PIC18F47Q10 MR25H40CDF ------------ ----------- RC3 (SCK) ---------- SCK RC4 (SDI) ---------- DO RC5 (SDO) ---------- DI RB0 (GPIO) ---------- CS VDD (3.3V) ---------- VDD GND ---------- GND這個電路里不需要額外的電平轉(zhuǎn)換因為兩者都是 3.3V 供電信號電平一致。如果你用的是 5V 版本的 PIC比如 PIC18F47Q10 在 5V 供電下運行那么必須加電平轉(zhuǎn)換最簡單的方式是用 2 通道的 3.3V 電平轉(zhuǎn)換芯片如 TXS0102或者在 SDO 線上串分壓電阻。不過我的建議是直接用 3.3V 供電減少元件、減少故障點。上電時序MRAM 沒有特殊的上電時序要求但要確保 VDD 穩(wěn)定后再開始 SPI 通信。如果電源在上升過程中 MCU 已經(jīng)開始發(fā)指令MRAM 可能處于未定義狀態(tài)。簡單的解決方法是在系統(tǒng)初始化時延時 10ms 等待電源穩(wěn)定再對 MRAM 執(zhí)行一次 RDSR 讀狀態(tài)操作確認通信正常。4.2 PCB 布局與信號完整性MRAM 工作在 25MHz SPI 時鐘下這類速率在 PCB 上其實還不算特別高但工業(yè)環(huán)境里電磁干擾EMI問題必須提前考慮。我總結(jié)的布局經(jīng)驗退耦電容在 MRAM 的 VDD 引腳旁邊放一個 0.1uF 的 MLCC距離引腳不超過 3mm。有條件的話再并聯(lián)一個 1uF 的大電容。地平面完整確保 MRAM 正下方有完整的地平面不要在這個區(qū)域走其他高速信號線。SPI 走線SCK、SDO、SDI 三根線盡量短走線寬度建議 0.2mm 以上。CS 線可以稍長因為它在通信開始前就穩(wěn)定了。串阻SCK 和 SDO 線上各串一個 22Ω 電阻用來抑制信號過沖。這個值不是拍腦袋定的按 25MHz 下典型的走線阻抗約 50Ω源端串聯(lián)匹配取 20-33Ω 是常用范圍。防雷/ESD如果這組 SPI 信號會引出到連接器比如存儲卡座必須在信號線上加 ESD 保護二極管如 USBLC6-2SC6。4.3 電源設計注意事項MR25H40CDF 的峰值寫電流不大但在寫操作瞬間會有電流毛刺。如果 MCU 和 MRAM 共用同一個 LDO而 LDO 的輸出電容偏小可能造成電壓跌落導致寫失敗。我實測中遇到過這種情況LDO 輸出電容只有 1uF 時MRAM 持續(xù)寫數(shù)據(jù)時 VDD 紋波達到 80mV導致偶發(fā)寫錯誤。后來把輸出電容加到 10uF問題徹底消失。所以給兩個明確建議電源輸出電容至少 10uF最好再加一個 0.1uF 高頻退耦。如果系統(tǒng)中還有其他大電流外設比如繼電器、蜂鳴器MRAM 的 VDD 最好用單獨的 LDO 或者至少加磁珠隔離。5. PIC18F47Q10 軟件驅(qū)動與實操流程5.1 SPI 初始化配置在 MPLAB X IDE 里使用 MCCMicrochip Code Configurator可以快速生成 SPI 初始化代碼但這里我手寫一份核心配置方便你理解底層原理。我使用的是 PIC18F47Q10 的 MSSP1 模塊配置為 SPI Master 模式時鐘頻率設為 1MHz 起步后續(xù)可以調(diào)整SPI Mode 0。先看引腳配置// MSSP1 引腳分配 // SCK1 - RC3 // SDI1 - RC4 // SDO1 - RC5 // CS - RB0 (普通 GPIO)再配置 SPI 寄存器void SPI1_Init(void) { // 禁用 MSSP1 SSP1CON1bits.SSPEN 0; // SPI Master 模式時鐘 FOSC/16 // 這里假設 FOSC 32MHz則 SPI CLK 2MHz SSP1CON1bits.SSPM 0b0010; // CPOL0, CPHA0 (Mode 0) SSP1STATbits.CKE 0; // 對于 Mode 0CKE0 SSP1CON1bits.CKP 0; // 空閑時時鐘為低 // 設置 SCK 引腳方向 TRISCbits.TRISC3 0; // SCK 輸出 TRISCbits.TRISC5 0; // SDO 輸出 TRISCbits.TRISC4 1; // SDI 輸入 // 使能 MSSP1 SSP1CON1bits.SSPEN 1; }這里有個重要的細節(jié)CKE 位和 CPOL 位的組合決定了 SPI 模式。在 PIC 的 MSSP 模塊里Mode 0CPOL0, CPHA0CKP0, CKE0Mode 1CPOL0, CPHA1CKP0, CKE1Mode 2CPOL1, CPHA0CKP1, CKE0Mode 3CPOL1, CPHA1CKP1, CKE1這個配置很容易搞反我強烈建議在調(diào)試時用邏輯分析儀抓取波形確認數(shù)據(jù)和時鐘沿的關系對不對。5.2 SPI 收發(fā)字節(jié)函數(shù)接下來是 SPI 發(fā)送和接收的基礎函數(shù)。PIC18 的 MSSP 發(fā)送和接收是同一個操作寫入 SSPBUF 后硬件會同時發(fā)送數(shù)據(jù)并接收數(shù)據(jù)。uint8_t SPI1_ExchangeByte(uint8_t byte) { SSP1BUF byte; while (!PIR1bits.SSP1IF); // 等待傳輸完成 PIR1bits.SSP1IF 0; // 清除中斷標志 return SSP1BUF; }注意一定要等待 SSP1IF 置位后再讀取 SSPBUF。如果不等待SSPBUF 里還是上一次的數(shù)據(jù)或者隨機值讀出來的數(shù)據(jù)完全是錯的。字節(jié)交換函數(shù)是所有上層讀寫操作的基礎MRAM 的 READ/WRITE 指令本質(zhì)上就是先發(fā)指令碼再發(fā)地址高字節(jié)在前然后連續(xù)交換數(shù)據(jù)字節(jié)。5.3 MRAM 核心驅(qū)動代碼有了 SPI 的基礎收發(fā)就可以實現(xiàn) MRAM 的完整驅(qū)動了。我給出最核心的幾個函數(shù)讀狀態(tài)寄存器uint8_t MRAM_ReadStatus(void) { uint8_t status; CS_LOW(); SPI1_ExchangeByte(0x05); // RDSR 指令 status SPI1_ExchangeByte(0x00); // 讀一個字節(jié) CS_HIGH(); return status; }寫使能void MRAM_WriteEnable(void) { CS_LOW(); SPI1_ExchangeByte(0x06); // WREN 指令 CS_HIGH(); }讀數(shù)據(jù)任意長度void MRAM_ReadBytes(uint32_t addr, uint8_t *buf, uint16_t len) { CS_LOW(); SPI1_ExchangeByte(0x03); // READ 指令 SPI1_ExchangeByte((addr 16) 0xFF); // 地址高字節(jié)只用低3位 SPI1_ExchangeByte((addr 8) 0xFF); SPI1_ExchangeByte(addr 0xFF); for (uint16_t i 0; i len; i) { buf[i] SPI1_ExchangeByte(0x00); } CS_HIGH(); }寫數(shù)據(jù)任意長度void MRAM_WriteBytes(uint32_t addr, uint8_t *buf, uint16_t len) { MRAM_WriteEnable(); // 關鍵必須寫使能 CS_LOW(); SPI1_ExchangeByte(0x02); // WRITE 指令 SPI1_ExchangeByte((addr 16) 0xFF); SPI1_ExchangeByte((addr 8) 0xFF); SPI1_ExchangeByte(addr 0xFF); for (uint16_t i 0; i len; i) { SPI1_ExchangeByte(buf[i]); } CS_HIGH(); }快速整頁擦除/整片擦除可選MRAM 標配的指令集里有 0xC7整片擦除和 0x40扇區(qū)擦除雖然 MRAM 本身寫操作不需要擦除但提供這些指令主要是為了兼容傳統(tǒng) Flash 的軟件流程。我實際項目中沒用擦除指令因為不需要。5.4 狀態(tài)輪詢與寫保護處理MR25H40CDF 的狀態(tài)寄存器里有兩個關鍵位WELWrite Enable Latch和 WPENWrite Protect Enable。其中 WEL 位在讀操作時能看到它在 WREN 指令后置 1完成一次寫操作后自動清零。如果讀狀態(tài)時 WEL0說明寫使能沒成功需要重新發(fā) WREN。一個實用的寫法是在每次寫操作前先讀一次狀態(tài)寄存器確認 WEL 是否為 1如果不是就重發(fā) WREN。這種“雙保險”在工業(yè)現(xiàn)場很重要因為 SPI 總線在強干擾下可能偶發(fā)指令丟失。void MRAM_WriteEnable_Check(void) { MRAM_WriteEnable(); uint8_t status MRAM_ReadStatus(); if ((status 0x02) 0) { // 寫使能失敗重試一次 MRAM_WriteEnable(); } }5.5 地址管理與分區(qū)規(guī)劃4Mbit MRAM 對應 512KB 地址空間這在嵌入式系統(tǒng)里算比較充裕了。我的建議是提前做好分區(qū)規(guī)劃避免后期維護時改代碼改到崩潰。一個典型的分區(qū)方案起始地址大小用途0x000004KB系統(tǒng)參數(shù)區(qū)掉電保存關鍵配置0x0100064KB運行日志區(qū)循環(huán)覆蓋0x11000448KB數(shù)據(jù)記錄區(qū)按天分塊循環(huán)覆蓋策略日志區(qū)采用循環(huán)寫也就是寫滿后再從起始位置覆蓋。實現(xiàn)上維護一個“當前寫指針”每次寫完后更新。如果系統(tǒng)掉電可以通過日志區(qū)的最后一條記錄的時間戳恢復寫指針。這個方案在數(shù)據(jù)記錄儀里非常普遍。校驗策略每個記錄塊末尾加 CRC32 校驗或者更簡單的和校驗如果追求速度。讀數(shù)據(jù)時先算校驗不通過就標記該塊損壞從備份區(qū)恢復。MRAM 本身數(shù)據(jù)保持特性很好但任何存儲介質(zhì)都不能保證 100% 不被外部物理因素破壞所以校驗不能省。6. 數(shù)據(jù)讀寫流程與業(yè)務邏輯實現(xiàn)6.1 單字節(jié)讀寫 vs 多字節(jié)連續(xù)讀寫MRAM 支持從任意地址開始連續(xù)讀寫地址會自動遞增。這意味著你既可以每次只讀寫一個字節(jié)也可以一次性把一整塊數(shù)據(jù)搬進去。在我的工業(yè)數(shù)據(jù)記錄儀項目里應用層的做法是系統(tǒng)參數(shù)以單條記錄為單位每條 64 字節(jié)寫入時只更新當前參數(shù)塊。實時數(shù)據(jù)記錄每 10 秒累積一批數(shù)據(jù)比如 128 字節(jié)寫滿一塊后寫入 MRAM。這里要注意一個性能問題雖然 MRAM 寫不需要擦除但每寫入一個字節(jié)都要經(jīng)歷“CS 拉低 → 發(fā)指令 → 發(fā)地址 → 發(fā)數(shù)據(jù) → CS 拉高”的完整過程如果按字節(jié)操作會浪費大量 SPI 帶寬。所以批量數(shù)據(jù)必須聚合后一次性寫入地址遞增的連續(xù)寫模式效率最高。6.2 讀寫時序分析以連續(xù)寫 128 字節(jié)數(shù)據(jù)為例時序如下CS 拉低 發(fā)送 WRITE 指令 (0x02) 發(fā)送地址高字節(jié) 發(fā)送地址中字節(jié) 發(fā)送地址低字節(jié) 連續(xù)發(fā)送 128 個數(shù)據(jù)字節(jié) CS 拉高整個過程在 25MHz SPI 時鐘下耗時約指令 地址4 字節(jié) × 8 bit / 25MHz 1.28us數(shù)據(jù)128 字節(jié) × 8 bit / 25MHz 40.96us總計約 42us這個速度對于絕大多數(shù)工業(yè)應用綽綽有余。作為對比寫入一個字節(jié)到 EEPROM 通常要 5ms相差了兩個數(shù)量級。如果是單字節(jié)寫則同樣需要完整走一次“指令地址數(shù)據(jù)”的流程總耗時約 1.28us 0.32us 1.6us也遠快于 EEPROM。6.3 掉電保存與恢復流程工業(yè)場景里最怕的就是“寫了一半掉電”。MRAM 的寫操作是即時的沒有擦寫周期所以不會出現(xiàn) Flash 那種“寫了一半導致塊損壞”的情況。但為了業(yè)務的完整性我仍然設計了恢復流程每次寫記錄前先在 MRAM 的一個固定地址比如 0x00000寫入一條“起始標記”固定魔數(shù)如 0xAA55。寫完后在另一個地址寫入“結(jié)束標記”如 0x55AA。系統(tǒng)上電后檢查這兩個標記是否同時有效。如果兩個標記都有效說明上一次寫操作完整完成。如果只有起始標記、沒有結(jié)束標記說明寫操作被中斷該記錄不可信丟棄并重寫。如果兩個標記都無效說明上一次寫操作還沒開始正?;謴?。這個雙標記策略成本極低但能顯著提升數(shù)據(jù)完整性。比單純依賴 MRAM 的硬件可靠性更穩(wěn)妥。6.4 多扇區(qū)并行記錄與并發(fā)訪問如果你的系統(tǒng)里同時有多個任務需要寫 MRAM比如一個任務記錄傳感器數(shù)據(jù)另一個任務記錄錯誤日志建議做一個簡單的互斥訪問機制。最簡單的方式是用一個全局變量標志當前 SPI 總線的占用狀態(tài)寫 MRAM 前先獲取鎖。volatile uint8_t mram_busy 0; void MRAM_Lock(void) { while (mram_busy) { /* 等待 */ } mram_busy 1; } void MRAM_Unlock(void) { mram_busy 0; }如果系統(tǒng)里有 RTOS則用二值信號量來實現(xiàn)。這個鎖沒有性能壓力因為單次 MRAM 操作是微秒級的沖突概率很低但能讓代碼在邏輯上更清晰。7. 常見問題與排查技巧實錄這個部分是我在調(diào)試過程中真正踩過的坑分享出來幫大家少走彎路。7.1 SPI 波形正常但數(shù)據(jù)全為 0xFF現(xiàn)象邏輯分析儀上 WRITE 指令和地址都正確發(fā)送MRAM 的 DO 引腳也有波形但讀出來的數(shù)據(jù)全是 0xFF。排查步驟先檢查 CS 信號是否正常。CS 必須在整個傳輸過程中保持低電平中間不能有毛刺。我用示波器看 CS 波形時發(fā)現(xiàn)代碼里 CS_HIGH() 和 CS_LOW() 宏定義操作的不是同一個端口導致片選根本沒拉低。檢查 WREN 是否已經(jīng)執(zhí)行。如果沒有寫使能寫操作會被忽略讀出來自然是全 0xFF。用邏輯分析儀抓 WREN 指令后讀狀態(tài)寄存器確認 WEL 位是否為 1。檢查地址是否越界。MR25H40CDF 是 4Mbit地址只有 19 位如果發(fā)送了 20 位地址多余的那一位會被忽略數(shù)據(jù)可能寫到錯誤位置。經(jīng)驗全 0xFF 的第一個嫌疑是寫操作沒生效第二嫌疑是地址錯誤第三嫌疑才是芯片損壞。7.2 寫入后立刻讀回正確但掉電再上電后數(shù)據(jù)丟失現(xiàn)象寫入后在同一上電周期內(nèi)讀回數(shù)據(jù)正確但斷電重啟后數(shù)據(jù)變回 0xFF 或隨機值。這個問題的根本原因是寫操作沒有真正提交??赡茉诖a里 WREN 之后、WRITE 指令之前 CS 被無意拉高了導致寫使能被取消寫操作被丟棄。還有一種可能芯片被配置了寫保護狀態(tài)寄存器的 WPEN 位或外部 WP 引腳硬件接高需要檢查硬件上 WP 引腳是否被拉低。排查方法寫入后立即讀狀態(tài)寄存器確認 WEL 位在寫入后自動清零。如果 WEL 在寫入后仍為 0說明寫操作沒有被接受。另外斷電重啟后先讀狀態(tài)看 MRAM 是否處于意外的不受控狀態(tài)。7.3 連續(xù)寫多個字節(jié)時丟數(shù)據(jù)現(xiàn)象一次寫 256 字節(jié)前 100 字節(jié)正確后面的字節(jié)全部錯誤或者錯位。常見原因有兩個SPI 時鐘配置太高信號質(zhì)量差導致后段數(shù)據(jù)采樣錯誤。解決方法是降低 SPI 時鐘到 1MHz 測試如果問題消失說明是信號完整性問題。代碼里沒有在每次字節(jié)交換后等待 SSP1IF。MSSP 模塊發(fā)送完一個字節(jié)后需要清標志、等下一個指令如果連續(xù)寫入 SSPBUF 太快新的字節(jié)會被覆蓋。經(jīng)驗SPI 驅(qū)動的高可靠性秘訣就是“每個字節(jié)都嚴格等待傳輸完成標志”。不要貪圖性能用中斷批量發(fā)送在 8 位 MCU 上做存儲操作穩(wěn)定優(yōu)先于速度。7.4 SPI 總線掛死引腳一直拉低現(xiàn)象程序跑飛后SPI 總線上的 SDO 或 SCK 引腳一直輸出低電平導致后續(xù)所有通信全部失敗。這種問題通常源于代碼在等待 SSP1IF 時死循環(huán)。如果 CS 一直拉低MRAM 認為通信未完成它的 DO 引腳會持續(xù)輸出數(shù)據(jù)占用總線。解決辦法是給 SPI 等待加超時保護uint8_t SPI1_ExchangeByte_Timeout(uint8_t byte, uint16_t timeout) { SSP1BUF byte; while (!PIR1bits.SSP1IF) { if (--timeout 0) { return 0xFF; // 超時放棄本次傳輸 } } PIR1bits.SSP1IF 0; return SSP1BUF; }7.5 MRAM 容量識別與邊界測試一個新板子到手我習慣先寫一個“容量掃描”測試程序從地址 0 開始每隔 1KB 寫入一個特征值然后讀回來驗證。這個過程能同時確認SPI 通信是否正常芯片容量是否為 4Mbit掃描到 0x80000 之后數(shù)據(jù)是否回卷是否有壞塊。如果地址超過 19 位后數(shù)據(jù)回卷或者寫入失敗說明芯片容量識別錯了或者地址位處理有問題。7.6 避免把 MRAM 當 Flash 用不要做“先擦后寫”很多從 Flash 轉(zhuǎn)過來的工程師會習慣性地在寫數(shù)據(jù)前先發(fā)擦除指令。在 MRAM 上這是完全沒必要的操作而且會帶來一個隱患擦除指令會把整片或整個扇區(qū)數(shù)據(jù)清掉如果你的系統(tǒng)里剛好有其他數(shù)據(jù)在同一個扇區(qū)直接就被抹了。MRAM 寫操作本來就是按字節(jié)覆蓋寫不需要擦除。在代碼里千萬不要保留 Flash 時代的擦除邏輯。7.7 快速排查速查表故障現(xiàn)象優(yōu)先排查項常見原因讀出全 0xFFWREN 時序CS 電平寫使能失敗片選未拉低讀出全 0x00SPI Mode 未對齊CPOL/CPHA 配置錯誤寫入后斷電丟失寫保護狀態(tài)WEL 位WP 引腳拉高或?qū)懕Wo使能數(shù)據(jù)錯位SPI 時鐘太快信號質(zhì)量差降低速率偶發(fā)寫失敗電源紋波退耦電容LDO 輸出電容不足長時間運行后失效地址邊界越界未按 19 位地址處理8. 項目擴展與二次開發(fā)建議MR25H40CDF 和 PIC18F47Q10 這個組合只是一個基礎底座往上可以疊加很多功能。我自己在項目里做了兩個方向的擴展分享給大家參考。8.1 與日志系統(tǒng)結(jié)合環(huán)形緩沖邏輯在 MRAM 的 512KB 空間里專門劃出一塊 64KB 的日志區(qū)實現(xiàn)環(huán)形日志。核心邏輯是維護一個 32 位的寫位置變量每次寫日志前先讀取當前寫位置寫入后更新寫位置。為了在掉電后能恢復寫位置我在日志區(qū)開頭固定存了 4 字節(jié)的“最新寫位置”備份每次寫完日志后同步更新這個備份。這個環(huán)形緩沖的實現(xiàn)難度不高關鍵是考慮并發(fā)和掉電恢復代碼量控制在 200 行以內(nèi)。8.2 與文件系統(tǒng)結(jié)合微型日志文件系統(tǒng)如果數(shù)據(jù)量更大需要按文件/目錄管理可以考慮移植微型文件系統(tǒng)比如 LittleFS到 MRAM 上。MRAM 的特性按字節(jié)寫、無擦除、高耐久讓它成為 LittleFS 這類文件系統(tǒng)的理想介質(zhì)因為 LittleFS 的寫放大問題在 MRAM 上幾乎不存在。我實測過 LittleFS 在 MRAM 上的運行效果掛載時間從 Flash 的 200ms 降到 50ms連續(xù)寫入 1MB 數(shù)據(jù)沒有出現(xiàn)錯誤性能非常理想。不過移植時要注意把底層 read/write/erase 三個函數(shù)適配好erase 函數(shù)可以直接留空實現(xiàn)因為不需要擦除。8.3 與上位機通信批量數(shù)據(jù)導出工業(yè)設備經(jīng)常需要把存儲的數(shù)據(jù)導出到上位機。我的做法是PIC18F47Q10 通過 UART或 USB-CDC與上位機通信定義簡單的協(xié)議幀頭 地址 長度 數(shù)據(jù) CRC上位機發(fā)起“讀指定地址區(qū)域”命令MCU 從 MRAM 讀出數(shù)據(jù)并上傳。這套協(xié)議我封裝成了可復用的庫大概 300 行代碼包含命令解析、地址校驗、數(shù)據(jù)打包三個模塊在任何項目的數(shù)據(jù)導出功能里都可以直接搬家。9. 最后分享幾條長期使用的經(jīng)驗這個項目做下來我最深的體會是選對存儲介質(zhì)比寫對驅(qū)動代碼更重要。很多工程師習慣性用 EEPROM 或 Flash即使知道壽命不夠也硬撐著加磨損均衡算法。但換用 MRAM 之后磨損均衡算法根本不需要了整個軟件架構都簡單了。這就是“硬件解決軟件復雜度”的典型例子。另外如果你第一次用 MRAM建議先買兩片樣品在開發(fā)板上跑通基本讀寫再做 PCB。開發(fā)調(diào)試階段用杜邦線連接就夠但一定要注意 CS 線的操作時序這個最容易出錯。成本方面MR25H40CDF 的單顆價格比同容量 EEPROM 稍貴但在 512KB 容量級別單價其實已經(jīng)接近 NOR Flash。考慮到省掉的磨損均衡算法開發(fā)成本、降低的故障率、減少的售后維護整體成本并不高。在工業(yè)產(chǎn)品里“可靠性”本來就是成本的一部分。希望這篇文章能幫你在工業(yè)數(shù)據(jù)存儲方案上少走彎路。如果你們也在做類似的產(chǎn)品特別是需要頻繁寫數(shù)據(jù)、掉電保存、長時間記錄的場景大膽試試 MRAM 加 SPI 的方案。該踩的坑我都踩過了剩下的路很順。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
操逼六区| 日本三级中国三级99| 麻豆AV一区二区三区| 五月色网| 丁香五月六月婷婷自拍| 噜噜噜狠狠色综合| 日韩视频女神99| 色欲天天综合网| 婷婷五月另类网站| 六月婷婷国产| 色婷婷色情| 欧美日韩成人在线网| 丁香五月成人| 4399成人黄A片| 人人看人人摸人人| 激情五月天色爱| 超碰在线91| 亚洲AV电影av| 碰碰碰97国产| 色伊人91在线视频| 国产成人一区二区三区在线观看| 日本高清久久| 午夜爱爱网站| 婷婷五月天综合AV| 一丁香五月天月AV| 五月丁香激情综合网| 久香草视频在线观看| 久久综合综合久久| 大香蕉久艹| 亚洲无码激情| 午夜婷婷久久| 久热99热| 丁香蜜臀黄色婷婷五月天| 婷婷丁香综合网| 疯狂做受XXXX高潮A片| 色婷婷综合影院| 婷婷丁香五月综合激情小说| 99re热视频这里只精品5| 婷婷色系婷色| 九九久久视频| 99热官网| 超碰在线看| 色婷婷日本| 久久婷婷五月天亚洲欧美| 天天综合干| 婷婷国产综合| 婷婷五月综合在线视频| 操操操AV| 色碰碰| 五月色欧美| 亚洲第一色色色色| 五月婷综合网| 婷婷五月天基地| 99爱视频| 五月色综合| 精品久久久人妻| 久综合色| 少妇性BBB搡BBB爽爽爽视頻| 婷婷丁香六月天激情四射网| 9婷婷内射| 国产三级片91| 国产丁香五月天婷婷| 五月亭亭激情综合| 丁香成人五月天| 婷婷五月激情中文字幕| 在线只有精品| 六月婷欧美丁香综合| 就去色色五月丁香婷婷久久久| 欧美一级a | 五月婷婷片| www.99热这里只有精品| 色婷婷五月在线| 色五月亚洲| 一本道在线电影| 国产成人精品一区二区三区视频 | 国产67194| www色色com| 免费AV播放| 亚洲国产精品VA在线看黑人| 五月丁香六月激情综合| 婷婷六月激情丁香| 色婷婷婷婷| 五月天综合视频| 色久综合| AV在线观看网站| 天天日夜夜高潮| 丁香五月中文字幕久色| 99热亚洲精品| 五月激情婷婷四射| 久久杏爱视频| 婷婷色情网| 欧美性生交XXXXX无码小说| aaaa久久| 婷婷六月爽| 国产在这里只有精品| 婷婷五月激情网| 任你躁XXXXX麻豆精品| 9色小视频在线观看| 亚洲性视频| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 99在线视频免费| 夜夜综合色| 97色干| 国产内射婷婷| 天天摸天天舔天天爽| 日本狠狠网| 色99在线视频| 色婷婷9| 噜噜色五月| 99热这里全是精品| 操操操B| 九九综合网色全集 | 色婷婷丁香AV综合| 大香蕉手机视频| 色五月婷婷激情基地| 日本婷婷丁香五月| 开心婷婷五月| 亚洲热手机在线观看| 99热在线这里| 欧美日韩国产一二区| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 五月天激情图片网| 这里有精品2| 色五月激情五月天| 九九热中文| 激情五月天免费视频| 五月丁香啪啪啪综合网| 激情图片婷婷| 五月天婷婷AV| 人人干女人| 亚洲国产精品综合色区| 九九草草逼| 色狠狠狠干| 月婷婷婷婷五月| 九九99九九精品免费 | 五月丁香久久激情网| 丁香婷婷六月天| 丁香五月很很肏| 九九这里只这里只有精品| 成人婷婷| 9+1视频网址| 亚洲天天操| 日韩精品一曲二曲三曲四曲五曲| 日韩爱操视频| 4399欧美另类视频| 五月丁香啪综合| 情一色一乱一伦一91A| 天天射综合网夜夜操| 日本三级韩三级99久久| 69婷婷丁香午夜| 无码人妻少妇色欲AV一区二区 | 99热成人| 五月丁香婷婷激情在线| 婷婷伊人欧美| 五月天婷婷综合| 色综合久久8| 丁香五月开心婷婷| 干一干xxxx| 五月丁香777| 婷婷9月天| 五月丁香啪啪综合网| 99热午夜精品| 91色在线 | 日韩| 丁香激情五月| 丁香六月在线| 人妻五月天激情开心网| 国产亚洲成人综合| 在线婷婷| 啪啪五月天啪啪| 欧美韩国日本| 久久久久久久久人妻| 久草网大香视频| 五月婷婷色播| 深爱五月综合网| 亚洲精品一区无码A片| 99热 在线观看| 色婷婷香蕉| 色播播之激情五月婷婷| 丁香五月婷婷五月| 女人天堂AV| 成人色五月天| 草草影院爱爱| 五月丁香久久| 激情五月婷婷| 天天做天天爱天天日| 日本少妇裸体做爰高潮片| 99久久成人| 97超级碰| 99热97| 五月丁香成人| 九色91美女| 久久机热/这里只有精品| 五月婷婷在线视频免费观看| 日韩性爱无码| 国产亚洲精品久久久久久郑州| 99热日韩| 777久久精品| 久久99免费视频网站| 五月天婷婷基地综合网| 99九九精品视频| 六月丁香婷婷色狠狠久久| 婷婷激情六月| 99热亚洲| 亚洲中文字幕AV| 99精品视频在线| 东北熟女视频99| 日韩啪啪视频| 五月天久久网站| 丁香六月激情| 五月丁香综合久久夜夜| 一本大道嫩草AV无码专区| 五月综合缴情网| 99日本黄站| 日韩AV免费电影在线播放| 婷婷 伊人 久久| 激情涩涩网| 婷婷五月天大香蕉| www.99操| 久久99人人| 色综合com| 久久丁香五月婷婷| 婷婷5月天av| 哇嘎成人久久| 91性人人| 综合久久首页| 加勒比久热| 99热精品在线| 97色色色| 日本不卡高字幕在线2019| 狠狠干婷婷| 亚洲天堂AAA| 99九九在线观看免费| 中文字幕丰满乱孑伦无码专区| 日韩成人精品中文字幕| 激情丁香九九五月综合网| 亚洲噜色| 精品人妻久久久久久久| 五月天中文字幕在线婷婷| 久久久97| 婷婷丁香五月亚洲欧美| 337p大胆噜噜噜噜噜91Av| 岛国资源站| 久草婷婷网| 五月天丁香| 99九九在线| 中文成人在线| 91婷婷色 | 婷婷五月天激情在线观看| 色播婷婷五月天| 久久久免费图片视频| 久久久精品婷婷五月天| 久热视频97AV在线观看| 综合超碰熟| 中文字幕91,综合| 99热超碰天堂网| 五他月天啪啪啪| 99热最新国内| 亚洲AV无码成人精品电影| 97亚洲精品| 无码字幕中文| 99九九热视频免费| 性视频久久| 九九综合色综合| 六月婷婷视频| 五月天激情小说| 91欧美| 五月婷在线观看| 五月丁香六月在线欧美| 天天上天天爽| 久久久精品人妻录| 天天做天天爽| 色婷婷久久| 五月丁香啪啪| 91av传媒高清在线视频网| 丁香婷婷成年| 9精品视频在线| 国内一级精品| 婷婷伊人激情婷婷| 五月婷婷啪| 思思久久99| 思思热久久艹| 91男同视频| 丁香五月亚洲综合丝袜| 久久五月激情综合| 婷婷激情六月中文| 97干在线观看视频| 极品少妇XXXX精品少妇偷拍| 99在线小视频| 日本a片网址| 色视五月天婷婷| 人人干AV| 玖玖色综合| 在线观看国产高清视频免费网站| 五月天怕怕| 青青草色在线视频观看| 偷拍视频五月天| 这里只有久久精99| 丁香六月啪啪| 大香蕉狼人久久| 久久66er久久| 色色99| 夜夜操夜夜操| 久久玖玖综合| 五月丁香六月情亚洲| 99色视频| 性爱111111| 男女99免费视频| 亚洲 小说 欧美 激情 另类| 天天爽人人综合免费7799| 四虎国产精品永久在线国在线| 婷婷五月欧美| 激情狠狠丁香月| 操逼视频一区| 91高潮喷水久久久久久久久| 激情五月综亚网| 天天精品视频免费观看| 国产亚洲精品久久久久久久久动漫| 五月天丁香综合在线| 激情文学天天| 婷婷久久综合久| 一本色道久久综合狠狠躁一二三| 欧美五月丁香在线| 婷婷色在线观看| 91黄色五月天视频| 五月天堂婷婷| 99只有精品| 无码动漫AV| 欧美色播综合在线观看| 99热在线观看| 人人九色| 天天干天天干天天干| 色呦精品| 婷婷六月久久| 午夜不卡久久精品无码免费 | 91久久精品无码一区二区三区| 农村熟妇高潮精品A片| 亚洲色图五月丁香| 操人久久| 色九九九九| 亚洲va欧美va国产综合久久久| 操骚货在线| 色色色97| 婷婷涩五月| 二区成人视频| 深情五月天| 少妇搡BBBB搡BBB搡毛茸茸| 大香蕉五月天婷婷| 亚洲色五月| 91激情五月开心| www激情五月天| 女人被躁到高潮嗷嗷叫小| 玖玖在线视频福利| 人人草人人舔| 五月丁香激情综合啪| 变态另类9| 99在线视频女女视频| 五月丁香黄色| 亚洲AV电影美洲AV电影| 婷婷婷久久久| 日本色色图| 亚洲成人网在线观看| 亚洲无码成人网| 激情五月丁香五月| 二级黄色毛片| 九九视频这里只有精品| 熟女激情网| 大香蕉久久| 久热这里只有精品在线观看| 日韩人妻白浆视频系列| 激情五月天伊人影院| 五月做爱| 激情五月天啪啪| 九九热婷婷| 综合激情在线| 久热这里只有精品在线观看 | 潮汕成人AV片在线| 色噜噜狠狠色综合成人网| 99狠狠| 99九色视频在线观看| 丝袜人妻| 美国少妇性做爰| 丁香成人色情五月天| 丁香婷婷五月人体| 久色视频| 久久小片| 色五月综合网| 成人五月丁香花| 婷婷干五月综合在线播放| 大香蕉人人人| 五月婷婷开心网| 五月婷婷丁香伦理网| 五月天丁香久久综合| 五月激情久久| aⅤ79成人片| 超碰v| 可以看的AV网站| 狼人婷婷久久| 色婷婷呢狠禁久禁| 爱操人妻| 这里只有精彩视| 六月久久婷婷| 丁香8月手机综合| 天天日天天操心| 国产五月丁香在线| 99热精品网| 丁香六月情| 中文字幕久久一区二区三区| 五月丁香av中文| 日本三级成人秘书精品片| 五月丁香婷婷基地| 婷婷五月免费在线| 九九热黄色| 99在线资源视频| 免费国产视频| 99热中文字幕久久| 成年AAAA色情| 国产精品日日躁夜夜躁| 欧美精品狠狠色丁香婷婷| 日本久久精品| 丁香综合婷婷五月天| 五月天婷婷三级黄| www久久久久久久97| A片女女女女女女BBBB| 色久综合| 亚洲六月色| 在线视频色五月| 91 原创 在线 九色| 69精品人人人人人人人人人| 这里只有精品视频99| 婷婷五月天干干| 丁香久久| 超碰女人天堂| 99久久精品色老| 99网址在线观看| 婷婷在线播放| www色婷婷| 丰满熟女人妻一区二区三| 天天日人人| 九九色综合网| www.婷婷亚洲基地| 91精产品自偷自偷综合| 五月婷婷九九热| 激情婷婷五月丁香啪啪啪| 婷婷香五月天| 婷婷五月丁香五月| 久久久久久欧美精品se一二三四| 丁香五月婷婷偷拍| 日韩精品一品二区三区的使用体验| 五月丁香六月婷婷在线播放| RenRenSe在线视频网站| 天天天天天操| 草婷婷在线| 婷婷五月天另类视频| 婷婷综合欧美| 日韩一区二区在线播放| 亚洲美女婷婷五月天| 99久久99九九九99九他书对| 99人人干| 久久这里精彩免费在线观看| 五月六月丁香激情视频| 激情婷婷综合| 五月丁香六月色婷婷| 婷婷区日本| 日韩欧美一区二区三区四区| 日日噜狠狠色综| 99热最新精品| 五月丁香婷婷无码A∨| 中文字幕在线观看视频www| 亚洲午夜视频| 综合狠狠伊人| 欧美色骚婷婷五月天| site:901-07.com| 色五月婷婷中文字幕| 婷婷丁香熟妇综合网| 色999五月色| 99er日韩| 26uuu激情五月天| 99久久99热这里只有精品| 色婷婷六月综合| 人妻操操色| 996热re视频精品视频这里| 久色五月| 激情婷婷丁香| 91日本在线观看| EEUSS鲁片一区二区三区| 亚洲视频在线观看| 丁香五月 性爱| 99久免费视频| 视频这里只有精品| 五月色俺婷婷| 婷婷综合97| 日韩aaa| 国产看真人毛片爱做A片| 国外亚洲成AV人片在线观看| 亲子乱av一区二区三区的| 草草影院爱爱| 色五月激情五月丁香五月婷婷啪啪综合 | 激情网五夜婷婷| 天天爱天天做天天爽| 久久久久久人妻久久久久久久久久人妻久久久| 在线天堂9| 五月激情影院| 日本三日本三级少妇三级66| 成人五月天综合网| 中文字幕久久一区二区三区| 玖玖婷婷五月天| 9色91视频| 碰碰操91| 亚洲狠狠婷婷综合久久久| 丁香婷婷成人网| 4399成人黄A片| 又大又粗九一在线| 国产激情av| 精品福利911| 99热地址| 99综合网| 色婷婷色情| 中文不卡一二三区| 色吧五月婷婷| 婷婷五月天亚洲综合网| 激情婷婷丁香五月天小说| 婷婷五月天成人综合网| 99无码视频| 超碰成人AV| 天天色一道本综合婷婷| 婷婷99视频精品| av高清无码| 九九色人| 五月天啪啪啪| 九七色色六月丁香| 欧美天天五月丁香免费观看| 96精品久久久久久久久| 91seAV| 777.色色| 九九香蕉网| 91熟妇大香蕉| 五月天婷婷色播在线网| 可以看的av| 久久99大全| 五月花丁香婷婷| 色综合久久888| 久久九九中文字幕| 九九热在线视频观看| 搡BBBB搡BBB搡五十| 婷婷网影院| 五月丁香狠狠| 中文字幕无线久必| 97丁香花五月天激情小说| 婷婷九月亚洲| 玖玖精品婷婷| 97色色色| 婷婷五月天久久综合88| 亚洲热视频| 色婷婷AV久久| 丁香五月婷在线观看| 丁香六月婷婷综合| 日韩砖区| 免费看欧美成人A片无码| 久久天天天| 99久久久久| 99riAv1国产在线观看| 九九热精品| 久久日韩婷婷五月| 五月天激情网图片| 91互操| 九月av| www.99久久久久99| 成人免费在线电影| 久热中文字幕| 91丨九色丨东北熟女| 9热视频在线观看| 99狠狠| 久久久99婷婷久久久久久| 99热免费| 五月天社区| 99热久| 婷香五月网在线| 99久久99九九99九九九| 五月天激情在线视频| 国产超碰在线| 午夜激情五月| 99婷婷五月天激情| 九九色图| 99这里有精品免费| 教师性爱毛片| www.狠狠操| 五月丁香六月激情综合| 色色亚洲视频| 天天操天天日天天爽| 婷婷综合在线网| 噜噜狠狠色综无码久久合欧美| 91色涩| 99久视频| 色色免费网战视频| 色你久久| 八戒青柠影视剧在线观看| 人人舔天天| 51精品国内探花| 另类激情五月| 99热久久最新地址| 色婷婷色| 五月天成人综合| 激情五月天色爱| 色婷婷在线影院| 欧美成人A片AAA片在线播放 | 亚洲激情免费视频观看| 91久久久久久久久| 亚洲欧洲另类图片| 亚洲欧洲国产精品| 欧美成人网婷婷综合在线| 大香蕉在线观看9| 99九色视频在线观看| 丁香久久五月天视频在线观看| 操逼五月天| 五月丁香黄色视频| 丁香五月亚综合图片| 婷婷中文在线| 91av色色乱视频| 九九99精品视频在线观看| 精品三区影院| 偷偷狠狠久久婷婷五月天| 丁香五月婷婷影视先锋| 99久久这里只有精品| 丁香五月天网友自拍啪啪啪视频| 就要爱综合| 97超碰色| 欧美顶级少妇做爰HD| 国产精品香蕉| 久久人妻熟女一区二区| 91久久精品国产91性色TV| 婷婷综合精品视频97| 婷婷丁五月| 五月伊人婷婷999| 99在线免费观看| 五月 成人 婷婷| 深爱激情四射| 久久9久| 婷婷五月丁香色播| 五月桃花网综合| 国产激情久久久| 五月婷婷综合丁香视频| 五月精品免费XXX| www,五月天com| 99在线视频免费| 影音先锋五月婷婷| 无码少妇高潮喷水A片免费| 97人人看| 狠狠爱五月婷婷| 婷婷瑟瑟五月天| 五月天婷婷六月| 色噜噜狠狠色综| 激情AV在线| 色婷大香蕉| 久久精品凹凸分类| 男女啪啪做爰高潮无遮挡| 综合激情五月天| 九九热精品99| 色五月综合资源推荐| 婷婷五月天激情丁香| 爱草视频在线| 五月丁香六月婷婷综合网| 婷婷月五天在线在线看| 久热欧美| 婷婷六月丁香激情| 色色是色N一| 99re这里只有精品99| 婷婷久久丁香五月| 99福利导航| 99热天堂| 亚洲成人一区| 久久三级视频| 九九热在线亚洲免费视频| 激情另类综合| 开心五月六月婷婷| 久久这里只精品66| 五月婷高清视频| 婷婷五月情色| 激情综合六月| 天天爽夜夜爽夜夜爽精品视频| 久久黄色片| 五月天婷婷7米| 久久人妻精品| 99熟女视频| 一区二区成人电影| 婷婷丁香五月亚洲17cao| 五月丁香六月婷婷网| 成片免费观看视频大全| 无码人妻丰满熟妇奶水区码| 六六久久黄色| 99热久久日本| 色五月成人| 99惹在线精品免费观看| 操逼在线视频| 五月婷婷成人| 日本三级日本三级99| 伊人久久艹| 五月天久久色| 4438国产免费看| 激情综合婷婷| 亚洲五月丁| 丁香婷婷色| 日本色天堂| 九九热精品| 91碰免费视频| 天堂色婷婷| 欧美色骚婷婷五月天| www.lingjunshare.com| 五月婷婷成人| 国产乱人偷精品人妻A片| www.99操| WWW,色五月| 激情五月天色婷婷| 久久伊人五月天| 九八Av| www.com亚洲网站在线免费| 九九热在线观看6| 天天天日天天天干| 日韩啪啪网| 色五月,com| 91大神操美女| 天天做综合网色综合| 婷婷五月综合啪| 99热超碰在线| 大香蕉Av在线| 丁香六月天色婷婷| 中文字幕AV在线播放| 草草夜夜操| 久久人人超| 亚洲一区二区无码蜜乳av| 婷婷情色五月天| 欧美性生交XXXXX无码小说| 九九青草热| http://www.lingjunshare.com/| 婷婷五月丁香六月| 99在线免费视频播放| 五月丁婷香| 五月天天久久香| 午夜不卡久久精品无码免费| 色狠狠五月天| 狠狠五月天| 色婷婷8| 久久精品爱爱| 五月久久婷婷丁香| 五月婷婷 自拍| 五月天成人在线精品| 综合婷婷久久| 伊人久久综合| 色五月婷婷色五月| 无码AV久久久久久久久| 超碰在线人妻| 五月丁香婷婷色色色| 97超喷视频在线观看| 欧美综合婷婷欧美综| 九九色热| www.97碰碰com| 欧美丁香五月| 1024欧美看片| 久久66精品| 99热精品在线在线| 天天插天天狠| www.99热这里只有精品| 综激情网| 九九99精品视频| 99热久97| 类似婷婷激情综合网站| 92久操视频| 五月开心深爱激情网| 久久久婷丁香五月| 五月婷婷免费| 久久人妻超碰一区| 26uuu欧美亚洲日韩| 久久精品国产一区二区三区四区| 干亚洲天堂| 五月婷婷色色| 丁香婷婷免费| 国产AV一区二区三区最新精品| 五月丁香色色综合| 思思热在线视频精品| 亚洲综合激情五月天婷婷| 99热6精品| 丁香五月精品视频| 91色久| sisi热国产| 最近韩国日本免费高清观看| 激情伊人五月婷婷久久| 国产一级片色色| 激情婷婷五月天在线观看| 激情五月黄色| 亚洲视频伍月婷婷| 天堂五月婷婷| 情色五月天网站| 色综合色五月| 五月天婷婷影院| 好好日激情五月天| 色婷网站| 5月婷婷6月六月丁香| 五夜丁香| 婷婷狠狠操| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 一区操| 国产日韩欧美性爱| 婷婷激情综合| 五月婷在线| 婷婷伊人久久综合| 综合网狠狠| 在线色色| 丁香五月日本| 丁香五月综合激情久久潮喷| 色99热| 五月婷婷开心深| 日韩欧美成人一区二区三区| 六月丁香激情| 婷婷五月激情四月综合| 国内一级片| 成人va在线播放| 婷婷亚洲日本| 182无码| 国产精品视频免费看| 涩涩涩,com| 玖玖九九超碰| 色丁香久久| 99精彩视频在线观看| 久久日曰| 色香蕉影院| 人妻无码精品一区| 六月丁香婷婷视频综合在线观看| 五月丁香六月片| 97人妻碰碰碰久久香蕉| 色五月婷婷在线视频| 操日本色| 欧美人与性动交CCOO| 这里只有精品在线视频在线观看| 这里只有精品亚洲| 99碰碰碰| 天天干天天干天天干| 五月花综合视频| 九九日本视频| 97碰在线免费观看| 图片区 小说区 区 亚洲五月| 六月丁香五月婷婷| 五月天色婷婷视频| www.黄色片-久久成人国产精品在线播放-999AV| 六月丁香网| 天堂网啪啪| 五月丁香六月情婷婷久久| 五月婷在线影院| 丰滿爆乳一区二区三区| 97天堂| 可以看的AV网站| 99热这里只有在线播放| 色伊人婷婷| 色综合9| 四LLL少妇BBBB槡BBBB| 亚洲天堂啪啪| 久久人妻伊人| 桃色激情婷婷伊人网| 美女网黄| 成年视频免费观看| 97色五月婷婷在线| 99操逼| 99自拍网| 五月天播播中文字幕 | 伊人超碰在线| 9精品久久999| 色一情一乱一乱一区91Av| 99操无码视频观看| 亚洲热久久| 天天干天天干天天干天天干天天| 欧美五月丁香啪啪响视频| 天堂中文国产| 无码九九九九| 日本人妻久久| 婷色综合| 欧美97超碰| 超碰在线caop| 怡红院AV亚洲一区二区三区H | 超碰超碰在线| 操逼六区| 99热在线资源| www一起操| 99精品高潮| 婷婷黄色五月| 日韩五月婷婷| 久久九⑨| 色99免费视频中文| 九九热在线视频观看免费10| 99在线一区| 激情五月婷婷色色| 久久九九一區| 午夜日韩久久久网站| 996热re视频在线观看视频| 亚洲av另类在线观看| 五月天丁香色色| 老妇六区| 果冻传媒A片一二三区| 日本美女97在线视频| 日韩av一区二区在线/日产精品久久久| 五月婷在线| 99这里只有精品| 久久小说网| 五月婷婷 婷婷五月 一区二区 久久久| 少妇出轨做爰高潮A片| 大香蕉色婷婷伊人在线| 亚洲成人网址在线观看| 久久精彩视频99| 69精品人妻不卡视频| 大香av| 9色在线视频| 六月丁香婷婷色狠狠久久| 五月丁香色婷婷伊人| 婷婷五月天色综合翘| 五月丁六月婷| 色色色色色色网| 六月婷婷久久| 激情五月小说婷婷| 六月丁香网| 久婷婷视平| 亚州婷婷五月激情综合| 婷婷五月激情欧美| 操操操av| 国语精品探花| 久色大| 天天综合色| 色噜噜丁香| 超碰9在| 久久这里只有精彩| 天天操夜夜爱| 久久免费操| 99热这里只有精品99| 中文字幕视频色婷婷| caopeng97人人| 日韩成人精品中文字幕| 丁香五月天激情综合网| www婷婷| 99热官网| 一区操| 日本色色色| 色婷婷色五月综合| 一区视频网站| 久久久99精品免费观看| 亚洲成片在线观看| 密黄站| 色欲色香综合网| 色情五月综合婷婷| 99久久偷拍视频| 色噜噜狠狠色综合无码久久欧美| www狠狠| 婷婷午夜| 色都都狠狠色都都色综合色| 五月天婷婷色色| 99综合激情久久精品久久| 九九热中文| 伊人婷婷福利网| 丁香五月香蕉| 99热中文字幕久久| 五月婷婷六月丁香| 婷婷丁香五月天熟女丝袜| 99 频99热国里只有精品| 99综合网| 国产成人综合电影| 在线另类| 草五月| 丁香久久在线| 婷婷在线播放av| 亭亭玉月丁香| 婷婷丁香激情五月天色色色| 97色婷婷| 五月婷婷激情网| 婷婷中文字幕网站| 久久九九视频网站| 色欲婷婷五月天丁香| 丁香五月婷婷激情四射深爱激情| 婷婷色导航| 天天操夜夜操| 免费在线观看av网站| 97丁香五月天| 日本欧美在线| 99er热精品视频| 狠狠干思思热| 四LLL少妇BBBB槡BBBB| 91狠狠综合久久| 天天干一干| Caoub青青超碰| 九九热区一区二区三区| 玖玖婷婷五月天| 影视av久久久噜噜噜噜噜三级| 天天干天天操| 亚洲三级无码| 色五月婷婷五月久久| 色五月丁香婷婷| 丁香五月影视| 日韩精品一品二区三区的使用体验| 丁香深五月婷婷| 99精彩视频在线观看| 欧美色婷婷| 婷婷五月激情网站| 超碰久热| 久久婷婷伊人| WWW久久久| www.99热在线观看| 99综合网| 超碰97免费在线| 天天肏高清在线| 亚洲自拍天堂| 色婷婷五月天激情在线观看| 变天就操逼婷婷五月| 丁香五月综合在线观看| 万月丁香狠狠爱| 久久婷婷五月天激情唯美| 2025超碰| 色爱终和网| 69天堂99| 黄色AAAAA| 婷婷久久色| 久热这里只有| 九热久| 超碰人人操人人干| 婷色五月| 狠狠色色| 婷婷婷五月天最新综合你懂的| 乱乱av| 成人综合伍月天| 婷色视频| 婷香五月| 99rewww| 五月婷婷色欲| 99色色色色| 色九月婷婷丁香| 99热最新网址| 色色色色色色色综合| 免费无码毛片一区二区A片| 婷激情五月| 久久五月婷婷视频| 九色视频91| 丁香婷婷丁香五月欧美人| 人人艹艹艹| 五月天婷婷在线观看| 久久久久久9| 欧美激情综合| 婷婷五月天日本无码| 精品99在线观看| 亭亭五月色男人| 日日干日日s| 日韩久久日| 91丨九色丨白浆秘| 色五月无码| 色99久草在线| 另类综合激情| 天天免费成年人视频| 1024在线观看免费视频| 色呦呦美女| 色97综合婷婷天天色| 五他月天啪啪啪| 激情久久久| 日本成人小说婷婷六月| 97碰碰在线观看视频| 成人丁香| 婷婷激情五月色综合| 伊人干综合| 黄色片avv| 五月丁香91| 国产性色蜜乳| 亚洲天99| 国产精产国品一二三在观看| 播五月开心婷婷欧美综合| 五月情丁香色| 色天堂操| 亚洲人妻av伦理| 婷婷五月天国产在线播放| 九九99在线观看视频| 丁香色情五月综合激情| 五月综合久久| www.婷婷五月| 婷婷五月天直播| 丁香六月激情毛片| 夫妇交换刺激做爰| 日本高清久| 狠狠草综合网| 天天做天天爱天天爽夜夜揉| 99久久高清视频| 亚洲操操操| 久久婷五月综合| 米奇影视资源婷婷狠狠色激情欧美五月丁香| 97碰碰视频| 日本视频不卡123区| 九九aV| 丁香六月无码| 思思视频这里是精品| 久久九九中文字幕| 91夫妻网站九色| 婷婷五月花| 亚洲av日韩无码| 五月婷婷丁香瑟瑟视频| 婷婷五月天.com| 狼人久草| 色色色色色色色色色色色色色97| 激情五月天婷婷播播久久综合91| 成功精品影院| 日本啪啪天堂| 色噜噜狠噜噜视频| 人妻精品久久久久久久| oumeisesewang| 激情婷婷色色| 婷婷色片| www.玖玖婷婷在线| 丁香婷婷欧美综合| 天天爽天天爽| 中文av网站| 91人人爽狠狠狠| 五月天成人免费视频| 四色五月婷婷在线观看| 久久A热| 欧美成人无码一区二区三区| 丁香五月色色| 久久久久久久久久91| 九九久久精品國產| 另类图片五月天激情| 久久五月天激情| 精品无码久久久久久久久| 天天爽夜夜操| 99久久99久久综合| AV在线观看网站| 五月婷婷色播| 国产精品爽爽久久久久久| 久久机热/这里只有精品| 特级片神马电影| 激情 婷婷 插| 五月天自拍视频| 久久有码| 五月天伊人手机在线播放AV| 天天干、天天日日| 五月婷婷丁香五月婷婷| 五月成人网天天| 91精品国产综合久久密臀| 亚洲AAAA网| 99热这里有精品2| 密桃激情五月天综合网| 色婷婷五月天天天干天天操天天爽| 丁香五月人妻熟女| 婷婷综合网站| 99色色色色| 狠狠色五月天| 激情综合九月| 天天天干夜夜夜操| 五月婷婷色色| 鲁鲁色五月| 五月婷九月| 青青草99热久久精品国| WWW·色色色·COM| 日韩色五月| 99在线精品视频免费| 深爱五月中文字幕| 秋霞三及片| 午夜婷婷久久| 亚洲激情综合| 粉嫩AV久久一区二区三区| 桃色成人网| 狠狠色丁香久久综合婷婷亚洲成人福利| 色婷婷性爱| 丁香五月天网站| 五月天开心成人网| 手机免费福利视频| 九月色婷婷综合| 十月色综合| 精品久久人妻| 99自拍视频在线| 成人做爰A片免费看网站找不到了| 精品人妻伦九区久久AAA片| 国产av天天插天天操天天爽| www.爱婷婷.com| 色噜噜狠狠色综合成人网| 性色播| 蜜桃婷婷丁香| 99国产精品久久久久久久久久久| 成人丁香五月天| 99热99艹在线观看| 婷婷激情五月视频| 最新日本A片| 丁香五月中文字幕久色| 婷婷操超碰| 欧美大片免费播放器| av五月丁香婷婷网| 99re热视频这里只有综合亚洲| 人人干人人操人人摸人人做| 色综合色色| 五月婷婷丁香| 天天综合色99| 欧美日韩一a.无| 亚洲无码九九| 五月婷婷六月丁香| 91久女| 99 r热| 六月激情婷婷| 91久久99久久91熟女精品| 九九色中文| 538午夜激情| 日韩九九| www.99热| 色色色97| 婷婷五月精品在线| 久久久香| aaaa久久| 五月天激情综合首页| 亚洲视频99| 色欲一区二区三区精品A片| 玖玖五月丁香| 91婷婷五月天综合视频| 婷婷久久99| 另类亚洲电影| 丁香五月在线视频| 97操碰碰无码视频| 五月婷无码| 亚洲精品乱码久久久久久综合| 深爱五月婷婷| 九久久婷婷| 亚洲思思热久| 99无码精品| 伊人久久婷婷五月综合97色| 99视频内射三四| 五月丁香激情综合| 久久受www免费人成| 久久这有这里精品| 天堂久久精品| 激情五月天第四色| 日逼免费视频 | 亚洲av成人在线| 丁香九色不卡aaa| 天天插天天日天天爽| 五月婷在线观看| 97人操人免费视频| 久久99激情丁香婷婷小说网| 天天躁日日躁狠狠躁日日躁2022年5月9日| 妇激情基地| 99干日本| 9超碰在线| 永久AⅤ1| 字幕网AV中文字幕| 26uuu美女三级视频| 伊人91| 色综合色五月| 狠狠色噜噜狠狠| 久久99精品久久久| 六月婷婷久久| 婷婷五月天综合久久日美女| 日韩六十路91性交电影| 国产精品美女久久久久AV超清| 影音先锋按摩| 五月天婷婷色色| 色99视频| 综合网色| 91偷拍视频| 日韩啪| 特黄三级片| 国产 亚洲 在线| 亚洲黄色精品| 伊人五月婷婷| 97在线综合| 91狠狠色丁香婷婷综合久久| 97碰碰人人| 丁香五月婷婷六月| 色五月婷婷中文字幕在线观看| 婷婷操逼| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 丁香婷婷色五月合集| 思思干精品| 婷婷丁香五月亚洲|