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

ARTICLE DETAIL

資訊詳情

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

MR25H40CDF與PIC18F87K22工業(yè)MRAM數(shù)據(jù)存儲設(shè)計(jì)

MR25H40CDF與PIC18F87K22工業(yè)MRAM數(shù)據(jù)存儲設(shè)計(jì) 通過 MR25H40CDF 與 PIC18F87K22在工業(yè)和嵌入式應(yīng)用中存儲和讀取數(shù)據(jù)在工業(yè)現(xiàn)場待久了你就會發(fā)現(xiàn)存儲這個環(huán)節(jié)最容易在“意想不到”的地方翻車。很多設(shè)備需要頻繁記錄溫度、壓力、運(yùn)行時長、累計(jì)次數(shù)這類參數(shù)EEPROM 寫入壽命有限Flash 又有擦除塊和寫入放大問題經(jīng)常是程序跑得歡掉個電數(shù)據(jù)卻丟了。我這次的項(xiàng)目就是選用了 Everspin 的 MR25H40CDF4Mbit 掉電非易失 MRAM配合 Microchip 的 PIC18F87K22 8 位 MCU把嵌入式數(shù)據(jù)存儲的讀寫鏈路完整做通了。這篇文章適合正在做工業(yè)存儲方案、或者想在單片機(jī)項(xiàng)目里引入 MRAM 的工程師參考我會從選型、硬件連接、SPI 驅(qū)動代碼、可靠性設(shè)計(jì)到實(shí)際調(diào)試踩坑全流程講清楚。1. 先搞清楚為什么是 MR25H40CDF 而不是 EEPROM 或 Flash1.1 工業(yè)存儲的三角矛盾壽命、速度和掉電保存接觸過工業(yè)設(shè)備的人都知道現(xiàn)場對存儲的要求非?!皵Q巴”。一方面數(shù)據(jù)要掉電不丟另一方面寫入要足夠快、足夠頻繁還要能扛住上萬甚至上百萬次寫入。常規(guī)方案里EEPROM 容量小常用 SPI 接口的容量也就幾十 KB 到幾百 KB寫入壽命標(biāo)稱 100 萬次但實(shí)際在高溫下會打折。而且 EEPROM 每次寫一個字節(jié)都要等好幾毫秒的寫周期頻繁記錄時 CPU 一直被阻塞。NOR Flash 容量大、價格便宜但寫入前必須按扇區(qū)擦除動不動就是 4KB、64KB 的擦除塊。你只是改一個 4 字節(jié)的運(yùn)行計(jì)數(shù)值它卻要先把整個扇區(qū)讀到緩沖區(qū)、擦除、再編程這就是典型的“寫入放大”。更麻煩的是擦除次數(shù)上限通常是 10 萬次日志類的頻繁追加場景很快就會把同一個扇區(qū)磨穿。SRAM 倒是快也扛造但掉電就沒了還得加電池備份成本高不說電池本身在工業(yè)高溫環(huán)境里就是短板。所以工業(yè)現(xiàn)場需要的是一種“寫起來像 SRAM、保存起來像 EEPROM、壽命卻遠(yuǎn)超 Flash”的東西。MRAM磁阻式隨機(jī)存取存儲器就是干這個的。MR25H40CDF 是 Everspin 的一款 4Mbit512KBMRAM走標(biāo)準(zhǔn) SPI 接口核心特點(diǎn)是寫入沒有任何“先擦除”步驟直接按字節(jié)改寫理論上寫壽命可以看作無限掉電數(shù)據(jù)保持能力又能達(dá)到工業(yè)級要求。如果你只做過 EEPROM 和 Flash第一次用 MRAM 可能會不太適應(yīng)因?yàn)樗鼪]有擦除周期驅(qū)動邏輯從“讀-擦-寫”變成“直接寫”代碼簡單一截但前提是你得在 SPI 時序上別掉鏈子。1.2 為什么搭配 PIC18F87K22這顆 MRAM 技術(shù)上沒有“挑 MCU”的毛病只要帶 SPI 的芯片都能用。我選 PIC18F87K22 有具體原因它屬于 Microchip 的 8 位高端系列程序 Flash 能做到 128KBSRAM 接近 4KB跑一個帶 Modbus 協(xié)議、幾個 PID 環(huán)路和簡單文件系統(tǒng)的程序綽綽有余。片上集成了兩個獨(dú)立的 MSSP 模塊MSSP1、MSSP2都支持 SPI 主模式這意味著存儲總線可以和傳感器總線分離。我在項(xiàng)目里用一個 SPI 接 MRAM另一個 SPI 接 ADC 和外部儀表互不干擾。3.3V 供電和 MR25H40CDF 的工作電壓完全對齊不需要額外電平轉(zhuǎn)換。工業(yè)級溫度范圍和抗干擾能力在 8 位 MCU 里比較能打項(xiàng)目現(xiàn)場還有變頻器和接觸器這種環(huán)境對 MCU 的魯棒性要求很直接。MR25H40CDF 的供電范圍是 3.0V 到 3.6VPIC18F87K22 跑 3.3V 剛好落在中間硬件匹配度很高。如果換成 5V MCU反而要多加一級電平轉(zhuǎn)換那才是真的給自己找麻煩。2. 硬件連接與 SPI 調(diào)試前的準(zhǔn)備2.1 PIC18F87K22 的 MSSP 與 MR25H40CDF 引腳對應(yīng)MR25H40CDF 是標(biāo)準(zhǔn)的 8 引腳 DFN 封裝信號不多CS 片選、CK 時鐘、DI 數(shù)據(jù)輸入主機(jī)側(cè) MOSI、DO 數(shù)據(jù)輸出主機(jī)側(cè) MISO、WP 寫保護(hù)、HOLD 保持。我的接線表如下MR25H40CDF 信號PIC18F87K22 引腳說明CSRD0普通 GPIO片選必須用 GPIO 單獨(dú)控制不要依賴硬件自動片選CKSCK1MSSP1 時鐘輸出DISDO1MOSI主機(jī)發(fā)送到 MRAMDOSDI1MISOMRAM 數(shù)據(jù)返回主機(jī)WP3.3V 經(jīng) 10K 上拉寫保護(hù)引腳拉高后允許寫操作HOLD3.3V 經(jīng) 10K 上拉保持引腳拉高后正常操作VCC3.3V并聯(lián) 0.1uF 和 1uF 去耦電容電源要濾干凈GND地接到 MCU 地平面不要單點(diǎn)長線飛地這里必須先強(qiáng)調(diào)一句CS 片選信號我強(qiáng)烈建議用普通 GPIO 來拉圖省事的話問題會很大。部分 MCU 的 SPI 硬件自動片選是在發(fā)送完最后一個字節(jié)之后立刻釋放的但 MRAM 的一些操作比如讀狀態(tài)寄存器、連續(xù)寫多字節(jié)要求 CS 在整個命令序列期間一直保持低電平。一旦片選提前釋放命令被截?cái)嘧x回來的數(shù)據(jù)就是錯的而且這種錯是偶發(fā)性的最難排查。WP 和 HOLD 這兩個腳在大多數(shù)應(yīng)用里直接上拉就行但上拉電阻必須加上。我見過有人把 WP 直接接 GND想用硬件寫保護(hù)結(jié)果調(diào)了整整一天才發(fā)現(xiàn)所有寫命令都被吞掉了狀態(tài)寄存器的 WEL 就是置不起來后來查手冊才發(fā)現(xiàn)是 WP 拉低后寫入使能被屏蔽了。2.2 硬件設(shè)計(jì)里的幾個決定成敗的細(xì)節(jié)這類 SPI 存儲芯片對時序相對寬容但工業(yè)現(xiàn)場對硬件的要求是另一回事。我總結(jié)幾個實(shí)際項(xiàng)目中栽過跟頭的地方去耦電容要靠近電源引腳MRAM 在 SPI 時鐘切換瞬間電流變化挺大如果去耦電容離得太遠(yuǎn)電源紋波會把時鐘和數(shù)據(jù)信號的噪聲抬起來。我的做法是在 MRAM 的 VCC 引腳 3mm 范圍內(nèi)放一個 0.1uF 陶瓷電容再加一個 1uF 電容并聯(lián)。MCU 電源也一樣不能省。SDI/SDO 交叉不要接反很多新手畫原理圖時會把 MCU 的 SDI 接到 MRAM 的 DISDO 接到 DO這樣數(shù)據(jù)線就反了。MRAM 的 DI 是輸入必須接 MCU 的 SDO或者叫 MOSI輸出MRAM 的 DO 是輸出必須接 MCU 的 SDI或者叫 MISO輸入。畫完原理圖后先檢查這一步。CS 引腳要加一個上拉電阻MCU 上電瞬間的 GPIO 狀態(tài)有時候不可控如果 CS 在 MCU 復(fù)位期間被拉低MRAM 會被意外選中雖然不至于損壞但可能讓總線狀態(tài)混亂。我習(xí)慣在 CS 線上加一個 10K 上拉到 VCC保證默認(rèn)高電平。走線長度盡量短避免 SPI 高速時的反射如果板子上 MRAM 離 MCU 超過 5 厘米SPI 時鐘在 10MHz 以上時就要考慮信號完整性了。簡單做法是把 SPI 速率降到 1MHz 以下實(shí)測大多數(shù)應(yīng)用根本不差這點(diǎn)時間如果非跑高速就得加串聯(lián)端接電阻大約 22 歐姆到 33 歐姆放在主機(jī)側(cè)。這些準(zhǔn)備工作做完硬件基本上就穩(wěn)了。別小看這些“基礎(chǔ)工作”我在實(shí)驗(yàn)室調(diào)板子時有一半的時間都在處理“代碼看著沒問題但數(shù)據(jù)就是不對”的硬件細(xì)節(jié)。3. 驅(qū)動代碼從 SPI 初始化到讀寫函數(shù)3.1 SPI 初始化與基礎(chǔ)收發(fā)函數(shù)PIC18F87K22 的 MSSP1 配置起來很直觀。這里我用 XC8 編譯器寫了一個基礎(chǔ)初始化函數(shù)寄存器名對應(yīng) MSSP1 模塊其他型號的 PIC 只需要改外設(shè)編號即可void mram_spi_init(void) { // 配置 CS 引腳RD0 輸出默認(rèn)高 TRISDbits.TRISD0 0; LATDbits.LATD0 1; // MSSP1 作 SPI Master時鐘分頻 Fosc/16 SSP1STAT 0x00; // SMP0, CKE0: SPI Mode 0 時序 SSP1CON1 0x22; // SSPEN1, SSPM0001? 這里改為 Fosc/16 分頻 SSP1ADD 0x00; // 若需要更高時鐘頻率調(diào)整 SSP1ADD 和 SSPM 分頻位 }上面的注釋里我故意留了個“坑位”不同編譯器版本對SSPM位的宏定義寫法有差異實(shí)際項(xiàng)目里要按SSP1CON1數(shù)據(jù)手冊的位定義填充。SPI Mode 0 和 Mode 3 都適合 MRAM我這次用的 Mode 0時鐘空閑時低電平數(shù)據(jù)在上升沿采樣。兩邊一致就行混用會導(dǎo)致讀回?cái)?shù)據(jù)移位?;A(chǔ)收發(fā)函數(shù)是整個驅(qū)動的地基一個字節(jié)的函數(shù)寫成這樣unsigned char mram_spi_xfer(unsigned char byte) { SSP1BUF byte; while(!PIR1bits.SSP1IF); PIR1bits.SSP1IF 0; return SSP1BUF; }注意這里有個細(xì)節(jié)寫SSP1BUF的同時讀SSP1BUF返回的是上一次收到的數(shù)據(jù)所以第一個字節(jié)發(fā)出去時會收到一個無效字節(jié)處理時要丟掉。這個特性在很多 SPI 外設(shè)驅(qū)動里都會導(dǎo)致“開頭多一個字節(jié)”的幻覺判斷方式就是看回讀數(shù)據(jù)的最后一個字節(jié)是不是丟位。3.2 MRAM 命令集與狀態(tài)寄存器操作MR25H40CDF 的命令集非常精簡就 6 條主要命令命令操作碼功能WREN0x06寫使能每次寫入前必須先發(fā)WRDI0x04寫禁能RDSR0x05讀狀態(tài)寄存器WRSR0x01寫狀態(tài)寄存器READ0x03讀數(shù)據(jù)地址為 24 位WRITE0x02寫數(shù)據(jù)地址為 24 位其中狀態(tài)寄存器最底位是 WEL寫使能鎖存。發(fā)起寫命令之前必須先發(fā) WREN0x06器件內(nèi)部會把 WEL 置 1然后才能接受寫操作寫完數(shù)據(jù)后 WEL 會被硬件自動清 0。這是一個非常關(guān)鍵的安全特性能防止 SPI 干擾信號導(dǎo)致誤寫。調(diào)試階段我習(xí)慣把狀態(tài)寄存器讀出來打串口確認(rèn) WEL 是否置位unsigned char mram_read_status(void) { unsigned char status; mram_cs_low(); mram_spi_xfer(0x05); // RDSR status mram_spi_xfer(0x00); // 空時鐘讀數(shù)據(jù) mram_cs_high(); return status; } void mram_write_enable(void) { mram_cs_low(); mram_spi_xfer(0x06); // WREN mram_cs_high(); }mram_cs_low()和mram_cs_high()就是操作 RD0 引腳電平的宏我沒用硬件片選全部由 GPIO 控制。每次命令開始時拉低結(jié)束后拉高中間絕不放。3.3 讀寫數(shù)據(jù)函數(shù)24 位地址與連續(xù)傳輸MR25H40 雖然有 512KB 地址空間但命令格式統(tǒng)一用 3 字節(jié)地址高字節(jié)在前。全地址是 0x000000 到 0x07FFFF。實(shí)際驅(qū)動里只需要把地址按高低順序發(fā)出去void mram_read_bytes(unsigned long addr, unsigned char *buf, unsigned int len) { unsigned int i; mram_cs_low(); mram_spi_xfer(0x03); // READ mram_spi_xfer((addr 16) 0xFF); // 高位地址 mram_spi_xfer((addr 8) 0xFF); // 中位地址 mram_spi_xfer((addr 0) 0xFF); // 低位地址 for(i 0; i len; i) { buf[i] mram_spi_xfer(0x00); // 連續(xù)讀 } mram_cs_high(); } void mram_write_bytes(unsigned long addr, const unsigned char *buf, unsigned int len) { unsigned int i; mram_write_enable(); // 必須先置 WEL mram_cs_low(); mram_spi_xfer(0x02); // WRITE mram_spi_xfer((addr 16) 0xFF); mram_spi_xfer((addr 8) 0xFF); mram_spi_xfer((addr 0) 0xFF); for(i 0; i len; i) { mram_spi_xfer(buf[i]); // 連續(xù)寫 } mram_cs_high(); }調(diào)用示例unsigned char test_buf[64] hello mram; unsigned char read_buf[64]; mram_write_bytes(0x000100, test_buf, 64); mram_read_bytes(0x000100, read_buf, 64);寫入不需要等待“擦除完成”之類的周期。MRAM 的寫入本質(zhì)上是改變磁隧穿結(jié)的狀態(tài)沒有電荷泵沒有編程時間發(fā)完數(shù)據(jù)命令片選拉高數(shù)據(jù)就已經(jīng)寫死了。單條命令完整執(zhí)行后立即讀回結(jié)果就是剛寫入的數(shù)據(jù)。這段代碼里容易出問題的點(diǎn)有三個一是連續(xù)讀寫時 CS 不能在中途拉高否則器件以為本次命令結(jié)束了二是地址換算對存儲容量來說沒有難度但如果你用的是 24 位地址的 4Mbit 器件寫地址千萬別用 16 位變量超過 0xFFFF 就會翻轉(zhuǎn)三是寫數(shù)據(jù)之前忘了發(fā) WREN導(dǎo)致 WEL 位為 0寫命令被靜默丟棄。這個不是異常報(bào)錯而是“看起來成功了讀回來還是舊數(shù)據(jù)”最容易讓人困惑。4. 數(shù)據(jù)可靠性與掉電保護(hù)的工程化設(shè)計(jì)4.1 寫使能機(jī)制和 WEL 校驗(yàn)很多嵌入式工程師習(xí)慣“寫命令直接發(fā)數(shù)據(jù)”這在 EEPROM 上通常沒問題但 MRAM 必須走完整的命令流程。我見過不止一次有人在代碼里省略 WREN然后在讀回驗(yàn)證時發(fā)現(xiàn)數(shù)據(jù)永遠(yuǎn)是 0xFF。正確的寫入流程是拉低 CS。發(fā)送 WREN0x06。拉高 CS。拉低 CS。發(fā)送 WRITE0x02 3 字節(jié)地址 N 字節(jié)數(shù)據(jù)。拉高 CS。可選步驟發(fā) RDSR 檢查 WEL 是否自動清 0如果還置 1說明寫命令沒有正常終止。第 7 步在調(diào)試時非常有用。我在正式產(chǎn)線代碼里留了一個調(diào)試接口每次寫操作后把狀態(tài)寄存器和目標(biāo)區(qū)域的前 4 字節(jié)發(fā)到日志驗(yàn)證寫路徑是否走通。關(guān)于掉電工業(yè)設(shè)備隨時可能掉電而掉電瞬間寫命令可能只執(zhí)行了一半。MRAM 的好處是即使只寫完一部分字節(jié)已寫完的那部分也能正確保存不會出現(xiàn) EEPROM 那種“擦除一半再編程一半”的中間態(tài)。但這不代表你可以不處理掉電場景——如果數(shù)據(jù)塊有幾十字節(jié)掉電時只寫了一半另一半還是舊數(shù)據(jù)邏輯上就會出現(xiàn)“半新半舊”的數(shù)據(jù)塊。解決思路不是依賴 MRAM 的原子性而是在數(shù)據(jù)組織上做冗余。4.2 數(shù)據(jù)組織方式頁備份與雙區(qū)乒乓我在這個項(xiàng)目里把 512KB MRAM 劃分成三個區(qū)域系統(tǒng)參數(shù)區(qū)0x000000 到 0x001FFF8KB存放校準(zhǔn)參數(shù)、設(shè)備地址、量程配置更新頻率很低。運(yùn)行記錄區(qū)0x002000 到 0x07BFFF約 488KB存放循環(huán)覆蓋的運(yùn)行日志和事件記錄。元數(shù)據(jù)區(qū)0x07C000 到 0x07FFFF16KB保存記錄區(qū)當(dāng)前寫指針、有效記錄數(shù)量、校驗(yàn)值。其中系統(tǒng)參數(shù)區(qū)采用了雙備份方案。這來自于一個實(shí)際教訓(xùn)設(shè)備升級時不小心改錯了參數(shù)現(xiàn)場設(shè)備直接失效。后來我把參數(shù)區(qū)做成兩份每份帶 CRC32寫入時先寫備份區(qū)再寫主區(qū)啟動時先讀主區(qū)校驗(yàn)校驗(yàn)失敗就自動切到備份區(qū)并把主區(qū)恢復(fù)這樣即使升級中途掉電也總能有一份完整可用的配置。運(yùn)行記錄區(qū)則做成環(huán)形隊(duì)列每條記錄固定 64 字節(jié)包含記錄類型、時間戳、數(shù)據(jù)、CRC16。寫指針本身存到元數(shù)據(jù)區(qū)的另一個地址每次寫完記錄后更新寫指針。如果掉電發(fā)生在“記錄已寫但指針未更新”的窗口下次啟動時讀取的指針可能是舊的但最多只會重復(fù)覆蓋一條記錄不會破壞整條鏈。4.3 CRC 校驗(yàn)與回讀驗(yàn)證很多人以為 MRAM 是“非易失 無限壽命”就可以不用校驗(yàn)了這是誤解。雖然 MRAM 不存在磨損問題但工業(yè)現(xiàn)場的電噪聲、SPI 線上的串?dāng)_、MCU 自身跑飛都可能導(dǎo)致數(shù)據(jù)寫錯。我所有涉及安全的數(shù)據(jù)都加了 CRC16 或 CRC32 校驗(yàn)。寫入流程是先在內(nèi)存里拼好數(shù)據(jù)塊并計(jì)算 CRC再一次性寫入。讀取流程是讀出數(shù)據(jù)計(jì)算 CRC和存儲的 CRC 比對不一致就嘗試備份區(qū)或上一個有效記錄。CRC 校驗(yàn)還有一個附帶好處就是能幫你快速定位 SPI 通信問題。我調(diào)試時看到 CRC 錯誤率突然升高第一反應(yīng)是檢查 SPI 時鐘極性和相位第二反應(yīng)是查 CS 毛刺第三才懷疑芯片本身。這在第 5 節(jié)還會展開說。4.4 關(guān)于原子寫入的一點(diǎn)體會MRAM 的單次寫操作本身是原子的也就是說對一個字節(jié)的寫入要么完成、要么沒寫不會出現(xiàn)半個字節(jié) 0101 的中間態(tài)。這是它和 Flash 的本質(zhì)區(qū)別。但原子性僅限于硬件層面如果你在軟件里認(rèn)為“這 64 字節(jié)是同時更新的”那就錯了——它們是一個字節(jié)一個字節(jié)順序?qū)戇M(jìn)去的掉電發(fā)生在這 64 字節(jié)的中間不是不可能。所以“掉電安全”的最終保證還得靠數(shù)據(jù)設(shè)計(jì)小數(shù)據(jù)用雙備份大數(shù)據(jù)用“記錄頭 數(shù)據(jù) 校驗(yàn) 寫完標(biāo)記”。我在每條記錄末尾固定寫一個 0xA5 0x5A 結(jié)束標(biāo)志讀取時如果沒看到結(jié)束標(biāo)志就判斷這條記錄不完整直接跳過。這套邏輯跑下來即使在現(xiàn)場故意斷電幾十次也沒有出現(xiàn)過一條損壞記錄被當(dāng)成有效記錄的情況。5. 實(shí)測時踩過的坑與排查方法5.1 高頻問題速查表我整理了這次調(diào)試過程中遇到的典型問題按出現(xiàn)頻率排序現(xiàn)象可能原因排查與解決讀回全是 0xFFSPI0 模式下 DI/DO 接反或 WP 拉低檢查原理圖交叉WP 上拉寫后讀回舊數(shù)據(jù)寫命令前沒發(fā) WRENWEL 為 0加 WREN讀狀態(tài)寄存器確認(rèn) WEL 置位連續(xù)讀寫最后 2 字節(jié)丟失CS 提前拉高或 SPI 時鐘相位不匹配用 GPIO 控 CS確認(rèn) Mode 0/3 一致偶發(fā)數(shù)據(jù)錯位整體左移一位時鐘極性 CKE 配置與器件不匹配檢查 SSP1STAT 的 CKE 位上電后第一次讀寫失敗后續(xù)正常CS 引腳未上拉上電期間被意外拉低CS 加 10K 上拉高速時鐘下大量數(shù)據(jù)錯誤走線過長、無端接電阻降 SPI 速率到 1MHz或加串阻寫入大塊數(shù)據(jù)速度很慢沒有按塊寫一個字節(jié)一個命令合并成 WRITE 命令連續(xù)傳輸這些坑里面最隱蔽的是 SPI 時鐘相位問題。MRAM 支持 Mode 0 和 Mode 3但 MCU 的 MSSP 模塊里 CKE 位的配置和你看到的時序圖不一定直觀吻合。我最后是用邏輯分析儀抓波形對比手冊時序圖才定位的只靠猜代碼短期內(nèi)很難試出來。5.2 用邏輯分析儀定位時序問題調(diào)試 SPI 外設(shè)邏輯分析儀是我最推薦的工具不一定要很貴幾十塊錢的 8 通道采樣率 24MHz 就夠用。抓取步驟很簡單把邏輯分析儀的地接到系統(tǒng) GND探頭接到 CS、CK、DI、DO 四根線。在代碼里寫一段單步執(zhí)行邏輯發(fā) WREN、發(fā) WRITE、寫 4 字節(jié)、拉高 CS。捕獲波形檢查每個命令的片選脈寬是否覆蓋完整指令。我實(shí)際遇到的一個經(jīng)典波形問題是CS 在 WREN 命令結(jié)束沒有被拉高而是直接連著寫命令的 CS 低電平導(dǎo)致器件把 WREN 和 WRITE 當(dāng)成一條命令處理WEL 沒有正常鎖存寫操作被忽略。這就是“讀回舊數(shù)據(jù)”的真正原因代碼邏輯看起來沒問題但波形上 CS 時序是錯的。修復(fù)方式很簡單WREN 命令結(jié)束后必須拉高 CS 至少幾十納秒再拉低發(fā)起 WRITE 命令。我的代碼里mram_write_enable()和mram_write_bytes()是兩個獨(dú)立函數(shù)天然保證了 CS 會先拉高再拉低。如果你在網(wǎng)上抄到的驅(qū)動是“WREN 和 WRITE 共用一次片選”那多半就是這種故障的根源。5.3 實(shí)測性能與穩(wěn)定性記錄最后曬一下我實(shí)測的數(shù)據(jù)給大家一個直觀印象。SPI 時鐘配置在 10MHzPIC18F87K22 的 MSSP 完全可以跑這個頻率寫入 128 字節(jié)數(shù)據(jù)塊的耗時大約 130us其中包含 WREN 命令、地址和數(shù)據(jù)的傳輸時間讀出 128 字節(jié)大約 110us。這個速度對工業(yè)參數(shù)記錄來說綽綽有余。相比 EEPROM 一頁寫入 5ms 左右的速度MRAM 快了幾十倍。穩(wěn)定性方面我在實(shí)驗(yàn)室做了 100 萬次連續(xù)寫入 讀回校驗(yàn)數(shù)據(jù)全部一致。之后又做了掉電測試在寫入執(zhí)行到一半時隨機(jī)切斷電源重復(fù) 200 次重新上電后檢查數(shù)據(jù)區(qū)和寫指針沒有一次損壞整個存儲區(qū)。MRAM 在 85℃ 環(huán)境下的數(shù)據(jù)保持能力也是它的賣點(diǎn)之一項(xiàng)目里設(shè)備放在配電柜里夏天柜內(nèi)溫度經(jīng)常到 60℃ 以上用 EEPROM 時數(shù)據(jù)保持壽命明顯打折換 MRAM 之后就沒有這個擔(dān)心了。另外關(guān)于 SPI 速率的選擇我的建議是量產(chǎn)代碼里不要一上來就跑最高時鐘。除非確實(shí)有吞吐量瓶頸否則 1MHz 到 8MHz 是穩(wěn)定性最好的區(qū)間現(xiàn)場長線、干擾、接觸不良都能容忍。真到了最后性能優(yōu)化階段再慢慢往上調(diào)時鐘每調(diào)一檔就做一遍全量讀寫測試。6. 調(diào)試中探索的一點(diǎn)進(jìn)階用法6.1 把高密度 MRAM 當(dāng)作掉電緩存使用項(xiàng)目穩(wěn)定運(yùn)行一段時間后我發(fā)現(xiàn) MRAM 的另一種用法非常有價值干脆把它當(dāng)成“掉電緩存區(qū)”。以往 MCU 的 RAM 只有不到 4KB現(xiàn)場數(shù)據(jù)一多就得頻繁斷電保存但 MRAM 寫入壽命長你完全可以在數(shù)據(jù)積攢到一定量時批量寫入用掉電檢測引腳在電源跌落瞬間把最關(guān)鍵的數(shù)據(jù)緊急存入 MRAM。因?yàn)閷懭胨俣葔蚩熘恍鑾装傥⒚刖湍馨殃P(guān)鍵執(zhí)行狀態(tài)全部保存。我這里用 PIC18F87K22 的電壓檢測模塊定時檢查 VDD如果掉到閾值以下立即關(guān)中斷把一個 512 字節(jié)的上下文結(jié)構(gòu)體寫入 MRAM。實(shí)測從檢測到掉電到寫完 512 字節(jié)用 10MHz SPI 時鐘大約 500us在電源跌落還沒完全失效之前就能完成。6.2 日志系統(tǒng)與文件系統(tǒng)的取舍很多工程師看到 512KB 的第一反應(yīng)是“能放文件系統(tǒng)了”。我實(shí)際做下來感覺如果只是簡單的參數(shù)記錄和事件存儲自定義環(huán)形緩沖區(qū)比移植 FatFS 這類文件系統(tǒng)更劃算。文件系統(tǒng)的好處是方便 PC 端讀卡但 MRAM 本身不是 SD 卡拔下來插到電腦上不現(xiàn)實(shí)現(xiàn)場上位機(jī)讀取也是通過 RS485 或者以太網(wǎng)。所以我把數(shù)據(jù)組織成固定長度的記錄塊再用一個簡單的寫指針管理循環(huán)覆蓋上位機(jī)按索引讀取邏輯簡單且不依賴額外庫。如果真想跑文件系統(tǒng)也可以但要注意磨損均衡——MRAM 雖然沒有磨損問題但文件系統(tǒng)頻繁更新目錄區(qū)會制造大量寫操作這反而會放大 SPI 通信出錯的概率。文件系統(tǒng)加 CRC 不是標(biāo)配你需要自己加一層錯誤恢復(fù)邏輯。6.3 與現(xiàn)有嵌入式生態(tài)的配合PIC18F87K22 雖然沒有 MMU、沒有 Linux但它的 SPI 接口完全是標(biāo)準(zhǔn)協(xié)議理論上這個 MRAM 驅(qū)動也能平移到任何 SPI 主機(jī)上。我在項(xiàng)目里順手把同一套讀寫函數(shù)編譯到了另一款 STM32 上用地址格式、命令字完全一樣只需要替換底層的mram_spi_xfer為 STM32 的 HAL 接口函數(shù)。這意味著如果你之前寫過這類器件的驅(qū)動換 MCU 平臺只是半小時的事。如果你想在更大的嵌入式系統(tǒng)里使用 MRAM思路也是一樣的通過標(biāo)準(zhǔn) SPI 接口掛到 Linux 的 MTD 層、RT-Thread 的塊設(shè)備層或者裸機(jī)驅(qū)動里底層就是這 6 條命令核心邏輯不變。經(jīng)歷這個項(xiàng)目之后我自己最大的感受是MRAM 不是“更快的 EEPROM”它的驅(qū)動編寫比 EEPROM 還簡單不用管擦除但硬件設(shè)計(jì)的嚴(yán)謹(jǐn)度要求更高。你不需要等待寫周期可也因此更容易忽略片選時序和電源完整性。如果你也正在從 EEPROM 或 Flash 切換到 MR25H40 這類器件我建議你第一步就用邏輯分析儀抓一遍命令時序把 CS、時鐘、數(shù)據(jù)三者的關(guān)系確認(rèn)清楚再開始調(diào)數(shù)據(jù)內(nèi)容。我在這上面省下來的時間至少值回整個項(xiàng)目進(jìn)度的三分之一。最后再分享一個細(xì)節(jié)不要把 CS 片選交給 SPI 外設(shè)的硬件自動片選功能哪怕你用的是 STM32、NXP 這類高端 MCU這類功能在華麗的項(xiàng)目演示里看著很美好實(shí)際用起來卻容易因?yàn)椤白詈笠蛔止?jié)提前釋放片選”而坑你一次。用普通 GPIO 多占一個引腳換來的是通信時序的完全可控這筆賬怎么算都劃算。MRAM 本身可靠性很高真正讓你翻車的往往就是這類不起眼的系統(tǒng)集成細(xì)節(jié)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
中文在线成人| 九九精品99| 欧美三级巜人妻互换| 人妻久久久久久久久妻久久久久久久久| 99re热精品在线视频| 一区视频网站| 丁香五月天天哦| 婷婷五月天影院| 韩日在线熟女| 国产免费一区二区三州老师F1……| 亚洲十月婷婷综合| 久久在线92| 亚洲无码11| 伊人激情综合网| 日本在线视频www色| 婷婷激情综合网| 日韩婷婷| 国产性爱亚洲是图| 色婷婷五月影视| 久久久久久人妻| 亚洲精| 色婷婷中文| 99在线观看精品视频| www.99热在线观看| 国产毛片操B| 色婷婷久久综合久色综| 丁香亭亭久久| 亚洲啪啪精品| 五月丁香影视| 久热 91| 久久激情综合| 久久亚洲无码| 久久五月婷婷综合网| 欧美成人日韩| 亚洲国产精品成人午夜| 在线中文字幕av| 国产精品在线视频| 色吧五月婷婷| 97ai婷婷| 综合av在线| 激情五月天网| 丁香五月激情综合啪啪| 婷婷 久综合| 欧美日本国产| 婷婷五月天福利| 婷婷五月丁香五月综合网| 伊人www22综合色| 亚洲视频一区| www.99婷婷| 91操色| 色偷偷人人| 九九热精品视频| 丁香六月色婷婷综合| 99热国内精品| 久久精品夜色噜噜亚洲a∨| 97人人干| 99久.| 无码天天操| Caop在线| 日本A片一区| 丁香色婷婷五月天| 曰曰久久| 噜噜噜久久| 婷婷 亚洲图片 丁香| 久久伦乱| 视频久久9| 激情五月天网| 久久婷婷亚洲| 九九99久久| 五月天天爽| 婷婷丁香六月影视| 激情五月婷婷丁香六月| av在线观看免费| 97艹| 2013AV天堂| 亚洲五月六月婷婷| 国产婷婷色综合AV蜜臀AV | 91丨九色丨高潮丰满日本| 五月开心婷婷| www好屌操| 天天做天天爱高潮片| 丁香五月123| 男同91| 热久精品| 婷婷综合激情| 天堂成人A片永久免费网站| 五月婷婷草| 99re思思热久久| 久久这里只有精品16| 热99国产精品| 五月丁香婷婷激情在线视频| 无码中文一区二区三区| 五月天玖玖狠狠色色| 五月天色婷婷av| 狠狠看狠狠| 久久99婷婷| 26.uuu丁香五月婷婷| 99国产欧美视频| 97午夜一区二区| 久热婷婷综合| 五月色亭丁香| 色偷偷色婷婷| 日韩成人电影AV| 色99色| 婷婷丁香先锋资源网站| 91精品国产99久久久久久天美| 日本在线观看91| 精品操逼一区二区| 国产精品色婷婷久久久精品| 色哟哟性爱av| 99热自拍| 五月天成人在线视频丁香| 免费AV黄在线播放| 天天干天天色天天干| 色小说婷婷五月天天天| 天天爽综合网| 最新久久网址| 五月婷婷色| 狠狠色丁香| 五月婷婷激情| 天天久久九九| 91丨九色丨熟女丰满| 丁香五月很很肏| 六月婷婷AV| 99热综合在线| 五月天综合区| 婷婷狠狠操| 一区操| 少妇性按摩无码中文A片| 操99| 香蕉久久五月| 色五月偷偷| www.黄色片-久久成人国产精品在线播放-999AV| 一起草AV| www.com色播五月天| 五月丁香久人妻中文| 9福利性视频欧美| 久久婷婷久久| 国产26uuu视频| 亚洲另类噜噜| 日韩成人中文字幕| 激情小说色五月| 激情五月瑟瑟| 久久五月天精品视频| 婷婷五月丁香高清无码| 激情婷婷五月| 欧美成人精品A片免费一区99| 免费观看全黄做爰的视频| 亚洲成人在线电影网站| 丁香五月婷婷天堂大香蕉| 9色在线视频| 99re思思| 五月丁香六月激情在线| 99热亚洲| 婷婷五月天综合AV| 米奇激情婷婷| 色色色婷婷五月天| 色五月,com| 99丁香五月婷婷在线| 欧美三级黄色片久久| AV大香蕉| 99视频在线| 成人av免费观看| 五月综合激情网| 吊色AV男人的天堂| 天天综合网亚洲综合网| 日日夜夜天天| 五月天婷婷社区久久综合| 五月色丁香综合| 色欲一二三| 97操碰| av操逼网| 九九爱这里只有精品| 五月开心深深爱激情综合| AV在线观看网站| 99原创自拍视频在线观看| 99九九中文字幕视频| 激情综合网五月天天| 99亚州综合精品成人网| 99视频在线观看地址| 欧美丁香五月| 婷婷丁香在线播放| 最近中文字幕2019视频1| 97se视频在线| 五月婷婷色激情| 日韩无码色色| AV在线中文| 天天色,天天日,天天做| 国产精品久久久久久亚洲毛片| 婷婷色在线视频| 五月婷婷香蕉| 婷婷综合视频| 思思热这里只有精品视频666| 中文在线视频久1| 五月天色五月| 日本va欧美va精品发布视频| 夜夜躁爽日日| 91啪啪视频| WWW,五月| 五月天激情丁香| 激情五月婷婷| 天天草天天爱| 狼人久草| 久久这有这里精品| 97碰碰碰免费公开在线视频| 一本久久亚洲五月婷婷| 另类少妇人与禽zOZZ0性伦| 一本久道综合99| 五月天久久丁香| 国产在线aaa片一区二区99| 九色91国产| 色婷婷五月在线| 亚洲欧洲另类图片| 丁香五月六月婷婷综合激情| 91麻豆国产三级精品福利在线观看| 91蜜桃婷婷狠狠久久综合9色| 开心五月婷婷| 丁香婷婷深情五月亚洲| 丁香婷婷六月天| 五月天激情久久| 婷婷丁香激情五月天色色色| 婷婷五月天成人综合网| 久久免费高| 五月丁香婷婷久久| 色婷婷在线电影| 激情丁香五月激情婷婷| 影音先锋秋秋五月婷婷| 五月激情六月综合| 丁香五月综合久久| 欧美三级欧美一级| 狠狠色狠狠干| 婷婷激情五月呦呦| 五月婷婷综合精品| 亚洲啪啪网| 成人va视频| 日韩黄色电影| 婷婷伊人綜合中文字幕| 电影蜘蛛女| 精品亚洲国产成AV人片传媒| 丁香五月激情婷婷| 久久天堂精品| 五月丁香亚洲综合| 六月婷婷网| 日本狠狠干| 妇激情基地| 五月丁香啪啪激情| 五月婷婷免费在线观看| 综合色播| 狠狠爱深色婷婷综合| A一级操| 亚洲操b| 五月天社区| 色色五月天婷婷| 五月天婷婷激情在线色图| 五月丁香操婷逼| 久草婷婷| 开心五月综合激情综合五月| 久热天堂| 亚洲激情在线| 婷婷成人丁香色情基地30| 国产真实乱了老女人视频| 五月丁香狠狠爱婷婷综合| 91人人人人人| 成人在线视频一区| AA丁香综合激情| 国产做A爰片毛片A片美国| 精品婷婷五月视| 成人做爰黄A片免费看直播室男男 久草热8精品视频在线观看 | 欧美日韩一区二区三区四区| 丁香色综合| 亚洲AV第二区国产精品| 亚洲春色奇米影视| 五月丁香综合激情| www.91操| 丁香激情五月天| 99在线观看精彩视频| 亚洲无码免费看| 超碰在线免费| 色噜噜五月天| 亚洲性爱区无码区| 69午夜成人影片| 99爽视频| 婷婷爱爱蜜臀天天操| 久久曰9| 久久婷婷五月天| 五月天操逼网| 色五月激情五月开心五月| 色综合xx| 亚洲人人96@| 欧美日本综合网| 97色干| 99精品热| 婷婷激情五月综合丁香社| 久久最新色| 极品人妻VIDEOSSS人妻| 青草激情综合| 操逼巨乳91| 五月婷婷久久内射| 永久思思热在线| 超碰色女人| 裸体做A爰片毛片A片免费| 麻豆雪千夏| 视色综合| 成人网站免费sxj| 狼友视频在线观看18| www久久久久久久久久久久久久久久久| 日日夜夜爽| 综合五月丁香久久| 久久人操| 天天综合网91| 久久综合色五月| 熟女色色一区二区| 亚洲精品国产A久久久久久| www.色色五月天.com| 狠狠草综合网| 26UUU精品一区二区c〇m| 色五月婷婷av| 色五月婷婷很很操| 婷婷夜夜操| 婷婷五月免费观看| 天天爽夜夜爽夜夜爽精品| 五月综合丁| 丁香五月婷婷欧美性爱| .精品久久久麻豆国产精品| 99操久久| 色伊人婷婷| AV性爱网| 婷香五月激情视频| 久久久人人人妻丝丝丝| 五月人妻婷婷| 色播播五月| 色婷婷五月天| 99碰碰| 69超碰在线| 啪啪啪丁香五月| 九九色院| AV天堂淫乩| 激情亚洲婷婷六月| 丁香婷婷色色| 国产69久久久欧美黑人A片| 色吧婷婷五月亚洲| 九九久久五月天综合伊人| 91九九| 五月丁香在线精品| 丁香婷五月天开心六月| 五月天伊人| 亚洲丁香花五月丁香花| 日韩综合网络男女香蕉a片| 丁香五月香蕉在线| 久久精热| 大香蕉手机视频| 国产精品成人网址| 超碰免费在线| 大婷婷色呦呦噜噜色呦呦噜噜| 人妻aV在线| 啪啪 综合网| 五月天激情国产综合婷婷| 嫩草AV久久伊人妇女超级A| 2015在线中文字幕| 五月婷婷干干干| 综合色色婷婷| 久草热在线视频| 久久久久久久11111111111| 99re视频在线| 五月的婷婷六月丁香| 婷婷丁香小说| 青草视频在线播放| 色色色欧美| 五月丁香五月天现场视频| 五月天婷婷綜合院| 99五月香婷婷丁香在线视频| 色五月婷婷中文字幕在线观看 | 亚洲人成网亚洲欧洲无码久久| 午夜无码精品色综合久久| 激情丁香六月| 青青999| 丁香丁香激情网| 五月婷婷六月情| 精品国产乱码久久久久夜深人妻| 成人片在线播放| 婷婷开心激情五月激情网| 久久大香蕉| 香蕉乱插| 日韩在线一级| 六月婷婷视频| 日日杆天天| 国产麻豆视频| 伊人9999| 99亚洲视频| 影音先锋男人女人| 色色丁香五月天| 五月天开心婷婷激情网站| 青青草大香| www.99热最新视频8| 五月丁香婷婷色色色| 1024在线观看免费视频| 少妇激情五月天| 黄色网址五月婷婷| 99成人小视频| 国产色香蕉精品五夜婷| 五月婷婷丁香五月| 五月天天堂久久| 五月天婷婷色色网| 9l视频自拍九色9l视频自拍九色9l社区| 五月丁香久久网| 亚洲综合婷婷| 五月婷婷就去色| 欧美25p| 69热在线| 欧美特大片黄| 婷婷五月天小说网| 99啪99| 激情婷婷久久| 凹凸7777操操操| 色婷婷丁香五月| 5月丁香婷婷| 精品一二三区久久AAA片| 亚洲激情视频网| 天天躁日日躁狠狠躁日日躁2022年5月9日| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 色综合网页| 色婷婷在线视频综合| 综合久久五| 婷婷五月天黄色小说| 97操男人的天堂| 午夜丁香五月天综合| 成人.在线日韩| 久久九九在线视频| 成人做爰高潮A片免费视频| 五月婷婷六月激情| 五月亚洲激情| 五月天婷婷在线视频| 亭亭色网| 深爱激情五月天| 日本三级片片| 丁香婷婷十月| 亚洲第二AV| 色婷婷的五月天| 日本三级中国三级99| 操日视频| 亚洲va日| av操B网站| 高清无码入口| 伊人婷婷五月天| 五月丁香综合网| 国产裸舞福利资源在线视频| 99热99日天天干| 五月激情六月综合| 欧美日本VA| 九色视频91| 这里只有精彩视| 精品九九婷婷| 丁香婷婷色五月| 操人无码| 大香蕉福利导航| 丁香婷婷成人网站| 天天骑日日爽| 久久9热| 亚洲日日日| 婷婷瑟五月天久久综合| 99热超| 99色色网| 色爱99| 五月激情六月| 百度4399有码精品V在线观看| 这里只有精品视频99| 少妇口诉沐足视频播放器网址| 久9热插入| 日韩人妻无码精品| 色五月丁香婷婷| 亚洲AV成人精品日韩在线播放| 亚洲激情在线| 噜噜狠狠色综无码久久合欧美| 久久婷婷亚洲| 青青草Avb在线| 六月婷婷色综合| 欧美黄色韩日网| 开心婷婷五月激情网小说| 久婷狼色诱惑在线| 天天狠狠夜夜狠狠2023| 婷婷欧美综合| 色婷婷AV久久久久久久| 久热这里这里有精品| 五月婷婷亚洲色图| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 色婷婷文字幕| 久爱综合| 婷婷综合五月| 99久在线观看| 婷婷午夜综合| 婷婷伊人五月天| 热的国产99热| 久久婷婷五月天激情四射| 婷婷94s| 狠狠操狠狠爱| 五月婷婷影院| 色婷婷伦理| 99免费热在线精品| 日韩一级片| 91丨九色丨老农村| 五月天色色色色色| 嫩草视频。| 图片区 小说区 区 亚洲五月 | h亚洲| 熟妇国产| 人人爽网| 依人大香蕉在钱1| 国产FREESEXVIDEOS性中国| 大香蕉啪啪| 久久伦乱| 熟女网站久久| 狠狠狠狠狠| 婷婷六月久久综合导航| 久久99网| 综合激情视频| 五月天亚洲综合网| 玖玖99免费视频| 五月婷婷免费在线观看视频| 97五月天婷婷| 99热这里只有精品一区| 毛片毛片毛片毛片| 97色色色色色| 日韩成人无码| 五月婷六月| 玖玖爱伊人| 五月天丁香综合| 精品99在线| 人妻av在线| 婷婷伊人久久| 久久伊人大香蕉| 色色色五月婷婷| 五月天婷婷一起草| 成人羞羞啪啪 全 视频| 久久黄色免费视频| 天天夜夜操| www.亭亭五月天| 欧美婷婷色五月| 亚洲欧州色情在线观看| 色五月婷婷在线| 99热偷拍| 99爱在线视频| 99ri视频在线观看| 色噜噜狠狠色综合成人网| 人伦30P| 啪啪综合| 色婷婷a三区麻| 久久人妻高清中文| 丁香五月激情综合| 久久精品99国产精品日本| 国产日产亚洲系列最新| 狠狠干狠狠操狠狠爱| 婷久久综合| 成片免费播放| 日日射天天射| 婷婷色综合| 91狠狠综合久久| 中文成人在线| 少妇婷婷五月天| 久久大香蕉同僚| 欧美综合激情五月丁香| 婷婷五月天啪啪| 激情五月天综合网| ..真实国产乱子伦对白在线_欧| www.一区二区三区| 91seav| 激情校园 亚洲| 另类 在线| 亚洲亚洲人成综合网络| 欧美超碰人人| 色色色色色色综合| 婷婷综合五月天| 久久久GOGO无码啪啪艺术 | 人妻免费网站| 久久刺激网| 丁香五月激情性色郤| 五月天色影院| 亚洲精品一区中文字幕乱码| 91久久精品无码一区二区三区| 99色最新在线视频| 殴美日韩成人| www久视频com| 色欲Av五月天| 九九99香蕉在线视频播放| 五月天激情图片| 1024成人在线观看| 伊人丁香花综合影院| 99热1| 欧美色五月| 伊人婷婷色| 激情www.98com| 丁香婷婷六月天| 色婷婷第四色| 五月丁香啪啪激情| 亚洲欧美婷婷五月色综合| 丁香五月ⅤA久久久| 5月婷婷视频网站综合| 久久五月婷婷开心网| 玖玖爱导航| 另类国产区| 91日精品| 超碰男人色| 日本色频| 日本五月婷婷久久久六月丁香| 99热最新地址在线| 草婷婷在线| 五月天成人在线| 丁香婷婷久久综合在线| 99re6久热只有精品6在线直播| 丁香涩涩爱| 五月天婷婷爱| 五月天色区| AAAA网站| 精品99在线| 原琪琪色影院| 五月婷在线观看| 成人精品在线| 亚洲中文av| 色五月激情五月| 三级毛片视频| 五月天丁香啪啪啪啪| 99热加勒比| 五月婷婷人人人操| 五月天婷婷激情网| 久久99精品久久久久子伦| 91狠狠色色丁香婷婷综合久久| 丁香五月色五月| 中文字幕九九九九| 99热这里只有精品亚洲| 五月丁香激情六月| 欧美色九| 丁香五月丐人妻| 五月丁香综合啪啪対白| 色五月婷婷激情| 另类小说色婷婷| 99热在线精品播放| 九九久久综合| 九九中文色色| 亚洲爱婷婷| 91无码视频| 九九视频这里是精品五月| 少妇婷婷五月天| 九九热精品视频| 婷婷伊人| 九九热这里只有精品9| 丁香六月婷婷高清| 99色免费| 五月婷婷啪| 色色激情| 日本久久九| 五月天天爽| 日韩国产在线免费观看| 五月色影院| 亚洲五月天第一综合干| WWW.桔色成人.COM| 99精品福利视频| 亚洲人人操| 亚洲午夜视频| 激情五月五月五月婷婷| 综合九九久久| 日日综合网| 五月婷婷精品视频| 国产精品视频网| 亚洲啪啪视频| 婷婷丁香综合| 丁香五月91| AA片在线观看视频在线播放| 丁香成人五月天| 91九色视频| 99久久国产宗和精品1上映| 5月婷婷6月六月丁香| 色停停香蕉视频| 婷婷瑟瑟五月天| 播播网色播播| 久久激情中文| 在线你懂的亚洲欧| 热久视频| 乱岳熟女50岁| 五月丁香婷婷在线| 色五月涩涩婷婷| 久久久久久久11111111111| 91人人网| 中文成人在线| 非洲一级AV| 99在线精品免费视频| 婷婷五月激情中文字幕| jiujiu无码五区| 超级碰碰碰久久网站| 午夜天堂啪啪| 久久人妻www| 丁香五月婷婷六月婷婷| 九月av| 免费视频WWW在线观看网站| 久久久久丁香婷婷五月天| 侠女刀之记忆电影在线看免费| 日韩啪啪自拍| 99热伊人| 99热最新网址| 五月花免费视频| 97色在线观看视频| 四色五月视频| 成人做爰A片免费看网站找不到了| 丁香五月区| A A色色| www.激情.com.| 久久 婷婷 五月天| 国产AV网页| 97色婷婷| 欧美性生交XXXXX无码小说| 九九综合伊人| 看片视频在线免费日产在线看| 综合五月激情网| 日本va网站| 99综合网| WWW夜夜| 五月婷婷偷拍| 97人妻碰碰碰久久久久-最近国语高清| 日本色婷婷| 六月丁香五月天| 99综合99| 天天舔天天摸视频| 亚洲六月婷| 色亚洲中文| 激情五月婷婷网在线观看| 丁香五月激情婷婷视频| www.婷婷,com| 97碰碰视频| 午夜日韩久久久网站| 婷婷综合一二三| 狠狠干狠狠操狠狠爱| 99色热综合| 任我干视频在线观看| 影音先锋91网站在线观看| 久热99| 中文字幕视频色婷婷| 日日日日日| 色狠狠999综合| 涩五月婷婷| 欧美色播综合在线观看| 五月婷婷综合色啪首页| 天天做天天爱天天玩| 91狠狠色丁香| 激情综合五月| 丁香激情婷婷网| 欧美色偷偷大香| 丁香五月综合婷婷| 99色色热| 激情AV| 激情开心五月亚洲| 大香蕉欧美在线| 狠狠色综合网| 色五月视频无码播放| 婷婷丁香色五月天| 97碰| 婷婷五月天激情在线观看 | 激情婷婷五月| 五月婷婷片| 91精品熟女| 丁香五月ⅤA久久久| 91婷婷丁香五月| 丁香婷婷综合五月天| 狠狠一日| 婷婷综合色| http://www.lingjunshare.com/| 色综合久久无码| 欧美大香蕉视频| 色青五月天| 超碰97久久| 亚洲精品电影| 久久这里只有国产精品视频| 91色干| 亚洲日本韩国| 色欲午夜无码久久久久久张津瑜 | 九九热精品视频在线观看| 色婷婷9| 91打屁股免费看| 天天爽天天摸天天爱| 天堂婷婷五月在线| 五月天色欧美| 色综合色色色| 丁香五月天视频| 丁香六月 婷婷六月| 丁香影院五月综合| 五月天成人在线视频网站| 五月丁香五月天现场视频| 五月丁香六月激情综合| 久久桃花网色婷婷| 中文字幕黄色片| 色色欧美色色色| 国产欧美日韩综合精品一区二区| 99亚洲精美视频在线观看| yazhou seshipin| 婷婷婷婷婷开心无码播放| 色婷婷基地| 日韩无码人妻一区二区| 99热九九这里只有精品10| 狠狠色成人影片| 激情五月天综合网| 色爱99| 丁香五月天av| 天天弄天天操| 激情综合丁香| 玖玖伦理电影| 欧美日韩成人高清在线| 色婷婷五月丁香色| 婷婷五月综合婷婷| 97综合在线| 成人国产网| 五月天婷婷基地丁香| 婷婷操超碰| 久操乱| 五月天成人网婷婷| 精品久久99码| 毛片蕉地一二| 99re这里只有精品视频了| 久久婷婷五月综合| 狠狠99| 五月丁香六月婷婷的女人| 国产67194| 色综合丁香| 99在线观看精品视频| www.9操| 五月天欧美 另类小说| 六月丁香激情| 日本九九热| 人人操Av| 人人玩人人橾| 国产xxxxx在线观看| 久久婷婷网| 色色色婷婷五月天| 九月婷婷色色| WWW.久久久久久久久久久久久| 久9热插入| 免费超碰在线观看| 色五月色综合| 亚洲网在线观看| 色色五月天激情| 九九久久99精品免费观看www| 色情免费视频播放| 丁香五月天精品| 亚洲婷婷丁香五月视频| 天天舔天天摸天天射| 青青草蜜臀| 婷婷五月永远18免费久久久| 无码婷婷五月天| 五月丁香婷婷激情| 丁香五月婷婷天| 久久综合天天综合| 五月丁香婷庭在线| 色爱五月天| 亚洲最大激情无码| 成人一级片| 大香蕉五月丁香| 五月婷婷开心综合| 能看的AV| 另类精品视频在线观看| 久久538| 26uuu国产| 五月天丁香| 嫩草AV久久伊人妇女超级A| 无码AV免费精品一区二区三区 | 久久婷婷伊人| 婷婷五月天激情网址| 色婷婷五月天激情| 五月婷婷综合色啪首页| 久久机热这里只有精品| 婷婷 亚洲图片 丁香| 婷婷五月天激情五月天| 五月 婷婷 成人| 婷婷伊人综合中文字幕| 久久HD| 五月丁香啪啪拍| 婷婷五月综合视频| 亚洲男女激情| 丁香五月综合| 亚洲电影在线观看| 射琪琪| 我爱大香蕉| 丁香婷婷六月天| www夜夜操comwww| 五月婷婷综合丁香视频| 99色色| 五月丁香婷婷钟和色图| 色色色在线| 综合丁香婷婷五月天| 夜夜撸日日骑| h亚洲| 婷婷丁香五月亚洲17cao| 丁香久久在线| 98永久精品| 亚洲婷婷丁香五月天激情小说| 婷婷伊人久久综合| 亚洲五月婷| 亚洲亚洲人成综合网络 | 中文字幕丰满人妻无码专区| 亚洲日日操| 亚洲日本三级片| 五月丁香婷婷婷激情爱爱| 99这里只有免费的精品| 五月婷六月婷婷| 激情五月天影院| 影音先锋秋秋五月婷婷| 99亚洲精品视频| 欧美五月丁香在线观看| 久久性爱视频网站| 香蕉AV福利精品导航| 亚洲婷婷综合视频| 丁香五月婷婷狠狠色| 99秘 在线| 色99色| 香蕉影院色| 九洲一级A片| 噜噜色com| 天天艹夜夜艹| 丁香久月婷| 六月欧美综合色情| 激情五月天社区| 五月婷丁香| 91色性感五月婷婷丁香| 婷婷在线免费| 3www激情| 色五月亚洲| 97五月婷婷| 日日射天天射| 97久久人人| 色99无码| 五月青青草综合| 色九九综合| 草久私拍| 这里只有精品视频在线观看免费| 操逼六区| 五月天婷婷婷| 激情综合五月色在线| 九九大香视频| 五月婷婷国产| 色亚洲婷婷| 五月天啪啪| 超碰免费大香蕉| 桃色激情网| 亚洲视频在线观看99| 91人操人人人操人| 日韩AV中文字幕在线| 丁香五月亭亭六月综合激情网| 丁香六月婷婷综合| 五月天激情综合网| 五月天婷婷在线播放免费| 禁欲电影完整版在线播放| 久久9精品| 综合色色色| 夜色爱爱亚洲| www.com操| 噼里啪啦在线观看免费完整版视频| 久久9热| 五月好婷婷| 久久91久久精品久久| 亚洲 日韩色色| 99色色| 日韩一级片| 婷婷五月天黄色| 光棍影院日韩精品| 亭亭玉月丁香| 欧在线一区| 狠狠操天天操天天操| 香蕉97碰碰碰超视精品| 色婷婷精| 色色综合院| 九九成人电影婷婷| 色色色色色色色色色色色色色色,网站| 9色在线| 无码人妻少妇色欲AV一区二区| 色999亚洲人成色| 亚洲中文字幕网| 色情综合网| 亚洲AV成人精品网站在线播放| 狠狠爱五月婷婷综合六月| 亚洲欧洲一二| 五月停停色| 99久久久久| 亚洲五月天第一综合干| 丁香五月天五码婷婷| 激情开心五月亚洲| 可以免费观看的av| 丁香婷婷五月天激情四射| 色婷婷免费观看| 婷婷丁香五月综合| JAPANRCEP老熟妇乱子伦视频| 久久5 9视频免费观看| 噢美99| 97在线碰| 凹凸探花电影| 婷婷六月激情| 超碰超碰在线| 激情婷婷狠狠干综合| 99久操视频| 91超碰在线观看| 天天激情综合| 亚洲精品国产精品乱码视99| 婷婷激情视频| 最近中文字幕2019视频1| 99爱在线| 99小视频| 六月丁香婷婷尤物| 99精品一二三四视频| 99热这里只有精品在线| 婷婷丁香五月基地| 9色在线视频| 思思热久久爱| 9月色婷婷| 五月丁久久| 99视频在线啪| 亚洲狠狠婷婷综合久久久| 天天爽日日爽夜夜爽| 思思久久99| 99精品视频播放| 色婷婷五月影视| 色噜噜婷婷| 九九Av| 大香婷婷| 九九视频精品视频精品| 开心激情婷婷| 99在线视频观看| 99操逼视频| 欧美国产一区二区三区| 这里只有精品免费视频| 丁香五月性爱爱五月| 激情六月下句是什么| 天天综合五月| 久久色六月| 99在线精品视频免费| av狠狠操| 超碰妻人人| 99爱视频精品在线观看| 丁香婷婷激情| 免费黄网不卡AV| 少妇丁香婷婷| 六月激情网| 国产毛多水多女人A片| 五月婷婷婷综合网| 开心五月网| 精品成人无码A片观看香草视频| 丁香六月啪啪| 五月天另类激情在线| 男人的天堂av俄罗斯热| 再次出发二| 激情综合一| 99热碰碰| 五月婷婷啪啪| 七七婷婷综合| 婷婷六月色丁香视频在线观看| 99超级碰碰| 九九九九九九毛片| 丁香 婷婷五月| 91Chinese在线| 亚洲一级AV在线免费播放| 79成人网| 久久视频在线视频| 99久久99视频只有精品| 日本三级日本三级99| 97高清国语自产拍| 色VA| 五月丁香天堂网| 玖玖综合色| 日日噜噜夜夜狠狠久久丁香五月| www91色网站| 天天添天天摸天天天天做| 99色色网| xxxx五月| 日产精品一线二线三线芒果| 亚洲高清在线| 五月天激情亚洲| 久大香蕉| 婷婷色五月天在线| 亚洲、欧美、国产另类笫二区| 亚洲黄色精品| 久婷婷五月综合欧美| 综合五月丁香六月婷婷| 九九婷婷激情综合网| 日韩综合大黄| 色播色丁香五月| 五月激情婷婷开心| 91亚洲免费片| 五月丁香婷婷AV| 99热综合在线| 激情丁香九九五月综合网| 成人AV在线网站| 欧美日韩91| site:jszngf.com| 五月丁香啪| 热99精品视频| 超碰一区二区| 五月丁香在线综合| 六月婷婷网| 久久久久久97| 婷婷五月天激情网址| 天天干天天拍| 欧美激情综合色丁香婷婷五月天| 色色网站日本91| 991精品在线视频| 五月丁香六月激情综合| 五月天色五月| 丁香欧美| 丁香婷婷久久综合在线| AV操逼网| 大香蕉啪啪网| 丁香婷婷五月香蕉91| 五月婷婷丁香色吧网| 99久久五月天| 色婷婷欧美| 99色热视频| 3DAV亚洲香蕉久久 一区二区| 久99久热| 婷婷深爱五月天在线| 性爱激情综合网| 26uuu精品一区二区| 丁香五月激情婷婷视频| 国外亚洲成AV人片在线观看| 欧美色色色色色色色| 99ri在线观看视频| 日本色婷婷| 99爱在线精品视频免费观看| 人人人操| 白人荫道BBWBBB大荫道| 丁香久月| 五月在线婷色| 色五月97| 色综合99| 色五月亚洲| aaaaa黄色| 色护士综合| 99在线观看| 亚洲丁香五月在线观看| 在线中文字幕视频| 亚洲视频一区| 九九热中文| 丁香久久五月天视频在线观看| 综合色网站| 五月天福利影院导航| 99热精品99| 久热A| 亚洲操人| 97超碰欧美中文字幕| 丁香桃色网| 日本99色| 五月天色视频| 久久久久妻| 99热全是精品| 狠狠狠狠狠干| 婷婷97狠狠成人网站| 99热9| 天堂在线观看视频| 天天色域综合网| 开心五月综合激情综合五月| 极品九九九九九九| 久久A极片| 九九精品亚洲| 丁香五月婷婷六月| 激情久久五月天| 欧美性交一区二区三区| 图片区 小说区 区 亚洲五月| 可以直接看的AV| 婷婷五月天激情视频| 欧美久久婷婷| 激情五月婷婷她| 亚洲视频一区| 996er热| 六月丁香激情最新更新| 久久九九经典| 亚洲AV成人在线观看| 99精品无码| 99热网站| 另类激情中文| 婷婷日日夜夜| 久久精品亚洲热| 99这里只有精品8| 99热99ai| 97婷婷狠狠| 五月天天堂久久| 2016日日夜夜操| 任我肏视频精品| 婷婷在线日韩综合| 欧美槡BBBB槡BBB少妇| 玖玖婷婷五月天| 婷婷射丁香| 久久久久人妻精品| 五月婷婷激情综合av| 婷婷五月天天aV| 天天爽天天干天天| Xx色综合| 五月天激情站| 丁香五月婷婷性爱| 色玖玖| 婷婷久久婷婷色五月| 97色色综合| 中文字幕AV网址| 99啪啪视频| 五月天丁香综合| a网站免费观看| 亚洲人成网亚洲欧洲无码久久| 欧洲毛片基地c区| 99re熱| 亭亭玉立国色天香| 79亚洲精品少妇| 五月社区丁香| 性爱在线播放av| 五月丁香 久久久| 人妻系列久久久久久久久久久| 先锋资源 996| 人人爽亚洲| 丁香五月婷婷色| 成人色站,在线视频,看片-SS1AV| 丁香婷婷五月激情综合| 外国碰视频网站97| 大香久久综合网| 欧美五月丁香啪啪响视频| 噜噜在线| 激情婷婷丁香| 熟女乱论网| 丁香婷婷网| 婷婷丁香综合在线| 日日噜狠狠色综合久久| 婷婷五月天网| 九九热99熟女| 精品久久久人妻| 中文字幕丰满孑伦无码专区| 亚洲日韩国产黑丝黑丝AVAV一区二区三区 | 婷婷五月天在线观看免费| 97av在线视频| 九久9精品| 婷婷五月电影| 日韩AV成人电影| 婷婷六月花| 亚洲婷婷五月天| 天天开心天天色| 99热伊人| 欧美超碰人人| 日日天天干| 国产亚洲成人综合| 678五月丁香亚洲综合| 人妻久久久久久久| 亚洲成人无码网站| 色五月激情网| 性爱网六月丁香| 激情五月丁香六月婷婷| 色五月,com| 99热精品9| 五月婷婷啪啪| 夜夜操夜夜爽| 国产成人网站在线观看| 伦99热| 成人AV中文字幕| 午夜色丁香| 六月婷婷色综合| 日本久久人| 五月天婷婷影院影院观看| 久热爱大香蕉在线蜜臀悦色 | 婷婷五月天激情小说| 夜夜骑日日操| 丰满女老板BD高清A片| 久久色五月天| A久久| 久久久五月五丁香| 婷婷激情综合网| 18av天堂| 天天综合网在线| 狠狠va| 五月激情四射网站| 高清无码中文字幕aVDV|