亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

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幾個核心特性值得展開說容量與組織結構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問題必須提前考慮。我總結的布局經(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。寫完后在另一個地址寫入“結束標記”如 0x55AA。系統(tǒng)上電后檢查這兩個標記是否同時有效。如果兩個標記都有效說明上一次寫操作完整完成。如果只有起始標記、沒有結束標記說明寫操作被中斷該記錄不可信丟棄并重寫。如果兩個標記都無效說明上一次寫操作還沒開始正?;謴汀_@個雙標記策略成本極低但能顯著提升數(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)結合環(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)結合微型日志文件系統(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
返回資訊列表
神马午夜久久| 日本 成 人 小说 电影 一区二区| 久久久∴| 夜夜肏2021| 人妻 丝袜美腿 中文字幕| 天天夜夜rb| 麻豆九九九| 欧美后进式| 久久亚洲AV成人精品无码| 午夜福利合集| 啊啊啊啊啊啊啊啊啊在线观看| 99九九久久| 天天天天天天天天天天干美女| 亚洲天天综合| 97综合激情| 欧洲精品久久| 亚洲AV在线资源| 午夜天堂精品久久| 五月天丁香欧洲日韩| 国产超碰| 日本肉体xxxx裸交| 91精品丝袜久久久久久| 蜜臀AV网站| 黄人人操人人操| 一本大道青青| 久久人妻熟女一区二区| 性欧美999| 97欧美资源| 亚洲成人AB| 97在线观看免费| 9久久美女首页| 久久av色| 久久精品国产97欧美精品亚洲| 亚洲精品一卡二卡三卡福利视频网站 | 99久久99久久免费精品蜜臀| 亚洲日韩人妻中文字幕一区| 日本操逼无码| 国产亲戚伦亲在线| 免费看日本操逼视频| 日韩性爱1级片视频| 天堂无码| 黄色操人| 91欧美| 91丝袜激情在线| 午夜精品久久久| 九九九九九九九九九国产精品 | 国产成人99久久亚洲综合| 亚洲男人天堂2017| 91天天| 伊人一级免费黄片| 久久东京伊人一本到鬼色| 国产在线视频二区| 午夜寂寞欧美| 日韩亚洲美州欧洲综三区一品在线| 91狠狠色丁香婷婷综合久久精品| 男人的天堂2010| 欧美在线官网| 久久精品99久久久久久| 精品免费囯产一区二区三区 | 2020视频1区2区3区| 性色一线| 午夜AV污污污| 又粗又长又大国产不卡| 亚洲 欧美 偷拍 唯美| 不卡一区二区日本视频| 欧美操人| 欧美一二在线| 亚洲色宗合| 国产91亚洲精品一区二区三区| 91亚洲色人| 国产精品视频白浆免费| 男人亚洲91首页在线| 人人操天天爽| 国产精品久久久无码AV网站| 大奶啊啊好爽| 啊啊啊啊好疼视频| 国产在线视频午夜精华在| 欧美亚洲素人制服精品| 91九色精品熟女内射| ′ !γ}丶。。久久精品欧美一区二区三区| 91人妻丝袜无码| 亚洲欲| 天天看片青娱乐| 超碰在线人妻中文字幕| 丁香五月激情综合| 亚洲日产专区婷婷| 国产专区第一页| 好吊色在线观看| 龙兴卡官方查询| 大香蕉视频一二三区| 七月丁香婷婷| 亚洲综合图片在线| 2020中文字幕在线观看| 日韩国产在线观看av| 屌逼麻豆| 99精品人妻| 日本岛国黄色网址| 中文字幕免费观看| 日韩精品-原创伙伴| 色综合V| 深田咏美亚洲精品福利社| 欧美狠狠弄| 粉嫩不卡一区二区性爱| 夜夜操老骚逼视频网站| 国产suv一区二区三区6| 国产粉嫩出水在线播放| 日本好吊色视频| 高清在线不卡一区二区 视频| 成人资源中文字幕在线观看天天| 日本 情色 1区2区3区| 大香蕉欧美| 深夜激情无码| 综合少妇网| www.人人cao| 久久↗↗| 国产AV高清AV无码| 欧美精品欧美精品系列 | 久久久久久久九九九九九九| 99啪| 日本人妻伦在线中文字幕| 色五月婷婷麻豆在| 熟女人妻一区二区三区| 天天影视综合网欧美精品| 亚洲双插| 熟女人妻av在线资源,黄色的资源| 久久精品无码专区| 992这里有精品| 国产一区在线看| 成人欧美一区二区三区黑人一| 超碰色美女| 九九AV| 色臀AV| 少妇二级| 无码逼| 色99久草| 亚洲精品天天影视综合网 | renqi久久久久久久久久久久| 青青操在线视频| 95人妻爽爽人人做人人澡| 亚洲欧美伦综合| 国产av尤物| 久久久久亚洲| 久草精品一区| 国产欧美日韩在线观看麻豆传媒公司| AV麻豆免费一区| 亚洲国内精品成人不卡| 五月婷视频| 欧美视频一| 亚洲自拍一区夜夜操| 啪啪视频亚洲第一| 久久岛国| 中文久久96| 熟女人妻一区二区三区| 欧美日韩午夜精品一区二区三区 | 亚欧毛片基地国产毛片基地| 日逼97| 日本孕妇孕交| 五月天久久婷婷亚洲| 在线播放免费av福利片| 亚洲深夜福利| 久久久天美| 蜜臀少妇一区二区| 色综合天天| 黑人在线91| 色 亚洲 91| 亚洲精品成人激情在线| 国产精品久久aV| 欧美色图自拍| 欧美婷婷久久| 丰满少妇一区二区三区专区| 色97| 色墦五月丁香| 爱av免费| 天天操天天射天天日| 99re99在线视频| 高跟伊人julia ann| 亚洲美女黄色| 黄色成品网站| 亚洲va综合va国产va中文| 亚洲精品白浆高清久久久久久| 国产丁香精品露脸视频| 欧美少妇高潮久久91| 亚洲男人的天堂亚洲| 国产一在线观看| 丰满少妇一区二区三区免费看| 久久综合久色欧美综合狠狠 | 极品后入免费视频| 人人操天天爽| 大香蕉色网| 国产按摩一区二区三区| 桃花色涩综合影院| 中文字幕 国产 精品| 人妻啪| 91av一区二区在线观看| 大象AV在线| 伊人麻豆传媒| 在线免费观看高清无码视频| 久久免费9| 久久久久久十| 久久久久久久9999| 中文字幕AV中出| 蜜桃臀久久| 日日夜夜模| 日本中文字幕熟妇| 中文字幕色AV| 亚洲丝袜二区在线| 爱丝福利| 偷拍视频青青草在线视频| 97人人模人人爽人人| 交换娇妻呻吟声不停中文字幕| 亚洲av成人精品一区| 98久久超碰| 欧美劲爆第一页| 欧洲视频在线| 久久中文字幕一区不卡| 精品中文字幕第一页| 亚洲精品性爱片| 日韩无码三级影院| 亚洲国产无码精品首页久久久| 婷婷亚洲五月***久久| 欧日a| 福利在线黄片| 色婷婷五月天| 成人A片男人的天堂| 日本中文字幕一区| 久久日本熟妇熟色一区| 国产又黄又爽又刺激久久久久久| 免费簧片在线观看| 五月天啪啪| 人妻一区二区三区| 人妻少妇精品无码专区二区密桃| 亚洲a色| 九九九九热| 狠狠操官网| 精品在线观看视频在线| 久草久热| 毛片麻豆91糖心精品毛情片| 五月天婷婷社区| 欧美97在线欧| 青青免费在线视频一区 | av天天在线| 97视频在线视频| 91久久国产精品| 欧美顶级黄片AAAAA在线免费看| 97国产高清视频在线观看| 强免费黄色网址| 精品国产网站| 插插综合网天天影视网| 久久久久久99AV无码免费网站| 芊芊操逼视频无码| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 天天爱天天操| 国产第二页| 夜夜欢天天干| 双插性欧美一二三区| 丁香色五月 97干| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 日本高清有码网址视频| 久久精品国产99国产精品亚洲| 久久宗合亚洲| 韩国一级AAA| 欧美少妇一区二区三区| 超碰97 线线 在现| 成年人性爱日韩| 天天综合网91入口| 国产97在线 | 亚洲| 成人亚欧免费视频| 97天天做| 亚州一区二区成人片免费| 色色热| 久久久久久裸体| 日本精品一级二级三级| 天天看天天综合成人网| 深喉吞精| 日韩性爱高清免费视频| 亚洲成人妻日韩在线| 欧美色亚洲| 国产欧美黑人丰满在线| 91久久久亚洲| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 红桃视频高潮| 亚洲色图一区二区三区| 五月香婷婷| 高清不卡 中文 人妻| 国产精品人人爽人人做可爱福利| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 囯产操逼片| 久久久久久久久久黄色网| 97在线观看免费视频| 色99视频| 男人天堂资源| 啪啪视频mP4| 亚洲欧美黄| 欧美成人都市人妻| 99中文字幕| 亚洲中文字幕97久久精品少妇| 久热网| 婷婷久久五月| 亚洲欧洲激情卡通另类文学四射小说网站 | 精品国产久热在线观看| 欧美性高潮| 99天堂网| 国产久久久| 国产精品久久久亚洲一区| 激情欧美97| 任我爽视频在线观看| 99精品国产户外露出| 亚州精品一区二区三区香中文字幕在线| 久肏视频字幕| 艳美熟妇先锋一二三区| 激情国产乱伦Av| 天天激色| 五月激情小说| 亚洲日韩av专区无码| 99re这里只有精品3| 少妇高潮流水av免费| 国产乱码精品久久久久久| 日韩精品在线观看观看| 日韩三级av片| 屌妞视频久久久久久久久久久久| 欧美亚洲AN| 爽极品影院| 玖玖综合视频| 天堂蜜桃无码视频一区二区| a男人的天堂久久一级A毛片| 日韩精品系列| 日韩影片中文字幕一区二区三区| 日操粉逼逼| 中文字幕丝袜| 热热热热日日漂亮永久永久国产日| 人妻少妇被猛烈进入中| 亚洲第一页色网| 成人网欧美风情| 久久久久久国产精品免费网站| 久久久久女教师免费一区 | 91女色| 干b在线性社区| 熟女六十路| 日本一区二区中文字幕久久| 中文熟女五十乱码在线| 超碰 97国产熟女| 大香蕉强奸乱伦| 欧美色图第一页| 色偷偷色偷偷欧美日韩| 久久久人妻| 国产精品麻豆视频网站| 97精| 91亚洲黄色网| 韩日巨乳美女免费视频在线观看| 欧美综合骚| av日韩在线观看电影| 免费国产视频| 欧美日韩制服| 东京太热男人的天堂久久久| 中文字幕一品色图| 999 久久久| 亚洲AV免费在线观看| 亚洲男人的天堂在线看| 天天舔天天| 久久久久久AⅤ无码免费肉站| 日本乱人伦片中文三区| 天天操妹子| nuu12国产麻豆精品| 欧美亚洲一区二区久久久婷精品大包诱| 日本污ww视频网站| 多乙久久久久久| 91在线超高颜值国产| 超碰在线人人射| 久久久亚洲熟妇资源| 国产欧美黑人丰满在线| 欧美 综合| 97超碰色屌| 综精品久久久aaaa| 国产精品对白内射| 精品射1999| 嗯嗯嗯啊啊啊在线免费观看| 好吊妞转入那个网| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 999精品久久久久久久| 日本久久久精品电影| 97在线资源| 久草精品一区| 久久精品91| 亚洲素人综合| 91久久婷婷| 欧美春色| 国产偷拍网站| 先锋激情∨在线视频播放| 91啦人妻| 香蕉久久AⅤ...| 国产女人高潮嗷嗷嗷叫小说 | 色小视频蜜乳| 五月激情综合网| 欧美综合色图片| 涩亚洲欧洲| 欲色综合| 日韩AV无码网站| 绯色一区二区三区不卡少妇| 欧美日韩啪啪电影| 亚洲人妻中文高清| 丁香六月婷| 97综合在线观看| 青青草在线视频欧美| 小骚逼被操的爽不爽| 久久久久久久六六| 老熟女综合| 人人操人人干xxx| 手机在线中文字幕国产| 大香蕉九九| 神马久久久久眼| 亚洲在高跟鞋自慰久久在色线| 亚洲资源网| 男人的天堂kva| 极品色| 亚洲制服aⅴ中文字幕| 手机看片1024你懂的国产| 能看的AV| 激情四射五月天| 国产999精品久久久| 国产一区二区三区高清视频| 欧美久久伊人| 久久久久久久少妇| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 中美日韩毛片| 老司机福利社视频在线观看| 国产精品高潮久久久无码| 精品视频免费在线一区| 大鸡巴久久久| 九九久精品| 麻豆国产精品午夜视频| 色色热| 久久久久国产| 日韩无码人妻| 亚洲午夜av| 91在线色| 天天澡天天狠天天天做| 色婷婷色99国产综合精品| 欧美一二三区四五区| 97日韩欧美亚洲| 成在线人在线观看视频| 天天欧美色| 精品人妻久久久久一区二区三区| 99视频这有这里有精品| 精品超碰中文在线| 亚洲色电影在线| 天天做日日做天天欢。| 亚洲码和欧洲精品激情系列| 天天爽天天操啊啊啊| 在线人人人人人人精品超| 欧美亚洲一区二区久久久婷精品大包诱| 四虎影视国产精品| 天天视频黄网站| 欧美视频激情久久久久久| 91肉丝| 992这里有精品| 91男女| 婷婷丁香五月天综合东京热| 亚洲精品一卡二卡三卡福利视频网站| 伦激情人妻另类人妻| 91精品国产综合久久久蜜臀| 91青青草| 91蜜臀在线久久久久| 不卡二三区人妻少妇| 欧美日韩性爱精品| 久久99干一本高清| 色婷婷导航| 欧美日韩*字幕一区| 深喉吞精| 日韩懂色网| 亚洲色图91| 精品久久視頻在线| 97超碰美女| 蜜臀国产AV中文字幕| 99re在线精品78| 日韩欧美午夜一区二区| 久久大陆| 日韩乱伦影音先锋| 精品无码产区一区二| 久久久国产亚洲精品系列| 色女免费在线观看视频网址| 久久久久久AV无码免费网站| 日韩三级av片| 无码99| 午夜舔阴达高潮视频免费看| 图色综合网| 久久精品国产亚洲AV高清演员表| 久久久中文版| 国产真实野战在线视频| 国产日韩美女小穴视频网站不卡| 色五月婷婷在线| 亚洲国产综合视频| av天天在线| 一区二区三区精品久久| 99久久99久久免费精品蜜臀| 69视频福利导航| caoni国产亚洲av| 亚洲 欧美 日韩另类 麻豆| 精品 码产区一区二-1080P高清在线www-B029AV | 成人丁香五月| 一区二区乱码福利| 人妻少妇精品久久久| 精品亚洲国产成人AV制服丝袜| 91黄站| 精品国产一区二区三区久久久蜜臀| 欧美激情性久久久久久| 夜夜国自区| 婷婷久草一区二区三区| 久久精品人人做人人看| 色69大色97香蕉| 九九热精品在线| 东京热男人的天堂精品| 一二视频神马久久传媒| 国产亚洲国产超碰| 少妇高潮流水av免费| 伊人网在线观看| 国产精品久久久久久久久久梁医生| 亚洲91网站| 志村玲子视频一区二区| 自拍偷拍 高清无码| 啊啊啊轻点在线观看| 日本午夜福利视频| 狼人久草| 亚洲性爱无码乱伦av| 秋霞Av理论一级在线| 国产诱惑| 日日黄色三级网站| 成人贴图日韩欧美| 亚洲AV无码久久久国产精品| 亚洲成人性| 日本一区二区不卡| 校园春色AV天堂| 成人在线午夜视频一区| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 十八禁一区二区无码观看| 大胆91| 色99视频| 在线观看av区| 大香网站| 久久五月天婷婷丁香中文字幕| 精品91日日夜夜超清资源| 婷婷九月国产| 欧美日韩亚洲五月天婷婷| 青娱乐导航AV| 天天综合网一91网| 婷婷丁香六月| 久久婷婷五月| 色五月激情综合网| 欧美中出1| 岛园激情| 欧美很很操视频| 黄色av片三级三级三级免费看| 国产一区二区三区免费视频在性观看| 国产无马在线| 成人自拍三级在线观看| 四虎午夜影院| 久久久久亚洲AV无码专区少妇| 成人精品在线免费视频| 中国AAAAAA黄色片| 老熟女搡BBBB搡BBBB视频| av毛片aaaaa免费看| 日产操逼| 亚洲欧洲综合av在线| 91精品微拍福利| 欧美大香蕉在线观看| 大香樵伊人网| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 久久免费中文字幕在线观看| 亚洲色图超碰在线| 夜夜狼人妻| 久久999久| 亚洲性猛| 精品人妻一区二区三区四区| 欧美色涩| 午夜乱轮操逼视频免费看| 九九精品99| 家庭乱伦网站国产| 五月婷色| 午夜精品久久久99| 天操天操夜操夜月操月年年操操| julia国产在线| 香蕉视频欧美一卡二卡| 性暴力欧美猛交在线直播| 国产日韩在线播放av| 另类一区| 国产精品国产自产拍高清AV| 亚洲少妇在线影音| 嗯嗯嗯啊啊在线观看| 啊啊啊网站| 日韩免费在线视频观看| 天美麻花大全视频| 亚洲熟妇丝袜在线观看| 久草精品一区| 97免费视频在线观看| 精品人妻中文字幕4399| 婷婷激情五月综合| 久久爽爽精品| 东京太热男人的天堂久久久| 亚洲无码国产探花在线观看| 亚洲偷拍自拍在线视频| 欧美日本久久精品一区| 亚洲日韩97| 欧美性爱综合,免费| 把腿张开老子CAO烂你| 麻豆天美国美国产| 久久9精品网站| 日本国产欧美一区三区二区| 在线观看综合精品亚洲| 欧美97在线观看| 亚洲精品国产拍免费91在线| 久久久亚洲高清不打码| 黄色大片一区二区密桃丝袜| 啊啊啊啊好疼视频| 粉嫩av平台| 大香蕉九九| 欧美91丝袜| 天堂v无码免费视频| 色爱三区| 中文字幕超碰CAO| 精品人妻一区二区三区四区不卡在| 永久免费发布性爱网| 任我爽视频在线观看| 日本一二三免费久久| 中文字幕日韩人妻视频一区二区三区 | 在线观看一卡二卡| 久久久久深夜无码| 93人人操人人| 狠狠夜色午夜久久综合在线| 97爱| 天天欧美色| 久热伊人| 999久久久精品国产| 欧洲自拍第一页| av无码av无码专区| 亚洲视频二区| 亚洲av综合色区图片亚洲| 蜜桃久久久久久久| 欧美成人一级麻豆| 五月黑AⅤ| 91丰满| www五月| 久操频道免费在线呗看| 精品久久久亚洲AV成人网站| 另类老少妇| 黄aaaaaaaaaaaaaaaaaa色网站 | 多乙久久久久久| 风月影院男女十八禁| 伦伦成年午夜免费视频| 亚洲精品一卡二卡三卡福利视频网站| 国产人妖的免费的视频| 美女干逼2| 手机在线人成免费视频| 亚洲美女黄色| 丁香五月自拍| 日韩小电影| 99国产在线绯色一区| 色波多| 综合网久久| 欧美日日操| 91国产丝袜美女| 亚洲精品成人| 九九九九精| 在线综合 亚洲 欧美中文字幕 | 五月天伊人| 久操视频在线观看| 久久av网| 91强奸乱轮| 操久久久久| yirendaxiangjiashipin| 强奸乱伦免费网站| …中文字幕亚洲乱,97人妻无码费视…| 亚洲激情在线一区二区| 亚州综合色| 激情终合网| 欧美日韩国产色图在线| 亚洲高清欧美总合| 色五月69夫妻| 欧美日韩岛国大片在线观看| 久久久久久久性爱| 91国产美女丝袜足交精品视频| 国产精品无码av| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 91撸色网 玖玖网 欧美| 日韩AV无码中文一区二区| 亚洲女人91| 东京热av男人的天堂| 久久精品性| 91人妻人人澡人人爽人人精品| 青青草玖玖爱| 黄色污污污污污污网站| 午夜无码精品免费看性色| 大香蕉伊人75| 新视频sss国产| 一区二区三区精品黑丝白丝酒店对鸡| 国产精品久久久久久久电影渣男| 偷拍欧美亚洲| 啊啊好多水| 丁香五月婷婷五月| www.黄色在线| 大JI巴好深好爽又大又粗视频| 亚洲综合九| 最新加勒比丝袜在线| aⅴ日韩成人电影av在线免费看av大全| 爱爱啊啊啊| 欧美爱国产综合、| 嗯嗯啊好大| 熟女丰满人妻一区| 大香蕉乱伦视频网| 夜夜天天噜狠狠爱2021| 久久久性| 国产精品久久久久久久久久久久久久吹 | **一级毛片国产| 欧美黄色大片在线观看| dy888午夜老子影视达达兔| 男人天堂久久精品不卡| 亚洲情色在线| 97超碰天天| 亚洲欧美激情另类色图| 亚洲精品成人激情在线| 国产精品嫩草影院免费| 美女操逼A A| 蜜臀久久99精品久久久电影| 四虎在线视频| 暴力av在线| 国产欧美日产一区二区三区 - 国产欧美日| 欧美欲色| 中文字幕亚洲欧美在线不卡| 天天欧美欧美亚洲网| 色香蕉影院| 26uuu国产免费观看| 韩国黄片aaaa| 精品欧美А∨无码黑人大荫蒂 | 国产少妇与亚洲av| 亚洲色图大香| 国产精品一二三区福利| 亚洲丝袜二区| 九色 人妻 大香蕉| 国产欧美美女免费观看视频| 亚州色交| 美女露胸露屁股| 老色69| 蜜桃精品一区二区三区ww| 98一区二区精品| 日韩三级久久久| 青青草自拍视频在线播放| 97国产色综合| 欧美一二三区四五区| 大香蕉在线86| 91美女看B| 亚洲色图第四色| 人妻色情天天操| 东北女人高潮视频| 女色综合| 中文日本免费高清| 男男H黄动漫啪啪无遮挡网站| 乱伦3P视频| 欧美一级黄片免费播放| 9 9精品一区二区三区| 青青草在线成人视频| 色999偷自拍拍| 国产情色第一第二页在线观看| 大香蕉日亚洲日本亚大| 操熟女91| 熟女激情综合网| 天堂中文资源在线bt| 玖玖婷婷五月天| 99国内精品| 日韩精品怡红院| 日本二区不卡| 国产区日韩区在线观看| 99久久婷婷丁香| 色噜噜婷婷| 久草色悠悠在线视频| 无毛精品| 九九九久久久| 欧美大香蕉专区网| 激情四射婷婷四五月天| 很很很很操| 日韩99999| 日韩乱伦AⅤ| www.狠狠| 久久熟女久| 欧美极品| 日本熟妇人妻中出视频| 97超碰碰碰| 欧美在线|亚洲| 青娱乐福利99| 99视频内射三四| 啊啊啊啊操死我了| 密臀视频三区免费网站| 国产精品视频一区二区三区八戒| 99亚洲精品| 人妻激情在线视频| 精品久久久av无码免费| 国产 丝袜 欧美中文 另类| 欧美天天综| 欧美 亚洲 在线| 亚洲九月丁香| 麻豆精品A片免费观看| 亚洲人妻精品一区二区| 亚洲AV噜噜狠狠网址蜜桃动漫| 亚洲va综合va国产va中文| 青青草字幕AV| 九九九精品成人免费视频小说| 色欲久久综合| 后入式五六区| 国产大陆天天艹| 无码91| 男同专区一区二区三区在线| 色综合av男人天堂| 国产极品久久久| 97视频网站| 伊人成人中文字幕久久网| 老鸭窝日丰县女人| 99老司机精品视频在线观看| 久久综合18p| 91精品国产一区三一| 国产亚洲国产超碰| 视频黄站| 久久高清欧美国产| 麻豆成人av| 久久受www免费人成| 欧美不卡在线美女| 欧美激情在线观看视频| av一区二区三区 中文| 任你干在线视频| 精品少妇人妻av久久免费| 蜜臀AV成人精品蜜臀AV久久| 老司机福利青青草| 蜜臀久久久久久999| 日韩性色| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 精品午夜福利| 熟女人妻久久中文字幕一二区| 亚洲第一页色网| 人人插人人搞人人操| 日韩色图 一区二区| 艹比视频国产精品| 青青久久久| 91黑人无码激情在线| 人乳av| 国产免费永久精品无码| 狠狠色五月亚洲91| 五月综合视频| 在线视频97| 人妻在线中出视频| 情趣丝袜无码操逼视频| 91网站视频在线观看| 午夜视频好爽啊| 亚洲色情在线影视| 日本在线不卡v二区| 啊啊啊啊,啊啊好多水| 色婷网| 天天伊人| 国产久久日韩网站导航| 久久久久亚洲av综合波多野制衣| 天天操人人操骚逼网站| 国产成人在线观看综合| 午夜一区| 午夜成人福利影视| 国产欧美岛国精品一区| 亚洲双插| 丝袜狠狠草尤物人妻av91| 在线人成亚洲视频免费观看| 性欧美精| 色色色网站| 国产精品久久久久久亚洲色欲| 97 九色| 亚洲中文字幕精品久久久久久直播| 99夜夜操| 97精品97| 伊人五月天| 综合伊人激情| 偷拍欧美亚洲| 九一亚洲国产免费| 亚洲二区精品在线观看 | 亚洲日韩AV视色| 91午夜无码| 蜜臀久久99精品久久久久久成人小说| 91亚洲不卡一区| 婷婷丁香五月天综合东京热| 91人人操| 欧美日韩中国x| 久久精品欧美一区蜜桃| 精品国产一区二区三区四区在线看| 久久精品女同亚洲女同13| 丰满人妻一区二区三区在线| 一区二区三区 日韩欧美| 中文字幕三四区| 久草线上视频免费看| 美国美女AV在线| 黄网色一区二区三区四区精品| 夜草网站| 91高清欧美| 欧美大片天天看| 尻女朋友一夜| 日韩av乱伦| 一起草欧美| 欧美Ⅴ性爱| 不卡视频一区蜜桃视频| 久草草一二三四区久久| 久久发布国产伦子伦精品| 伊人久久大香大香线蕉中文| 成人性爱av| av网站免费看| 色吊丝 日日骚 清纯唯美| 黄色十八禁| 日日黄色三级网站| 射丝袜高跟鞋99| 六月丁香啪啪| 亚洲无码一区二区三区三州| 黄色人人| 国产婷婷综合在线观看| 亚洲熟妇A V黑人| 中文字幕熟女人妻丝袜丝| 国产精品色哟哟| 欧美色图亚洲色图成人在在线| 五月天伊人| 91日本在线观看| 亚洲强奸乱伦影视网| 免费观看国产小粉嫩喷水精品午| 亚洲视频中文一区| 夜夜躁狠狠躁日日躁av| 丝袜美腿丝袜| 久久精品女同亚洲女同13| 神马久久69| 伊人 俄罗斯 a v| 99啪啪| 91成人在线| 色婷婷成人综合| 久久一留热品黄| 亚洲91亚洲| 91日日| 91l欧美在线| 日韩精品99久久久久久中文字幕 | 国产成人欧美精品在线| 亚洲天天综合| 免费AV中文网在线观看| 成人线上超碰| 91被操| 成人免费毛片| 欧美丰满少妇xx高潮| 成人麻豆av电影网站| 天天色天天干天天射| 人妻一区视频| 久久精品亚洲成a人天堂| 全球成人中文在线| 亚洲av乱伦色图网站| 97福利视频| 懂色AV一区二区三区| 久都青青视频| 狠狠干精品一二三四五六2022| 97自拍一区| 精品人妻伦一区二区三区久久| 欧美激情一| 中文字幕一区二区无码成人| 夜夜嗨视频| 少妇熟女1区2区3区| 久久国产乱子伦精品免费女人| 视频黄色国产一级| 思思热免费视频观看| 91精品综合久久久久久五月丁香| 欧州色图区| 性色国产东北露脸精品视频| 2017超碰| 日韩小电影| 1级午夜影院费免区| 亚洲国产一级精品毛一级精品看免费视频| 亚洲操逼视频网站| 亚洲色吧网| 欧洲精品一区二区三区| 熟女久久久| 天天射日日干| 岛国黄| 水野优香在线观看| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 亚洲av影院在线观看| Julia在线播放亚洲久久| 影音综合网| 欧美一区二区三熟女剧情| 天天爽天天操啊啊啊| 久久久久亚洲av综合波多野制衣| 日韩免费性爱视频在线观看| 嗯嗯嗯啊啊啊操的我好爽| 九七毛片九九毛片| 精品传媒在线一区| 九九精品99| 日本狠狠干| 黑人精品久久97| 欧美亚洲图片| 色久桃花影院在线观看| 欧美亚性天堂| 日韩色女精品| 日韩av无码网站| 午夜福利成人免费视频| 好吊色一区| 男人的天堂1024| 老熟女乱子伦中文字幕一区二区| 激情99| 2019亚洲男人天堂| 国产精品黑人一区二区三区| 亚洲综合成人网| 国产1727欧美| 日韩免费av片高清无码| 操人无码| 综合天天。| 日韩簧片免费看| 亚 欧 美 综合| 凹凸 69堂 在线播放| 东北丰满熟女国产一区| 麻豆久久久久久久久丝袜| 欧美自拍网| 全球成人中文在线| 亚洲色入欧美| 久久久久久亚洲Av无码| 97视频观看| 操熟女91| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 深喉吞精| 777奇米影视777四色| 久热久| 国产黄色影片在线观看| 老熟女91av| 久久久久久久97| 婷婷五月天AV| 91青青在线| 欧美精品1区2区3区| 国产一区二区久久| 在线岛国新天堂8| 情色av电影| 三级日韩一区二区三区| oumeisetu综合| 久久东京热久久| 91粉芽高清在线一区二区| 国产乱码久久久| 日韩在线观看中文字幕视频| 亚洲综人网| 五月天色色网站| 蜜臀久久99精品久久久久电影| 最近的最新的中文字幕视频| 二级毛片| 偷看洗澡一二三区美女| 日夜尻逼网| 色综合久久888| 91性网| 美女啊啊啊啊啊啊啊| 亚洲欧美首页| 午夜福利久久久噜久噜久久综合| 视频一区二区免费在线| 四季AV综合网址| 国内偷自视频区视频综合| 久热久| 99日精品欧美国产| 亚洲精品国产拍免费91在线| 色婷婷五月天| 色综合av综合久久| 欧洲亚洲人妻无码中字久久三区四区| 内射小黄片| 天天操天天谢| 婷婷丁香五月激情啪啪| 97K超碰在线| 免费看美国人人爽,人人操| 午夜福利国产欧美日韩夜夜| 操亚州| 亚洲啪啪性视频| 亚洲综合首页| 白 大 人妻 区 在线| 亚洲二区精品在线观看| 怡红院成人视频| 夜夜操91744565| 日韩久久.一级黄色片| 久久久无码精品人妻二区| 2020视频1区2区3区| 内射老妇BBWX0C0CK| 亚洲91综合| 亚洲老熟妇xxx| 最新av中文字幕高清| 伊人在线大香蕉视频久久| 日韩精品在线观看网站| 天天做日日爱夜夜爽| 少妇高潮一区二区三区在线| 久草综合京东| 天天搞在线综合网| 中文字幕乱码在线观看| 欧美视频第二页| av资源在线播放天堂| 91色交| 99热国产| 夜夜高潮夜夜爽| 日韩不卡a级视频专区| 国产精品九九九| 亚洲青青草| 人妻密肉在线观看| 国产极品一区二区三区三州| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 亚洲 综合 第一页| 人妻啊啊人妻啊啊| 97欧美性爱| 女优大全 - 91n| 亚洲91在线| 欧美综合在线91| 啊啊啊啊啊在线| 亚洲精品少妇| 熟妇女人妻呻吟久久AV| 久久久少妇诱惑精品视频| 五月激情综合网| 久久黄色视频一区二区三区| 中文字幕视频二区| 极品后入免费视频| 欧州色图区| 91成人精品在线播放| 国产辣妈在线视频福利| 青青草华人在线欧美在线| 免费人人搞97| 久操综合在线| 91呆哥人妻| 99久久e免费热视| 在线观看亚洲成人精品| juliaann丝袜| 偷拍99| 97bbn| 久久 亚洲 日韩 人妻| 有码免费观看| 情侣开房子拍 日韩无码 女的很漂亮| 亚洲第一成人影院色播| 人人操肉肉| 亚洲精品乱码线路中文字幕| 大JI巴好深好爽又大又粗视频| 东京热毛片调教| 熟女久久| 久久精品女同亚洲女同13| 99re在线精品78| 亚洲国内精品成人不卡| 色999偷自拍拍| 任我爽视频在线观看| 国产91美女高潮| 日本 欧美 亚中文字幕| 久久九九99| 色5月婷婷| 天天干天天插| 五月婷丁香| 啊啊啊不要好疼视频| 女优视频第10页| 啊啊啊啊一区| 蜜桃成人1区2区3区| 亚洲夜色在线| 蜜桃精品一区二区三区ww| 69人妻人人揉人人躁人人精品| 亚洲色图激情小说| 91男女啊啊啊| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 欧美色图片91| 日少妇亚洲版| 日本精品性生活久久久| 亚洲精品国产av天美传媒| av一区二区三区四区五区久草臀| 亚洲AV无码久久精品蜜桃小说| 亚洲一区二区 麻豆传媒| 长久操视频| 9精品久久久久| 亚洲久久久久|