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

ARTICLE DETAIL

資訊詳情

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

MRAM替代EEPROM:瑞薩RA2L1工業(yè)數(shù)據(jù)存儲方案實踐

MRAM替代EEPROM:瑞薩RA2L1工業(yè)數(shù)據(jù)存儲方案實踐 做工業(yè)嵌入式設(shè)備的這幾年一提到“存儲和讀取數(shù)據(jù)”很多人第一反應(yīng)就是 SPI Flash 或者 I2C EEPROM??梢坏﹫鼍白兂筛哳l寫日志、斷電要保數(shù)據(jù)、產(chǎn)品生命周期內(nèi)要反復(fù)擦寫這兩類器件很容易成為整個系統(tǒng)里最先掉鏈子的部分。我最近在一個工業(yè)數(shù)據(jù)采集器項目里把這些底層存儲整個換成了 Everspin 的 MR25H40CDF 磁阻存儲器MRAM主控用的是瑞薩 R7FA2L1AB2DFP搭建了一套適合工業(yè)環(huán)境的數(shù)據(jù)讀寫方案。這篇就完整記錄這顆 MRAM 和這顆 MCU 的配合過程為什么選了 MRAM、硬件怎么接、FSP 里怎么配置 RSPI、驅(qū)動代碼如何組織、以及實測中遇到的那些典型問題和排查方法。如果你也在做嵌入式數(shù)據(jù)記錄、參數(shù)存儲或者需要頻繁寫入的緩沖類應(yīng)用希望這些內(nèi)容能幫你少走幾步彎路。1. 為什么工業(yè)數(shù)據(jù)存儲偏偏選了 MRAM1.1 一個簡單算賬把 EEPROM 的壽命劣勢攤開以前很多工業(yè)采集板都用串行 EEPROM比如 25LC256、AT24CXXX 之類。EEPROM 不是不能用而是它的擦寫次數(shù)天花板太低低到什么程度呢常規(guī) SPI EEPROM 的擦寫壽命一般是 10 萬到 100 萬次寫入一個字節(jié)還要先擦后寫耗時大概 3 到 5 毫秒。我當(dāng)時那個項目現(xiàn)場設(shè)備每 2 秒要記錄一條 16 字節(jié)的工況數(shù)據(jù)。一天下來就是 43200 次寫入一年就是 1576 萬次左右。拿 100 萬次壽命的 EEPROM 來算兩個月多一點就報廢了。哪怕把壽命說到 1000 萬次一年左右也要提心吊膽?,F(xiàn)場反饋回來的故障也確實吻合寫失敗、數(shù)據(jù)偶爾丟失、設(shè)備重啟后日志斷檔。這還沒算 EEPROM 的另一個問題寫一頁和寫一個字節(jié)的時間幾乎一樣但頁編程前必須把整個頁擦掉。日志類應(yīng)用往往是隨機追加、字節(jié)級修改成本非常高。所以那版設(shè)計我基本沒猶豫直接上了 MRAM。MR25H40CDF 的寫耐久性典型值是 10 的 14 次方次換算成剛才那個寫入頻率設(shè)備要跑幾十萬年才可能摸到壽命邊界。對工業(yè)設(shè)備來說基本等于永久。而且它寫數(shù)據(jù)不需要擦除任意字節(jié)直接覆蓋這就把“先擦后寫”的流程徹底省掉了。1.2 MRAM 的技術(shù)底子與 Flash/EEPROM 的差異很多人聽到“非易失性存儲器”腦子里只有 Flash 和 EEPROM。MRAM 的原理和它們完全不同。EEPROM 和 Flash 靠的是浮柵里的電荷電荷會被慢慢泄漏編程時還要用電荷泵產(chǎn)生高壓把電子注入進去擦除時再靠隧穿效應(yīng)把電子拉出來。這個過程天生慢而且每一次擦寫都在氧化層上留下一點損傷所以壽命有限。MRAM 用的是磁隧道結(jié)MTJ。存儲單元里有兩層磁性材料中間夾著一層極薄的絕緣層自由層的磁化方向和固定層的磁化方向平行或反平行時隧道電阻不同對應(yīng) 0 和 1。寫入的時候施加電流產(chǎn)生的磁場或自旋極化電流直接把自由層的磁化方向翻轉(zhuǎn)。沒有電荷注入沒有擦除操作翻轉(zhuǎn)完成數(shù)據(jù)就穩(wěn)定了。理解了這個原理你就能明白為什么 MRAM 在工業(yè)場景里這么香寫入前不需要擦除所以隨機寫、字節(jié)寫都很快不挑地址。寫壽命極高不用做磨損均衡。非易失性斷電后數(shù)據(jù)不丟而且不存在電荷泄漏的長期可靠性隱患。讀速度接近 SRAMSPI 接口跑到 40MHz 沒什么壓力。數(shù)據(jù)保持能力通常在 20 年以上。當(dāng)然MRAM 也不是沒有缺點最直接的就是單位容量價格比 Flash 高而且大容量型號選擇少。但在工業(yè)數(shù)據(jù)記錄這個場景里容量需求往往只有幾十到幾百 KBMRAM 的價格劣勢并不明顯可靠性優(yōu)勢卻是實打?qū)嵉摹?.3 MR25H40CDF 規(guī)格里最該關(guān)心的幾個數(shù)字MR25H40CDF 是 Everspin MR25H40 系列里的 SPI 接口 MRAM。我選它最看重的幾個數(shù)字列一下參數(shù)數(shù)值容量4 Mbit也就是 512 KB組織結(jié)構(gòu)512 K × 8 bit接口SPI支持模式 0 / 模式 3最高時鐘40 MHz供電電壓3.0 ~ 3.6 V典型 3.3 V寫耐久性典型 10 的 14 次方次寫周期數(shù)據(jù)保持 20 年地址字段3 字節(jié)有效地址 0x00000 ~ 0x7FFFF這里有一個容易忽略的地方4 Mbit 看起來不大但 512 KB 劃分成日志區(qū)、參數(shù)區(qū)、緩沖區(qū)已經(jīng)非常夠用。拿每條記錄 64 字節(jié)來算512 KB 能存 8192 條配合環(huán)形覆蓋設(shè)計等于一個掉電不丟失的小型磁盤。命令集也比較簡單核心就 6 條WREN0x06、WRDI0x04、RDSR0x05、WRSR0x01、WRITE0x02、READ0x03。后面驅(qū)動代碼主要就是圍繞這幾條命令展開。2. 硬件接線與 SPI 總線搭建把兩顆芯片接起來并不復(fù)雜2.1 R7FA2L1AB2DFP 的 RSPI 外設(shè)與引腳分配R7FA2L1AB2DFP 屬于瑞薩 RA2L1 系列Arm Cortex-M23 內(nèi)核主頻 48 MHz有 256 KB Flash 和 32 KB RAM片上帶了 RSPI 串行外設(shè)接口。對 MRAM 這種標(biāo)準(zhǔn) SPI 器件來說不需要什么特殊外設(shè)RSPI 即可。在 FSP 里RSPI 可以配置成主模式引腳一般使用 SCLK、MOSI、MISO 三根線。片選 CS 我建議不要用 RSPI 的硬件 SS而是單獨拿一個普通 GPIO 來控制。原因后面寫驅(qū)動時會詳細說核心點是 MRAM 的寫使能和寫執(zhí)行需要精確控制 CS 的下降沿和上升沿用 GPIO 軟控時序最直接可讀性也最好。我的接線示意如下MR25H40CDF 引腳功能接 R7FA2L1AB2DFPCS片選P301GPIO 輸出默認(rèn)拉高SCLKSPI 時鐘RSPI0 SCLKSI數(shù)據(jù)輸入RSPI0 MOSISO數(shù)據(jù)輸出RSPI0 MISOWP寫保護接 3.3 V禁用寫保護HOLD傳輸暫停接 3.3 V禁用暫停功能VCC電源3.3 V并聯(lián) 100 nF 10 uFVSS地GND這里要特別提醒一句接線時先分清 SO 和 SI別接反了。MRAM 的 SO 是輸出接 MCU 的 MISOSI 是輸入接 MCU 的 MOSI。有些開發(fā)板絲印容易讓人看反我第一版調(diào)試就吃過這個虧全部數(shù)據(jù)讀回都是 0xFF排查半天才發(fā)現(xiàn)是 MOSI 和 MISO 交叉了。2.2 CS、WP、HOLD 這些控制腳的接法CS 腳作為片選每次讀寫事務(wù)都要拉低事務(wù)結(jié)束后拉高。這個腳不能懸空如果 MCU 復(fù)位期間 GPIO 是高阻狀態(tài)外部最好加一個 10 kΩ 上拉電阻到 VCC保證 MRAM 在系統(tǒng)上電瞬間不被誤觸發(fā)。WP 腳叫寫保護低電平有效。接低電平會禁止寫狀態(tài)寄存器和數(shù)據(jù)區(qū)具體行為取決于器件配置但最穩(wěn)妥的做法就是直接接高電平徹底關(guān)掉寫保護功能。不要讓它懸空工業(yè)現(xiàn)場電磁干擾多懸空引腳很容易被耦合出錯誤電平導(dǎo)致寫操作莫名失敗。HOLD 腳是傳輸暫停低電平有效。HOLD 拉低時SPI 時鐘和 CS 狀態(tài)會被器件忽略總線上的數(shù)據(jù)保持外部主機暫時沒辦法繼續(xù)通信。這個腳同樣不能懸空接高電平即可。VCC 旁邊要放 100 nF 的陶瓷電容盡量貼近引腳再加一顆 10 uF 鉭電容做低頻去耦。工業(yè)現(xiàn)場如果電源本身波動大建議在電源入口加 TVS 管和磁珠防止繼電器或其他大功率設(shè)備啟停時把尖峰灌進來。2.3 電路上常見的三個坑第一個坑是電平匹配。RA2L1 的 GPIO 和 MRAM 都是 3.3 V 系統(tǒng)直接連接沒有問題。但如果你之前用慣了 5 V 的 AVR 或老式 51千萬別順手把 MRAM 接到 5 V 上MR25H40CDF 的絕對最大額定值不允許。5 V 系統(tǒng)必須加電平轉(zhuǎn)換。第二個坑是 SPI 信號走線太長。工業(yè)電路板上如果有電機驅(qū)動、繼電器、開關(guān)電源這些干擾源會通過長走線耦合進 SPI 總線。調(diào)通之后可以把時鐘跑到 40 MHz但前期調(diào)試建議降到 1 MHz 到 10 MHz 之間先把功能跑對再慢慢提速度。40 MHz 下串 33 Ω 電阻可以抑制振鈴具體阻值示波器看波形再定。第三個坑是 MISO 引腳誤開了內(nèi)部上拉。RA2L1 的 GPIO 可以配置內(nèi)部上下拉如果在 FSP 里把 MISO 配成帶上拉的輸入雖然讀取邏輯上問題不大但上拉會抬高信號的低電平上升沿高速 SPI 下容易造成數(shù)據(jù)采樣錯誤。MISO 建議關(guān)閉上下拉。3. FSP 里配完 RSPI剩下就是命令序列和驅(qū)動封裝3.1 用 e2 studio FSP 生成 RSPI 工程瑞薩 RA 系列用 e2 studio 開發(fā)FSP 是它的軟件包配置框架。新建工程時選擇 R7FA2L1AB2DFP 這個具體型號然后在 Stacks 頁面添加 SPI 驅(qū)動也就是 r_spi 模塊。配置項里幾個關(guān)鍵參數(shù)Operation ModeMaster主機模式。Frame FormatSPI。Data Bit Width8 bit。SPI Mode模式 0 或者模式 3MRAM 兩種都支持。Bitrate先填 1 MHz跑通后調(diào)到 10 MHz 或 20 MHz 都可以。Bit OrderMSB First。片選不用 RSPI 的硬件 SS用 GPIO 自己控制。生成代碼后工程里會出現(xiàn) g_spi0_ctrl 和 g_spi0_cfg。主函數(shù)里調(diào)用 R_SPI_Open 初始化一次即可。有一點必須強調(diào)FSP 的 R_SPI_WriteRead 默認(rèn)是異步行為代碼不能裸調(diào)完就立刻拉 CS否則數(shù)據(jù)可能還沒完全從移位寄存器里移出去CS 就拉高了整個命令會丟失。我習(xí)慣在配置里開傳輸完成中斷注冊回調(diào)函數(shù)在回調(diào)里置一個事件標(biāo)志主流程等待這個標(biāo)志后再拉高 CS。如果你喜歡輪詢也可以用 R_SPI_EventGet 不斷查詢事件狀態(tài)但回調(diào)加標(biāo)志位的方式更清晰多任務(wù)下也更容易擴展。3.2 命令序列從 WREN 到最后的 CS 上升沿MR25H40CDF 的讀寫雖然簡單但命令順序很講究尤其 CS 邊沿的時序。先看寫使能 WREN這是所有寫操作的前提CS L 發(fā)送 0x06WREN CS H上升沿寫使能鎖存到狀態(tài)寄存器這一步如果 CS 拉高前數(shù)據(jù)還沒發(fā)完寫使能就不會生效。所以代碼里發(fā)送完 0x06 之后必須等 SPI 傳輸完成事件再拉高 CS。然后是寫數(shù)據(jù) WRITECS L 發(fā)送 0x02WRITE 發(fā)送 3 字節(jié)地址高位在前 發(fā)送數(shù)據(jù)字節(jié) CS H上升沿執(zhí)行寫入MRAM 的好處是 CS 拉高后寫入立即完成不需要像 EEPROM 那樣等待內(nèi)部編程時間。寫完可以馬上發(fā)下一條命令也可以馬上讀回驗證。但注意每次寫命令之前都必須重新做一次 WREN因為 WEL 位在一次寫操作完成后會自動清掉。很多第一次用 MRAM 的工程師都會在這里翻車寫使能只做了一次然后連續(xù)寫多個地址第二個地址開始全部寫不進去。讀數(shù)據(jù) READ 更簡單CS L 發(fā)送 0x03READ 發(fā)送 3 字節(jié)地址 持續(xù)發(fā)送時鐘MISO 上讀出數(shù)據(jù) CS HREAD 命令下地址可以連續(xù)遞增保持 CS 為低就可以一直讀下去直到地址越過 0x7FFFF 后自動回繞到 0x00000。寫數(shù)據(jù)也一樣地址會自動遞增所以批量寫入時不需要每字節(jié)都帶地址。3.3 驅(qū)動模塊設(shè)計與完整讀寫代碼驅(qū)動邏輯我拆成三個層次底層 SPI 收發(fā)、MRAM 命令封裝、上層讀寫接口。底層只關(guān)心把數(shù)據(jù)發(fā)出去或者收發(fā)同時進行上層接口負責(zé)地址合法性判斷和分包。先給一個頭文件定義命令字和地址范圍#ifndef MRAM_H_ #define MRAM_H_ #include stdint.h #define MRAM_CMD_WREN 0x06 #define MRAM_CMD_WRDI 0x04 #define MRAM_CMD_RDSR 0x05 #define MRAM_CMD_WRSR 0x01 #define MRAM_CMD_WRITE 0x02 #define MRAM_CMD_READ 0x03 #define MRAM_MAX_ADDR 0x7FFFFu int mram_init(void); int mram_write_buf(uint32_t addr, const uint8_t *data, uint32_t len); int mram_read_buf(uint32_t addr, uint8_t *data, uint32_t len); #endif再看底層實現(xiàn)。以 FSP 生成的 g_spi0_ctrl 為例我用回調(diào)方式等待傳輸完成#include hal_data.h #include mram.h #include string.h static volatile bool g_mram_spi_done false; void mram_spi_callback(spi_callback_args_t * p_args) { if (SPI_EVENT_TRANSFER_COMPLETE p_args-event) { g_mram_spi_done true; } } static void mram_cs_low(void) { R_IOPORT_PinWrite(g_ioport_ctrl, PIN_MRAM_CS, BSP_IO_LEVEL_LOW); } static void mram_cs_high(void) { R_IOPORT_PinWrite(g_ioport_ctrl, PIN_MRAM_CS, BSP_IO_LEVEL_HIGH); } static void mram_wait_tx_done(void) { while (!g_mram_spi_done) { } g_mram_spi_done false; } static int mram_tx_bytes(const uint8_t *tx, uint16_t len) { fsp_err_t err R_SPI_Write(g_spi0_ctrl, (uint8_t *)tx, len, false); if (FSP_SUCCESS ! err) { return -1; } mram_wait_tx_done(); return 0; } static int mram_txrx_bytes(const uint8_t *tx, uint8_t *rx, uint16_t len) { fsp_err_t err R_SPI_WriteRead(g_spi0_ctrl, (uint8_t *)tx, rx, len, false); if (FSP_SUCCESS ! err) { return -1; } mram_wait_tx_done(); return 0; }這里提醒一下回調(diào)事件具體名稱取決于 FSP 版本有些版本是 SPI_EVENT_OPERATION_COMPLETE我示例里用的是 SPI_EVENT_TRANSFER_COMPLETE編譯報錯的話改一下宏名就行。如果工程里開了 DTC傳輸完成后的處理邏輯會略有不同我建議這個模塊保持最簡單的中斷模式不開 DTC方便排查。寫使能和讀狀態(tài)static int mram_write_enable(void) { uint8_t cmd MRAM_CMD_WREN; mram_cs_low(); if (mram_tx_bytes(cmd, 1) ! 0) { mram_cs_high(); return -1; } mram_cs_high(); return 0; } static uint8_t mram_read_status(void) { uint8_t tx[2] { MRAM_CMD_RDSR, 0x00 }; uint8_t rx[2] { 0x00, 0x00 }; mram_cs_low(); if (mram_txrx_bytes(tx, rx, 2) ! 0) { mram_cs_high(); return 0xFF; } mram_cs_high(); return rx[1]; }狀態(tài)寄存器最低位就是 WEL讀取后判斷一下能幫我們快速定位“寫不進去”的問題。寫數(shù)據(jù)接口。我每次最多寫 256 字節(jié)超過就分包處理。原因有兩個一是避免在棧上開太大的數(shù)組二是每次寫事務(wù)的時間可控不會長時間占用 SPI 總線int mram_write_buf(uint32_t addr, const uint8_t *data, uint32_t len) { static uint8_t tx[256 4]; if (addr MRAM_MAX_ADDR || (addr len - 1) MRAM_MAX_ADDR) { return -1; } uint32_t pos 0; while (pos len) { uint16_t chunk (len - pos 256) ? 256 : (uint16_t)(len - pos); uint32_t cur addr pos; tx[0] MRAM_CMD_WRITE; tx[1] (cur 16) 0xFF; tx[2] (cur 8) 0xFF; tx[3] cur 0xFF; memcpy(tx[4], data[pos], chunk); if (mram_write_enable() ! 0) { return -1; } mram_cs_low(); if (mram_tx_bytes(tx, 4 (uint16_t)chunk) ! 0) { mram_cs_high(); return -1; } mram_cs_high(); pos chunk; } return 0; }讀數(shù)據(jù)接口用全雙工 R_SPI_WriteRead 實現(xiàn)。發(fā)送命令和地址后后續(xù)時鐘由 MCU 生成同時 MISO 逐位移出數(shù)據(jù)收到的前 4 個字節(jié)是命令和地址階段的無效數(shù)據(jù)從 rx[4] 開始才是真正的數(shù)據(jù)int mram_read_buf(uint32_t addr, uint8_t *data, uint32_t len) { uint8_t tx[256 4] { 0 }; uint8_t rx[256 4] { 0 }; uint8_t hdr[4]; if (addr MRAM_MAX_ADDR || (addr len - 1) MRAM_MAX_ADDR) { return -1; } hdr[0] MRAM_CMD_READ; uint32_t pos 0; while (pos len) { uint16_t chunk (len - pos 256) ? 256 : (uint16_t)(len - pos); uint32_t cur addr pos; hdr[1] (cur 16) 0xFF; hdr[2] (cur 8) 0xFF; hdr[3] cur 0xFF; memset(tx, 0x00, 4 chunk); memcpy(tx, hdr, 4); mram_cs_low(); if (mram_txrx_bytes(tx, rx, (uint16_t)(4 chunk)) ! 0) { mram_cs_high(); return -1; } mram_cs_high(); memcpy(data[pos], rx[4], chunk); pos chunk; } return 0; }這個驅(qū)動讀寫?yīng)毩⒎职看?CS 重新建立事務(wù)所以跨 0x7FFFF 邊界的問題也分塊堵住了上層不用太擔(dān)心地址回繞。唯一要注意的是靜態(tài)局部變量 tx 讓驅(qū)動不可重入如果項目里有多個任務(wù)同時訪問 MRAM記得在外面加互斥保護。4. 實測與排錯全 0xFF、寫不進去、以及滾寫可靠性4.1 讀回全 0xFFSPI 模式會和信號完整性背鍋第一次上板我調(diào)用 mram_read_buf 讀 MRAM 廠商出廠數(shù)據(jù)區(qū)返回的全是 0xFF。這個現(xiàn)象在 SPI 存儲器件調(diào)試?yán)锾?jīng)典了基本可以按下面的順序排查。先測電源和地。MRAM 供電要是 3.3 VVCC 和 VSS 之間不能有虛焊。然后用示波器看 CS 拉低后SCLK 上是否有時鐘輸出。如果 CS 一直高MRAM 根本沒被選中數(shù)據(jù)線自然一直高電平讀回來全是 0xFF。第二步查 SPI 模式。MR25H40CDF 只支持模式 0 和模式 3如果 FSP 里配成了模式 1 或模式 2器件永遠不會給出正確數(shù)據(jù)。模式 0 和模式 3 的區(qū)別在于空閑時鐘電平和采樣沿示波器上一抓就能看出來。我當(dāng)時把 RSPI 從模式 0 換成模式 3數(shù)據(jù)立刻正常了。第三步查 MISO。用示波器看 MISO 引腳在 CS 拉低、發(fā)送 READ 命令后MISO 上應(yīng)該有脈沖信號。如果始終是一條高電平要么芯片虛焊要么 SO 引腳沒接到 MCU 的 MISO。再不行就把 SPI 速度降到 1 MHz排除信號振鈴。還有一個容易被忽略的點就是讀狀態(tài)寄存器。上電后正常 RDSR 應(yīng)該返回 0x00。如果 RDSR 返回 0xFF幾乎可以斷定命令根本沒發(fā)進去問題出在 CS 時序或 SPI 配置如果 RDSR 返回 0x02 之類說明 WEL 處于置位狀態(tài)可能是上次寫操作后沒清這本身不算故障。4.2 寫不進去先查 WEL 位再查 CS 邊沿全 0xFF 的問題解決后緊接著遇到寫不進去調(diào)用 write_buf 再讀回來數(shù)據(jù)跟寫之前完全一樣。這個時候第一件事就是查 WEL。我在 mram_write_enable 后加了一個斷言函數(shù)讀 RDSR判斷 bit0 是不是 1。如果置位失敗說明 WREN 命令沒被正確執(zhí)行。常見原因有兩個第一個是傳輸沒完成就拉高了 CS。代碼里用 R_SPI_Write 發(fā)送 0x06 后如果沒有等待事件標(biāo)志而立刻 cs_high在 SPII 高速率下0x06 可能只說了一半CS 就上去了。解決方式就是前面驅(qū)動里寫的發(fā)送后必須等 g_mram_spi_done 標(biāo)志置位再拉高 CS。第二個是 WP 腳被拉低了。WP 拉低會讓器件進入寫保護狀態(tài)WREN 命令本身雖然能發(fā)但 WEL 可能不會被正確置位或者即使置位了后續(xù) WRITE 也會被拒絕。所以先量一下 WP 引腳電壓確認(rèn)是高電平。如果 WEL 已經(jīng)是 1但 WRITE 還是寫不進去就要查地址對不對。MR25H40CDF 只有 19 位有效地址最高地址是 0x7FFFF如果地址算錯寫到了非法區(qū)域器件不會報錯但數(shù)據(jù)也進不去。我總是先用固定地址比如 0x00000 來測試寫一組 0x5A 5A 5A 5A讀回比對最大限度減少變量。最后還要注意一個時序細節(jié)寫命令的數(shù)據(jù)字節(jié)必須在 CS 上升沿之前全部發(fā)完。對于 MR25H40CDF寫入動作就是 CS 上升沿那個瞬間提交的如果你在發(fā)送數(shù)據(jù)的中途就拉高 CS這次寫入會失敗或者只寫入半個字節(jié)。用示波器抓 CS 和 SCLK 的關(guān)系確認(rèn) CS 拉高前最后一個數(shù)據(jù)位已經(jīng)穩(wěn)定這比盯著代碼猜靠譜得多。4.3 百萬次滾寫與掉電回讀測試驅(qū)動調(diào)通之后真正的考驗才開始。我寫了一個壓力測試固件對固定地址反復(fù)寫入遞增計數(shù)每次寫完立即讀回校驗并使用軟件 CRC32 做數(shù)據(jù)完整性判斷。日志通過串口輸出。測試結(jié)果很直觀260 萬次滾寫全部通過沒有一次讀回錯誤。這個數(shù)字對 EEPROM 來說已經(jīng)是不可想象的任務(wù)對 MRAM 來說只是熱身。我也用示波器同時觀察了 SPI 波形寫操作完成后 CS 上升沿到下一次命令發(fā)起之間沒有額外延時說明 MRAM 確實不需要內(nèi)部寫等待。掉電測試更有意思。我在主循環(huán)里周期性寫一條 64 字節(jié)記錄然后人為隨機斷電再重新上電掃描 MRAM 里的記錄區(qū)檢查每一條記錄的 magic、長度和 CRC。因為 MRAM 的寫入是原子提交每次結(jié)果要么是完整的舊記錄要么是完整的新記錄沒有出現(xiàn)半條記錄混雜的情況。這正是工業(yè)掉電場景最需要的特性。高低溫方面我用熱風(fēng)槍把板子加熱到 105℃ 左右持續(xù)運行再放回常溫驗證數(shù)據(jù)讀寫均正常。有條件的話建議做一輪完整的 -40℃ 到 85℃ 溫度循環(huán)工業(yè)級存儲器件在這種條件下反而比消費級 Flash 穩(wěn)定得多。5. 工程化思考掉電保護、容量規(guī)劃與跨平臺遷移5.1 掉電瞬間怎么寫不丟MRAM 本身是非易失的但“非易失”不代表“掉電時正在寫的操作也一定能完成”。真正的工程問題是當(dāng)電源開始跌落而 MCU 恰好正在往 MRAM 寫數(shù)據(jù)這個事務(wù)到底能不能完整提交。我建議從兩頭發(fā)力。第一硬件上在系統(tǒng)電源端加掉電檢測。RA2L1 自帶低電壓檢測模塊也可以外接 TPS3839 之類的電壓監(jiān)控芯片當(dāng) VCC 低于 3.0 V 時觸發(fā)中斷或復(fù)位。第二固件里把關(guān)鍵數(shù)據(jù)維護成“鏡像”。比如環(huán)形日志區(qū)先寫入記錄正文和 CRC全部成功后再更新日志頭里的寫指針。掉電發(fā)生在新記錄寫了一半時上電后頭部指針還指向上一條記錄新記錄雖然空間占用了但不會被當(dāng)作有效記錄也不會破壞舊數(shù)據(jù)。MRAM 寫 512 字節(jié)在 20 MHz SPI 下大概是 200 微秒左右加上命令和地址開銷也不到 300 微秒。如果 MCU 的掉電檢測能在電壓跌落到器件最低工作電壓之前留出 1 毫秒那么寫一兩條關(guān)鍵記錄完全來得及。真正要避免的是在電源已經(jīng)不穩(wěn)的時候還去做耗時的讀改寫流程所以掉電中斷里只做最精簡的寫操作。5.2 磨損、容量與緩沖區(qū)規(guī)劃MRAM 雖然壽命極高但它也有自己的“寫周期”概念。一次完整的 CS 上升沿提交算一個寫周期無論寫 1 字節(jié)還是寫 256 字節(jié)都是消耗一次。所以真正高效的用法是數(shù)據(jù)攢夠一包再寫而不是每來一個字節(jié)就發(fā)起一次事務(wù)。這樣做還能減少 SPI 總線占用和調(diào)度開銷。容量規(guī)劃方面512 KB 需要想清楚分區(qū)。我習(xí)慣把 MRAM 分成三個區(qū)域區(qū)域大小用途參數(shù)區(qū)4 KB設(shè)備配置、校準(zhǔn)參數(shù)低頻寫日志索引區(qū)4 KB寫指針、讀指針掉電恢復(fù)依據(jù)循環(huán)日志區(qū)剩余空間環(huán)形數(shù)據(jù)記錄高頻覆蓋寫參數(shù)區(qū)低頻寫入用雙緩沖加 CRC 防止更新過程中掉電。日志索引區(qū)單獨劃出來是因為每次寫入記錄后都要更新指針如果指針和記錄混在一起災(zāi)難恢復(fù)會非常麻煩。主日志區(qū)做環(huán)形緩沖滿了以后覆蓋最舊記錄這樣 MRAM 的寫壽命被分散在整個區(qū)域而不是集中在一個地址上。如果設(shè)備需要保存較大的波形數(shù)據(jù)或批量事件512 KB 可能不夠那就需要考慮把 MRAM 換成功耗更高的 SPI NOR Flash或者加 SD 卡。但請注意這種擴容通常會犧牲隨機寫入壽命和寫速度本質(zhì)上是用復(fù)雜度換容量不是所有場景都劃算。5.3 換個 MCU 怎么辦MR25H40CDF 是標(biāo)準(zhǔn) SPI 命令集和主控品牌沒有綁定關(guān)系。RA2L1 用 FSPSTM32 用 HALNXP 用 SDK底層函數(shù)各不一樣但上層邏輯完全可以原樣搬走。我在驅(qū)動設(shè)計時就把硬件有關(guān)的操作收斂成了幾個內(nèi)部函數(shù)mram_cs_low、mram_cs_high、mram_tx_bytes、mram_txrx_bytes、mram_wait_tx_done。換平臺時只需要重寫這五個函數(shù)的實現(xiàn)mram_write_buf 和 mram_read_buf 不需要動。如果換成帶硬件 CS 的 MCU我還是堅持用 GPIO 軟控 CS因為 MRAM 命令序列對 CS 邊沿的要求比較明確軟控不受外設(shè)自動控制邏輯干擾出問題也好定位。另外提醒一點不同 MCU 的 SPI 時鐘極性命名可能不同。ST 的 HAL 里 SPI_MODE0 是 CPOL0、CPHA0SPI_MODE3 是 CPOL1、CPHA1。瑞薩 FSP 里同樣用模式 0/模式 3 命名但有些老工程師習(xí)慣叫“空閑時鐘電平高還是低”這時候直接看寄存器定義最安全。這次把存儲介質(zhì)從 EEPROM 換成 MRAM改動的代碼量并不大但帶來的是整個系統(tǒng)可靠性的明顯提升。如果非要說留下什么經(jīng)驗我會記下三條第一MRAM 不是 Flash別再用擦除的老思路第二CS 邊沿的時序比命令字本身更關(guān)鍵第三測試存儲器件一定要在真實寫頻和掉電條件下跑而不是寫入一次讀一次就算驗證完成。后面如果再遇到類似的工業(yè)數(shù)據(jù)記錄需求我還是會優(yōu)先看這類 MRAM 方案。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产色色在线| 开心婷婷五月| 丁香五月婷婷姐| 99综合五月免费视频色婷婷| 精品人妻久久久久久| 内射激情在线| 激情五月天噢美| 精品视频网| 九月丁香| 国产成人综合网| 婷婷丁香五月天在线| 九九久久高清| 婷婷五月丁香激情图片 | 夜夜躁狠狠 | AⅤ网站在线看| www.91在线观看| 五月天夜夜爱夜夜操| 九九99免费视频| 丁香五月婷婷高清| 激情碰碰碰| www久久久久久久久久久| 亚洲另类在线观看| se99视频| 深爱激情综合| 激情久久久| 五月丁香好婷婷A片网| 久久这里有精品视频| 五月婷婷与六月丁香图片激情| 丁香五月最新网址| 91久久五月天| 玖玖综合色| 色婷婷瘦婷婷日韩| 日本久久性| 色色色1网址| 熟妇无码乱子成人精品| 国产69久久久欧美黑人A片| 色色色色色色色色五月先| 色XX综合网| 国产片色| 人妻少妇色综合| 伊人久久五月天| 啪啪啪五月天| 五月丁香六月综合基地| 激情 婷婷| 久久婷婷五月天综合| 99热99这里有免费的精品| 播五月婷婷开心| 伊人久久五月天| 色九月欧美| WWW.久久99| 亚洲成人av中文| 黄色视频网站在线播放| 狠狠色婷婷7777久综合| 91精品久久久久久综合五月天| 久99热在线观看| 九九人人看| www一起操在线观看| 欧美色色色色色色| 九九热视频精品2| 综合色图区| 色六月天天激情综合网| 色五月亚洲开心网| 久久激情天堂| 欧美顶级少妇做爰HD| 艳妇野外情欲放荡HD| 欧类av怡春院| 91ncm视频| 91九色无码日韩| 九热视频| 无码人妻一区| 五月丁香啪啪| 97婷婷狠狠久久综合9色| 久久婷婷成人| 婷婷五月伦理| 97色色色| www一起操在线观看| 三级毛片7979| 欧美色小说婷婷| 婷婷亚洲欧美丁香五月| 99在线观看精品视频| 五月天婷婷激情| 超碰人妻公开在线| 九九AV| 婷婷亚洲综合| 欧美VA在线| 欧美日本黄色| 五月天婷婷无码| 中文字幕性爱视频| 色天天综合色| 大香蕉精品视频| 国产精品成人在线| 十区AV| 91超碰九色| 色五月婷婷丁香国产在线| 丁香六月无码| 色色热| 国产婷婷久久| 精品久久久久久久人妻| 婷婷亚洲综合| 日本久久视频| 久久久久人妻网址| 狠狠爱丁香婷| 99性感视频| 中文字幕AV网址| 日本熟妇乱妇熟色A片蜜桃| 五月天丁香花婷婷| 婷婷丁香激情五月天色色| 色噜噜五月天| 日韩精品无码AV| 激情丁香久久| 婷婷大香蕉| 综合五月激情| 国产裸舞表演WWWW| 亚洲精品V天堂中文字幕| 亚洲视频在线网| 五月丁欧美| 国产全是老熟女太爽了| 99热91| 五月丁香激情综合六月涩涩爱| 五月婷婷|欧美| 91se视频| 人人看人人草人人摸| 男女免费视频999| 五月丁香婷婷啪啪| 99热这里只有精品268| XX色综合| 伊人久久大香线蕉AV最新午夜| 色五月自偷自拍婷婷婷婷| 1024人妻| 欧美三级欧美一级| 9l视频自拍9l九色9l成人| 欧美综合五月丁香五月天| 婷婷五月天亚洲| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 日日干天天| 91打屁股免费看| 婷婷色色网| 色婷久久| 色伊人啪| 色婷婷六月天| 色综合色综合网| 这里只有精品视频| 91精品久久久久久| 日本婷婷| 激情婷婷狠狠干| 女人高潮内射99精品| 中文字幕黄色片| 五月婷婷久久综合| 色五月xxx| 天天插天天日| 操一操| 国内一级片| 天天综合五月| 激情婷婷99| 黄页大全十八禁| 国产精品日本一区二区在线播放 | 99色视频| 3www激情| 97色色婷婷五月天| 婷婷五月丁香六月| 婷婷丁香午夜综合影视| 任我干视频在线观看| 午夜不卡成人一区二区| AV操一操| 99碰碰| 日韩另类| 欧美顶级少妇做爰HD| 草婷婷在线| 激情综合网婷婷五夜| 久久机热这里只有精品| 色综合视频| 九九热黄色| 婷婷香蕉| 亚洲区1| 五月激激激情综合网| 超碰在线观看caop| 色五月在线播放| 五月色情婷婷开心五月天| 亚洲乱码日产精品BD| 狠狠999| 免费日本aⅴ中文字幕 | 亚洲综合另类| 五月婷成人网| …亚洲黄色在线播放日韩、av中文a…| 國語久久婷| 丁香五月亚洲激情婷婷射| 亚洲综合激情五月久久| 99热首页| 色狠狠六月| 婷五月天| www.五月天| 五月深爱网| 91丨九色丨熟女|老版| 超碰在线99| 六月婷婷七月丁香| 91男同| 久九男女天堂| 99精品性爱| 秋霞影音91人妻久久| 97婷婷五月激情六月丁香伊人| 99热热这里只精品996小说| 五月丁香亚洲校园欧美| 久久九九九九| 久久激丁香| 97视频91| 五月婷婷开心网| 99re99热| 国産精品| 国内久久亭亭| 97碰碰九九视频| 久久综合首页| 色婷五月天激情| 99久久久国产大片| 超碰色色综合| 亚洲狠狠婷婷| 91综合视频在线| 日本三级大片| 精品久久久人妻| 亚城区在线| 5月婷婷视频网站综合| 亚洲成人AV电影网| 久久99免费视频网站| 五月丁香综合啪啪| 久久久免费精彩视频| 激情亚洲网| 日本色婷婷久久99精品91| 激情久久久久久久久久久| 啪啪操网| 嘿嘿视频免费看9| 婷婷丁香社区| 欧美S码亚洲码精品M码| 在线日韩视频| 婷婷五月色| 久热 91| 天天日天天爱天天噪| 99热欧| 青草青草久热这里只有精品| 激情五月婷婷综合| 99综合视频在线| 国产日韩av片| 国产欧美第五十五页| 99热一本久道| 97极品在线| 综合久久综合五月天婷婷| 国产成人精品一区二三区熟女在线 | 最新久久网址| 狠狠色婷婷7777久| 五月丁香影视| 国产成人精品亚洲线观看| 欧美婷婷五月丁香| 99这里只有精品视频| 色婷婷五月综合在线| 久久五月天婷婷| 日韩人妻操逼视频| 成人丁香五月天| 久久视频这里99| 欧美啄木乌丝袜人妻系列| 深爱激情久久| 色综合伊人网| 五月丁香五月综合欧美| 亚洲亚洲人成综合网络 | 色开心五月丁香| 99热久久日本| 久久性爱视频| 五月婷色丁香| 99热这里只有精品55| 俺去也综合| 可以直接看的av| 亚洲综合激情五月久久| 日韩成人中文字幕| 激情五月综合网丁| 日韩综合天堂| 婷婷五月俺要去| 26uuu.| 丁香五月六月久久综合| 婷婷丁香五月天狠狠| 久久这里只有精品1| 丁香五月久久综合| 婷婷五月天激情网| 五月婷综合| 五月丁香激情综合| 九九久久玖玖爱| 婷婷五月丁香A∨| 综合激情专区| 天天操夜夜夜拍拍拍| 天天爱天天做综合| 草五月| 在线成人视频免费| 欧美性生交XXXXX无码小说| 中文字幕丰满孑伦无码专区| 亚洲AV免费国产电影| 久久亚洲无码| 色五月视频无码播放| 色丁香六月| 狠狠人人婷婷| 婷婷精品视频| 激情九色| 丁香六月天婷婷开心综合| 五月丁香色综合| 综合色99| 在线观看中文字幕亚洲| 天天色综合综合| 五月婷婷熟女| 人人操人人妻| 人人澡天天色天天做| 婷婷六月花| 国产 码在线成人网站| 老妇六区| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 3pAV| 色综合九九| 欧美性猛交99久久久久99按摩| 日本97久久久精品| 色噜噜在线| 日韩AV片| 97操碰人人| 丁香六月婷婷综合网| 天天爱天天狠天天透| 成人国产欧美大片一区| 丁香五月激情宗合网| 婷婷噜噜| 精品日本视频444| 欧洲不卡视频| 激情性爱五月| 亚洲成人九九九| 99在线视频精品| 日韩AV大全| 婷婷丁香www视频日本韩国| 99热这里只有精品21| 激情五月丁香六月综合AVXXXX| 日韩国产在线精品| 97色五月天| www久| 国产婷婷五月| 九九这里都是精品| 五月婷婷黄色毛片| 六月婷婷九月丁香亚洲综合| 综合色七七| 激情久久四色| 依人大香蕉| 97操在线视频| www99热| 欧美操逼天堂| 婷婷六月天| 一区操| 综合综合网| 国产亚洲精品AAAAAAA片| 欧美精品啪啪| 久久婷婷五月| 怕怕av| 激情六月婷婷| 五月激情网五月综合网| 亚洲乱码日产精品BD| 亚洲精品乱码久久久久久综合| 久久停停超碰| 五月激情婷婷图片基地| 青草青草视频2免费观看| 99色色热| 亚洲精品一区中文字幕乱码| WWW.开心五月天.COM| 久久小说网| 激情五月天开心网丁香无码| 久草婷婷网| 婷婷激情五月综合丁| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 4399在线观看免费高清黄色视频| 婷婷九九| 激情综合网,婷婷| 99在线精品免费视频| 丁香5月综合啪啪| 丰满少妇乱A片无码| www婷婷色情网| 九九婷婷五月天| 99在线亚洲| 久热伊人9| 99视频在线播放大全| 91青娱乐青青草| 亚洲第一成人无码A片| 久久婷婷国产| 99国产精品久久久久久久久久久| 婷婷丁香在线播放| 婷婷综合五月天| 狠狠综合网| 26uu| 丁香婷婷五月综合影院| 99久久久99久久91熟女| 色色色色色色色色网站| 超碰狠狠操| 乱岳熟女50岁| 另类激情五月在线视频欧美| 五月婷五月婷伊人伊人五月婷| 99国产精品久久久久久久久久久| 五月婷婷六月丁香在线| 激情综合五月婷| 婷婷伊人五月天| 免费AV在线| 国产色婷婷亚洲| 婷婷六月香| 2020日日干| 丁香香五月激情免费视频| 天天色中文字幕女优AV| 色婷婷狠狠| 99色看| 久久久久亚洲AV无码网影音先锋| 丰满少妇猛烈A片免费看观看 | 天天干天天干天天干天天干天天干| 五月丁香久久久日婷婷久久婷婷日 | 色综合婷婷| 婷婷丁香五月激情图片| 色色色地址| 国产精品18久久久| 91超碰在线观看| 五月天婷婷激情小说| 玖玖精品婷婷| 超碰无码老师| 丁香激情五月天| 99热97| 五月丁香六月婷婷在线小说视频| 五月天婷婷社区久久综合| 日产精品一线二线三线芒果 | av狠狠操| 亚洲色图五月丁香| 很很干夜夜干| 伊人五月网| 久久狠狠欧美| 日韩超碰在线| 色久99| 老师的粉嫩小又紧水又多A片视频 粉嫩AV久久一区二区三区 | 热99视频精品在线| 人妻熟人中文字幕一区二区| 五月天婷婷综合| 狠狠色噜噜狠狠狠狠综合| 激情五月天无码| 成人在线不卡| 香蕉婷婷色五月| 欧美日韩日韩成人| 亚洲黄网在线| 日本WwW色偷偷丁香花久久久京东热| 国产成人av在线| 狠狠摸狠狠摸| 激情六月色| 激情五月婷婷色播网| 色婷婷久久综合久色| 五月婷婷色综图片| 手机在线日韩视频中文字幕| www.99日本| 综合99在线| 欧州婷婷五月天综合| 99精品久久| www.婷婷五月| 中文字幕成人| 亚洲妇女熟BBW| 天天干,天天日| 婷婷色丁香五月| 五月99久久| 99在线精品视频在线观看| 免费视频这里只有精品| 夜夜骑天天玩天天日| 五月丁香六月综合激情网| 五月婷婷亚洲综合网| 很很操96| 婷婷射图五月天| 色色婷婷综合网| 天天模,夜夜模夜夜爽| 久久杏爱视频| 。久久久久久久久久久久久久人妻 | 國語久久婷| 最新久久网址| 五月丁香激情综合| 爱爱网址9| 日本三级99人妇网站| 色色色九九九五月婷婷| 亚洲视频码| 久久久噜噜噜www成人| 久久综合香蕉国产国产蜜臀AV| 97久久精品视频| 99色视| 先锋资源91| 色色免费网站| 激情综合网,五月| 开心五月婷| 99热最新| 五月天婷婷在线AN| 九九九九九九九九九九九九九九九九九九九在线视频 | 国产亚洲精品AAAAAAA片| 欧美成人AAA片一区国产精品 | site:picc-up.com| 丁香成人色情五月天| 色色色色网| 操久久网| 五月天丁香婷婷视频网址 | 无码色色| 色婷婷狠狠爱| 少妇水多A片太爽了| 99久久久精品| 五月六月播婷婷| 影音先锋 婷婷| 色五月婷婷九月| 激情综合五月| 99久久久精品| 好吊操这里只有精品| 成人色色视频| 亚洲色99| 欧美亚洲操逼| 538任你爽| 99色视频| 玖玖激情五月天| 天天免费成年人视频| 日日狠狠久久偷偷四色综合免费| 色区久久| 色吊丝av中文字幕| www色婷婷久久综合久色 | 天天天日天天天干| 丁香五月AV| 午夜av网| 99re思思热这里| 波多野结衣AV无码Porn| 色五月丁香com| 久久伦乱| 天天爽天天做| 99热这里有精品| 神马欧美精| 怡红院院久久| 五月婷婷激情| 丁香久月婷| 思思re视频在线| 日本色婷婷| 婷婷综合伊人| 久久婷五月综合色| 97人人草| 91成人电影| 色丁香六月| 天天综合精品| 丁香五月激情六月欧亚激情综合导航 | 综合99综合久久久久久久| 偷拍九九热| 五月天天天综合| 99在线资源| 婷婷五月综合基地| 激情宗合网激情五月天| 无码AV免费精品一区二区三区| 欧美 日韩 成人 在线| 天天综合网网欲色| 天天碰夜夜操| 色婷丨日丨天丨综合久久| 九九人人操| 九九综合网色全集| 丁香五月欧美| 99内射视频| 综合久久人妻| 色色色色色日韩午夜激情| 激情二色月| 狠狠干综合| 色婷婷五月天亚洲 | Av九九| 婷婷99狠狠躁天天躁中| 欧美日韩成人在线网站| 丁XX 成人| 精品爆操| 欧美激情综合色综合啪啪五月| 涩五月丝袜婷婷| 综合色激情| 以及AA大片看看| 五月天停停基地| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 亚洲爆乳无码精品AAA片蜜桃| 都市激情久久| 做爰丰满少妇1313| Www.婷婷五月| 777久久久| 国产美女视频久| 97碰免费精采视频| 婷婷五月天丁香| 99久久婷婷国产综合精品草原| 超碰99在线观看| 欧美在线视频99| 九九热在线精品视频| 99热这里只有精品10| 日本人妻伦在线中文字幕| 一本久久亚洲五月婷婷| 青青久久91| 五月丁香综合网| 色哟哟精品| 色色色热| 2025年最新亚洲在线欧美| 丁香花狠狠婷婷亚洲中文字幕| 亚洲综合色色色| 人人操操| 久99久视频| 色插综合网| 99热黄| 丁香六月婷婷综合激情欧美| 激情五月图| 婷婷狠狠综合网入口| 五月婷婷香| 丁香婷婷黄网站| 天天插天天插| 婷婷五月天AV| 99久久99热| 日韩成人电泉AV| 久热 91| 色五月婷婷丁香国产在线| 1024人妻无码中文字幕| 婷婷激情九月| 婷婷基地五月色| 天天肏高清在线| 久久婷婷六月综合| 99∨VTV| 狠狠色狠狠干| 五月婷婷六月丁香首页| 中国丰满熟女A片免费观| 久久这里有精品视频| 久久综合综合久久| 丁香五月天操B| 久热99热| 丁香美女主播视频在线观看| 五月开心婷婷网| 伊人激情综合| 久久久网站| 99re热视频这里只精品5| 五月丁香婷婷色色| 国产婷婷久久| 亚洲精品又粗又大又爽A片| 五月天综合色| 91精品国产综合久久密臀| 久久精品9| 婷婷操无码| 五月激情影院| 五月丁香 啪啪| 狠狠色精品综合| 性爱动图国产麻豆一区二区三区| 色五月婷婷五月天激情综合| 激情操逼婷婷| 天天拍天天操| 91久热| 99热8| 五月亭亭综合五码| 婷婷另类开心| 大香蕉九九| 色婷久| 任你弄在线视频免费| 国产激情久久久| 久久多色| 六月丁香婷婷综合狠狠爱夜夜爱| 激情小说视频图片网| 丁香五月另类小说在线阅读| 婷婷综合在线| 日本啪啪天堂| 玖玖无码中文| 91成人电影| 停停综合色色| 狠狠色狠狠爱| 中文字幕在线人妻| 精品国产a| 亚洲日韩操B| 国产精品美女久久久久AV超清| 在线99热| 啊V视频在线观看| 综合久久高清| 日本欧美国产| 激情另类综合| 日本欧美在线| 亚洲综合激情五月久久| 婷婷五月色播放| 天天摸天天肏| 在线播放中文字幕| 久久婷婷视频| 99视频内射三四| 99久在线精品99re8| 五月天com| 亚洲天堂99| AV九九| 天天干天天做| 激情五月成年| 久久无意婷婷| 九九99香蕉在线视频播放| 99热色婷婷| 久久综合中文字幕| 97色干| 97色色色色色色色| 丁香五月天在线直播观看| 无码激情精品色婷婷久久久久| 天天干夜夜b| 伊人婷婷五月| 99热九九热| 五月婷婷深深爱| 丁香五月婷婷激情网| 五月丁香天堂网| 狠狠色色| 久久男人网婷婷| 色玖玖玖| 五月婷婷干干干| 六月丁香婷婷天堂| 五月天.com| 九九九九国产| 青青草视频免费观看| 97午夜一区二区| 婷婷娌伦网| av九九| 米奇影视资源婷婷狠狠色激情欧美五月丁香 | 色婷婷五月天激情在线播放| www.色擼擼.com| 丁香五月AV| 六月激情综合| 97超级免费无码| aa久久| ji'qing'luan'ren'lun| 丁香桃色网| 色五月在线观看| 播丁香五月婷婷欧美| 五月天婷综合| 五月激情婷婷六月丁香| 激情综合网激情五月天| 99超级碰免费视频| 热996精品在线观看| 九九色婷婷| 精久久色| 538在线精品| 色都都狠狠色都都色综合色| 99在线观看视频免费| 天天舔日日肏夜夜爽| 久久婷婷五月综合色奶水99啪| 影音先锋女人AA鲁色资源| 9色免费网| site:901-07.com| 精品人妻久久久久久| 婷婷中文字幕| 激情五月婷| 这里只有精品在线免费视频| 丁香五月婷婷影院| 综合五月丁香六月婷婷| 婷婷涩五月天综合| 丁香五月六月| 婷婷色啪| 五月丁香六月成人| 香蕉97碰碰碰欧美| 六月丁香婷婷拍拍| 99热久草| 激情五月婷婷色色| 深爱五月天天| 大香蕉综合网| 丝袜大香蕉| 99热只有| 亚洲国产成人AV在线| 丁香五月日啪| 丁香五月在线播放| 爱操人妻| 五月天激情小说| 丁香五月婷婷总啪啪| 色五月丁香一区在线| 99操逼| 98色花堂98t.R| 在线1青婷| 激情综合网激情五月婷婷| 天天日夜夜B久久| 亚洲操逼网| 激情图片久久| 丁香五月在线观看| 91九色无码内射| 婷婷五月天综合色| 欧美色男人网站| 侠女刀之记忆电影在线看免费| 91se在线视频| 91碰| 91九色首页| 影音先锋一区| 狼人久草| 婷婷五月花| 久久久99视频| 丁香五月婷婷激情网| 久久久五月五丁香| 狠狠爱激情网| 九九RE视频在线精品| 另类综合激情| 色婷婷成人| 亚洲天堂热| 五月丁香六月在线| 新久久五月天激情| 黑人糟蹋人妻HD中文字幕| 色色99色色| 熟妇无码乱子成人精品| 激情纯色婷婷五月天在线不卡视频| 丁香五月综合| 天天干天天干天天干天天干天天干天天干天天 | 欧美成人性爱网| 999九九九久久久99HD| 久久性爱视频网站| 色天堂在线| 九热视频| 天天上天天爽| 665566 无码| 亭亭五月丁香五月天激情| 婷婷综合色网| 综合激情五月天| 久久五月天激情婷婷| 国产乱人偷精品人妻A片| 久色中文| 婷婷色基地在线看| 精品婷婷| 五月丁六月香av| 99热97美女| 色色无码| 一区二区中文字幕| 影音先锋男人av资源站| AV成人在线播放| 无码九九| 色婷婷精品视频在线播放| 98永久精品| 婷婷激情五月天激情在线| 丁香六月婷婷缴情欧美| 夜夜爱网站| 丁香婷婷久久| 婷婷激情久久| 大香蕉啪啪| 五月婷婷伊人网| 亚洲成人AV在线| 丁香婷婷五月| 开心婷婷五月中文字幕组| 激情99| 国产精品涩涩涩视频网站| 婷婷色5月激情网| 丁香激情四射| 7EzOBIhNq85TO| 伊人婷婷色| 日本五月丁香| 久久伦乱| 日本人人超碰| 99操视频| 婷婷五月激情视频| 色婷婷六月性| 五月丁香视频色色| 丁香激情五月天| 天天操天天插| 激情都市五月天| 99色综合网| 婷婷五月丁香国产| 五月丁香六月| 五月婷婷丁香五月| 久久这里只有精品无码| 久久作爱| 欧美日本99| 在线另类| 激情四射网| 婷婷情色激情| 亚洲综合激| 影音先锋91| 操操综合网婷婷| 久久综合激情| 色碰碰| 国产成人99久久亚洲综合精品| 婷婷五月天成人在线视频| 1024亚洲| 黄色录像网点| 91狠狠综合久久久久久| 996热re视频精品视频| 五月激情久久综合网| 日韩a热| 啪啪激情综合| 五月天婷婷久草丁香| 欧美黄色一级录像| 99视频内射三四| 91精品久久久久久久| 国产婷婷色综合AV蜜臀AV| 婷婷六月丁香久| 99re热精品在线视频| 色七七九九| 综合九九中文字幕| AV网在线观看| 91九色超碰| 人人艹艹艹| 国产又粗又大又爽又黄| 色色亚洲视频| 亚洲综合色色| 丁香六月婷婷开心| 久久婷婷五月天激情四射| 五月天网站亭亭| 婷婷.com| 欧美日本va| 色欲久久久久| 激情五月天伊人av| 亚洲色激情| 国产日韩亚洲欧美在线观看| 这里只有精彩视| 久久婷婷五月草视频| 五月天婷婷色小说| 丁香婷婷啪啪啪| 九九热这里只有精品9| 五月丁香六月婷精品视频| 五月久久噜噜| 亚洲 在线 性爱| 综合狠狠干| 五月丁香婷中文字幕 | 久久ER视频com| 99热99热在线观看| 在线色五月婷婷| 草婷婷在线| 99热777| 99热这里只要精品免费| 婷婷五月天中文字幕| 色 色 色综合com| 日本色五月婷婷| 91人碰| 五月丁香婷婷色| 97久久久| 狠狠久久婷五月综合色| 91五月花丁香| 97碰免费精采视频| 成片免费播放| 天天上天天爽| 狠色色狠网| 丁香五月av| 狠狠综合| 欧美性生交XXXXX无码小说| 91色五月在线观看| 综合玖玖偷拍| 久久久精品视频79| er99免费视频在线| 深爱激情综合网| 婷婷亚洲综合| 国产乱妇无乱码大黄AA片| 97色精品视频| 国产精品视频免费看| AV色五月婷婷| 丁香五月六月欧美| 婷婷五月天综合AV| 五月婷婷六月色| 伊人大综合| 五月丁香激情综合啪啪| 天天爽夜夜爽夜夜爽精品| 久久96热| 丁香六月激情四射| 可以看的av| 色色网91| 五月天激情偷拍| 亚洲亚洲永久无码777777| 九色91国产| 久草热8精品视频在线观看| 操逼五月天| 综合亚洲六月婷婷在线| 丁香激情婷婷网| 久久久久久久久久8888| 欧州婷婷五月天综合| 1024婷婷综合久久五月天| 五月丁香成人日| 激情小说在线视频| 婷婷五月在线视频| 亚洲成人网站在线| 亚洲mm色| 久久色婷婷| 淫视馆av三区| 丁香色情五月综合激情| 色久五月天| 91久久99久久91熟女精品| 91精品国产色猫| 丁香五月婷婷综合视频| 久久这里有精品| 97精品人人A片免费看| 五月开心久久| 五月婷婷激情中心| 79精品视频在线观看,| 97国产精品女人碰碰| 激情综合网之激情五月| 日韩淑女人妻luan伦激情精品一区二| 欧美性做爰大片免费看办公室| 99热天堂| 日韩视频99| 亚洲天堂婷婷丁香| 好好干Av| 天堂久久婷婷| 六月婷婷日| 三十路磁力链接| 五月婷激情| 六月丁香停| 亚洲AV色婷婷人禽五月天| 六月激情网| 亚洲色综合| 亚洲色婷婷| 91久久久久| 欧美毛片www| 婷婷五月天在线观看| 9人人操人人看| 五月六月婷| 碰99在线| 六月丁香婷婷色69| 无码免费人妻A片AAA毛片西瓜 | 五夜婷婷| 久久人人九| 丁香五月婷婷在线| 天堂网亚洲色图| 天天成人综合视频| 国产人妻人伦精品一区二区| 大香蕉久久| 一区二区三区视频| 丁香五月区| 99婷婷国产最新视频| 9 1在线视频| 五月丁香五月综合欧美| 久久婷婷桃花五月天| 五月丁香做爱视频| 99爱在线| 六月狠狠综合| 国产精品成人网址| 狠狠操狠狠做| 色吊丝99| 亚洲另类视频| 99精品视频推荐| 久久久免费精彩视频| 六月激情网| 天堂综合久久 | 99色视频| 五月激情偷拍婷婷| 淫五月停停| 五月婷婷激情综合视频| 色婷婷播放| 久机视频这只有精品| 91人人妻人人操| 丁香激情五月天| 婷婷五月天激情电影| 久久久91| 婷婷第六色| 国产美女无遮挡裸体毛片A片| 五月丁香 久久久| 五月婷婷香蕉| 五月丁香六月综合激情无码软件亮点 | 天天艹夜夜艹| 啪啪干伊人婷婷| 久久这里只有精品视频15| 色五月丁香婷婷在线观看| 五月婷婷婷| 久久新地址| 第2色五月婷| 丁香久久在线| 日狠狠| 91精品久久久久久77777| 激情婷婷六月天| 五月丁香在线精品| 色色色色色日韩午夜激情| 亚洲乱码w在线观看| 任你艹| 色婷婷呢狠禁久禁| 99久在线精品99re8热| 五月综合激情| 日韩免费视频| 成人丁香五月| 五月丁香六月色婷| 丁香婷婷狠狠97| 97碰碰在线观看视频| 思思热久久阴99| 狠狠色色色| 成人综合AV| 夜夜天天久久婷婷| 天天肏天天肏| 亚洲色色色| 激情五婷网| 超碰在线99| 久草九一| 五月婷婷啪啪啪| 黄涩毛片| 欧美日韩国产一区| 国产精品第一国产精品| 五月天成人网在线观看| 精品思思久久| 色婷婷精品视频在线播放| 激情九月婷婷| 人人摸人人干人人做| 91久久综合亚洲鲁鲁五月天| 丰满人妻妇伦又伦精品国产 | 无码动漫AV| 99婷婷| 五月激情综合网| 五月丁香激情综合六月涩涩爱| 丁香五月AV| 99久久九九视频| 第四色激情网| 啪啪亚洲综合| 九九这里有精品视频| 国产免费av在线| 欧美性生交XXXXX无码小说| 99欧州偷拍视频| 国产精品A片| 深爱激情中文五月天av| 久久人视频| 亚洲亚洲人成综合网络| 日本啪啪天堂| 色五月在线播放| 色插综合网| 亚洲色综合| 日本免费91| 五月九九综合| 国产乱人偷精品人妻A片| 婷婷五月丁香六月| 色婷婷狠狠| 激情婷婷五月天在线观看| 996er在线观看| 超碰99久久| 停停五月色宗合| 高清a片基地| 亚洲日本韩国| 开心激情网五月天| 六月久久婷婷| 婷婷五月情| 天天日天天做天天操| 成年AAAA色情| 色九区| 国产精品成人AV在线| 91精品国产色猫| 国内熟女黄色系列| 风流少妇A片一区二区蜜桃| 五月天婷婷社区| 狠狠色综合网| 99精品热视频| 欧美三日本三级少妇三99| 五月婷综合| 婷婷 月 丁香| 伍月婷丁香花全集| 五月天自拍视频| 婷婷激情蜜桃玖玖丁香| 天天日夜夜B久久| 五月丁香日本一抹本| 婷婷天堂综合| AV电影在线播放| 亚洲AV日韩无码| 日韩操逼大片| 99自拍视频网站| 草一草avb| 熟女激情网| 激情综合网五月丁香| 亚洲情色一区| 97在线综合| www.婷婷| 综合在线网| 五月丁香六月欧美综合| 天天做天天要天天爽| 五月丁香婷婷久久| 99re热久久| 五月天黄色激情小说| 五月天婷a| 99er热精品视频| 六月丁香五月天| 欧美乱码国产一级A片| 色五月激情综合| 9 9 9色色| 大香蕉人人人| 91人人澡人人爽人人看| 婷婷五月天干干| 大香蕉婷婷婷| 天天综合永久| 五月天成人在线播放丁香| 婷婷五月天干干| 亚洲色婷婷五月天| 99精品一二三四视频| 久久XX| 99热这里只有精品22| 婷婷五月激情综合| 成人午夜天| 色婷婷色丁香色欲av| 色九九丁香九月色九九色| 99久久新视频| 9色在线| 久草五月天电影网| 欧美爆乳一区二区三区| 久久99热免费最新版| 五月色婷婷中文字幕| 丁香在线视频| 一本色道久久综合狠狠躁一二三| 激情性爱婷婷| 色婷婷香蕉| 色综合开心五月深爱五月| 六月丁香久久| 欧美内射AA| AⅤ网站在线看| 色99婷婷五月天| 99re99在线看| 久色五月| 婷婷中文无码| 免看黄大片AA | 伊人狠狠色婷婷综合丁香一区| 色婷丁香| 狠狠色 综合色区| 午夜成人网站在线观看| 五月色综合| 婷婷日本色| 丁香六月婷婷综情欧美| dingxiangtingtingliuyue| 久婷久婷| 丁香网五月天| 成人五月天丁香婷| 情情五月天色| 99热资源在线| 久久AAAA片一区二区| 成人在线网站| 日日鲁鲁夜夜爽爽| 色爽九九| 中文字幕无码AV| 在线另类视频| www.五月天。com| 日韩AV片| 久久女伦| 大香蕉久久伊人婷婷五月丁香| 五月婷婷开心丁香| 五月综合激情网| 99久久亚洲国产| 婷婷五月情色| 天堂A∨在线| 在线播放成人| 六月婷婷狠狠| 久久精品4| 久久久久久婷| 国产阿姨日皮艹逼内射视频| 少妇人妻人伦A片| 嫩草AV久久伊人妇女超级A| 久久综合中文字幕| 婷婷五月天BBw| 欧美性猛交 XXXX 乱大交| 色九月婷婷综合| 色色色色色色色色网站| 免费看欧美成人A片无码| 99黄色性生活| 综合图片色色| 北条麻妃伊人 | 日本久久婷| 99在热线免费视频| 激情内射人妻1区2区3区| 九九综合精品| 影音先锋91资源站| 免费日本aⅴ中文字幕 | 色狠狠色噜噜AV天堂五区消防| 538在线精品| 婷婷色婷婷亚洲成人| 天天综合色丁香| 超级碰碰99| 伊人五月天婷婷| 日本猛少妇色XXXXX猛叫| 欧美日本VA| 色婷婷香蕉| 99九九在线观看免费| 色狠狠婷婷| 91亚洲视频| 五月丁香婷婷激激激综合网色播| 噼里啪啦在线观看免费完整版视频 | 26uuu欧美激情另类| 成人精品视频99在线观看免费| 丁香五月综合高清在线| 碰碰女| 97se视频在线| 六月丁香五月婷婷| 婷婷第一页| 婷婷va| 婷婷综合另类| 五月天啪啪啪| 亚洲成人无码免费| 丁香五月天激情视频| 色护士综合| 亚洲免费婷婷| 操婷婷基地| 色色a| 激情av在线| 五月丁香久久网| 丁香五月婷婷啪啪啪| 婷婷色中文字幕| 99开心五月五月丁香激情| www.91久久| 综合久色五月| 丁香婷婷成年| 思思热AV| 久久精品99久久久久久|