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

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(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ì)最初考慮過 EEPROM、Flash 和鐵電存儲(chǔ)器最后定下來的是 Everspin 的MR25H40CDF——一顆 4Mbit 的 SPI 接口 MRAM。這篇文章就把我的選型依據(jù)、硬件連接、驅(qū)動(dòng)寫法、掉電處理思路和實(shí)測數(shù)據(jù)完整梳理一遍希望給正在做類似工業(yè)數(shù)據(jù)記錄的朋友一個(gè)可直接參考的樣本。很多工程師一提到“非易失存儲(chǔ)”第一反應(yīng)就是 25LC 系列 EEPROM便宜、貨源多、驅(qū)動(dòng)簡單。但我在這個(gè)項(xiàng)目里有幾個(gè)硬性要求寫入頻率高每秒可能多次寫參數(shù)、寫入次數(shù)壽命長不低于百萬次、意外掉電時(shí)舊數(shù)據(jù)不能被破壞、讀寫延遲要低。如果只用 EEPROM頁擦寫次數(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í)場景。它的寫周期是無限次的不存在寫入壽命限制而且寫入后立即可讀沒有寫完成等待時(shí)間。這幾點(diǎn)直接解決了 EEPROM 和 Flash 的痛點(diǎn)。當(dāng)然MRAM 單價(jià)確實(shí)比 EEPROM 高但工業(yè)設(shè)備里存儲(chǔ)成本占比很小可靠性帶來的維護(hù)成本降低更劃算。我拿三十片做高低溫測試和掉電測試沒有一片出現(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 引腳說明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è)問題就規(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í)測兩種模式都穩(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。不要憑直覺記憶直接查手冊(cè)的 SPI Mode 映射表。片選 CS 需要軟件控制。在每次通信讀或?qū)懼袄屯ㄐ沤Y(jié)束拉高。雖然 MR25H40CDF 支持某些多字節(jié)命令但片選期間不能有其他操作否則狀態(tài)機(jī)會(huì)亂掉。我寫了一個(gè)簡單的 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è)簡單的 MRAM 自檢讀狀態(tài)寄存器確認(rèn) bit7WP_EN狀態(tài)。寫一個(gè)已知特征字節(jié)到 0x00000 地址再讀回來比對(duì)。若比對(duì)失敗則告警并進(jìn)入只讀模式避免把系統(tǒng)關(guān)鍵數(shù)據(jù)寫到壞芯片上。特征字節(jié)我選擇 0xA5避免全 0 或全 1 可能受到的干擾。自檢代碼雖然簡單但能在現(xiàn)場發(fā)現(xiàn)很多問題比如虛焊、地址線短路、SPI 模式配置錯(cuò)誤等。有一次生產(chǎn)出來的板子自檢失敗率很高最后定位到是貼片電容布局導(dǎo)致 SPI 時(shí)鐘信號(hào)過沖加了個(gè) 33Ω 串聯(lián)電阻就好了這事情后面再說。3. 狀態(tài)寄存器操作與 SPI 讀寫時(shí)序從手冊(cè)到實(shí)際代碼3.1 MR25H40CDF 的指令集和地址映射MR25H40CDF 的指令集很精簡一共就幾條WREN0x06寫使能、WRDI0x04寫禁止、SRRD0x05讀狀態(tài)寄存器、SRWR0x01寫狀態(tài)寄存器、READ0x03讀數(shù)據(jù)、WRITE0x02寫數(shù)據(jù)。沒有頁寫、扇區(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í)測在 16MHz SPI 時(shí)鐘下單字節(jié)寫操作含命令和地址只需要約 3 微秒寫入本身沒有任何額外延遲。很多從 Flash 轉(zhuǎn)過來的朋友會(huì)習(xí)慣性在寫完后加一個(gè)while(SPI_ReadStatus() 0x01);等待忙標(biāo)志但 MRAM 沒有忙標(biāo)志這個(gè)循環(huán)會(huì)直接跳出屬于無害但多余的操作。不過我還是保留了讀狀態(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é)邊界避免地址回卷問題。3.4 為什么不需要頁概念和 Flash 的底層差異Flash 寫入前必須擦除最小擦除單位是扇區(qū)通常 4KB所以如果你只想改 1 個(gè)字節(jié)實(shí)際上要先把整個(gè)扇區(qū)的數(shù)據(jù)讀出來擦除再寫回去。這個(gè)過程不僅慢而且掉電風(fēng)險(xiǎn)極高——一旦擦除完成、寫入還沒完成時(shí)斷電這片區(qū)域的數(shù)據(jù)就廢了。MRAM 基于磁電阻效應(yīng)寫操作是直接翻轉(zhuǎn)磁性方向不需要先擦除。因此你可以像 SRAM 一樣按字節(jié)任意寫入。這在代碼復(fù)雜度上是一個(gè)巨大的簡化不需要設(shè)計(jì)磨損均衡算法不需要維護(hù)擦除計(jì)數(shù)也不需要考慮寫放大。對(duì)工業(yè)設(shè)備來說這就是可靠性的代名詞。4. 數(shù)據(jù)完整性與掉電保護(hù)MRAM 給了什么我們還缺什么4.1 掉電時(shí)寫一半怎么辦雖然 MRAM 本身沒有“先擦除后寫”的缺陷但數(shù)據(jù)完整性問題并沒有完全消失??紤]這個(gè)場景系統(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ù)、記錄長度、CRC16、遞增序號(hào)。寫完后寫一個(gè)“完成標(biāo)志”字節(jié)比如 0x55。下次寫入時(shí)切換到 B 區(qū)交替使用。讀取時(shí)先檢查 A 區(qū)的完成標(biāo)志如果有效就用 A否則檢查 B 區(qū)。如果兩個(gè)區(qū)都無效說明首次上電或數(shù)據(jù)被破壞使用默認(rèn)參數(shù)。這樣即使斷電發(fā)生在寫入過程中最壞情況只是當(dāng)前寫的那個(gè)區(qū)無效而另一個(gè)區(qū)保存的是上一次完整記錄。工業(yè)現(xiàn)場不喜歡“沒有數(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; // 記錄長度 uint16_t crc; // 數(shù)據(jù)區(qū) CRC16 uint8_t status; // 0x55 表示完整 uint8_t reserved[5]; } RecordHeader;這樣一條記錄頭固定 16 字節(jié)加上數(shù)據(jù)比如 64 字節(jié)參數(shù)塊總長 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í)測在電源擾動(dòng)測試中加了 WP 保護(hù)后從來沒有發(fā)生過寄存器值突變的情況。4.3 讀取校驗(yàn)在工業(yè)通信中的必要性SPI 通信受干擾時(shí)最典型的表現(xiàn)是讀回來的字節(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ù)。有工程師說“MRAM 足夠可靠不需要校驗(yàn)”。這句話我不完全同意。芯片存儲(chǔ)單元本身可靠但引腳電平、PCB 走線、外部電磁干擾都是可變因素而且 SPI 沒有硬件 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 溫循測試每個(gè)溫度點(diǎn)保持 30 分鐘然后讀寫校驗(yàn)。MRAM 的磁性存儲(chǔ)本身對(duì)溫度不敏感但 SPI 時(shí)序在極低溫度下可能因?yàn)闀r(shí)鐘極性設(shè)置不當(dāng)而出現(xiàn)采樣錯(cuò)誤。測試結(jié)果-40°C 時(shí)寫讀 10000 次全部正確。85°C 時(shí)寫讀 10000 次全部正確。在溫度變化過程中瞬時(shí)斷電再上電數(shù)據(jù)依舊保持。這在 EEPROM 上可能也能做到但 EEPROM 寫入需要等待循環(huán)寫入會(huì)導(dǎo)致系統(tǒng)阻塞而 MRAM 的寫入時(shí)間對(duì) CPU 來說就是幾個(gè) SPI 時(shí)鐘周期系統(tǒng)響應(yīng)能力完全不受影響。5. 實(shí)際項(xiàng)目中的性能測試與踩坑記錄5.1 16MHz SPI 時(shí)鐘下的吞吐量數(shù)據(jù)我的 PIC18F45K50 使用內(nèi)部 16MHz 振蕩器SPI 時(shí)鐘配置為 FOSC/4也就是 4MHz。MR25H40CDF 最大支持 40MHz 時(shí)鐘4MHz 完全在安全范圍內(nèi)。實(shí)測數(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ù)字說明什么如果你要每秒記錄 10 次、每次 32 字節(jié)那么每秒寫占用時(shí)間大約 0.1msCPU 占用幾乎可以忽略。對(duì)比 I2C EEPROM 的 2ms 寫入時(shí)間MRAM 的實(shí)時(shí)性優(yōu)勢非常明顯。不過要小心PIC18F45K50 的 SPI 發(fā)送是按字節(jié)阻塞的每發(fā)一字節(jié) CPU 都要等待移位寄存器完成。如果你希望 SPI 傳輸不阻塞 CPU可以考慮用 DMA但 F45K50 的 DMA 資源有限而且你可能要用 DMA 做 USB 通信。我在項(xiàng)目中沒啟用 DMA因?yàn)?4MHz 下每字節(jié)才 2μs測試時(shí)用邏輯分析儀觀察CPU 空閑時(shí)間還是很多。5.2 踩坑一CKE 位配置錯(cuò)誤導(dǎo)致讀全 0xFF這個(gè)問題前面提過再展開一遍。我把 SPI 配置成 CKP0、CKE0當(dāng)時(shí)想的是“空閑時(shí)鐘為低、輸出邊沿下降沿采樣”這在很多 ARM 芯片上是 Mode 1但 Microchip 的命名方式不同。結(jié)果是讀 READ 命令返回的數(shù)據(jù)全是 0xFF寫進(jìn)去的數(shù)據(jù)讀不出來。排查方法用邏輯分析儀抓取 SPI 波形發(fā)現(xiàn)時(shí)鐘和數(shù)據(jù)相對(duì)位置不對(duì)。數(shù)據(jù)在時(shí)鐘上升沿變化而芯片要求在上升沿采樣導(dǎo)致采樣時(shí)數(shù)據(jù)總線還沒穩(wěn)定。修正 CKE1 后波形和數(shù)據(jù)完全正常。如果你遇到類似問題第一件事不是換芯片而是檢查采樣沿配置。5.3 踩坑二WP 引腳懸空造成寫入隨機(jī)失敗第一次打樣時(shí)我把 WP 引腳直接空著沒接想著芯片內(nèi)部應(yīng)該默認(rèn)不保護(hù)。結(jié)果發(fā)現(xiàn)同一批板子有些寫入正常有些寫入后讀回來是舊的。量了 WP 引腳電壓有的板子是 0V有的是 1.2V完全不穩(wěn)定。查手冊(cè)才發(fā)現(xiàn) WPEN 上電狀態(tài)為 0但外部引腳電平會(huì)通過內(nèi)部保護(hù)二極管影響芯片狀態(tài)一旦被拉低且狀態(tài)寄存器某位上電不穩(wěn)定就可能變?yōu)閷懕Wo(hù)狀態(tài)。解決方式很簡單把 WP 引腳用 10kΩ 電阻上拉到 VDD或者直接用 MCU GPIO 控制。我用 GPIO 控制后每次寫操作前明確拉高寫完可以拉低規(guī)避所有不確定性。5.4 踩坑三PCB 走線過長導(dǎo)致 SPI 時(shí)鐘過沖生產(chǎn)時(shí)為了布局方便把 MRAM 放在板角距離 MCU 大概 6cm走線沒有做阻抗匹配。在 4MHz 時(shí)鐘下過沖倒不至于引起誤碼但我在 ESD 測試時(shí)發(fā)現(xiàn)偶發(fā)讀錯(cuò)誤。用示波器看 SCK 波形上升沿有約 0.8V 的過沖和振鈴。如果在采樣點(diǎn)附近發(fā)生振鈴采樣值就可能出現(xiàn)毛刺。后來在 SCK 引腳上串了一個(gè) 33Ω 電阻并且在 MRAM 的 VDD 引腳附近加了一個(gè) 100nF 去耦電容問題徹底消失。對(duì)于 4MHz 的 SPI33Ω 串阻不會(huì)顯著影響時(shí)序但能有效抑制振鈴。如果你的板子時(shí)鐘更快可能還需要考慮走線長度和源端匹配。5.5 踩坑四忽略 HOLD 引腳導(dǎo)致通信中斷我的設(shè)計(jì)一開始沒接 HOLD想當(dāng)然認(rèn)為它沒作用。后來在強(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è)問題在實(shí)驗(yàn)室很難復(fù)現(xiàn)但到了現(xiàn)場就頻繁發(fā)作。解決辦法把 HOLD 引腳直接硬連接 VDD不做任何跳線必要時(shí)加一個(gè) 1nF 濾波電容。你如果不想用 HOLD 功能就不要把它當(dāng)成多余引腳它沒有內(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)形緩沖用來存運(yùn)行日志每條日志 32 字節(jié)循環(huán)寫入。這個(gè)緩沖沒有雙備份因?yàn)槿罩臼强蓙G失的但寫滿后無法自動(dòng)區(qū)分新老記錄所以我每寫一條記錄都會(huì)在記錄頭里放 32 位時(shí)間戳讀取時(shí)可以通過時(shí)間戳恢復(fù)順序。6.2 文件系統(tǒng)要不要上MRAM 容量 512KB完全可以跑個(gè)微型文件系統(tǒng)比如 LittleFS。但我在這個(gè)項(xiàng)目里沒有用文件系統(tǒng)原因是寫入模式固定不需要文件名和目錄管理。文件系統(tǒng)的元數(shù)據(jù)開銷和磨損均衡在這里沒有意義MRAM 無磨損。簡單固定地址分配更容易做掉電保護(hù)。文件系統(tǒng)在掉電時(shí)同樣需要日志或回滾機(jī)制反而增加復(fù)雜度。如果你的設(shè)備要存儲(chǔ)多個(gè)可變的、帶名稱的數(shù)據(jù)塊LittleFS 是一個(gè)不錯(cuò)的選擇它原生支持掉電安全和磨損均衡。但對(duì)于 MRAM我更推薦直接裸讀寫因?yàn)榭煽啃詠碜阅銓?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è)簡單的驅(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)場工程師不可能每個(gè)人都熟悉 MRAM 指令集。6.4 大數(shù)據(jù)量緩存的思路如果你的產(chǎn)品需要做數(shù)據(jù)采集比如以 100Hz 采樣傳感器數(shù)據(jù)那么 4Mbit MRAM 在緩沖容量上可能不夠大。一顆 4Mbit 存不了長時(shí)間波形但可以設(shè)計(jì)為“邊采邊傳”MRAM 作為 FIFO數(shù)據(jù)先寫到 MRAM然后通過 USB 或以太網(wǎng)發(fā)給上位機(jī)上位機(jī)確認(rèn)后才清除。這樣的好處是避免 MCU 只有 32KB RAM無法存儲(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 到底值不值得用先說結(jié)論在工業(yè)現(xiàn)場需要高可靠、高頻率、可隨機(jī)寫入的非易失數(shù)據(jù)存儲(chǔ)時(shí)這套組合非常值得用。PIC18F45K50 是成熟的 8 位 MCU自帶 USB 控制器和 SPI價(jià)格適中而 MR25H40CDF 一粒就能解決 EEPROM 壽命和 Flash 擦除問題電路外圍只需幾個(gè)電容電阻不需要任何額外電平轉(zhuǎn)換前提是統(tǒng)一 3.3V。我實(shí)際用下來的體會(huì)是MRAM 最大的價(jià)值不是“速度快”而是“讓人省心”。調(diào)試存儲(chǔ)驅(qū)動(dòng)時(shí)不需要考慮擦除時(shí)間、頁邊界、磨損均衡、壞塊管理代碼量少了至少三分之一。寫錯(cuò)地址也不會(huì)破壞其他扇區(qū)因?yàn)槿我獾刂范伎梢灾苯訉戇@點(diǎn)對(duì)工業(yè)現(xiàn)場的固件升級(jí)和校準(zhǔn)特別友好。如果你正在猶豫選型我的建議是如果存儲(chǔ)量需求不超過 512KB且對(duì)寫入頻率、掉電可靠性有較高要求直接上 MR25H40CDF不要再用頁擦除的 Flash 硬撐。當(dāng)然如果你只是存幾個(gè)配置字節(jié)一年寫不了幾次傳統(tǒng) EEPROM 也夠用成本更低。但如果你像我一樣需要做運(yùn)行日志、參數(shù)歷史、頻繁更新校準(zhǔn)值MRAM 溢出的價(jià)格換來的穩(wěn)定性一定值得。最后再分享一個(gè)小技巧焊接 MRAM 芯片時(shí)溫度不要超過 260°C 太久雖然工業(yè)級(jí)芯片耐溫不錯(cuò)但高溫時(shí)間過長可能影響內(nèi)部磁性結(jié)構(gòu)的一致性。批量貼片時(shí)注意控制回流焊曲線我在小批量手工焊接時(shí)用熱風(fēng)槍吹調(diào)試時(shí)一切正常但極端低溫測試下曾經(jīng)發(fā)現(xiàn)有個(gè)別位翻轉(zhuǎn)重新規(guī)范焊接后問題消失。細(xì)節(jié)決定可靠性硬件如此代碼也是如此。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
免费日韩黄片| 91亚州日韩高清| 精品夜夜澡人妻无码| 亚洲天堂自拍| 天天干天天操天天操夜夜操天天操| 啪啪资源网| 草伊人高潮喷水超碰| 超碰在线免费一区二区三区| 另类一区| 99精品高潮| 91看黄片| 欧美色66| 久草尤物| 欧美少妇高潮久久91| 国产午夜精品一区二区三区牛牛| 岛国黄色大片网站| 熟妇高潮二区三区| 特级毛片特黄久久免费看| 狠狠搞 亚洲91| 亚洲国产精品成人久久蜜臀| 玖玖97综合 | 国产动漫操逼视频| 久久精品99| 五月丁香拍拍激情综合三级| 91久久免费视频互動交流| 色色色色综合网| 亚洲丰满很很操| 国产亚洲精品久久久久小| 欧美性天天影视| 777超碰| 99国产在线 精品 视频| 伊人aaa| 青青伊人这里只有精品| 亚洲综合色在线| 欧美成人四级在线播放| 熟妇一区,二区,三区。| 日韩欧美俄罗斯A片| 热久久国产精品视频大陆精品| 欧美人妻少妇| 国内精品不卡无毒99999| 懂色Av| 亚洲 中文 女同| 激情熟女12P| 九一精品牛牛一区二区| A V视频日本| 性交一区二区在线播放| 九九综合久久| 亚洲日韩天堂| 你草精品在线视频| 秋霞一级视频在线观看免费| 综合亚洲网| 99爱精品| 亚洲影视综合| 搞中出久久| 九九九九九精品十六| 丝袜剧情| 国语对白露脸XXXXXX| 四虎免费看黄| 欧美黑人猛交春色影视大全| 又大又长又粗又爽又黄| 青青操日韩| 99这里只有精品| 无码一区免费在线不卡| 亚洲欧洲无码一区夜| 欧美做爰无码A片视频| 久久内射| 熟妇人妻一区二区三在线| 四虎国产精品永久地址入口| 久久婷婷苹果| 国产三级在线现体验区| 日韩精品三级片长长久久| 免费一级毛片在线视频观看| 收看日本人日bb| 玖玖超碰熟| 亚洲天堂另类小说男人| 亚洲精品久久久久毛片A片拉屎| 丝袜美腿丝袜| 死我十八禁| 校园春色亚洲欧洲| 色情五月丁香| 一级片在线观看高清无码| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 亚洲色图 欧美热图 清纯唯美 另类自拍 | 久久久涩| 综合天天网| 丁香婷婷色五月| 亚洲成人一区二区精品| 婷婷干黄色| 天天干人人乐| 色狠狠一区二区三区香蕉| 久草资源在线视频官方总站日韩丝袜美腿| 99色在线视频| 亚洲欧美日韩夜夜| 熟女五十路一区二区三| 人妻色偷色噜| 91色婷婷综合久久中文字幕二区| 白丝AV网站| 久久人妻视频网| 无码精品人妻一区二区三区妖精| 免费中文综合精品| 国产激情视频一区区三区| 夜夜春夜夜操| 欧美在线l亚洲| 啊啊啊啊嗯嗯嗯用力好爽| 青娱乐日韩无码| 十八禁的黄污污免费网站| 极品色综合| 精品女同一区| 超碰精品人妻狠狠干| 欧美aⅴ99久久黑人专区| 成人AV素股で擦久久| 9l视频自拍9l九色成人| 欧美综合色站| 天天综合网在线| 中国探花熟女| 懂色AV蜜臀无码精品APP | 女人午夜视频777| 国产在线激情视频| 色色网91| 色在线亚洲视频www| 69视频入口| 日韩性爱长视频免费| 激情婷婷黑人91| 久久久性爱| 欧美亚洲首页| 懂色aV一区二区天美传媒| 妇女一区二区三区| 丁香色狠狠色综合久久小说| 97Ai亚洲| 国产探花精品在线| 伦理片秋霞免费影院| 色噜噜人妻丝袜a∨先锋影 | 日本伦乱九九九综合| 97超碰精品图片| 亚洲男人天堂AV| 国产传媒日韩欧美| 欧美少妇内射| 日产精品久久久一区二区| 新怡红院| 欧美综合网| 亚洲国产婷婷在线播放| 国产精品自在线发布| 一个人免费HD91视频| 91在线视频观看国产| a天堂视频| 亚洲 欧美日韩 另类| A片 AV一级在线播放观看免费| 91chinese在线| 少妇 综合| 日本一区二区三区欧美日韩中文字幕| 五月开心久久AV官网| 欧美亚洲在线| 狠狠操官网| 大香蕉丝袜一级片| 91亚洲影院综合| www.男人天堂| 久久久91| 人人透人人操| 美女97超碰| 精品人妻一区二区三区蜜桃视频| 久久久久9999| 亚洲国产成人精品久久久国产成人一区二区三.| 日本国产高清色www视频在线| 五月丁香啪啪网| 丁香婷婷激情五月天无毒不卡 | 超碰碰97| 婷婷丁香人妻 | 亚洲精品色| 久久超碰久| 91/欧美| 久久久久久人体| 精品无码久久久久久国产浪潮| 凹凸视频在线观看伊人| n1038 一二三区| julia ann久久| 美国日韩黄片| 久久女人一区二区三区| 91亚洲精品青草| chaopen97久久| 国产精品高清2021在线| 狠狠干,狠狠操| 午夜综合在线| 一级性爱视频免费观看| 夜夜草网站| 人妻黑丝袜电影| 九九九九热| 亚洲欧美国产其他二区| 99精品伊人| 综合色欧美| 欧美黑人精品在线播放| 九九热精品| 免费超碰97久久| 84YTCOM性无码| 五月色综合| 日本天天干天天日一区| 国产精品久久天天干| 色噜噜人妻丝袜a∨先锋影| 久久久久网站-538在线视频-欧美永久乱码| 肥佬影院91| 92午夜免费福利视频| 顶级少妇BT天堂| 国产久久天堂资源| 成人电影一区| 日韩精品高清资源在线| 国产人妖的免费的视频| 91国精产品| 日本三级A片网站com| 99精品丰满人妻无| 中文精品一区二去| 91性高| 欧美另类综合久久| 日韩中文字幕精品一二三事国产精品| 国产传媒午夜理伦精品| 欧美综合第一| 不卡中文字幕aⅴ在线| 95人妻爽爽人人做人人澡| 疯操AV| 亚洲av淫乱| 中文字幕无码不卡啪啪| 91狼人| 亚洲色天堂九9| 国产激情片在线观看| 日本五区不卡| 色五月大香蕉| 日本成人在线不卡一区二区三区| 91视频成人福利网站在线一区 | 九热大香蕉| 日本中文熟女视频| 亚洲精品国产av天美传媒| 澳门黄片一香蕉视频| 久插不卡| 亚洲色 国产 欧美 日韩| 色综合久久夜色精品国产天堂| 欧美三级中文字幕hd| 91精品久久久久久久久久| 日本性爱少妇| 香蕉综合网| xxx亚洲午夜天堂| 午夜激情成人在线观看| AV高清一区| 乱伦日本色图AⅤ| 久久久78| 澳门成人网站久国产日韩| 激情熟女12P| 中文字幕人妻色偷偷久久皮 | 在线色导航| 激情久久日韩精品中文字幕麻豆| 蜜臀av在线播放一区二区三区| 九色 人妻 大香蕉| 美女写真| 久久 精品| 天天综合网1| 日本一级性爱| 欧美性爱第1 页| 白 大 人妻 区 在线| 日本污ww视频网站| 超碰精品日韩欧美国产| 超碰欧美COM| 精品网站9999| 久草大| 人人模人人看| 国产精品不卡少妇白| 久久久久久久久九九久孕交| 国产九九九九九九九九| 日韩欧美性吧婷婷乱伦大香蕉| 久久久一热在线播放| 天天插夜夜操| 日日操夜夜操天天操免费观看麻豆| 口爆欧美91| www.色综合| 欧美性爱日韩性爱| 国产精品高清2021在线| 午夜精品久久久久久久久久久久久 | 日本三级A片网站com| 欧美色图小说综合| 啊啊啊在线观看免费视频| 99久久99久久综合| 99激情视频| 欧美激情性爱视频网站| 大象AV在线| 久久久精品国产亚洲AV无码| 91人精品妻入口| 九九九九精品精| 亚洲妇色| 国产欧美日韩臀| 亚洲色图超碰在线| 深田咏美亚洲精品福利社| 黄片qw| 亚洲天天操| 香蕉国产97| 福利一级版子| 97av,com| 中文字幕色AV| 亚洲在线观看| 大香蕉2017| 加勒比五月天| 日本欧美色| 91久久18禁| 爱干爱射网啊啊啊| 97国伦国色| 99色色网| 久久久影院| 超碰人人妻| 国产无马视频| 国产精品秘 福利姬在线观看| 无码日韩人妻av一| 国产成人免费观看在线视频| 啪啪免费| 黑人嘿嘿嘿超爽免费视频| a一区二区三区乱码在线| 深夜视频| 久久双插| 中国一级特黄大片护士| www..com操老师| 人妻啪| 日韩欧美成人性爱在线| 成人无码在线超碰网| ,国产乱人伦精品一区二区三区| 人妻天天夜夜爽一区二区| 日韩精品区二区三区不卡| 亚洲欧美精品一区天堂久久| 久久久com| 天堂蜜桃无码视频一区二区| 日产国产精品中文久久婷婷| 日韩精品高清资源在线| 色综合久久夜色精品国产天堂 | 日韩av一级黄片| 桃花色综合影院| 国产一级高跟丝袜| 丁香六月东京热| 91九色网| 超碰人妻中文在线| 日韩国产九九精品一区二区三区毛片| 日韩欧美麻豆 | 蜜臀va69| 精品99999| 自拍偷拍第26| 99亚洲天堂| 色999人与兽| 91熟女综合| 中文字幕精品专区搜索结果91| 超碰偷拍| 伊人一级免费黄片| 国产三级日产三级韩国三级| 欧美性天天影视| 内射卯月麻衣| 超碰97久久| 女人 A一级| 日日夜夜干| 亚洲情色在线| 91制服丝袜| 日韩激情无码影院| 日本激情免费大片| 中文字幕视频一区视频二区| 久久久专区| 国产精品伦理| 99精品视频在线观看免费| JULIA一区二区三区在线播放| 免费观看有码高清视频| 黑人干亚洲| 啊啊啊啊啊啊在线观看| 色综合色欲色综合色综合色综合| 中文字幕一区 二 区 三 四 五 区日 日 骚| 欧美 亚洲 大香| 婷婷激情五月综合| 成人七区| 中文幕97| 热思思免费视频| 亚洲夜夜欢无码一区二区| 99精品热| 久久精品国产亚洲妲己影视| 水野优香在线观看| 亚洲影视高清第一页| 岛国在线免费视频| 久久久不能久久久久| 久久精品女同亚洲女同13| 亚洲婷婷丁香在线| 成人综合色网| 天美传媒精品久久视频| 国产乱码精品一区二区三区四川| 日本天堂网| 少妇专区一二三四五| 丁香婷婷五月| 91九久| 亚洲清纯综合| 久久精品国产72国产精品福利| 丝袜狠狠草尤物人妻av91| 欧美熟妇色| 欧美一品道| 被男人吃奶很爽的毛片| 草b在线| 精品免费一区| 大香蕉男女超碰精品在线| 少好三P| 国模艳艳啪啪一区| 欧美综合 站| 飘花国产午夜精品不卡| 青青草日韩无码| 夜夜欧美| 人妻啊啊人妻啊| 极品色综合| 99色婷婷| 精品无吗m| 神马精品视频| 亚洲色图欧美色图另类图片| 热九九精品| 蜜臀久久99精品久久久久久-DVD| 国产精品一区二区三区在线密挑| 欧美97爱| 无码人妻一区二区一牛影视| av黄图片在线观看| 九九久久一区二区三区| 国产又黄又粗的视频| 大香蕉在线86| 国产精品免费1区2区视频| 日夜久久久九九九久| 秋霞一集毛片观看| 欧美少妇色综合| 日韩丰满熟妇| 极品出轨视频网站| 国模一区二区三区| 最新无码国产| 99re在线精品78| 五月婷婷综合网| 狠狠操狠狠操操| 久久久18禁| 激情小说亚洲图片| 五月天色色网站| 熟女精品日韩一区二区三区| 亚射在线| 亚洲欧美精品福利在线| 夜夜躁狠狠躁日日躁av| 青青国产在线拍揄自揄拍| 美女操逼福利视频| 色色九区| 青青草自拍视频在线播放| 日本免费中文字幕在线| 亚洲 中文 欧美 日韩 在线| 国产精品一二三免费网站| 人人模人人看| 色天天野狼综合社区| 婷婷在线视频| 成人a级高清视频在线观看| 欧美在线|亚洲| 青草青青久久久久久国产| 五月天亚洲色图| 夜夜骑操视频| 玖玖97综合 | 亚洲交性| 国厂麻豆77q4| 成人精品在线| 爽极品影院| 精品国产乱码久久久| 精彩视频日韩| 日韩乱伦视频| 夜夜操美女| 超碰97人人乐| 新精精品久久精品| 美女黄页| 久草五月| 亚洲无码久久久久久久| 久久产精品一区二区三区电影| 骚女高跟AV在线| 91男女啊啊啊| www.色婷婷色综合| 在线观看亚洲专区| 成人小说视频在线精品欧美| 综合色好色| 久久九操在线观看| 日日夜夜草草草| 天天流夜夜操| 激情四射婷婷六月天| 白嫩嫩一区| 精品国产久热在线观看| 大香蕉视频一二三区| 91老司机在线| 欧美中日韩XXXX| 熟女高潮合集-永久久久-成人AV| 亚洲男人的天堂V| 99热99在线播放激情| 亚欧毛片基地国产毛片基地| 亚洲学生妹高清av| 99re视频在线观看这里只有精品| 亚洲色婷婷综合久久久久中文| 欧美色图偷拍另类| 日本在线不卡v二区| 污色区网站| 极品人妻少妇综合| 国产精品日日摸天天碰| 熟妇人妻一二三区免费| 亚洲综合色图欧美| www男人天堂| 中文字幕人乱码中文字的预防方法 | 蜜臀久久99精品久久久电影| 翔田千里A片一区二区| 老司机福利青青草| 人人操人人爽人人操人人| 91蜜桃传媒精品久久久一区二区| 亚洲s色图| 亚洲精品蜜桃久久久久久久| 精品无码人妻一区二区免费蜜桃| 久久久∴| 91麻豆天美国产欧美高潮| 91九九九吃| 麻豆一区二区三区在线看| 黑人性欧美| 97精品网| 自怕偷自怕亚洲精品| 日本福利二区视频| 久久精品人体| 日韩国产九九精品一区二区三区毛片| 乱色老一区二区三区的观看方式| 最新9久久久9免费视频| 97精品一区| 日韩激情无码影院| 超碰免费人人| 一区二区三区精品黑丝白丝酒店对鸡| 91艹逼精品| 久操免费电影| 大香蕉99999| 亚洲密乳AV| 亚洲精品 大香蕉| 欧美熟女逼久久久久久| 亚洲熟女诱惑| 女同女同恋久久级三级| 操狠狠| 色九色久| 欧美另类综合久久| 少妇蜜汁| 凹凸视频在线一区二区| 日本午夜久久电影| 五月久久HDAV| 午夜经典| 婷婷丁香五月激情啪啪| SUV一区二区在线看| 欧美操逼录像国产黄色国产| 亚洲欧美日韩免费电影| 久久精品国产亚洲AV高级北京| 18一区二区三区| 超碰4A| 蜜桃av综合网发布| 四虎精品一区| 中文字幕一区二区三四五区日日骚| 天天影视综合色| 亚洲综合精品国产一区| 蜜区区视频79| 综合色图亚洲欧美| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 日韩欧美麻豆大片| 秋霞色色影院| 久久骚少妇| 国产美女mm131爽爽爽爽| 精彩久久中文| 婷婷四五区| 亚洲色图 欧美| 神马久久久久久久久久久久| 人人艹亚洲| 超碰在线日韩一区| 欧美色图天堂网m| 欧美高清18A片| 亚州日韩97| 婷婷导航| aaaa少妇高潮大片| 国内毛片四区| 69AV女优男人的天堂| 国产高清视频无码在线| 欧美激情久久久久| 欧美精品四区| 在线无码网站| 国产精品播放| 天综合网欧美| 综合色图,成人综合网| 国产亚洲日韩欧| 99精品高潮| 性欧美另类高清| 1769精品一区二区三区| 日韩操p| 91观看 国产白丝| 日本亚洲vr欧美不卡高清专区| 18禁免费视频| 色吧91| 青青草色AV| 激情文学小说一区二区| 麻豆福利视频导航| 快点操死我| 天天日天天色| 婷婷综合激情| 色噜噜狠狠色综合日日| 国产毛片在线| 国产日逼视频| 日韩免费簧片| aa片毛片| 久久色网| 91操熟女视频| 精品二区三四区五电影 | 屁股久久久久久| 超碰在线综合97| 精品美女人人干| 日本一久是| 婷婷精品国产一区二区三区日韩| 久久一留热品黄| 天天看综合网| a久久| 日韩性色b| 久久久久无码| 操淫穴亚洲五月丁香| 青青草男人天堂| 大香蕉男人的天堂| 色97综合中文字幕| 加勒比无码毛片| 玖玖久久久| 男女猛烈无遮掩视频免费软件| 亚洲美女av无码| 国产强奸无码乱伦| 成人免费毛片| 日韩一级性爱无码| 99亚洲国产精品色一区二区三区| 亚洲乱色熟女一区| 国语对白在线播放视频| 资源在线观一 二| 亚洲中文人妻色| 997色在线| 天天草天天日| 亚洲 欧美 制服 另类 自拍| 成人性爱电影网| 在线天堂999| 激情婷婷丁香| 综合网91| 国产无马av| 少妇被c 黄 免费观看| 久久亚州精品成人Av无| 中文字幕-区二区三区四区视频中国| 岛国视频一二三区| 亚洲熟女综合一区二区| 亚洲吊色| 高清无码网址| 天天肏美女| 九九久久一区二区三区| 妇女乱色二区| 亚洲成?V人片在线观看福利| 天天干天天日天天射黄色片| 综合97| 爽 好舒服 无码刺激久久| caopeng97人妻| 日本不卡五区| 天天欧美欧美亚洲网| 欧美综合网1| 在线欧美亚洲| 无码国产精品午夜不卡( | 久久久久久国产精品| 亚洲欧洲无码一区夜| 成人97人人超碰人人| av在线人气| 亚欧免费| 欧美精品久久| 精品v日韩欧美国产| 日韩精品国模| 在线精品福利免费播放| 99热欧美| av在线资源| 啊啊啊爽爽| 青青草一区二区三区四| 丰满人妻区一区二区三| 久久超碰大香蕉| 黄色性爱网网| 亚洲一区二区三区在线激情| 一二三四视频在线社区中文字幕| 另类小色呦| 亚洲春色一区二区三区| 熟妇一区,二区,三区。| 国产精品一区二区在钱播放| 美国一区二区三区视频| 欧美色九九| WWW美腿丝袜香蕉中文| 色噜噜综合在线| 久久精品中文字幕无码l| 性91| 久久岛国| 亚洲蜜臀精品视频久久| 亚洲欧洲第二视频在线观看色图| 亚欧精品久久久久久久久久久| 国产精品一级片在线看| 亚洲色图尤物视频| 黄色视频高清无码网站| 精品天堂| 9丨久久九九九| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产一级舔足在线观看| 麻豆成人AV| 欧成人在线| 一本久久久精品| 美女天天干| 亚洲极品| 极品出轨视频网站| 欧美性五月| 日日干夜夜骑| 国产AV线| 中国91AV| 91国模| 久久精品一区二区一8| 亚洲天堂男| 九九无码| 欧美另类综合久久| 亚欧Av| 九九人人操| www.操| 啊啊啊快操我视频| 91高潮喷水美女| 亚洲av资源| TS人妖另类精品视频系列| 美国日韩黄片| 久久一区二区三区入口| 大香交伊人网| 二级久久网| 人妻少妇无码 | 日本高清电影欧美色图| 免费农村成人少妇人妻Aa一区二区视频| 亚洲男人天堂2012| 91热色| 熟妇乱伦一区二区| 婷婷丁香五月天亚洲天堂网| 99精品视频在线观看| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 97香蕉碰碰人妻国产欧美| 97AV爱| 欧美热图99| 国产高清免费不卡av| 亚洲色图激情小说| 国产女人9999| 成人毛片免费| 男人的天堂亚洲| 男人的天堂久久狠| 超碰免费人妻人人| 狠狠欧美| 精品人妻久久久| 国产懂色精品国产av| 一区二区三区蜜桃成人撸久久东京热| 亚洲第一视频 欧美风情 日韩| 爱妃国产亚洲视频中文字幕| 综合网色| 亚洲双插| 操一区| 高清无码91| 婷婷在线精品| 97日亚洲欧美| 人妻熟女午夜精品在线| 麻豆一区二区三区在线看 | 亚洲av热热色| 1769国内精品视频| 偷拍亚洲高清图片| 老熟女搡BBBB搡BBBB视频| 欧美性爱一内片一区二区三区| 热99这里有精品综合久久| 免费一级欧美片片线观看| 久射吧| 九九热视频在线观看| 亚洲天堂男人天堂网| 91麻豆天美国产欧美| 中文字幕乱亚洲美女精品一区| 激情文学网伊人| 国产精品网址| 青娱乐手机日韩在线视频| 日韩在线观看字幕精品| 97情超碰色| 丁香婷婷久久| 免费av高清无码| 男人把坤坤插入女人的下体| 日本五十路熟女一区二区| 色婷婷A V一二三四区麻豆综合| 日本99久久| 精品无码一区二区三区色欲| 性爱AV天堂| 色色五月天婷婷| 久久久久久久伊人精品| 日本亚欧爱爱| 夜夜高潮夜夜爽| 黄色一级视| 9国产超碰| 综合欧美色图| 欧美亚洲厕所精品偷拍91| 99热综合| 色欲蜜臀AV| 富女玩鸭子一级毛片| 91成人久久| 操逼内射干逼白丝91| 日韩资源网| 日本综合久久| 中文字幕乱码在线观看| 天天干天天日天天射黄色片| 色哟哟-国产专区| 性性久久| 久思思热视频在线观看| 蜜桃臀av一区二区| 国产91 丝袜在线播放00-百度| 天天欧美| 亚洲国产精品无码AV久久久| 黄色激情电影在线观看| 一级久久久久久久久久久| 国内三级自拍小视频在线观看| 天天做天天爱天天高潮| 伊人97色天使| 久久9999 | 人妻天天夜夜爽一区二区| 无码一区二区三区四区五区六区七区八区九区十区视频 | 亚洲 欧美日韩 另类| 五月天婷婷色| 国产精品久久久久久久久久久久久久久久久久 | 制服诱惑亚洲一区二区三区在线观看| 后入式五六区| 四虎午夜影院| 涩涩五月天| 农村妇女精品一区二区| 日日日啊啊啊| 中国熟妇| 精品综合久久久久久五月天| 久久综合中文国产| 久久久久ab| 国产原创精品| 久久精品国产亚洲AV成人直播| 激情欧美97| 九九九网站| 97资源亚洲| 视频在线97| 高清无码人妻久久久一区二区三区aⅴ| 五月天开心网| 精品国产丝袜一区二区三区乱码| 成人免费看吃奶视频网站| 污污污8888| 午夜小电影在线插入淫高潮| 91狠婷| 国产黑白丝在线| 偷拍亚洲高清图片| 啊啊啊啊啊啊在线观看| 日日黄色三级网站| 婷婷丁香六月天| 亚洲欧综合另类无码一区| 色九久| 任你干在线视频| 激情图片亚洲色图| 日韩在线观看中文字幕视频| 91啦人妻| 91爱网| 少妇激情一区二区三区视频| 久干网| 怡春苑东京热| 天天日天天舔东京热| 蜜桃成人1区2区3区| 99色婷婷| 五月婷婷影院| 国产原创自拍| 婷婷五月天av| 思思热在线| 乱精品一区字幕二区| 久热婷婷| 婷婷综合网站| 簧片免费看视频| 九九AV| 性爱动态120秒| 亚洲黑丝在线| 禁止观看美女黄| 亚洲精品一二三四区| 超碰午夜在线| 麻豆福利视频导航| 欧美日韩亚洲五月天婷婷| 91老熟女老女人国产老太| 涩涩久久精品| 欧美熟妇色| 99无码狠狠久久| 欧美一级特黄淫片在线观看| 欧美顶级黄色大片免费| 操美女高潮抽搐白浆| 久久麻豆一区二区| 国产又大又粗又长视频在线| 久久久性爱视频| 舔舔啊| 日本精品五区| 东北丰满熟女国产一区| 久久97| 亚洲欧美一区二区不卡视频播放| 97资源站久久| 老司机福利青青草| 大屁股xxxxx| wwe 天天干.com| 91中出在线| 人妻一区二区三区视频| 久热这里| 人妻天天爽| 青草草免费网站av| 麻豆人妻精品一区二区| 一二三四视频在线社区中文字幕| 美女诱惑久久| 久久婷婷热| 熟女露脸激情自拍视频| 免费久久一级毛片大黄| 亚洲最大91网| 久久东京热久久| 久操精品网| 天天操熟妇| 一区二区三区精品视频| 超碰综合色| 91丨九色丨国产丨人妻在线 | 九月丁香| 偷拍导航视频网站| 激情专区综合| 亚春色色| 色九月婷婷| 超碰色图| 欧美激情五月天| 97综合| 97超碰天天爱天天爱| 三级日韩一区二区三区| 欧美色图片91| 欧美亚洲素人制服精品| 久久、1234| 男男H黄动漫啪啪无遮挡网站| 伊人精品国产| 日产狠狠干| 富女玩鸭子一级毛片| 久久111| 国产在线精品偷| 一起草在线视频| 伊人久久大香蕉线AV五月天| 久久受www免费人成| 国产精品在线一区二区| 九九热精品| 成全动漫视频观看免费下载| 99只有精品| 久久综合九九| 日韩综合无码色欲vv| 九九九999久久久网站| 久九干| 色综合久| 久久久久亚洲Av无码专区老牛影视| 99青青草国产视频| 丁香五月激情婷婷| 密乳无码| 国产无码精品成人| 欧美成97爱| 色哟哟av网址| 欧美性战999| 五月婷婷六月丁香| 日日摸夜夜夜夜爽| 91成人18| 91网站18禁| 亚洲精品蜜桃久久久| 99久在线精品99re8a| 中文字幕91综合| 国产精品电影| 天天爽人人综合免费7799| 亚洲国产尤物yw在线观看| 无码久久亚洲高清,| 天堂性色| 欧美色91| 国产熟女一区二区| 欧美天天影院| 亚洲色婷婷综合久久一区二区三区| 天操老女人| 日韩电影天堂视频二区三区| 一区二区三区日韩欧美| 熟妇视频一区二区三区在线观看| 天美精品av| 精品人妻一区二区三区-国产| 啊啊啊用力在线观看| 日韩pv中文| 久久久久久久久久久97| 色女综合| 亚洲日本天堂| 三四中文字幕| 福利视频合集| 隔壁邻居波多野结衣中文字幕 | 老鸭窝黄色视频网站| 中文字幕女同在线| 亚洲亚洲亚洲天堂天堂 | 欧美色www亚洲国产阿娇要播| 国产狂喷潮在线精品| 成全在线观看免费观看| 伊人女女资源在线观看| 色婷婷丁香五月| 日本三级小说中文字幕| 午夜精品久久999热蜜桃介男人用| 另类视频在线| 夜夜躁狠狠躁日日躁av| 八戒午夜福利理论片| 手机看片1025| 超碰中文字幕人妻草一区| 中日韩久久久免费看| 91丨九色丨国产丨人妻在线| 自拍偷拍2025在线观看| 亚州成人a∨| 啊啊啊轻点在线观看| 免费看黄片现成| 狠狠色婷婷7777久| 欧美久久婷婷| 久久久97| 婷婷五月成人| 国产蜜臀在线| 午夜AV人气不卡| 亚洲中文字幕乱码无码一区二区| 蜜桃臀AV在线| 日韩性爱视频在线免费观看| 黑丝少妇在线观看| 丝袜美腿丝袜| 人妻精品一区二区在线| 天堂伊人久久| 操人人| 日本中文熟女视频| 日本韩欧美在线播放a| 色踪合AV| 亚洲av淫乱| 日本国产二线女色| 欧美强奸一区二区诱惑| 骚人妻少妇视频| 免费作爱一级视频| 亚洲性综合| 柠檬AV导航| 欧美激情专区| 欧美天堂日韩三级国产传媒| 最新日本中文字幕| 精品v1区| 欧美性爱1080p| 干美女人妻| 啊啊啊啊啊啊啊国| 色综合V| 九色 蝌蚪 熟女自 | 91欧美综合| 欧美三级免费伊人| 国产麻豆福利av在线播放| 天天搞欧美| 99re6国产精品99re在线| 奇米四色网| 欧美精品庄| 久久综合精品一区二区三区| 在线观看高清AV| 99超碰网| 亚洲色悠悠久久88| 亚洲AV小说| a v网站在线播放| 97视频免费在线观看| 2019亚洲男人天堂| 婷婷国产精品九区| 天天肏夜夜肏| 精品久久久久久中文字幕三区| 久久久少妇诱惑精品视频| av大香蕉网站| 日本天天色| 亚洲av影音先锋| 性饥渴少妇av无码毛片| 少妇高潮一区二区三区在线| 四虎国产成人精品免费一女五男| 高清在线偷拍自拍视频| 97人人操人人摸人人爱| 国产强奸无码乱伦| 精品999一区二区| 国产丁香精品露脸视频| 97色色,97综合| 99只有精品| 大香蕉综合久久| 易易A毛视频| 一本一道久久综合久久| 色五月激情AV在线| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 东京热亚洲一区二区| 91色狼| 91亚洲网站| αⅴ天堂| 最新欧美色网| 中文字幕在线第二页| 欧美综合网| 欧亚性爱视频免费看| 国产美脚女优尤物在线观看| 91老熟女91老女人| 国产成人精品必看| 黄色香蕉视频网站一区| 国产女生在线| 激情久久日韩精品中文字幕麻豆| 久久国产视频专区一二三| 国产精品乱码久久久久久| 日本不卡二区| 99综合| 蜜臀aV午夜一区二区三区| 午夜福利国产欧美日韩夜夜| 日本污ww视频网站| 91碰碰| 夜夜影视四色| 亚洲精品国产av天美传媒| 女沟厕偷窥piss小便| 免费夜夜爱黄色视频毛片| 91色伦| 桃花色涩综合影院| 蜜桃臀一区二区三区久久| 午夜激情成人在线观看| 中文字幕88av在线| 日韩欧美操逼xxx| 人人爽夜夜操| 妇女性内射冈站HDWWWCOM| 91在线视频免费中出| 黄色视频高清无码网站| 久久久9视频| 91人精品妻入口| 亚洲色悠悠久久88| 嗯啊啊啊轻点视频 | AV一二区| 人妻丰满熟妇一区二区三| 97视频7| 人人摸人人叼| 亚洲天堂资源网| 综合久久婷婷| 在线观看中文字幕| 少妇500双飞99| 亚洲第一无码播放立川理惠| 蜜臀va69| 97se综合网| 色官网在线| 免费视频在线一区二区不卡| 国内操逼视频二区| 99热99在线| 影音先锋每日最新资源在线观看 | 男人天堂免费| 99青草| 日韩乱伦视频| 在线a亚洲视频播放在线| 在线小视频| 欧美综合加勒比在线| 免费操逼视频下载| 在线观看不卡一区二区三区| 91狠狠狠| 日本男人插女人的逼黄色| 99免费视频| 大香蕉黄色一区| A 在线网址| 国产黄色剧情影片麻豆免费播放| 九九九精品色乱九九九| 刺激性视频黄页| 黄色AV影视| 伊人五月天| 综合欧美日韩在线观看| 日日夜夜精品| 亚洲黄片免费在线播放| 亚洲天天在线| 欧美色网络| 精品少妇99| 亚洲视频精选| 91亚洲人| 99中文字幕| 欧美日韩中文视频播放| 精品69网| 青娱乐91| 亚洲阿v天堂在线| 久久狠狠色噜噜狠狠狠狠97| 亚洲国产精品无石码久久| 97精品免费视频网站| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 大色综合| 91是天天| 男人夜色天堂ss| 色婷婷aV一区二区三区麻豆综合| 日韩性色b| 欧美中文狠| 综合色久欲| 人人妻人人爱人人玩|