欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,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
返回資訊列表
超级97碰碰| 欧美在线ee日韩| 97久久草草超级碰碰碰| 无码99| 婷婷丁香五月天色区| WWW.五月com| 操操自拍| 九九热再线九九视频免费在线观看 | 五月色色色| 久久婷婷六月综合资源| 婷婷综合色图| 五月婷婷之综合激情在线| 五月天激情网站| 五月天色色色| 狠狠色噜噜狠狠| 久久99热这里只频精品6学生| 久久这里只有国产精品视频| 六月丁香视频网站| 五月婷婷熟女| 五月丁香色婷婷色| 五月婷婷之综合激情在线| 丁香色五月婷婷91桃色| 色五月av伊人| 婷婷五月天激情网| 亚洲不卡欧洲| www.激情com| 立川无码av| 婷婷色色亚洲| 欧美经典片免费观看大全| 99这里有精品视频视频| 丁香五月婷婷欧美成人色图| 色五月婷婷、老熟女| 91婷色| W色综合| 激情av| 激情婷婷五月天日本系列| 人人爱操| 91疯狂操操操操| 激情文学综合婷婷五月天丁香花| 在线观看国产高清视频免费网站| 伊人99热| 亚洲精品字幕在线观看| 91成人电影| 久久深爱激情网| 婷婷色色网| 日韩AV中文字幕在线| 国产精品美女久久久久AV超清 | 丁香五月天五码婷婷| 九九热视频精品2| 超碰不卡在线| 午夜成人天堂久久无码日韩久久| 五月伊人网| 激情婷婷五月少妇| 人妻激情综合| 色99网| 99久久五月婷婷| 亚洲精品欧洲精品| 欧美日韩AAAAA| 任你日视频| 热久69| 91在线看免费 九九九九| 丝袜熟女一区二区三区| 亚洲第一影院高清无码网站| 91色九| 超碰高清在线| 五月激情啪啪| 五月在在观看| 综合久久六月| 五月婷婷激情综合网| 天天色综合网吨吧| 婷婷久久免费| 亚洲午夜AV| 日韩一级片| 五月丁香| 激情骚五月| 9999热免费视频视频| 色吧99| 午夜微拍福利| 激情综合区| 五月婷五月婷伊人伊人五月婷| 色人久久| 久8色色| 色婷婷精品小视频| 欧美人人草| 色五月综合激情| 激情五月丁香六月| 99精品视频在线观看| 成人va视频| 丁香婷婷久久| 婷婷激情久久| 狠干综合| 色五月大| 色婷五月丁香久亚洲| 丁香五月天啪啪激情综和网 | 骚逼视频一区2区| 91丁香色五月| 成人操呦av| va婷婷在线免费观看| 九九精品在线观看视频6| 婷婷狠狠97| 开心婷婷五月| 婷婷六月综合| 精品51XX| 丁香六月五月天| 欧美叉叉叉BBB网站| 91在线观看www| 日本黄色在线观看| 人人爱人人添| 被强行糟蹋的女人A片| 丁香五月成人自拍| 欧美性爱特黄一级aaaassss| 五月婷婷99热| 9视频1在线| 四色永久成人网站| 超碰国产AV| 丁香五月成人| av在线资源| 激情婷婷丁香五月| 96精品久久久久久久久| 99热99| 婷婷基地成人五月天| 国产午夜精品久久久观看| 婷婷综合久久| 五月色婷婷中文字幕| 俺去也在线官网| www.狠狠| 久久 中文 日本| 天天搞夜夜叫| 亚洲欧美婷婷五月色综合| 裸体做A爰片毛片A片免费| 国产精品视频免费看| 日韩一区二区三区无码| 天天操夜夜操| 超碰97久久| 五月天婷婷中文字幕在线播放| 激情综合五月| 亚洲中文av| 97干欧美| 色丁香久久| 色婷大香蕉| 婷五月丁香| 丁香六月啪啪啪| 婷婷成人在线| 天天综合网站| 99操无码视频观看| 九月婷婷激情| 婷婷色丁香五月| 激情综合网五月天| 九九综合图片网| 五月丁香在线精品| 大香蕉久久青青| 亚洲无码成人网| 色婷婷综合亚洲| 色婷婷四虎| 日逼免费视频| 久久五月天激情婷婷| 丁香婷婷射| 亚洲激情五月天| 欧美精品啪啪| 99re思思久久| 丁香五月婷婷综合视频| 午夜性做爰电影| 99热99色| 中文毛片无遮挡高潮免费| 欧亚洲在线高清视频| 婷婷久久免费| 五月丁香色色网| 久久久99久久| 草美女在线观看视频在线播放| 人人爱操| 99热首页在线30| 成人无码髙潮喷水A片| 色色色地址| 五月天婷婷基地| 婷婷五月丁香综合亚洲| 婷婷五月天激情五月天深爱五月天| 91精品国产综合久久久不卡电影| 天天插天天操| 五月婷六月| 日韩精品一区二区亚洲AV观看| 五月天婷婷丁香花| 玖玖资源在线视频| 五月四色婷婷| 婷婷五月天VI| 欧美在线操| 99热日本| 婷婷丁香成人色综合| 99热精品一区| 婷婷久久免费| 人妻体体内射精一区二区| 色欲Av五月天| 婷婷五月天毛片| WWW,婷婷,COM| 成片免费观看大全| 色色色色色网| 人人看人人摸人人| www久久99| 操碰91| 日日撸日日操| 国产精品电影| ww超碰在线| 成人色图情色成人网 www.5b5b5bcom 五月天| 在线播放成人| 九九激情| 久久婷婷五月天| 久久伊人大香蕉| 99国产精品白浆在线观看免费| 中文国产五月天| 啪色综合| 亚洲第一成人AV| 激情五月天综合图片小说网站| 天天日中文| 91凹凸在线| 狠狠五月丁香色婷| 婷婷伊人久久| 中文字幕av网站| 亚洲激情四射| 五月婷婷色五月| 日韩色色色色色| 久久人人添人人爽添人人片αV | 五月激情婷婷色| 国产性爱色| 俺去也在线官网| 97碰久久| 久久涩视频| 色999;丁香五月| 亚洲色综久久五月| 亚洲婷婷月丁香五月| 中文在线成人| 婷婷色网址| 五月天开心网| 久久婷婷色色| www夜夜操wwwcon| 色停停香蕉视频| 国产婷婷婷| 夜夜 操无码| 色99热| 欧美噜噜免费观看| 激情五月天丁香| 色色五月激情| 九九九九无码| 九九久久色| 夜夜操狠狠操| 婷婷五月综合在线| 色婷婷小说网| 亚洲热视频| 干一干xxxx| 狠色狠色综合久久| 先锋av性爱成人电影| 99综合视频一体| 久久婷婷丁香视频网| 九九XX视频| 99天堂网| 日本欧美成人片AAAA| 99在线观看| 99热只有| 色欲久久综合| 第五色色色婷婷| 99在线视频在线观看| 亚洲精品乱码久久久久久按摩观| 亚州精品色情无码A片| 日韩日比视频| 九月丁香婷婷综合| 色玖玖| 综合激情在线| 超碰免费在线| 丁香五月婷婷动漫视频| 久久精彩视频99| 五月六月激情婷婷| 99黄色| 婷婷五月丁香基| 久久婷婷成人视频| 四色女婷婷| 99rewww| 天天五月丁香五月| 99色1| 99在线视频播放| 久久婷婷五月综合色天| 欧洲一区二区| AV五月丁香| 熟女网站久久| 激情五月天在线观看色婷婷| 激情五月婷婷综合视频| 丁香六月久久| 久久视频这里有精品99| 99热8| 五月综合色| 国产精品人人做人人爽人人添| 中文成人在线| 久久综合网桃花| 国产avapp 网| 婷婷五月天深爱| 淫水导航| √天堂资源在线人妻熟女| www九九| 操骚货在线| 四LLL少妇BBBB槡BBBB| 五月四色激情| 久久色婷婷| 九九色综合| 免费视频无码| 伊人九九九久| 五月婷婷在线视频免费观看| 操射国产日本| 婷婷五月色天| 精品丁香五月天在线播放| 91丨九色丨白浆秘| 日本女色人人| 婷婷五月亚洲综合| 五月香蕉婷婷| 最新av在线观看| 激情第四色| 色婷综合| 丁香色啪综合| 人妻九九九九| 色呦呦在线| 一区视频网站| 欧美性丁香色色五月天| 超碰免费成人| 五月婷婷性爱网| 五月天丁香综合| 米奇激情婷婷| 涩涩涩五月天| 久久狠婷婷| 在线视频色五月| 人人爱人人添| 中文字幕日产A片在线看| 亚洲欧洲中文日韩久久AV乱码| 九九无码AV| 玖玖在线| 婷婷五月天电影区小说区| 亚洲区视频| 99热伊人| 久久久91| 日韩无码91| 六月色色综合| 五月婷婷色播| 午夜爱爱网站| 99热这里只有精品16| 色欲天天综合| 黑人熟妇一区二区三区| 99精品小视频| 操逼亚洲天堂| 内射激情在线| 国产97色在线 | 日韩| 欧洲电影在线观看免费版英语版 | 狠狠干狠狠色| 无码yw| 五月丁香无码视频| 教师性爱毛片| 丁香五月综合在线播放 | 五月天婷婷激情在线色图| www.99久久久久99| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 性爱激情久久| 国产成人av在线播放| 婷婷色爱| 久久五月热| 五月丁激情| 日韩aaa| 亚洲免费99| 天天夜天天色天天| 九九热这里只有精品9| 色婷婷色五月另类综合| AA丁香综合激情| 99人人干| 99ri在线视频| 丁香五月天殴美激情| 日本色婷婷| 婷婷久久色| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇| www,com,五月色色| 国产91视频| 深爱激情丁香五月| aaa9区免费在线观看| 九九热思思| 91在线资源| 色色网站免费| 婷婷伊人视婷婷婷| 婷婷五月丁香手机在线视频| 97在线/日本| 夜夜躁狠狠| 亚洲精品又粗又大又爽A片 | 狠狠色综合精品视频在线| 久久综合九色综合88i| 五月香六月婷| 九月丁香八月婷婷加勒比| 五月的婷婷六月丁香| 日本熟妇乱妇熟色A片蜜桃| 伦乱美欧| 色婷婷五月丁香色| 欧洲色| 一起草av在线观看| 精品久热69| 日韩一级A片黄色| 极品另类| 五月婷婷综合激情| 婷婷五月天久久| 婷婷在线操| 色色五月天激情| 丁香五月婷婷色五月| 日韩在线观看网址| 日日插日日干| 色色婷婷丁香| 99综合五月免费视频色婷婷| 女人天堂AV| 超碰亚洲天堂| 先锋影音男人的天堂AV| 色域五月婷婷丁香| 成人欧美Va| 亚洲天堂AV综合网| 在线看片av| 男人的天堂五月丁香| 丁香五月天AV在线| 婷婷色综合网日韩国产| 亚洲热视频在线| 激情综合网,婷婷五月天| 色婷婷色丁香色欲av| 色婷婷先锋| 9久久精品| 五月婷婷伊| 99热66| 久去色色| 国产操肏网站| 国精产品一区一区三区免费视频 | 日本三级韩三级99久久| 激情综合五月丁香六月婷婷| 色色综合网站| 色五月天电影| 香蕉久久国产AV一区二区| 激情涩播| 丁香婷婷大香蕉| 五月激情综合美女久久| 天天综合.com| 一本久道综合色婷婷五月| 1024国产在线| 91啪啪视频| 九九热在线观看视频| 五月婷婷啪啪啪| 九九热9| www.婷婷五月天.com| 色五月第四色| 色青青视频| 粉嫩av懂色av蜜臀av熟妇| 国产97在线日韩亚洲女人被黑人巨大| 国产精品色色| 色噜噜五月天| 日本五月婷婷| 伊人大香蕉毛片| 色播播五月天| 色播五月丁香| 丁香五月婷婷AV在线| 色五月婷婷视频| 久热九九| 九九av| 超碰97久久| 人操综合| 大香蕉福利导航| av大香蕉| 日本狠狠干| 久久99网站| 激情五月亚洲| 99免费视频在线观看爱| 亚洲女婷婷五月基地综合久久久| 五月天婷婷一起草| 欧美丁香婷婷天天操| 毛片蕉地一二| 五月婷婷九九久久| 伊人玖玖婷婷| 激情av在线| 六月婷婷最新网址| 亚洲无码免费看| 久久人人添人人爽添人人片αV| 五月综合色| 色色色综合| 99久久这里只有精品| 综合久| 中文字幕人妻在线| 色婷婷小说| 九九99免费视频| 任你日视频| 激情深爱综合网| 中文字幕色色| 深爱激情五月网| 九九免费精品| 色噜噜狠狠色综无码久久合欧美| 久久婷婷色色| 丁香六月婷婷综合| 国产肥白大熟妇BBBB视频| 国产精品久久久久久久久久| 小香蕉av| 色五月婷婷777| 99九九这里有免费视频| www99xxxx五月丁| 色色哒五月婷婷六月丁香| 色狠狠色狠狠| 涩婷婷五月天在线精品视频| 婷婷五月综合在线| 99在线精品免费视频| www.99热国产| 色五月丁香91| 玖玖激情五月天| 天堂A∨在线| www.激情在线| 自拍盗摄 另类| 停停五月色宗合| 久久性视频| 色色五月天激情| 97人妻超级碰碰碰碰碰| 免费人人操| 久久综合色五月| 伊人影音无码一区二区三区| www.激情五月天com| 襙逼网| 五月综合无码| 美女天天爽| 五月天久久91| 婷婷五月天色色| 五月天婷婷Av| 99久久精| 亚洲日韩欧美综合VA| 成人网站免费在线播放| 九月丁香八月婷婷加勒比| 操久久精| 深爱激情网婷婷| 九九热视频免费观看| 五月亭亭性| 婷婷社区五月天| 九九99九九精品视频| 美女xx不卡| 五月天激情综合网俺也去| 色热久资源| 99热99热在线观看| 色在线99| 五月丁香亭亭激情操逼网| 性欧美日本| 久色五月| 99热精品在线观看| 一起肏在线视频| 久久久久婷| 亚洲欧洲国产精品| 日日天天干| 久久婷五月| 久久狠婷婷| 婷婷五月天激情综合| 婷婷成人AV| 99久久欧美| 五月综合视频在线| 久久性爱网站| 亚洲AV综合网| 国产精品色婷婷久久久精品| 亭亭五月丁香综合欧美| 激情五月天在线视频| www.色婷婷.com| 超碰男人色| 午夜九九电影| 激情五月天色播| 丁香婷婷五月色成人网站| 激情婷婷丁香色五月| 天天爽夜爽| 七七九色| 99热色精品| 欧美综合激情| 亚洲行行色色| 欧类av怡春院| 五月天另类综合网| 久久五月丁香| 人人色AV| 色综合色欲综合天天免费 | 五月色欧洲| 另类图片天天影视在线观看| 五月婷啪啪| 色综合色综合色综合色综合| 欧洲区自拍| 96五月丁香熟女| 天堂久久丁香| 婷婷五月天首页| 五月开心播播网| 五月丁香六月激情狠狠| 麻豆AV一区二区三区| 五月丁香激情综合网| 69精品人人人人| 中美日韩成人在线| 欧美性猛交99久久久99| 丁香五月激情五月开心五月| 韩国97天堂| 激情五月,激情综合网| 婷婷香蕉精品| 狠狠色婷婷7| www.色婷婷| 婷婷色五月激情| 狠狠干综合| 五月婷婷六月激情在线| 日本不卡一区二区三区| 五月深爱激情网| 日韩有码一区| 91狠狠色色丁香婷婷综合久久| 97在线刺激| 99精品久久| 99久久丝| 男人先锋久久| 色综合99| 婷婷综合干| 国产精品色色| 亚洲婷婷五月天在线激情综合网| 亚洲精品又粗又大又爽A片 | 五月婷婷激情综合av| 色吧婷婷| 成人片黄网站色大片免费毛片 | 99成人免费热视频| 成人中文字幕在线| 久99视频| 婷婷色丁香六月| 欧美WW在线网| 色五月婷婷五月天| 伍月婷婷六月丁香| 大香久久综合网| 五月婷婷色| 五月丁香久久| 婷婷狠狠干| 91丁香五月| 日日骑夜夜撸| 99热99日天天干| 99九九在线观看免费| 伍月婷丁香婷| 久久ab| 国产综合视频婷婷| 色五月天综合网| 森林影视大全,最好看的2019年视频 | 色婷婷aV四虎| 精品久久艹| 六月婷婷日| 丁香婷婷五月份| 五月丁香婷婷俺| 第五婷婷伊人丁香| 婷婷激情九月| 精品久久久久久久人妻| 日本操B片| 久久五月天综合| 婷婷五月激情天| 99热在线爱| 丁香六月色| 国产精品99久久久久久久女警 | 九九视频精品在线免费| 综合精品啪啪| www.五月天婷婷| 久久这里只| 五月丁香网av| 日本一毛片| 年轻的妺妺伦理HD中文| 9l视频自拍9l九色9l成人| 亚洲小说欧美激情| 丁香六月激| 91 九色 入口| 久久九九热视频| 五月婷婷在线免费| 五月婷婷六月奇米网丁香| 99久久久久| 色月丁| 亚洲亚洲人成综合网络| 99久久网站| 五月激情影院| 夜丁香五月婷婷| 午夜性爱影视一区77| 国产在线中文字幕| 国内一级精品| 国产视频福利| 正宗黄色毛片| 婷婷五月丁香色播| 丁香五月天激情四射网络不好| 久久9热好| 婷婷五月天福利| 九九热99热| 五月婷婷之综合激情| 色婷婷AV五月天| 色婷婷五月丁香在线观看| 亚洲AV免费在线| 亚洲成人av在线| 伊人狠狠色婷婷综合丁香一区| 亚洲第一成人AV| 五月天色小说| 伊人婷婷五月天| 婷婷爱五月| 开心婷婷五月| 99热这里都是精品| 久久婷婷亚洲| 99亚洲视频| 婷婷综合网| 久久激情五月| 色婷婷电影网| 99热在线爱| 中文字幕丰满乱孑伦无码专区| 五月天综合在线| 日韩色色色色色| 熟女网站久久| 婷婷五月天色色| 天天干,天天舔| 亚洲色夜| 97五月天婷婷综合激情网| 91伦| 日韩AV片| 色色色综合视频| 国产片天天爽夜夜爽| 色五月之第四色| 五月天色婷婷av| 五月天婷婷深深爱| 五月婷婷免费在线视频| 色五月婷婷在线| 开心激情综合| av高清无码| 亚洲视频在线观看| 亚洲av综合在线| 97五月天婷婷综合激情网| 中文字幕AV网址| 欧亚色色| 这里只有精品在线免费视频| 天天射影院| 99热6精品| 99亚洲天堂| 粉嫩AV久久一区二区三区| 狠狠色婷| 91狠狠综合久久久| 精品色色网| 久色资源| 五月天婷婷色色| 97操碰日本女人| 人人妻人人澡| 婷婷五月天激情AV影院| 综合激情五月婷婷| 97精品综合久久| 中文字幕免费高清电视剧| 色婷婷久久7777| 国产67194| 新激情五月天色播| 日韩成人中文字幕| 欧美情色电影一区二区| 99热国内精品| 五月天婷婷导航| 婷婷综合色| 在线播放中文字幕| 五月深爱激情网| www.minyis.com【JT】实力收量可预付QQ2101460746 | 热99这就是精品视频| 欧美色激情四射| 丁香五月婷婷啪| 色五月婷婷天天操夜夜操| 欧美丁香五月97色| 内射 无码 伊人| 色情五月天小说| 五月丁香婷婷激情视频| 热久久这里只有精品| 婷婷成人在线| 97亚洲色 torrent magnet| 深爱激清网| 欧美色五月| 六月丁香色色| 激情VA视频| 五月婷丁香| 婷婷99视频精品| 99在这里有精品| 99啪啪| 碰超在线九色| 五月天伊人手机在线播放AV| 国产激情视频在线观看| 亚洲性爱电影| 99热6精品| 在线成人va| 99综合视频在线| 九九操操| 五月婷婷亚洲| 六月伊人婷婷| www.激情| 五月婷成人| 久久性操| 婷婷精品综合| 色综合色| 39视频第二区| 五月婷婷六月少妇激情| 色吧网91| 密黄站| 久久国产色| 国产九九一区二区三区| 丁香五月在线观看| 日韩精品无码AV| 色五开心五月五月深深爱| 97精品人人A片免费看| 久久色频| 五月天成人综合| 激情五月综合色| 天天狠天天叉| 99热99成人| av色色国产| 婷婷色五月天在线观看| 激情五月综合网最新| 色婷天天| 九九黄色网| 大香蕉久操| 异能之下短剧免费观看全集| 激情www| 色综合99| 亚洲精品V天堂中文字幕| 日韩狠狠色婷婷| 午夜精品人妻无码一区二区三区| 欧美色骚婷婷五月天| 国产精品第一国产精品| 激情婷婷另类| 超碰免费电影| 思思热再线视频| 丁香八月综合激情| 六月综合婷婷开心伊人| 色五月婷婷综合在线| 丁香五月婷婷在线| 亚洲操精品| 精品久久99码| 五月丁香综合精品| 狠狠色噜噜狠狠狠777奇米| 79精品视频在线观看,| 五夜丁香| 日本三级韩三级99久久| 丁香五月天婷婷中文| 丁香五月成人| 五月激情婷婷六月| 五月天停停日日| 天天爱天天吃狠天天透| 精品成人在线观看| 六月婷婷综合| 婷婷五月花丁香| 中文字幕精品在线观看| 色噜噜狠狠色综合日日| 五月天成人在线| 五月婷婷导航| 五月婷婷丁香综合| 色婷五月丁香久亚洲| 五月婷婷九九久久| 婷婷五月天成人| 深爱五月婷婷开心中文字幕| 五月色情婷婷| 色激情五月| 色婷婷精品小视频| 色五月婷婷激情基地| 久久精品夜色噜噜亚洲a∨| 婷丁香久综合| 国产乱子轮XXX农村| 五月丁香激情综合久久| 色五月丁香五月激情五月激情| 潘金莲AAAAAAAAAA| 色五月琪琪| A A色色| 天堂久久精品| 婷婷成人av| 激情五月综合网| 亚洲精品操一操、噜一噜、摸一摸、爽 | 丁香五月婷婷啪| 日韩六六久久电影| 久9久9久9久9久9久9| 一起草AV入口| 91日本在线观看| 天天操天天日天天操| 久久婷婷伊人| 99精品网址| 九九视频在线观看视频6 | 九九视频在线| 婷婷天天综合| 夜夜夜天天操| 激情综合丁香六| 日日爽日日| 这里只有精品视频免费在线观看| 五月婷婷激情四季| 婷婷综合视频| 久热精彩视频98| 天天操夜夜操| 热久久91| 激情网五月| 婷婷五月AV| 婷婷在线观看五月天在线视频| 久久精品99久久久久久久久| 日日操日日撸| 久久网日本| 成人丁香五月天| 在线视频色五月| 伊人婷婷综合| 五月丁香毛片| 精品香蕉99久久久久网站 | 小色小蛇伊人婷婷色香五月| 丁香五月婷婷国产在线| 综合色图区| 久热免费视频| 亚洲色情网站| 这里只有精品视频一区| 天天草天天爱| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 婷婷在线观看五月天在线视频| 啪精品| 91人人爽人人操| 亚洲亚洲人成综合网络| 婷婷天天色| 色爱综合网| 成人在线视频网| 丁香色综合| 婷婷久月| 五月婷婷色激情| 激情五月天色婷婷| 五月色精品| 久久九九在线视频| 深爱激情五月网| 色激情五月| 国产免费AV在线| 久久九九热视频| 欧美日韩欧美| 狠狠婷婷日韩| 伊人婷婷色| 激情五月丁香五月| 九九热这里都是精品6| 色婷五月丁香久亚洲| 五月婷婷网站| www.久久爱.com| 激情综合网五月激情| 99视频在线| 色五月婷婷操逼| 日本三级韩三级99久久| 大香蕉啪啪网| 国产av天堂| 成人日韩欧美| 九九热青草| www.99精品日操伊人乱碰在线| 九九色婷婷Av| 亚洲AV另类| 精品牛仔裤超碰| 五月天狠狠网站| 996er在线观看| 日韩AAA| 99色亚洲| 色欲av伊人久久大香线蕉影院| 国产午夜一区二区三区| 99视频内射三四| 色五月丁香A欧美com| 日韩有码久久| 超碰人人在线| 五月丁香啪啪网| 大香蕉综合在线| 嫩草综合网| 五月婷视频在线| 国产看真人毛片爱做A片| 一本九九色| 涩涩五月天综合| 日日操日日撸| 2018国产大陆天天弄| 碰碰操91| 678五月丁香亚洲综合| 天天干,夜夜爽| 少妇AB又爽又紧无码网站| 久操97| 99热这里只有精品69| 婷婷人人操| 91精品刘玥| 26UUU一区二区| 欧美Va日本Va| 欧美三9久九观看| 丁香五月首页| 深爱激情丁香五月| 亚洲中文字幕在线观看| 久久99激情| 热99精品视频| a网站免费观看| 人妻久久婷婷| 天天操电影院色狼性av| 天天日日夜夜| 亚洲成人AV在线观看| 色色色色色网站| 双性美人被调教到喷水A片| 91碰碰视频| 色五月婷婷激情| 国产99久久久国产精品免费看 | 五月婷在线观看| 中文字幕无码AV| 99色综合网| 变态另类9| 亚洲无码你懂的| 色婷婷a三区麻| 丁香激情网| 99精品视频在线观看免费| 99精品视频在线观看| 亚洲无码影片| WWW.开心五月天.COM| 色婷婷丁香五月| 激情综合色| 丁香五月手机在线| 综合色婷婷| 婷婷五月激情五月激情| 天堂在线观看视频| 俺五月| 成人视频网| 激情小说婷婷小说| 夜夜干 夜夜操| 丁香五月天黄色片| 在线观看中文字幕亚洲| 人橾人| 亚洲秘 无码一区二区三区妃光/1| 久久久久久婷| 五月花婷婷丁香| 色色欧美。| 综合在线丁香五月| 国产真实乱对白精彩| 久久er九九| 欧美黑人巨大性生话| 日本天天综合| 国产人妻人伦精品一区二区| 综合久色五月| 国产精产国品一二三在观看| 婷婷六月网| 江苏少妇性BBB搡BBB爽爽爽 | 伊人大香五月天| 婷婷99狠狠躁天天躁| 丁香六月 婷婷六月| 天天天天干| hd五月婷婷在线| 婷婷综合中文| 久久丁香五月婷| 综合亚洲AV| 99热免费精品| 99精品在线播放| 综合激情五月天| 五月丁香激情婷婷综合字幕| 牛牛热这里只有jingpin| 欧美婷婷五月天综合| 亚洲免费成人电影AV| 色色网站| 欧美色99| 婷色五月| 天天日天天日天天搞| 日韩天堂久久| 色欲丁香| 亚洲色婷婷99一9|| 超碰成人影视| 色色色婷| 丁香六月婷婷综合激情欧美 | 无码AV免费精品一区二区三区| 热久久国产视频| AV在线收看| 99视频精品| 99在线观看免费精品视频| 五月成人丁香av91| 激情久久丁香| 五月婷婷亚洲天堂激情在线| 日本美女97在线视频| 五月丁香婷婷爱| 亚洲五月天综合色| 九九精品丁香花| 97狠狠色| 婷婷五月天视频小说| 婷婷色一二三区波多野结衣| 国产 亚洲 在线| 伊人丁香五月| 五月五月婷婷| 大香蕉520| 婷婷久久综合久色| 超碰av在线| 中文不卡av| 免费AV播放| 丁香五月中文字幕久色| 在线成人网址| 婷婷五月综合性爱| 狠狠色综合网| 俺去啦综合网| 啪啪综合网| AV在线二十六页| 天天搞天天爽| 九热视频| 六月色婷婷欧美| 色玖玖综合| 男同91| 99久视频| 人人视频人人干人人做| 五月丁香六月婷婷,婷| 激情淫乱男女| 成人精品视频99在线观看免费| 97干婷婷| 激情婷婷丁香色五月| 亚洲天堂热| 青青草五月天| 成人无码精品1区2区3区免费看| 亚洲综合在线播放| 婷婷六月伊人| 色五月婷婷天天干| 九九人人精品| 亚洲天堂制| 欧美丰满熟妇BBB久久久| 无码区婷婷五月花开| 99在线精品视频免费观看20| 久久视频66| 色情婷婷。| 3DAV亚洲香蕉久久 一区二区| 欧美成人精品A片免费一区99| 开心五月天激情网| 欧美激情五月| 操笔无码| 97操操操| 91大屁股精品| 免费观看日韩成人av| 国产性爱在线| 成人av免费观看| 九九99免费视频| 九九无码| www.99情趣网| 26uuu另类亚洲欧美日本一| 五月婷婷这里都是精品| 六月亚洲婷婷6月中文字幕| 色婷婷婷婷| 97婷婷在线| 日韩精品无码AV| 精品9l九九九九九77777| 精品爱欲五| 欧美交换配乱吟粗大25P| 99免费| 操操啪| 亚洲中文字幕av| 8区视频在线| 91干在线| 婷婷97碰碰| 色激情五月| 99国产精品久久久久久久久久久| 天天久| 99热这里只有精品4| 99在线精品在线视频| 五月天婷婷丁香社区| 开心五月综合| 日日艹思思热| 色丁香影院| www.开心激情| 国产亚洲精久久久久| 婷婷五月18永久免费视频| 国产另类综合| 另类激情五月天| 六月婷婷久久| 开心深爱激情网| 99热亚洲| 色玖玖综合网| 欧美在线视频99| 天天色综网| 99热欧美| 亚洲国产精品二二三三区| 99噜噜噜在线播放| 五月丁香综合精品欧美| 色婷婷狠狠久久综合五月| 婷婷桃色网| 丁香九月激情久久| 久青操| 99re66热这里只有精品| sisi热国产| 五月婷婷婷自由综合| 婷婷五月天激情诱惑| 深爱综合网| 欧美熟女99| 色情成人五月天| 日本精品人妻无码77777| 伊人激情综合| 婷婷伊人75| 久草婷婷| 婷婷性爱无码视频| 逼里香不卡| 亚欧州精品视频| 久久婷婷六月综合综合| 久久精品国产精品| 九九九九九九九九九九九九九国产精品| 婷婷激情五月天小说| 91九色国产| 婷婷深爱五月亚洲综合| 亚洲成人人人操| 成人一级片| 色婷婷五月综合| 奇米色大香蕉| 欧洲综合视频| 九九草热在线观看| 色色亚洲五月天| 久久五月丁香| 青青草青青草五月天| 婷婷久久精品| 九九热免费观看视频| 五月婷婷人妻| 大香网伊人久久综合| 日本黄色一级| 五月丁香花激情综合网| 激情综合网婷婷久久| 天天爽天天爽视频| 综合网五月| 欧美日韩一区二区三区四区| 婷婷六月丁香五月| 91丁香| 国产亚洲色婷婷99精品| 天天日日综合| 狠狠草狠狠草| 碰人人97| 久热2025无码| 五月婷婷色播| 97在线观视频免费观看| 99久久视频| 天天综合亚洲综合| 色综合丁香| 五月丁香六月停停停| 婷婷爱在线观看| 久色资源| 青青草国产亚洲精品久久| 人人干女人| 精品久久久久久久久久久久人妻| 亚州色婷婷| 夜色.cnm| 五月激情另类| 婷婷五月天奸女| 一级黄色片看看| 日韩三级片一区二区| 99精品在线| 五月综合激情啪啪啪啪啪| 色婷婷色99国产综合精品| 五月丁香六月婷婷国产视频| 公的粗大挺进了我的密道| 欧美精品啪啪| 草逼大片| 成人中文网| 亚洲 综合中文| 91婷婷色五月| 狠狠久久婷| 亚洲行行色色| 国产肥白大熟妇BBBB视频| 天天色丁香| 色婷婷电影网| 久久五月热| 丁香六月婷婷色XXXX| www.天天日| 97碰久久| 久久精品夜色噜噜亚洲a∨| 97涩婷婷婷婷基地| 五月丁香六月婷婷亚洲激情综合| 五月色影院| 成人国产综合| 九九热re99re6在线精品| 伊人大香久久| www.色擼擼.com| 久久久久久久11111111111| 六月婷婷之青青草| 婷婷婷婷色| 五月激情婷婷综合| 神马欧美精| 成年视频免费观看| 天堂草在线看www| 操逼电影免费看| 视色综合| 中文超碰视在线| 色五月丁香六月婷婷| 亚洲宗合激情| 天天透天天摸天天舔| 中国操逼99| 久久九精品| 丁香五月欧美婷婷综合| Va另类视频| co超碰在线观看| 亭亭五月天黑人2014| 五月天婷久久| 五月丁香婷婷综合网色欲| 99久久户外勾搭| 在线A色| 婷婷亚洲在线| 俺也高清无码高清视频| 久久99激情五月天| 色婷婷婷婷五月天| 日本久久99久久| 久久久.COM|