欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

工業(yè)存儲(chǔ)選型實(shí)戰(zhàn):PIC18F45K50與MR25H40CDF MRAM的SPI接口應(yīng)用

工業(yè)存儲(chǔ)選型實(shí)戰(zhàn):PIC18F45K50與MR25H40CDF MRAM的SPI接口應(yīng)用 1. 為什么在工業(yè)應(yīng)用中我選擇了 MR25H40CDF 而不是其他存儲(chǔ)芯片先交代一個(gè)背景我之前在一個(gè)設(shè)備狀態(tài)記錄項(xiàng)目里需要持續(xù)記錄運(yùn)行參數(shù)、故障碼和校準(zhǔn)值MCU 用的是 Microchip 的PIC18F45K50存儲(chǔ)介質(zhì)最初考慮過(guò) EEPROM、Flash 和鐵電存儲(chǔ)器最后定下來(lái)的是 Everspin 的MR25H40CDF——一顆 4Mbit 的 SPI 接口 MRAM。這篇文章就把我的選型依據(jù)、硬件連接、驅(qū)動(dòng)寫法、掉電處理思路和實(shí)測(cè)數(shù)據(jù)完整梳理一遍希望給正在做類似工業(yè)數(shù)據(jù)記錄的朋友一個(gè)可直接參考的樣本。很多工程師一提到“非易失存儲(chǔ)”第一反應(yīng)就是 25LC 系列 EEPROM便宜、貨源多、驅(qū)動(dòng)簡(jiǎn)單。但我在這個(gè)項(xiàng)目里有幾個(gè)硬性要求寫入頻率高每秒可能多次寫參數(shù)、寫入次數(shù)壽命長(zhǎng)不低于百萬(wàn)次、意外掉電時(shí)舊數(shù)據(jù)不能被破壞、讀寫延遲要低。如果只用 EEPROM頁(yè)擦寫次數(shù)和寫時(shí)間會(huì)成為瓶頸如果用 SPI Flash則需要處理扇區(qū)擦除而且寫入前必須先擦除掉電時(shí)存在“半擦半寫”的風(fēng)險(xiǎn)。MRAM磁阻隨機(jī)存取存儲(chǔ)器的核心是磁隧道結(jié)靠磁性狀態(tài)存儲(chǔ)數(shù)據(jù)不需要電荷保持所以天然具備 SRAM 級(jí)的讀寫速度和非易失特性。MR25H40CDF 這顆芯片容量 4Mbit512KB支持 SPI 模式 0/3工作電壓 3.3V溫度范圍 -40°C 到 85°C滿足工業(yè)級(jí)場(chǎng)景。它的寫周期是無(wú)限次的不存在寫入壽命限制而且寫入后立即可讀沒(méi)有寫完成等待時(shí)間。這幾點(diǎn)直接解決了 EEPROM 和 Flash 的痛點(diǎn)。當(dāng)然MRAM 單價(jià)確實(shí)比 EEPROM 高但工業(yè)設(shè)備里存儲(chǔ)成本占比很小可靠性帶來(lái)的維護(hù)成本降低更劃算。我拿三十片做高低溫測(cè)試和掉電測(cè)試沒(méi)有一片出現(xiàn)數(shù)據(jù)異常這是之前用 ST M95M02 EEPROM 時(shí)不敢想象的——那片 2Mbit 的 EEPROM 在低溫 -40°C 下偶發(fā)寫入超時(shí)需要軟件重試麻煩得很。2. PIC18F45K50 與 MR25H40CDF 的硬件接線和初始化細(xì)節(jié)2.1 引腳分配與電路設(shè)計(jì)PIC18F45K50 本身帶一個(gè) MSSP 模塊可以配置成 SPI 主模式。我用的連接方式如下PIC18F45K50 引腳MR25H40CDF 引腳說(shuō)明RB4 (SCK)SCKSPI 時(shí)鐘RB5 (SDI)SDIO數(shù)據(jù)輸入MCU 接收芯片輸出RB6 (SDO)SDI數(shù)據(jù)輸出MCU 發(fā)送給芯片RB7 (CS)CS片選低有效VDD 3.3VVDD電源VSSVSS地任意 IO 引腳我用 RA2WP寫保護(hù)低電平禁止寫注意 MR25H40CDF 的 WP 引腳不能懸空否則默認(rèn)電平不確定可能導(dǎo)致寫入被禁止。我單獨(dú)用 RA2 控制 WP系統(tǒng)初始化時(shí)拉高只有在執(zhí)行寫操作前才拉低。另一顆引腳 HOLD 直接上拉到 VDD讓芯片始終處于正常工作狀態(tài)不打算用 HOLD 功能。電源部分PIC18F45K50 可以用 5V 供電但 MR25H40CDF 只支持 3.3V所以 MCU 的 IO 電平不能直接接 5V。我正好整板用的 3.3V 系統(tǒng)MCU 也用 3.3V 供電內(nèi)部振蕩器跑 16MHz這個(gè)問(wèn)題就規(guī)避了。如果你的板子是 5V 系統(tǒng)需要加電平轉(zhuǎn)換或者選擇支持 5V 的 MRAM 型號(hào)不要指望 SPI 輸入引腳能承受 5V手冊(cè)上的絕對(duì)最大額定值會(huì)告訴你答案。2.2 MSSP 模塊初始化代碼PIC18F45K50 的 MSSP 初始化有幾個(gè)容易錯(cuò)的地方SPI 模式選擇、時(shí)鐘極性、采樣相位以及主從模式設(shè)置。MR25H40CDF 支持 SPI Mode 0CPOL0CPHA0和 Mode 3CPOL1CPHA1。我實(shí)測(cè)兩種模式都穩(wěn)定但習(xí)慣用 Mode 0因?yàn)檫@是絕大多數(shù) SPI 外設(shè)的默認(rèn)狀態(tài)。初始化代碼可以這樣寫void SPI_Init(void) { // 設(shè)置 RB4/SCK, RB5/SDI, RB6/SDO 為方向 TRISBbits.TRISB4 0; // SCK output TRISBbits.TRISB5 1; // SDI input TRISBbits.TRISB6 0; // SDO output TRISBbits.TRISB7 0; // CS output // 禁用 SPI配置 MSSP SSPCON1 0; SSPCON1bits.SSPM 0b0000; // SPI Master mode, clock FOSC/4 SSPCON1bits.CKP 0; // Clock Polarity: idle low SSPCON1bits.SSPEN 1; // 使能 SPI SSPCON2bits.SMP 0; // Sample at middle of data output time SSPCON2bits.CKE 0; // Clock Edge: transmit on falling edge? 實(shí)際這里要小心 }這里有坑PIC 的 CKE 位與常規(guī)理解有偏差。在 Mode 0 下CPOL0CPHA0CKE 必須設(shè)為 1。我因?yàn)橹坝闷渌?MCU 的習(xí)慣一開始把 CKE 設(shè)為 0結(jié)果讀回的數(shù)據(jù)全是 0xFF。具體邏輯是CPOL0CKP0空閑時(shí)鐘為低CPHA0也就是 CKE1數(shù)據(jù)在時(shí)鐘的第一個(gè)邊沿上升沿采樣Microchip 的數(shù)據(jù)手冊(cè)里 CKE1 表示空閑到有效沿發(fā)送數(shù)據(jù)這正好對(duì)應(yīng) Mode 0。如果你用 Mode 3CPOL1CPHA1則 CKP1CKE0。不要憑直覺(jué)記憶直接查手冊(cè)的 SPI Mode 映射表。片選 CS 需要軟件控制。在每次通信讀或?qū)懼袄屯ㄐ沤Y(jié)束拉高。雖然 MR25H40CDF 支持某些多字節(jié)命令但片選期間不能有其他操作否則狀態(tài)機(jī)會(huì)亂掉。我寫了一個(gè)簡(jiǎn)單的 CS 控制函數(shù)void MRAM_CS_Low(void) { PORTBbits.RB7 0; } void MRAM_CS_High(void) { PORTBbits.RB7 1; }2.3 首次上電后的自檢流程工業(yè)設(shè)備不能假設(shè)芯片永遠(yuǎn)正常我每次上電都會(huì)執(zhí)行一個(gè)簡(jiǎn)單的 MRAM 自檢讀狀態(tài)寄存器確認(rèn) bit7WP_EN狀態(tài)。寫一個(gè)已知特征字節(jié)到 0x00000 地址再讀回來(lái)比對(duì)。若比對(duì)失敗則告警并進(jìn)入只讀模式避免把系統(tǒng)關(guān)鍵數(shù)據(jù)寫到壞芯片上。特征字節(jié)我選擇 0xA5避免全 0 或全 1 可能受到的干擾。自檢代碼雖然簡(jiǎn)單但能在現(xiàn)場(chǎng)發(fā)現(xiàn)很多問(wèn)題比如虛焊、地址線短路、SPI 模式配置錯(cuò)誤等。有一次生產(chǎn)出來(lái)的板子自檢失敗率很高最后定位到是貼片電容布局導(dǎo)致 SPI 時(shí)鐘信號(hào)過(guò)沖加了個(gè) 33Ω 串聯(lián)電阻就好了這事情后面再說(shuō)。3. 狀態(tài)寄存器操作與 SPI 讀寫時(shí)序從手冊(cè)到實(shí)際代碼3.1 MR25H40CDF 的指令集和地址映射MR25H40CDF 的指令集很精簡(jiǎn)一共就幾條WREN0x06寫使能、WRDI0x04寫禁止、SRRD0x05讀狀態(tài)寄存器、SRWR0x01寫狀態(tài)寄存器、READ0x03讀數(shù)據(jù)、WRITE0x02寫數(shù)據(jù)。沒(méi)有頁(yè)寫、扇區(qū)擦除這些復(fù)雜概念因?yàn)?MRAM 寫入不需要擦除可以按字節(jié)任意寫也可以連續(xù)寫多字節(jié)。地址是 19 位因?yàn)?512KB 需要 19 根地址線但在 SPI 指令中拆成 3 字節(jié)高字節(jié)低 3 位有效中字節(jié) 8 位低字節(jié) 8 位。例如地址 0x3FFFF發(fā)送順序是 0x07、0xFF、0xFF。在代碼里我封裝了一個(gè)統(tǒng)一接口void MRAM_WriteEnable(void) { MRAM_CS_Low(); SPI_ExchangeByte(0x06); // WREN MRAM_CS_High(); }所有寫操作狀態(tài)寄存器寫、數(shù)據(jù)寫前必須先發(fā)送 WREN否則芯片會(huì)忽略寫命令。這是 MRAM 安全性設(shè)計(jì)的一部分避免意外寫入。3.2 單字節(jié)和多字節(jié)讀寫實(shí)現(xiàn)單字節(jié)讀uint8_t MRAM_ReadByte(uint32_t addr) { uint8_t data; MRAM_CS_Low(); SPI_ExchangeByte(0x03); // READ SPI_ExchangeByte((addr 16) 0x07); SPI_ExchangeByte((addr 8) 0xFF); SPI_ExchangeByte(addr 0xFF); data SPI_ExchangeByte(0x00); // 發(fā)送 dummy 時(shí)鐘接收數(shù)據(jù) MRAM_CS_High(); return data; }單字節(jié)寫void MRAM_WriteByte(uint32_t addr, uint8_t val) { MRAM_WriteEnable(); // 寫入許可 MRAM_CS_Low(); SPI_ExchangeByte(0x02); // WRITE SPI_ExchangeByte((addr 16) 0x07); SPI_ExchangeByte((addr 8) 0xFF); SPI_ExchangeByte(addr 0xFF); SPI_ExchangeByte(val); MRAM_CS_High(); }注意寫入數(shù)據(jù)不需要等待內(nèi)部擦除或編程時(shí)間芯片在最后一個(gè)字節(jié)時(shí)鐘邊沿后立即完成寫入。這意味著你可以連續(xù)發(fā)多個(gè)字節(jié)芯片會(huì)在內(nèi)部順序?qū)懭胨俣确浅??。?shí)測(cè)在 16MHz SPI 時(shí)鐘下單字節(jié)寫操作含命令和地址只需要約 3 微秒寫入本身沒(méi)有任何額外延遲。很多從 Flash 轉(zhuǎn)過(guò)來(lái)的朋友會(huì)習(xí)慣性在寫完后加一個(gè)while(SPI_ReadStatus() 0x01);等待忙標(biāo)志但 MRAM 沒(méi)有忙標(biāo)志這個(gè)循環(huán)會(huì)直接跳出屬于無(wú)害但多余的操作。不過(guò)我還是保留了讀狀態(tài)寄存器函數(shù)用于檢查 WP 使能位和芯片 ID 是否正確。3.3 連續(xù)讀寫合并命令減少總線開銷如果需要寫入一塊數(shù)據(jù)比如 64 字節(jié)的狀態(tài)塊不要逐字節(jié)調(diào)用“寫使能 寫命令”那樣每條命令都要重新拉低 CS效率低。正確做法是發(fā)送一次 WREN然后 CS 拉低發(fā)送 WRITE 指令和起始地址接著連續(xù)傳輸 64 個(gè)數(shù)據(jù)字節(jié)再拉高 CS。這樣芯片內(nèi)部地址會(huì)自動(dòng)遞增一次搞定。連續(xù)讀也是一樣發(fā)送 READ 指令和起始地址后連續(xù)產(chǎn)生時(shí)鐘數(shù)據(jù)會(huì)從 SDIO 引腳陸續(xù)輸出。我寫了一個(gè)批量讀寫函數(shù)用于存儲(chǔ)整個(gè)數(shù)據(jù)結(jié)構(gòu)體void MRAM_WriteBuffer(uint32_t addr, uint8_t *buf, uint16_t len) { MRAM_WriteEnable(); MRAM_CS_Low(); SPI_ExchangeByte(0x02); SPI_ExchangeByte((addr 16) 0x07); SPI_ExchangeByte((addr 8) 0xFF); SPI_ExchangeByte(addr 0xFF); for (uint16_t i 0; i len; i) { SPI_ExchangeByte(buf[i]); } MRAM_CS_High(); }連續(xù)寫跨越地址 0x3FFFF 時(shí)會(huì)回卷到 0x00000這跟 EEPROM 自動(dòng)回卷一樣。如果你不希望數(shù)據(jù)跨邊界需要在寫之前檢查剩余空間。我通常把 512KB 劃分成若干固定大小的記錄區(qū)每個(gè)記錄區(qū)不跨越 256 字節(jié)邊界避免地址回卷問(wèn)題。3.4 為什么不需要頁(yè)概念和 Flash 的底層差異Flash 寫入前必須擦除最小擦除單位是扇區(qū)通常 4KB所以如果你只想改 1 個(gè)字節(jié)實(shí)際上要先把整個(gè)扇區(qū)的數(shù)據(jù)讀出來(lái)擦除再寫回去。這個(gè)過(guò)程不僅慢而且掉電風(fēng)險(xiǎn)極高——一旦擦除完成、寫入還沒(méi)完成時(shí)斷電這片區(qū)域的數(shù)據(jù)就廢了。MRAM 基于磁電阻效應(yīng)寫操作是直接翻轉(zhuǎn)磁性方向不需要先擦除。因此你可以像 SRAM 一樣按字節(jié)任意寫入。這在代碼復(fù)雜度上是一個(gè)巨大的簡(jiǎn)化不需要設(shè)計(jì)磨損均衡算法不需要維護(hù)擦除計(jì)數(shù)也不需要考慮寫放大。對(duì)工業(yè)設(shè)備來(lái)說(shuō)這就是可靠性的代名詞。4. 數(shù)據(jù)完整性與掉電保護(hù)MRAM 給了什么我們還缺什么4.1 掉電時(shí)寫一半怎么辦雖然 MRAM 本身沒(méi)有“先擦除后寫”的缺陷但數(shù)據(jù)完整性問(wèn)題并沒(méi)有完全消失??紤]這個(gè)場(chǎng)景系統(tǒng)正在連續(xù)寫 32 字節(jié)的記錄突然斷電只寫了 16 個(gè)字節(jié)。MRAM 能保證那 16 個(gè)字節(jié)是正確的但整體記錄不完整如果后續(xù)代碼不檢查完整性就可能讀到新老混在一起的數(shù)據(jù)。我的解決辦法是“雙區(qū)交替寫入 記錄頭校驗(yàn)”。具體做法把存儲(chǔ)區(qū)劃成兩個(gè)相同大小的 slotA 區(qū)和 B 區(qū)。每次要保存一條記錄時(shí)先寫 A 區(qū)記錄頭包含固定魔數(shù)、記錄長(zhǎng)度、CRC16、遞增序號(hào)。寫完后寫一個(gè)“完成標(biāo)志”字節(jié)比如 0x55。下次寫入時(shí)切換到 B 區(qū)交替使用。讀取時(shí)先檢查 A 區(qū)的完成標(biāo)志如果有效就用 A否則檢查 B 區(qū)。如果兩個(gè)區(qū)都無(wú)效說(shuō)明首次上電或數(shù)據(jù)被破壞使用默認(rèn)參數(shù)。這樣即使斷電發(fā)生在寫入過(guò)程中最壞情況只是當(dāng)前寫的那個(gè)區(qū)無(wú)效而另一個(gè)區(qū)保存的是上一次完整記錄。工業(yè)現(xiàn)場(chǎng)不喜歡“沒(méi)有數(shù)據(jù)”更喜歡“舊數(shù)據(jù)”因?yàn)檫@個(gè)設(shè)備有 PLC 邏輯用舊參數(shù)繼續(xù)運(yùn)行也比停機(jī)強(qiáng)。CRC16 我用的是一種查表算法速度很快可以逐字節(jié)計(jì)算。記錄頭格式如下typedef struct { uint32_t magic; // 0x4D52414D MRAM uint16_t seq; // 遞增序列號(hào) uint16_t len; // 記錄長(zhǎng)度 uint16_t crc; // 數(shù)據(jù)區(qū) CRC16 uint8_t status; // 0x55 表示完整 uint8_t reserved[5]; } RecordHeader;這樣一條記錄頭固定 16 字節(jié)加上數(shù)據(jù)比如 64 字節(jié)參數(shù)塊總長(zhǎng) 80 字節(jié)。A/B 區(qū)每個(gè)可以容納 1000 條記錄循環(huán)使用。我選擇在每次啟動(dòng)時(shí)加載“最近一次完整記錄”運(yùn)行中每 10 秒保存一次最新參數(shù)。4.2 寫保護(hù)引腳的實(shí)際用法MR25H40CDF 的 WP 引腳配合狀態(tài)寄存器 bit7WPEN可以鎖定狀態(tài)寄存器防止配置被意外修改。狀態(tài)寄存器主要控制 WP 的行為默認(rèn)上電狀態(tài)是 0x00。在工業(yè)應(yīng)用中我強(qiáng)烈建議把狀態(tài)寄存器配置為 0x80也就是啟用 WPEN這樣只有 WP 為低電平時(shí)才能改狀態(tài)寄存器。數(shù)據(jù)寫操作是否受影響呢當(dāng)狀態(tài)寄存器 WPEN1且 WP 引腳為低電平時(shí)芯片會(huì)禁止所有寫操作包括數(shù)據(jù)寫。所以我的代碼如下初始化時(shí)把 WP 拉高此時(shí)可以正常寫數(shù)據(jù)。如果系統(tǒng)運(yùn)行中處于“參數(shù)固化”階段我會(huì)拉低 WP禁止意外寫入。需要更新參數(shù)時(shí)先拉高 WP再寫數(shù)據(jù)。這個(gè)引腳的作用相當(dāng)于硬件寫保護(hù)開關(guān)比軟件保護(hù)更可靠可以防止 SPI 總線上的毛刺導(dǎo)致隨機(jī)寫入。實(shí)測(cè)在電源擾動(dòng)測(cè)試中加了 WP 保護(hù)后從來(lái)沒(méi)有發(fā)生過(guò)寄存器值突變的情況。4.3 讀取校驗(yàn)在工業(yè)通信中的必要性SPI 通信受干擾時(shí)最典型的表現(xiàn)是讀回來(lái)的字節(jié)偶爾錯(cuò)一位。MRAM 本身不糾錯(cuò)如果 CPU 讀到的參數(shù)直接用于控制一個(gè)錯(cuò)誤位可能導(dǎo)致設(shè)備動(dòng)作異常。所以我在讀取關(guān)鍵參數(shù)后會(huì)重新計(jì)算 CRC16 與記錄頭里的校驗(yàn)值比對(duì)不匹配就舍棄該記錄并加載備份區(qū)數(shù)據(jù)。有工程師說(shuō)“MRAM 足夠可靠不需要校驗(yàn)”。這句話我不完全同意。芯片存儲(chǔ)單元本身可靠但引腳電平、PCB 走線、外部電磁干擾都是可變因素而且 SPI 沒(méi)有硬件 CRC 機(jī)制。我的原則是存儲(chǔ)介質(zhì)可以強(qiáng)但數(shù)據(jù)鏈路不能裸奔。CRC16 計(jì)算開銷很小在 16MHz 主頻下處理 64 字節(jié)也就幾十微秒完全可接受。4.4 高低溫下的數(shù)據(jù)保持驗(yàn)證我專門拿 5 個(gè)樣機(jī)做了 -40°C 到 85°C 溫循測(cè)試每個(gè)溫度點(diǎn)保持 30 分鐘然后讀寫校驗(yàn)。MRAM 的磁性存儲(chǔ)本身對(duì)溫度不敏感但 SPI 時(shí)序在極低溫度下可能因?yàn)闀r(shí)鐘極性設(shè)置不當(dāng)而出現(xiàn)采樣錯(cuò)誤。測(cè)試結(jié)果-40°C 時(shí)寫讀 10000 次全部正確。85°C 時(shí)寫讀 10000 次全部正確。在溫度變化過(guò)程中瞬時(shí)斷電再上電數(shù)據(jù)依舊保持。這在 EEPROM 上可能也能做到但 EEPROM 寫入需要等待循環(huán)寫入會(huì)導(dǎo)致系統(tǒng)阻塞而 MRAM 的寫入時(shí)間對(duì) CPU 來(lái)說(shuō)就是幾個(gè) SPI 時(shí)鐘周期系統(tǒng)響應(yīng)能力完全不受影響。5. 實(shí)際項(xiàng)目中的性能測(cè)試與踩坑記錄5.1 16MHz SPI 時(shí)鐘下的吞吐量數(shù)據(jù)我的 PIC18F45K50 使用內(nèi)部 16MHz 振蕩器SPI 時(shí)鐘配置為 FOSC/4也就是 4MHz。MR25H40CDF 最大支持 40MHz 時(shí)鐘4MHz 完全在安全范圍內(nèi)。實(shí)測(cè)數(shù)據(jù)如下操作類型單次耗時(shí)含命令地址1000 次操作總耗時(shí)單字節(jié)讀4 字節(jié) SPI 交換 ≈ 8μs8ms單字節(jié)寫WREN 4 字節(jié) SPI 交換 ≈ 11μs11ms512 字節(jié)連續(xù)讀515 字節(jié) SPI 交換 ≈ 1.03ms1.03s512 字節(jié)連續(xù)寫WREN 515 字節(jié) SPI 交換 ≈ 1.04ms1.04s這些數(shù)字說(shuō)明什么如果你要每秒記錄 10 次、每次 32 字節(jié)那么每秒寫占用時(shí)間大約 0.1msCPU 占用幾乎可以忽略。對(duì)比 I2C EEPROM 的 2ms 寫入時(shí)間MRAM 的實(shí)時(shí)性優(yōu)勢(shì)非常明顯。不過(guò)要小心PIC18F45K50 的 SPI 發(fā)送是按字節(jié)阻塞的每發(fā)一字節(jié) CPU 都要等待移位寄存器完成。如果你希望 SPI 傳輸不阻塞 CPU可以考慮用 DMA但 F45K50 的 DMA 資源有限而且你可能要用 DMA 做 USB 通信。我在項(xiàng)目中沒(méi)啟用 DMA因?yàn)?4MHz 下每字節(jié)才 2μs測(cè)試時(shí)用邏輯分析儀觀察CPU 空閑時(shí)間還是很多。5.2 踩坑一CKE 位配置錯(cuò)誤導(dǎo)致讀全 0xFF這個(gè)問(wèn)題前面提過(guò)再展開一遍。我把 SPI 配置成 CKP0、CKE0當(dāng)時(shí)想的是“空閑時(shí)鐘為低、輸出邊沿下降沿采樣”這在很多 ARM 芯片上是 Mode 1但 Microchip 的命名方式不同。結(jié)果是讀 READ 命令返回的數(shù)據(jù)全是 0xFF寫進(jìn)去的數(shù)據(jù)讀不出來(lái)。排查方法用邏輯分析儀抓取 SPI 波形發(fā)現(xiàn)時(shí)鐘和數(shù)據(jù)相對(duì)位置不對(duì)。數(shù)據(jù)在時(shí)鐘上升沿變化而芯片要求在上升沿采樣導(dǎo)致采樣時(shí)數(shù)據(jù)總線還沒(méi)穩(wěn)定。修正 CKE1 后波形和數(shù)據(jù)完全正常。如果你遇到類似問(wèn)題第一件事不是換芯片而是檢查采樣沿配置。5.3 踩坑二WP 引腳懸空造成寫入隨機(jī)失敗第一次打樣時(shí)我把 WP 引腳直接空著沒(méi)接想著芯片內(nèi)部應(yīng)該默認(rèn)不保護(hù)。結(jié)果發(fā)現(xiàn)同一批板子有些寫入正常有些寫入后讀回來(lái)是舊的。量了 WP 引腳電壓有的板子是 0V有的是 1.2V完全不穩(wěn)定。查手冊(cè)才發(fā)現(xiàn) WPEN 上電狀態(tài)為 0但外部引腳電平會(huì)通過(guò)內(nèi)部保護(hù)二極管影響芯片狀態(tài)一旦被拉低且狀態(tài)寄存器某位上電不穩(wěn)定就可能變?yōu)閷懕Wo(hù)狀態(tài)。解決方式很簡(jiǎn)單把 WP 引腳用 10kΩ 電阻上拉到 VDD或者直接用 MCU GPIO 控制。我用 GPIO 控制后每次寫操作前明確拉高寫完可以拉低規(guī)避所有不確定性。5.4 踩坑三PCB 走線過(guò)長(zhǎng)導(dǎo)致 SPI 時(shí)鐘過(guò)沖生產(chǎn)時(shí)為了布局方便把 MRAM 放在板角距離 MCU 大概 6cm走線沒(méi)有做阻抗匹配。在 4MHz 時(shí)鐘下過(guò)沖倒不至于引起誤碼但我在 ESD 測(cè)試時(shí)發(fā)現(xiàn)偶發(fā)讀錯(cuò)誤。用示波器看 SCK 波形上升沿有約 0.8V 的過(guò)沖和振鈴。如果在采樣點(diǎn)附近發(fā)生振鈴采樣值就可能出現(xiàn)毛刺。后來(lái)在 SCK 引腳上串了一個(gè) 33Ω 電阻并且在 MRAM 的 VDD 引腳附近加了一個(gè) 100nF 去耦電容問(wèn)題徹底消失。對(duì)于 4MHz 的 SPI33Ω 串阻不會(huì)顯著影響時(shí)序但能有效抑制振鈴。如果你的板子時(shí)鐘更快可能還需要考慮走線長(zhǎng)度和源端匹配。5.5 踩坑四忽略 HOLD 引腳導(dǎo)致通信中斷我的設(shè)計(jì)一開始沒(méi)接 HOLD想當(dāng)然認(rèn)為它沒(méi)作用。后來(lái)在強(qiáng)電磁干擾環(huán)境下偶發(fā)出現(xiàn) SPI 通信卡死讀數(shù)據(jù)一直返回 0x00。查示波器發(fā)現(xiàn) HOLD 引腳上有毛刺且電壓被拉低了一段時(shí)間。MR25H40CDF 的 HOLD 引腳低電平會(huì)暫停通信而且會(huì)保持當(dāng)時(shí)的內(nèi)部狀態(tài)重新拉高后才能繼續(xù)。這個(gè)問(wèn)題在實(shí)驗(yàn)室很難復(fù)現(xiàn)但到了現(xiàn)場(chǎng)就頻繁發(fā)作。解決辦法把 HOLD 引腳直接硬連接 VDD不做任何跳線必要時(shí)加一個(gè) 1nF 濾波電容。你如果不想用 HOLD 功能就不要把它當(dāng)成多余引腳它沒(méi)有內(nèi)部上拉必須強(qiáng)制接高電平。6. 存儲(chǔ)系統(tǒng)整體架構(gòu)把 MRAM 封裝成可靠的數(shù)據(jù)記錄服務(wù)6.1 劃分地址空間512KB 的 MRAM 容量在 MCU 應(yīng)用中算很大的我把它劃分為幾個(gè)功能區(qū)起始地址大小用途0x000001KB系統(tǒng)配置塊雙備份各512B0x0040032KB實(shí)時(shí)日志環(huán)形緩沖A區(qū)/B區(qū)交替0x0840064KB運(yùn)行參數(shù)歷史記錄0x14400剩余可選數(shù)據(jù)采集緩沖1KB 的配置塊用于保存設(shè)備序列號(hào)、校準(zhǔn)系數(shù)、通信參數(shù)等使用雙備份每次寫入先寫塊 A再寫塊 B。讀取時(shí)先判斷塊 A 的 CRC如果錯(cuò)誤就回退到塊 B。這樣即使寫塊 A 時(shí)掉電塊 B 仍然是舊的完整配置。32KB 的環(huán)形緩沖用來(lái)存運(yùn)行日志每條日志 32 字節(jié)循環(huán)寫入。這個(gè)緩沖沒(méi)有雙備份因?yàn)槿罩臼强蓙G失的但寫滿后無(wú)法自動(dòng)區(qū)分新老記錄所以我每寫一條記錄都會(huì)在記錄頭里放 32 位時(shí)間戳讀取時(shí)可以通過(guò)時(shí)間戳恢復(fù)順序。6.2 文件系統(tǒng)要不要上MRAM 容量 512KB完全可以跑個(gè)微型文件系統(tǒng)比如 LittleFS。但我在這個(gè)項(xiàng)目里沒(méi)有用文件系統(tǒng)原因是寫入模式固定不需要文件名和目錄管理。文件系統(tǒng)的元數(shù)據(jù)開銷和磨損均衡在這里沒(méi)有意義MRAM 無(wú)磨損。簡(jiǎn)單固定地址分配更容易做掉電保護(hù)。文件系統(tǒng)在掉電時(shí)同樣需要日志或回滾機(jī)制反而增加復(fù)雜度。如果你的設(shè)備要存儲(chǔ)多個(gè)可變的、帶名稱的數(shù)據(jù)塊LittleFS 是一個(gè)不錯(cuò)的選擇它原生支持掉電安全和磨損均衡。但對(duì)于 MRAM我更推薦直接裸讀寫因?yàn)榭煽啃詠?lái)自你對(duì)地址空間的嚴(yán)格管理而不是依賴第三方代碼。6.3 讀寫驅(qū)動(dòng)分層設(shè)計(jì)驅(qū)動(dòng)代碼分為三層平臺(tái)層SPI 字節(jié)收發(fā)、CS/WP 控制、時(shí)鐘使能。芯片層MRAM 的基本指令封裝包括讀字節(jié)、寫字節(jié)、連續(xù)讀、連續(xù)寫、狀態(tài)寄存器操作。應(yīng)用層記錄頭校驗(yàn)、雙區(qū)交替、環(huán)形緩沖、掉電恢復(fù)。這樣的好處是如果以后換用其他 SPI MRAM 芯片只需要修改芯片層平臺(tái)層和應(yīng)用層不用動(dòng)。我甚至在一個(gè)變體板上用 MCU 的內(nèi)部 EEPROM 模擬了同樣的接口便于在調(diào)試階段跑邏輯。下面是一個(gè)簡(jiǎn)單的驅(qū)動(dòng)頭文件接口我在項(xiàng)目里使用的void MRAM_Init(void); int MRAM_SelfTest(void); void MRAM_ReadBytes(uint32_t addr, uint8_t *buf, uint16_t len); void MRAM_WriteBytes(uint32_t addr, const uint8_t *buf, uint16_t len); void MRAM_ReadRecord(uint32_t slot_base, uint32_t offset, uint8_t *buf, uint16_t len); int MRAM_CommitRecord(uint32_t slot_base, const uint8_t *buf, uint16_t len, uint16_t *seq_out);MRAM_CommitRecord 內(nèi)部會(huì)組裝記錄頭、計(jì)算 CRC、寫雙槽并校驗(yàn)外部程序只需要調(diào)用這個(gè)函數(shù)不用關(guān)心地址細(xì)節(jié)。這對(duì)維護(hù)性很重要因?yàn)楝F(xiàn)場(chǎng)工程師不可能每個(gè)人都熟悉 MRAM 指令集。6.4 大數(shù)據(jù)量緩存的思路如果你的產(chǎn)品需要做數(shù)據(jù)采集比如以 100Hz 采樣傳感器數(shù)據(jù)那么 4Mbit MRAM 在緩沖容量上可能不夠大。一顆 4Mbit 存不了長(zhǎng)時(shí)間波形但可以設(shè)計(jì)為“邊采邊傳”MRAM 作為 FIFO數(shù)據(jù)先寫到 MRAM然后通過(guò) USB 或以太網(wǎng)發(fā)給上位機(jī)上位機(jī)確認(rèn)后才清除。這樣的好處是避免 MCU 只有 32KB RAM無(wú)法存儲(chǔ)大量傳感器數(shù)據(jù)也避免直接外接 SD 卡在掉電時(shí)文件損壞。工業(yè)設(shè)備常見做法是MRAM 存儲(chǔ)關(guān)鍵參數(shù)和事件日志外部 SD 存儲(chǔ)波形和圖片。MRAM 的可靠性用于關(guān)鍵數(shù)據(jù)大容量 SD 卡用于非關(guān)鍵數(shù)據(jù)兩者互補(bǔ)。7. 總結(jié)MR25H40CDF PIC18F45K50 到底值不值得用先說(shuō)結(jié)論在工業(yè)現(xiàn)場(chǎng)需要高可靠、高頻率、可隨機(jī)寫入的非易失數(shù)據(jù)存儲(chǔ)時(shí)這套組合非常值得用。PIC18F45K50 是成熟的 8 位 MCU自帶 USB 控制器和 SPI價(jià)格適中而 MR25H40CDF 一粒就能解決 EEPROM 壽命和 Flash 擦除問(wèn)題電路外圍只需幾個(gè)電容電阻不需要任何額外電平轉(zhuǎn)換前提是統(tǒng)一 3.3V。我實(shí)際用下來(lái)的體會(huì)是MRAM 最大的價(jià)值不是“速度快”而是“讓人省心”。調(diào)試存儲(chǔ)驅(qū)動(dòng)時(shí)不需要考慮擦除時(shí)間、頁(yè)邊界、磨損均衡、壞塊管理代碼量少了至少三分之一。寫錯(cuò)地址也不會(huì)破壞其他扇區(qū)因?yàn)槿我獾刂范伎梢灾苯訉戇@點(diǎn)對(duì)工業(yè)現(xiàn)場(chǎng)的固件升級(jí)和校準(zhǔn)特別友好。如果你正在猶豫選型我的建議是如果存儲(chǔ)量需求不超過(guò) 512KB且對(duì)寫入頻率、掉電可靠性有較高要求直接上 MR25H40CDF不要再用頁(yè)擦除的 Flash 硬撐。當(dāng)然如果你只是存幾個(gè)配置字節(jié)一年寫不了幾次傳統(tǒng) EEPROM 也夠用成本更低。但如果你像我一樣需要做運(yùn)行日志、參數(shù)歷史、頻繁更新校準(zhǔn)值MRAM 溢出的價(jià)格換來(lái)的穩(wěn)定性一定值得。最后再分享一個(gè)小技巧焊接 MRAM 芯片時(shí)溫度不要超過(guò) 260°C 太久雖然工業(yè)級(jí)芯片耐溫不錯(cuò)但高溫時(shí)間過(guò)長(zhǎng)可能影響內(nèi)部磁性結(jié)構(gòu)的一致性。批量貼片時(shí)注意控制回流焊曲線我在小批量手工焊接時(shí)用熱風(fēng)槍吹調(diào)試時(shí)一切正常但極端低溫測(cè)試下曾經(jīng)發(fā)現(xiàn)有個(gè)別位翻轉(zhuǎn)重新規(guī)范焊接后問(wèn)題消失。細(xì)節(jié)決定可靠性硬件如此代碼也是如此。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
操比激情五月| 日本五月婷| 99热欧美| 欧美中文五月天| 色综合久久88色综合天天99| 九九色网| 国产精品18久久久| 丁香五月电影| 久久婷婷五月天激情四射| 天天久久66xxx| 久久您您综合网| 丁香五月六月| 婷婷色色婷婷| a久久免费视频| 中文字幕av亚洲| 99热这里只有精品5| 日本AAAAAAAAAAAAAA片| 国产99精品免费视频| 五月婷婷六月丁香色| 十月丁香九月婷婷综合| 五月天天天操天天爽夜夜操| 久草A片| 夜夜操狠狠操| 国产精品人人做人人爽人人添| 五月丁查人人| 天天综合网亚洲网站| 天天做天天要天天爱| 五月桃花网综合| 色婷婷视频在线| 老司机日日夜夜青草| 中文无码精品一区二区三区| 激情婷婷综合| 婷婷五月激情基地| 五月青青草综合| 激情五婷网| 狠狠干狠狠操狠狠爱| 老司机伊人| 激情五月婷婷开心网| 欧美噜一噜| 99色婷婷视频| 五月婷婷六月丁香激情深爱| 另类色网| 激情综合网 激情五月天| aV直接看| www.刺激色网站www.| 色天使久久综合| 影音先锋男人女人| 任你爽在线视频| 中文字幕 码精品视频网站| 任你操精品免费| 激情五月天婷婷五月天| 成人网站免费在线播放| 激情五月综合| 香蕉影院色| 欧美69久成人做爰视频| Www.Av网9| 99久久婷婷国产综合亚洲| 色色网站毛片| 丁香六月激情毛片| 亚洲精品亚洲人成人网| 婷婷五月天亚洲色| 婷婷六月激情在线视频| 久久色五月| 91精品久| www一起操| 99毛片| 激情婷婷五月少妇| 99这里有精品视频3| 激情久久四色| 日本视频不卡123区| 嫩草AV久久伊人妇女超级A| 婷婷综合| 色原狠狠综合| 五月天合网| 丁香五月aV| 战争与艾拉电影免费观看| 激情亚洲色图片丁香综合| 婷婷激情欧美| 91AV婷婷| A片女女女女女女BBBB| 久草热久草在线视频| 国产精品A成V人在线播放| 福利视频在线播放| 日韩AV在线免费观看| 久久大香蕉同僚| 色色色五月婷婷| 久久er+| 五月色欧美| 色欲色香伊人| 五月天婷婷基地| 99燥99日| 99re思思| 狠狠操天天干| 亚洲12p| 性爱激情小说AV五月丁香花| 3p日韩网站视频| 天天干、天天日日| 免费视频99| 成人短视频在线| 99riav 亚洲| 五月天伊人久久| 99视频内射三四| 精品国产va久久久久久久| 五月丁香婷婷啪啪综合网| 色性五月天| 一区二区你懂的| 啪啪综合| 色色网站| 婷婷五月天综合久久日美女| wwW天天干| 新激情五月天色播| 国产午夜精品AV一区二区麻豆| 影音先锋91资源站| 国产日韩亚洲欧美在线观看| 性爱综合网| 婷婷综合在线视频| 免费播放99性爱视频| 亚洲成人AV在线播放| 激情图片亚洲| 天天射射夜| 丁香九月婷| chaopeng在线人人| 天天射天天射一道本日本社区| 91九色国产熟女| 超碰一区二区| 久久这里有精品视频在线免费观看| 人妻熟妇国产精品| www久| 91人人爽久久涩噜噜噜| 激情AV网| 婷婷五月激情片| 综合婷婷久久| 久久综合中文| 日韩人妻无码专区| 亚洲色综合| 日本狠狠干| 国产高清av黄色看片| 亚洲色精彩| 婷婷五月天激情电影| 影音先锋AV资源男人站| 无月播播激情在线观看视频| 五月天综合色| 色99在线观看| 超碰在线免费| 天天干 夜夜爽| 超碰人人艹| 91九色视频在线观看| 3p九色在线| 五月婷婷久久开心网| 色五月婷婷在线| 中美日韩成人在线| 色五月首页| 精a品a视a频| 综合AV在线| 婷婷色片| 色五月激情综合网| 丁香综合网| 超碰av在| 色婷狠狠| 婷婷娌伦网| 天天色99| 五月婷婷AV| 1024手机在线观看看片_日韩精品| 五月丁香影视| 午夜丁香| 五月丁久久| 99视频精品8| 三十熟女| 97超碰在线免费观看| 丁香久久综合| 黄桃AV无码免费一区二区三区 | 丁香婷婷五月综合影院| 久久九九网| 丁香五月性| 亚洲欧洲另类| 五月丁香另类网| 人妻有码乱操| 99色天堂| 狠色狠色综合久久| 五月丁香激情四射综合| 亚洲精品又粗又大又爽A片| 巴基斯坦粉嫰无码视频| 激情av在线| 色9999日韩国产| 婷婷色网站| 婷婷操逼| 色色色色色网| 99久久国产宗和精品1上映| 男男野外做爰全过程69| 一区视频网站| 五月激情黄色小说| 大香蕉人妻| 色五月激情五月| 久久人妻久久| 色五月无码| 波多野结衣不卡AV| www.夜夜操| http://www.sd-xiangsu.com/| 国产九九一区二区三区| 丁XX 成人| 久久五月天激情美女| 国产偷人爽久久久久久老妇APP | 五月婷婷丁香日韩在线| 婷婷天堂综合| 天天爽,夜夜爽| 五月天综合在线| 亚洲超碰中文字幕| 99色视频| 网色99| 色综合播放| 7777精品伊人久久久大香线蕉最新版| 夜精品无码A片一区二区蜜桃| 丁香婷婷激情网站| 五月天欧美 另类小说| 操日本三片99| 色婷婷狠狠18yy| 日韩欧美一级大黄网站| 日日干日日| 亚洲综合色丁香婷婷六月| 九色 在线| 97干干干丁香| 亚洲男女激情| 亚洲色久| 久9热在线视频| 婷婷丁香激情| 五月天婷婷色小说| 五月综合激情图片| 日韩抽插操逼| 人妻射精AV| 99日逼视频| 逼特逼在线免费播放| 五月婷婷大香蕉| 99热精品在线观看| 啪啪操超碰| 丁香五月六月激情| 天天色官网| www.91.com处女在线直播| 伊久久婷婷| 噜噜五月天综合| 爱超碰性| 9l视频自拍九色9l黑人| 超碰永久在线| 999精品久久久久久久| 亚洲亚洲人成综合网络| 色一情一乱一伦一区二区三区| 色色99| 久久99热这里只频精品6学生| 99热这里只有在线| 99热在线成人网站| 日日天天干| 狠狠色婷婷六月激情网| 九九亚洲视频| 99ri视频在线播放| 久久精品婷婷| 丁香五月激情网| 久久多色| 色五月婷婷在线| 91欧美日韩综合| 成人短视频在线免费观看| 五月丁香亚洲婷婷| 天天日天天色| 亚洲一二三网| 久久婷婷综合拍| 亚洲天堂青草| WWW久| 国产综合婷婷| 中文字幕在线免费观看视频| 五月丁香爱婷婷深深| 中文字幕成人| 欧美色六月婷婷| 美女100%露全身无挡网站| 久久人妻乱子伦| 婷婷五月深深的爱| 99er久久| 91操熟女| 日韩av变天就操逼不卡区| 狠狠搞狠狠操| 激情五月久久| 久久婷青青草原| 男人的天堂99| 8区视频在线| 99热老网站| 久久婷色| 婷婷五月色丁香在线看| 丁香五月婷婷偷拍| www99热| 综合色在线| 东京热人妻一区二区三区在线| 日韩成人无码片| 欧美日韩五月婷婷| 久婷婷五月丁香在线观看| 婷婷五月天va| 欧美日本国产欧美日本韩国99| 91精品婷婷国产综合久久| 26uuu成人网| 国产国产乱老熟女视频网站97| 9色资源在线| 天天综合91入口| 欧美精品999| 亚洲AV激情五月综合网| 婷婷五月花| 婷婷五月情| 国产精品日本一区二区在线播放| 夜夜躁婷婷AV| 五月丁香婷婷中文网| 激情久久久久久| 五月丁香拍拍激情综合| 五月综合激情网| 女人天堂AV| 97五月婷| 亚州激情网| 天天做 天天爱| 丁香五月天资源网| 欧美成人AAA片一区国产精品| 久久九九一區| 国产六月婷婷| 91九色视频| 91紱請| 精品99在线| 激情无码五月天| 婷婷五月无码| 97热91| 操逼视频一区| 婷婷草| 91九九| 亚洲欧洲美女在线观| 色五月天.con| 國語久久婷| 字幕网AV中文字幕| 综合网五月| 狠狠做深爱婷婷久久综合一区| 久久99久久99www| 国产亚洲色婷婷99精品| 99国产视频网| 欲求不满的人妻| 婷婷综合五月天激情| 色六月婷婷| 色五月天 丁香| 色五月无码| 色色色婷| 久久综合首页| 国产精品爽爽久久久久久| 国产精品99久久久久久久女警| 1024国产| 色色五月婷| 东北黄色一级| 人人操五月天| 久久久久98| 五月天婷婷人妻| 最新高清无码专区| 五月丁香六月婷婷中文版| 婷婷金品综合视频| 婷婷在线播放av| 超碰免费成人| 亚洲激情网| 五月激情网站| 久久草大香蕉| 久久草大香蕉| 激情五月婷婷伊人| www...com黄在线观看| 中国AV性爱观看| 成人精品视频99在线观看免费| 欧美色五月| 久久99久久99精品免视看婷| 日本色频| 亚洲日韩一页精品发布| 人人视频色| 99婷五月| 天天日夜夜爽| 黄网免费看| 影音先锋一区| 亚洲视频在线观看99| 丁香五月天激情综合| 九九热视频精品2| 五月天大香蕉| www.sd-xiangsu.cpm| 少妇AB又爽又紧无码网站| 亚洲色色图片| 北条麻妃伊人 | 日日夜夜天天综合| 国产精品99久久久久久猫咪| 丁香五月婷婷基地| 狠色狠色综合久久| 97干综合网| 色五月色五天色情网| 激情综合5| 亚洲综合五月天| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 久热这里只精品| 九九久久网| 丁香婷婷丁香五月欧美人| 97很鲁在线视频| 精品草原久久视频| 久久性操| 久久这里只有精品视频15| 九九热视频精品| 色五婷婷| 天久综合91综合首页| 色婷婷丁香五月在线观看| 偷拍91九色| 色五月AV| 色播播婷婷| 久久婷婷五月天| 影音先锋自拍网| 狠狠色成人影片| 婷婷99狠狠躁天天躁| caop视频| 91碰碰碰| 国产精品VA在线| 婷婷丁香社区网| 另类婷婷五月天啪帕帕| 91欧美| 色婷婷五月天在线| 色五月激情视频在线综合| 色婷婷成人做爰A片免费看网站| 人人人va亚洲视频在线| 五月天激情综合在线| 色狠狠色综合久久久绯色aⅴ影视| 看片视频在线免费日产在线看| 婷色五月| 五月天丁香婷| 大香蕉啪啪啪啪啪啪| www.婷婷六月天| 夜夜躁爽日日| 淫荡综合网| 欧亚洲在线高清视频| 久久婷婷青青| 女人被躁到高潮嗷嗷叫小| 碰碰碰97国产| 99色视频| 伊人干综合| 五月丁香人妻| 亚洲性爱区无码区| 男人综合网| 天天噜日日噜综合无码| 另类 在线| 在线观看视频1区| 五月天婷婷久久| 人人九色| 五月婷婷激情日本| 婷婷五月天久久| 婷婷美女精品视频| 99久热这里有精品| 天天插天天插天天日| 久久在线大香蕉| 婷婷99狠狠躁天天久久久九九九| 激情五月天色播| 99热日韩| 热九九精品| 五月天婷婷小说| 人妻尝试久久久久久久久久久久| 综合狠狠干| 99视频色在线观看| 激情五月激情综合俺也去婷婷小说| 五月丁香激情综合啪啪| 五月丁香综合在线| 97精品欧美91久久久久久久| 日本一级特黄大片AAAAA级| 综合久久首页| 日韩情色在线观看| 一级二级色大片| 婷婷综合另类| 激情丁香五月AV| 久草嫩草在线观看| 香蕉大综综综合久久| 色99视| 九九九九中文字幕| 五月激情射| 婷婷之玖玖| 超碰京东热av男人的天堂| www.久操| 日本激情91| 色欲九区| 丁香五月自拍| va婷婷在线免费观看| 丁香五月第九色| 深爱激情九九五月天| 综合狠狠干| 思思精品久久艹 | 五月婷婷久久综合| 色五月丁香六月欧美综合| 激情综合色婷婷啪啪六月天| 欧美色97| 婷婷成人综合| 婷婷五月天性| 欧美狠狠色| 99热综合网| 一起草性爱不卡视频| 久久九九99| 国产精产国品一二三在观看| 999九九九久久久99HD| 婷婷丁香社区| 99er这里只有精品| 亚洲精品激情| 五月色网| 日韩熟女啪啪视频| 99热免费精品| 人人干人人操人人摸人人做| 亚洲综合五月天| 91碰碰碰| 色婷婷人人| 日韩在线视频网站| 五月婷婷之六月丁香| 久久久这里有精品| 伊人久久婷婷| 六月丁香激情| 精品国产va久久久久久久| 天堂草在线看www| 中文字幕永久免费| 亚洲永远av在线播放| 色婷婷9| 色婷婷视频| 99热这里只有精品66| 五月婷婷色| 色五月色综合| 久热只有这里有精品| 亚洲va在线| 久久六月天| 午夜伊人大香蕉| 丁香婷婷色| 99福利视频| 97人人操人人爽| 97碰碰久久| 丁香五月色色| 怡红院视频| 99噜噜噜在线播放| 精品婷婷| 啪色综合| 久久精品日| 久久五月六月| 日韩性视频| 色天使久久综合| 色色是色N一| 亚洲精品永久久久久久| 丁香五月综合网| 婷婷午夜精品久久久| 三级毛片视频| 亚洲视频在线观看99| 97干综合网| 五月激情综合婷婷| 99视频这里只有久久精品 | 99热日本| 五月综合色| 婷婷色丁香五月| 婷婷香五月天| 丁香婷婷五月天成人| 夜夜天天久久婷婷| 激情小说五月天| 97人人搞| www.色综合.com| 综合九色| 日本婷婷色日| 五月婷婷精品视频| 色五开心五月五月深深爱| 桃色成人网| 天天肏屄夜夜爽| 开心五月婷婷激情| 亚洲AV成人精品日韩在线播放| 狠狠色成人影片| ady狠狠入| 婷婷激情五月天视频在线| 日本色色色色色色色色一色二色| 丁香五月天婷婷久久| 丁香婷婷激情| 亚洲天天免费| 中国操逼99| 婷婷激情蜜桃玖玖丁香| 丰满少妇猛烈A片免费看观看| 久久五月激情| 激情久久综合| 色情综合网| 亚洲色热| 狠狠狠人妻| www久久久久久久久久久| 亚洲色婷婷婷婷人人爽| 丁香五月花| 天天日夜夜操五月| 日本久碰| 秋霞AV淫| 色 免费网站视频| av九九| 天天搞夜夜爽夜夜爽| 色综合色综合网| 色噜噜,噜噜色| 99ER热精品视频| 九九热精品视频九九| 色婷婷无吗| 天天日夜夜爽| 五月丁香美女视频| 安息电影在线观看完整版| 色五月激情网| 婷婷深爱五月丁香网| 热久综合| 夜色综合网| 性爱综合网| 极品人妻VIDEOSSS人妻| 久久国产色| 欧美色色色色色色色| 综合五月婷婷| 岛国av电影网站| 一区三区视频有限公司| 中文字幕在线日亚州9| 99精品视频在线| 欧美久人人| 99热婷婷| 色婷婷色人人射| 国产精品色婷婷99久久精品| 五月综合久久| 思思热在线观看| 99热永久在线观看| 伊人久久大香| 另类天堂| 色五月婷婷小说亚洲中文字幕组| 九九综合视频在线观看| 一片AV片免费播放| 久久小视频| 亭亭五月色男人| 久久婷婷视频| 超碰97色| 96精品成人无码A片观看金桔| 婷婷色五月在线视频| 入口五月婷婷六月香| 大香蕉久久伊人网| 激情五月综合网| 国产五月天欧美色| 狠色狠色狠狠色综合网| 99操免费视频| 99久| 色色热| 婷婷激情在线| 婷婷色爱| 欧美婷婷五月激情| 一区二区成人电影| 中文字幕av网站| 免费黄色视频网址| 国产免费一区二区三区三州老师F1F1.CC | 久久婷婷五月综合色区| 狠狠草在线观看| 26uuu精品一区二区| 久久99热这里只有精品23| 天天综合色丁香| www.97视频| 婷婷五月色| 久久爱综合| 疯狂做受XXXX高潮A片| www.黄色片-久久成人国产精品在线播放-999AV| 五月天婷婷六月| 色色丁香五月天| 亚洲视频1区| 国产婷伊人| 91色婷婷综合久久中文字幕二区| 97极品在线| 狠狠干夜夜干| 亚洲精品国产精品乱码视99| 色丁香久久久| 九九爱看亚洲| 五月婷人妻| 激情美女五月天| 丁香色五月 97干| 日本三久久| 91色在线 | 日韩| 婷婷综合干| 欧美日本不卡黄色片| 艳妇野外情欲放荡HD| 综合久久99| 九九色影院| 亚洲精品婷婷| 99久久网站| 丁香五月天社区| 天天操人人干| 色综合天天综合成人网| 可以看的av| 狠狠穞A片一區二區三區| 九九99久久| 欧美日韩91| 这里只有精品1| 丁香婷婷六月| 无码人妻少妇色欲AV一区二区| 99热最新网址| 午夜不卡久久精品无码免费| 婷婷欠久少妇| 婷婷色色宗合网| 9热在线视频| 日本97久久久精品| 欧美天堂久久| 99热r| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 国产99热| 99综合婷婷五月| 色丁香久综合在线久综合在线观看| 开心五月综合激情综合五月| 天天日,天天射,天天舔| 婷婷在线播放| 夜夜谢天天干| 99re6热在线精品视频播放速度| 久色网| 丁香五月第九色| 日日夜夜天天爽| 狠狠干婷婷| 丁香五月婷婷六月| 又大又粗九一在线| 中文在线成人| 99惹在线精品免费观看| 五月婷婷婷| 激情五月综合久久| 五月婷婷六月丁香免费| 99热这里只有精品69| 五月播播| www.minyis.com【JT】实力收量可预付QQ2101460746 | 婷婷免费无视频| 天天天干夜夜夜操| 日日夜夜天天| 色碰97| 六月婷婷激情| 日韩欧美骚货| 五月天久久久| 狠狠爱成人综合网| 成人 在线 日韩| 婷婷涩涩网| 热99在线精品| www,奇米影视| 中文字幕在线播放视频| 激情综合五月色丁香婷婷 | 色五月天天在线观看资源站| 综合激情网激情五月。| av狠狠操| 色婷婷五月影视| 久久这里只有国产| 99热色精品| 成人免费120分钟啪啪| 激情无码网| 99这里只有精品在线| 99热9999| 偷偷操九九| 爱爱色五月天| 婷婷99热| 大香久久伊人网| 亚洲第一色色色色| 91精品无码| 色色丁香婷婷五月天| 婷婷丁香77777| 婷婷五月天视频| AA片在线观看视频在线播放| 丁香五月自拍| 看全色黄大色大片| 丁香花狠狠婷婷亚洲中文字幕| 精a品a视a频| 一起草无码| 在线日本www| 欧美色六月婷婷| 丁香婷婷基地| 五月激情网站| 狠狠色成人影片| 91在线视频观看午夜福利| 99色中文| 4399欧美另类视频| 人人爱国产| 久久久久久久久月丁| 国产永久一二一起草| 五月停亭六月,六月停亭的英语| 色婷婷性爱| 久久精品亚洲一级牲爱综合 | 色色色成人网| 六月婷婷av| 丁香五月天之婷婷影院| 激情碰碰碰| 狠色色狠网| 免费黄网不卡AV| 久久黄色免费视频| 九九AV| 99热这里只有精品21| 99这里有精品视频| 婷婷 久综合| 99re免费精品视频| 丁香五月停停基地| 思思热国产| 中文字幕人妻一区二区| m色激情网| 亚洲乱码精品久久久久..| 亚洲 综合中文| 久久新地址| 中文资源在线a | 大伊香蕉玖玖爱| 婷婷五月情| 婷婷五月丁香色色| 99热99这里免费的精品| 婷婷在线网| www,五月天激情| 国产精品18久久久| www.伊人天堂偷偷婷婷| 久热婷婷| 欧美成人网婷婷综合在线| 婷婷天天插天天爱| 人妻内射一区二区在线视频| 人妻激情视频| www久久99| 九九视频免费| 天天操婷婷| 婷婷色无码| 色五月婷婷在线| 色婷婷六月综合| 激情第四色| 色噜噜狠狠狠综合曰曰曰| www.99热国产| 五月天激情网开心网| 丁香啪啪中文字幕| 久久丁香综合| AV成人在线播放| 天天操综合网| 成人色色综合| 九色99视频| 久8色色| 国产精品国产| 天天射综合网站| 思思99精品视频在线观看| 另类小说五月天| 九九无码视屏| 两性婷婷丁香五月| 色婷婷五月天在线| 九九九九这里只有精品| 人妻精品在线| 日韩色色色色| 热五月婷婷| ji'qing'luan'ren'lun| 久久丁香五月婷婷| 婷婷娱乐丁香综合网| 亚洲无码yw| 一本大道嫩草AV无码专区| www99热| 丁香色五月直播| 丁香色色五月| 色99在线视频| 这里只有精品在线视频在线观看| 婷婷五月激情五月丁香五月| 久99久视频| 欧美激情凹凸丁香网| 69精品人妻不卡视频| 狠狠操天天干| 丁香五月激情在线| WWW丁香五月| 天天色五月婷婷91久久久久久久| 婷婷精品视频| 婷婷综合精品视频97| 91黄址| 激情婷婷99| 91久久婷婷| 九九九九这里只有精品| 新97人人上人人| 六月丁香婷婷爱| 丝袜人妻| 日日操夜夜爽| AV在线观看网站| 在线亚洲综合网| 啪啪啪大香蕉| 婷婷五月天天爽| 伊人婷婷色激情丁香| 婷婷六月综合| 亚洲韩国日产综合AV| 91五月天| 婷婷丁香激情综合色情| 欧美婷| site:hcxsz888.com| 九九精品99久久久| 国内外色色色色色成人视频| 操操天堂| 日韩爱操视频| 严洲天天插| 1024日韩| 亚州色婷婷| 欧美五月停| 亚洲精品V天堂中文字幕 | 91丁香| 婷婷干| 99视频内射三四| 九九亚洲视频| 成人va视频| 久久久精品色| 天天拍夜夜爽| 三级成人网站| 亚洲综合丁香五月| 99re在线观看| 99操99| 97日在线视频| 色色色在线观看| 六六久久黄色| 色色99| 武则天精品久久| 亚洲婷婷丁香五月| 成人VAV视频在线观看| 在线视频区| 91 欧美| www.色婷婷| EEUSS鲁片一区二区三区| 五月色网| 人妻熟妇国产精品| 久久五月天婷婷| 99九九视频| 中文字幕视频在线播放| 国产精品成人在线| 国产精品电影网| 五月天婷婷綜合院| 91超碰九色| 久久天堂网| 色五月综合激情| 亚洲第一综合| 色婷婷五月在线| 韩国情人在线电视剧免费观看高清版全集 | 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 六月丁香综合| 五月婷丁香| 国产avapp 网| 99热这里| 五月婷婷六月色| 白人荫道BBWBBB大荫道| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 99综合视频| 涩涩涩,com| 操笔无码| 五月开心深深爱激情综合| 五月激情六月宗合| 五月色影院| 激情综合无码| 26uuu最新地址| 少妇水多A片太爽了| 1024AV视频| 伊人丁香五月婷婷潮吹| 丁香五月婷婷激情尤物| 激情四射网| site:esunnet.com| 思思热在线精品视频网站| 五月丁香天堂网| 五月婷婷中文字幕| 九九热在线99| 一本色道久久综合狠狠躁一二三 | 黄久久久| 热这里只有精| 色青青视频| 99久久精品国产色欲| 亚洲丁香五月美女| 丁香五月天堂网| 久操婷婷| Www.sesese丁香| 五月丁香婷婷综合久久| 精品99这里有| 日本社区五月天激情| 久久伊人婷婷| 夜夜爽77777妓女免费下载| 婷婷成人在线| 久碰视频| 五月人妻婷婷视频| 图片区 小说区 区 亚洲五月| 色欲一区二区三区精品A片| 九九九午夜视频| 婷婷丁香六月| www.99热| 婷婷五月天亚洲综合网| 色色五月激情| 欧美噜一噜| 激情五月婷婷五月| 午夜69成人做爰视频| 秋霞日本免费毛片A片| 开心久久xxx色| 激情五月天网| 五月天婷婷久久| 成人在线日韩欧美| 五月久久亚洲| 欧美激情综合色综合啪啪五月| 男人的天堂婷婷色五月| 99手机在线精品视频| 亚洲性爱99在线| 99色干| 五月婷婷伊| 5月婷婷视频网站综合| 日日插日日干| 中文字幕免费高清电视剧| 五月丁香黄色| 五月丁香啪啪啪啪| 精品五月天| 久久五月天 91| 狠狠操天天操综合| 天天噜噜| 九九超碰人人| 五月婷综合性中心| 久综合网| 97在线/亚洲| 夜夜干 夜夜操| 久久综合婷婷| 久久综合这里只有精品1| 思思99久久| 天天色2017| 六月五月久久丁香| 国产精品婷婷午夜在线观看| 97精品人人A片免费看| 99久久精| 五月丁香在线| www.com色播五月天| 性生活视频98791| 99久视频| 日本片日本片祼观看网站在线看中文版网页在线看 | 久久99网| 五月丁香91| 精品人妻在线| AV网在线观看| 五月天,激情四射,婷婷频道| 久久久97| 婷婷五月天色丁香| 丁香成人五月天| 超碰成人电影| 丁香婷婷五月天激情四射| 99热在线资源| 五月情色天| 丁香五月手机视频| 天天色天天色天天色天天色天天色| 国产五月视频| 能看的AV网站| 欧美交换配乱吟粗大25P| 欧美狠狠草| 丁香五月婷婷基地| 亚洲综合新99视频| 夫妇交换刺激做爰| 天天综合亚洲综合| 婷婷碰碰| 日日操夜夜撸| 99玖玖在线视频| 99精品自拍| 天天综合久久| 成人综合网站| 99精品爱| 婷婷五月激情的图片| 激情久久久久久| 婷婷五月天社区| 婷婷五月天色综合翘| 这里只有精品96| 欧美噜一噜| 色约约视频一区二区三区四区五区 | 开心五月婷婷综合在线精品素人| 婷婷日欧美在线观看| 婷婷伊人视婷婷婷| 日韩成人AV在线| 大香蕉婷婷色| 狠狠综合网| 欧美噜噜噜草| 亚洲激情AV| 婷婷丁香五月,狠狠综合| www.丁香黄色五月天人与| 激情五月天在线视频| 伊人五月婷婷国产视频| 五月天色色色| 五月丁香激情综合网官网| 免费无码毛片一区二区A片| 激情五月婷婷综合色播小说| wwww.9免费视频| 婷色五月天| 五月婷综合性中心| 啪啪九九色| 欧美色色色| 激情六月五月婷婷综合网| 91精品久| 人人爱人人摸人人澡| 精品九九网| 婷婷色五月激情| 青青草婷婷综合五月| 国内久久久精品99| 99操碰| 亚洲丁香五月| 五月丁香综合| 免费无码毛片一区二区A片 | 可以看的AV| 99久久99视频只有精品| 丁香婷婷综合喷| 九色自拍| 色婷婷裸体色性在线| 97热精品| 影音先锋91网站在线观看| 久久婷婷五月综合| 成人五月天婷婷| 人碰91| 丁香五月欧美| 日韩三级高清无码| 天天爽夜夜爽夜夜爽精| 99热资源在线| 九月婷婷| 久99久在线| 久久性爱网站| 亚洲操人| 色婷在线视频| 色色婷婷五月| 超碰在线9| 婷婷激情五月天网站| 香蕉99网| 国产精品久久欧美久久一区| 激情五月天小说网| 狠狠干狠狠干狠狠干狠狠干| 97干在线| 婷婷激情97| 极品人妻VIDEOSSS人妻| 亚洲网站999| 婷婷五月花西瓜| 亚洲精品操一操、噜一噜、摸一摸、爽 | 99热这里只有精品2024| 26UUU精品一区二区| 成人av在线电影| 大色鬼综合| 婷婷五月天综合在线| 亚洲最大五月六月丁香婷婷| 就是色婷婷五月亚洲色| 99九九视频| 热久久这里只有三级视频| 婷婷久久色| 丁香伊人五月色婷婷五十路| av九九| 啪啪99| 久操97| 夜夜干夜夜操| 激情亚洲色图片丁香综合| 激情五月婷婷免费视频| 97视频久久| 国产综合81p| 综合网网欲色| www.激情五月天.com| 亚洲日韩一页精品发布| 99久re热视频精品98| 色啪影院| 综合激情在线视频| 日韩在线观看亚洲| 少妇人妻人伦A片| 夜夜爽天天干| 夜夜操,天天撸| 天天操狠狠操| 色人妻五月| 99热在线中文字幕| www.五月婷婷久久.com| 亚洲综合五月天综合| 丁香五月综合久久八| 青青.com| 美女五月天婷婷| 婷婷五月深情丁香深爱日韩| 69热在线| 日本精品。999| 五月婷婷丁香啪啪| 秋霞午夜理论| 久久99热 这里有精品| 99性感视频| 婷婷色五月情| 色五月激情婷婷| 99热这里只有精| 久久色亭亭五月天| 天天色图| 五月婷婷五月天| 婷婷五月天AV| 91热99| 日本久久网| 日韩成人精品中文字幕电影| 亚洲成人AV电影在线| 大香蕉太香蕉视频97| 在线超碰91| 99在线视频播放| 最新日本A片| 99久久er| 婷婷综合五月天| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 五月丁香六月| 天天狠狠夜夜狠狠2023| 99无码视频| 色啦啦视频| 九草性爱| 色丁香五月婷婷| 五月熟妇婷婷久久| 六月久久狠狠| 99视频只有精品| 九九热精品视频| 色五月婷婷在线观看第一页舔| 91碰碰视频在线观看| 嫩草视频观看| 天天日天天舔天天摸| 五月天成人手机在线视频| 深爱激情丁香| 婷婷色五月激情| 黄网在线免费观| 91青娱乐青青草| 色亚洲视频| 色色网站免费| 婷婷激情小说| 婷婷五月丁香激情图片| www91久久| 五月天国产成人| 色五月婷婷五月| 婷婷丁香六月天| 日韩精品在线观看9| 99综合视频一体| 疯狂做受XXXX高潮A片| www.九九婷婷| 婷婷丁香成人| 九九爱激情| 人妻久久久| 亚洲精品字幕| 综合色网站| 丁香花五月天激情| 丁香综合网| 丁香婷婷基地| 97色色色色色| 激情五月激情综合俺也去婷婷小说| 色爱亚洲| 99re99在线看| 啪啪综合网| 中国AV性爱观看| 97日本在线播放| 久久成人天| 九九无毛| 天天拍天天操| 日美三级| 五月天激情国产综合婷婷婷| 日韩AV在线免费观看| 99久在线观看| 狼人久草| 丁香五月综合| 日本丁香五月婷婷| av国产精品| 免费观看欧美成人AA片爱我多深| 天花AV无码| 亭亭色网| 97久久人人操| 天天干天天爽| 色婷亚洲| 91丨九色丨老农村| 丁香五月人妻| 99国产er热视频| 国产精品久久久久9999小说| 久久 视频这里只有精总| 超碰啪啪网| 97热这里精品在线视频| 青青草原中文字幕| 国产亚洲在线观看| 成人天天爽| 在线视频九色97| 伊人网啪啪| 开心久久xxx色| 97操操网| 性爱久久| sS丁香五月婷婷| 日本色天堂| 99国产在线精品视频| 免费的日逼视频| 99久久99九九99九九九| 久热大香蕉| 26.uuu丁香五月婷婷| 操比激情五月综合| 丁香五月婷婷视频| 天天网曰日曰夜夜综合永久免费| 婷婷丁香五月天小说| 成人中文网| 丁香五月婷婷激情123| 农村熟妇高潮精品A片| site:901-07.com| 亚洲综合成人网| 丁香五月色色色色| 九九黄色网| 爱之国产色情综合| 激情第四色| 色狠狠综合网| 婷婷D区| 六月婷婷狠狠色在线观看| 九色婷婷| 六月伊人婷婷| 久久婷综| 五月天综合视频网|