欧美成人午夜精品久久久,国产?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
返回資訊列表
www.ywav| 9热在线观看| 色色综合成人网| 中文字幕永久免费| 日日干综合| 99色视频| 国语精品探花| 九九AV在线| 天天精品视频免费观看| 精品,99| 五月婷久久综合| 日韩在线99| 五月激情婷婷图片基地| 五月婷婷色白丝| 婷婷免费无马| 色色色在线观看| 99在线er热| 黑人熟妇一区二区三区| 97天堂| 色狠狠综合| 亚洲秘 无码一区二区三区妃光/1| 啊V视频在线观看| 亚洲高清在线| 亚洲第一精品成人999久久精品| 久9免费视频| 91欧美| 色色色色色日韩午夜激情 | 天天草天天日| 丁香五月天激情网址| 久草 tingting| 丁香六月色婷婷| 热99热9| 综合另类视频| 日本一区二区三区精品视频| 色婷婷久久| 五月天精品视频| 色色操| 精品9久| 97久久草草超级碰碰碰| 五月婷婷说| 人人澡玖玖一| 亚洲天堂无码| www91色网站| 99热99在线| 五月婷六月天| 狠狠五月天婷婷| 91日日日| 色色五月天com| 日本天天色| www.婷婷五月| 色色亚洲五月天| 开心丁五月| 午夜日韩久久久网站| 国产真实乱了老女人视频| 五月亭亭网成人在线视频| 2025最新亚洲激情在线| 久热婷婷| 中文字幕激情综合| 中文字幕黄色电影网址| 日本一区二区三区精品视频| 婷婷色五月大香蕉在线| 丁香婷婷综合激情五月色| 色五月偷偷| 久色国产| 99av视频| 激情五月天无人视频在线| 色婷婷在线视频久| AV 3P| 久久久人妻久久久| 狠狠色五月激情| 激情综合五| 99精品网址| 日日干日日| 天天肏视频| 激情五月影院| 婷婷成人五月天| 五月婷婷伊人久久| 狠狠五月天激情| 久久99热免费| 天天色天天爱天天舔| 久久六月天| www.99精品视频| 亞洲自怕| 九九精品碰| 丁香五月激情综合久久| 色婷婷人人| 狠狠爱青青草| 99久久色| 丁香婷婷色色| 婷婷开心深爱五月天| 青青色com久久| 七七久久婷婷| 丁香五月婷婷基地| 天天干天天色综合| 婷婷丁香五月激情| www.色五月| 天天干天天操天天爽| 久热 91| 日本九婷婷| 第四色五月天| 色狠狠色| 国产精品第一国产精品| 20253AV| 99色嘟嘟精品网站| 123草逼网| 性色av大香综合| 天堂久久性| 亚洲视频操| 五月天激情网址| 婷婷精品免费久久| 中字幕视频在线永久在线观看免费| 欧洲色色| 91伦| 婷婷五月天黄色| 91精品婷婷国产综合久久| 婷婷情色五月天| 色私五月婷婷| 99热精品在线播放观看| 丁香五月亚洲无码| 在线视频99| 99视频久久| 色五月婷婷网| 婷婷五月日本| 亚洲热手机在线观看| 99这里只有精品国产| 提提热五月天婷婷| 天天在线XXX| 99综合一区| 狠狠操狠狠操| 嫩模草| 4438成人电影| 五月丁香色情| 欧美啄木乌丝袜人妻系列| 亚洲精品国产精品乱码视99| 可以直接看的AV| 狠狠色婷婷| 国产午夜成人免费看片无遮挡| 天天日天天日天天搞| 六月 丁香 视频| 99资源在线视频| 亚洲精品国产成人AV在线| 九九热精品| 日韩少妇内射免费播放| 色综合天堂| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 天天综合天天玩夜夜玩天天玩夜夜玩| 无码99| 九九热免费视频| 操操综合网婷婷| 大香av| 人人玩人人橾| 人人操人人干AV| 五月丁香综合| 久婷婷婷| 久久久久久久久人妻| 日本综合色色| 99久久色| 另类图片 五月激情| 天天综合网在线| 激情五月激情综合网| 97色 五月天丁香| 日本一级一片免费视频| 色停停五月天| 亚洲日韩一页精品发布| 99热6色| 日本va欧美va国产激情| 在线综合亚洲欧美65| AAA久久| 丁香五月色欲| 九色综合网| 色综合网上班开心婷婷久久| 五月丁香啪啪| 99久在线观看| 亚洲成人网站在线播放| Aα在线免费观看| 色婷婷综合中心| 免费黄色视频网址| 综合99综合久久久久久久| 99在线视频在线观看| 九九综合伊人| 99色五月| www久久艹| Caoporn公开| 99在线看片| 婷婷五月色| www.henhenl| 亚洲国产99| 亚洲操操| 99热 在线观看| 久9视频| 婷婷五月天丁香成人社区| 五月色丁香激情| 蜜桃成语时李时珍 免费| 丁香五月色情| 色婷婷网| 丁香五月亭亭六月综合激情网| 99精品自拍| 久色激情| 精品久久久人妻| 激情爱爱网站超大免费| 91婷婷在线| 五月婷婷综合影院| 99热偷拍| www色婷婷久久综合久色| 色婷婷日本| 色五月大香蕉婷婷| 久操激情| 丁香五月婷婷久久综合激情网| 日本色色网站| 99热91| 超碰91在线| 大香蕉九操| AV成人在线播放| 日本三级毛片| 色欲色香综合网| 99er精品| 婷婷五月天免费99| 99综合网| 亚洲婷婷在线播放十月| 嫩草极品| 色五月色五天免费视频| 99久在线精品| 五月婷婷综合网| 综合性视频99| 丁香六月青青草| 丁香五月av| 婷婷丁香18| 狠狠五月天婷婷| 女人高潮内射99精品| 六月米奇色综合| 免费无码毛片一区二区A片| 久热这里只有精品视频6| 国产在线网址1| 。久久久久久久久久久久久久人妻| 久久激情中文| 综合网五月| 狠狠狠狠狠狠色| 五月色影院| 五月丁香婷婷激情在线视频| 激情五月天色色色| av色色国产| 久久久er热| 亚洲AV无码电影| 26uuuuuuuu国产| 日韩无码人妻一区二区| 色色色色网站| 六月色播| 狠色狠色狠狠色综合网| 无码九九九九| 欧美激情性做爰免费视频| 久久婷婷五月天激情唯美| 日韩无码系列| 欧美性爱五月天| 久久九九蜜| 一本色道久久88加勒比—| 97热视频| 操日挥操日日| 丁香五月婷婷婷婷欧美综合| 1024在线视频| 激情第四色| 久久婷婷五月综合色丁香| 91免费看片| 激情五月综合| 免费啪啪亚州视频| 国产精品成人av在线观看春天| 色婷婷色情| 亚洲亚洲人成综合网络| 日本婷久久| 综合色五月天| 日本三级中国三级99人妇网站| 婷婷99综合| 在线观看的av| 五月丁香六月婷婷无码| 激情黄色五月天| 婷婷五月激情小说| 色五月婷婷五月天| 五月丁香欧美综合| 99热骚货| 婷婷五月小说色综合| 91狼友视频在线观看| 五月色婷婷中文字幕| 亚洲综合五月天综合| 日本久久超碰| 国产精品成人网站| 牛色色碰| www.婷婷六月天| 欧美性爱中文字幕| 婷婷激情社区| 婷婷的五月天另类视频| 丁香五月婷婷亚洲人| www.久操| 99热爆在线| 五月天国产| 五月天播播中文字幕| 五月婷婷六月丁| 丁香六月色婷婷| 九九美女视频| 中文字幕第四色.999| 色综合久久久综合久久网| 操一区| 日韩色情亚洲五月天婷婷| 婷婷99中文字幕| av大片在线| 婷婷色五月开心五月| 九九在线免费观看| 妻久久久久| 在线精品97| 婷婷涩五月| 免费五月婷婷网| 久色视频在线| 婷婷激情性爱| 色综合中文色综合网| 五月丁香久久久| 色色色色色综合| 五月婷婷激情综合| 色色网站在线| 开心五月深爱激情| 超碰熟女拍拍| 久久 视频这里只有精总| 伊人丁香五月| 丁香六月av| 成人在线视频一区| 日韩国产AV播放| 色婷婷亚洲婷婷| 九九AV在线| 欧美成人色婷婷| 五月丁香六月婷婷婷婷| 开心五月婷婷六月丁香| 琪琪秋霞| www.激情五月天.com| 丁香婷婷黄网站| 欧美性久| 99精品热视频| www.婷婷六月天| 色五月首页| 五月色天情| 性99网站| 色五月天成人| 99热这里只有精品99| 无码色色| 五月花在线观看视频| 五月婷婷久| 九九热这里都是精品6| 99热婷婷| 99热这里只有精品手机在线观看| 色婷婷97| 久热久色| 久久五月天黄色五月天色网址| 九月婷婷久久| 中文久久久人妻| www.狠狠操.com| 久久久久人无码人妻| 激情五月天免费视频| 五月丁香久久丝袜啪啪| 开心激情婷婷| 99热在线观看免费精品| 男人操女人高潮91视频| 婷婷丁香色性爱| 精品久久婷婷| 九九这里只有精品在线视频| 亚洲99手机免费看视频| 婷婷综合五月| 99ri精品| 一本久婷婷综合| 日韩一级网站| 99热思思在线观看| 可以免费看的AV网站| 五月天社区婷婷丁香社区| 在线看片av| 九九色综合| 久久九九Com| 久久 婷婷 五月天| 伊人婷婷五月| 99色色| 99热这里有精品| 婷婷五月在线| 丁香五月AV在线| 99日这里只有精品| 六月色婷婷| 色欲久久99精品久久久久久| 狠狠爱综合网| 色五月婷婷五月天激情综合| 五月婷婷六月丁香| 丁香五月婷婷偷拍| 激情五月丁香五月色| 久久影视婷婷五月| 99re久热只有精品6在线直播| 亚洲夜夜操| 色综合com| 五月婷三级片| 五月婷色| 99re6久热只有精品6在线直播| 99久久婷婷国产综合精品草原| 国产人人操| 亚洲综合字幕色色| 色色色色色网| 激情98色婷婷五| 婷婷六月啪啪| 久久九九色| 精品一二三区久久AAA片| 美女91一起草| 激情黄色小说五月天| 日本啪啪网| 91干婷婷| 精品国产va久久久久久久| 丁香六月婷婷| 四色五月婷婷| 亚洲无码成人性爰网| 欧美毛片www| 亚洲中文字幕AV| 日韩三十六页| 色色色综合视频| 成人色图情色成人网 www.5b5b5bcom 五月天 | 天天干天天日蜜臀av| 2018夜夜草| 99啪啪视频| 五月激情婷婷开心| 伊人久久丁香狠狠婷婷综合香蕉| 玖热精品综合视频| 五月激情综合网| 亚洲色就是色色色| 激情婷婷五月天网址| 色综合中文| 伊人在线另类| 9这里只有精品| 婷婷中文字幕| 综合五月草| 丁香婷婷色色| 中字幕视频在线永久在线观看免费| 99人人干| 色天堂A| 日本性视频| 五月天激情国产综合AV| 婷婷六月色| 九九九九综合| 色五月超碰| 97操碰人人| 99热久久这里只有精品2010| 激情综合网色五月| 免费试看小视频 99| www.五月天| 丁香色六月婷婷| 综合久久婷婷| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 99热在线99| 桃色成人网| 操操操av| 少妇人妻丰满做爰XXX| 欧美va国产va| 精品九九久久| www.天天日| 丁香婷婷色色| 色五月首页| 久久99热免费| 大香伊人久色| 丁香六月亭亭久久综合| 亚洲成人网站在线播放| 亚洲1区| 天天日日夜夜爽| 激情五月影院| 天天精品视频在线观看视频| 精品九九婷婷| 亚韩在线视频| 六月丁香婷婷亚洲中文玖玖| 亚洲乱码日产精品BD| 色婷激情网| 337久久| 婷婷的色色五月天| 久久99婷婷| 五月天社区| 成人小说 五月天 婷婷| 亚洲国产网站| 99九九久久| 久久五月视频| 色婷婷视频| 五月丁香六月婷婷开心网| 国产精品 的国产| 五月婷久久| 婷婷开心青青草| 九九精品9| 播五月,色五月,开心五月播放器 | 五月四色婷婷| 五月天婷婷社区久久综合| 丁香五月电影| 99日韩网站| 色情开心五月| 五月婷婷激情| 亚洲熟女色| ...婷婷国产成人亚洲日韩| 亚洲AV成人一区二区在线观看| 日韩人妻无码精品| 99热在线观看| 色噜噜97视频在线观看| 天天拍久久| 99干日本| 婷婷中文字幕欧美| 欧美色婷婷| 26uuu最新地址| 激情久久久| 精品9久| 婷婷少妇激情| 婷婷五月综合激情免费视频| 色婷婷XXXXX| 午夜福利8055| 久久视频在线视频| 欧美色色色| 五月婷婷中文字幕| se99在线| 丁香激情久久| 人操91在线| 日本一级黄色电影| 99riAv1国产在线观看| 婷婷一本和五月丁香| 成人 在线 日韩| aaa久久久| 99热这里只有精品在线观看| 久久激情五月婷婷| 九九热在线视频观看| 久久er+| 人人操91| 五月天婷婷爱| 激情啪啪五月天| AA片在线观看视频在线播放| 丁香五月五月婷婷| 日本三级中文字幕| 五月天六月色| 可以直接看的av| 最新亚洲色色网| 91精品综合久久久久久五月丁香| 91热网址| 人人操操| 五月天色欧美| 六月丁香婷婷爱| 亚洲成人AV电影在线| 99婷婷| 婷婷五月天综合在线| 99区视频| 色婷婷五月基地在线| 久久色情| 激情六月丁香| 色爱综合网| 精品人妻在线| 超碰在线综合| 玖玖午夜视频| 五月婷婷深深爱| 一起草aV| 久色五月天| 五月天婷婷激情四射综合| 人人人操 超碰| 爱爱网址9| 免费无码毛片一区二区A片| 99无码视频| www.狠狠| 久久99久久99久久99人受| 国产成人网址| 久久婷婷视频| 99精品性爱| www激情| 久久九九热视频| 天天色色天天| av亚洲国产小电影| 丁香五月天AV在线 | 玖玖色资源| 日本久草福利| 午夜爱爱网站| 无码人妻电影| 日韩黄黄| 高清无码一区二区三区四区| 亚洲色a| 久久99性爱| 夜夜操夜夜操| 91碰在线| 五月丁香六月激情综合| 婷婷香草网| 婷婷五月丁香青青草在线| 人人色人人弄人人操| 97在线日韩| 丁香激情五月少妇| 婷色五月天| 日韩 欧美 国产 一区 二区| 日日爽日日操| 思思热久久爱| 亚洲综合视频网| 日本三级日本三级99| 激情五月丁香五月| 国内自拍97在线| 久久中国毛毛片爱久久| 操逼毛片国语对白| 五月婷六月天| 亚洲第一综合| 成片免费播放| 久久久人人操A V| 涩综合网| 天天成人综合| 五月天丁香婷婷社区| 色五月六月| 欧美性猛交99久久久久99按摩| 婷婷性爱视频在线| 婷婷丁香色五月亚洲| 久久这里99| 五月天精品综合在线| 五月丁香成人网| 色色色综合网| 五月天伊人| 婷婷5月久久综合网站| 婷婷丁香婷婷97| 色九月婷婷综合| 天天操天天操综合| 婷婷五月天美女21p| 一区二区成人电影| 婷婷五月天A V| 久久一品区| 中文字幕 码精品视频网站| 草AV9999| 色五月五月婷婷| 五月婷婷无码| 五月天激情网址| 久思思热视频在线观看| 婷婷六月伊人| 国产超碰在线| 久久久精品婷婷五月天| 五月丁香啪啪综合| 996日日爱| 91seav| 黄桃AV无码免费一区二区三区| 99热在线观看99| www,五月天com| 五月丁香无码视频| 第五色婷婷| 狠狠色丁香久久综合婷婷亚洲成人福利| 九九大香视频| 99热亚洲精品66| 无码啪啪| 丁香五月婷婷操逼| 五月婷婷中字在线| 五月丁香六月激情| 成人国产欧美大片一区| 夜夜 操无码| WWW.色婷婷.COM| 91超级碰| 视频在线免费观看欧洲乱码| 丁香婷婷六月天| 99热这里只有精品1025| 大香蕉在线观看9| 丁香激情五月综合网| 五月婷婷婷丁香播| 久久精品熟女亚洲AV麻豆| 婷婷丁香六月| 亚洲激情综合| 超爽内射| 激情久久天天| 婷婷综合色图| 婷婷娌伦网| 伊人丁香花综合影院| 天天做天天爱天天高潮| 色五月婷婷操逼| 九月丁香五月婷婷| 91性交在线播放| 亚洲另类电影| 99免费在线视频| 中文字幕欧美精品久久| 欧美毛片www| 婷婷激情图片| 丁香色五月直播| 色婷婷天堂| 热婷婷久| 99热这里只有精品国产精品| 丁香五月婷婷综合啪啪| 天堂五月婷婷| 欧美性猛交99久久久久99按摩| 欧美色图45678| 九九色精品| 午夜丁香综合婷婷| 99精品热| 色婷婷在线影院| 性天天中文网| 99热爆在线| 99re这里有精品手机在线| 色九九综合| 综合亚洲六月婷婷在线| 色99视频| 欧美A级网站| 五月激情在线| 色老久久| www.jiujiujiu| 久久婷狠狠色| 9久久久久久久久久久| 国产精品丝| 99热青青草| 99热综合在线| 99碰超| 色婷婷五月天中文字幕| 婷婷操超碰| 91网站黄| 天天干天天色综合| 色色色色热热| 国产毛片精品一区二区色欲黄A片| 这里只有精品99视频| 五月天偷拍| 激情五月综合免费| 丁香婷婷六月| 色色色色网| 91丨九色丨熟女丰满| 色噜噜狠狠色综合成人99| 久久激情综合| 狠狠操狠狠| 99区视频| 美女视频图片久久91| 综合色激情| 69精品人人人人人人| 97碰超级人人看| 五月丁香香蕉| 另类天堂| xxx日本东京热| 超碰2021| 91色综合网| 九九热超碰| 国产成人网| 精品,99| 国内久久亭亭| 亚洲愉拍99热成人精品| 天天草天天舔| 在线不卡的视频| 人妻激情综合| 欧美色骚婷婷五月天| 丁香六月天婷婷色| 另类激情五月| 亚洲色婷婷网站| 丁香9月婷婷| 日本综合色色| 亚洲小说欧美激情| 99久久婷婷五月综合| 婷婷成人五月天成人文学| 激情5月天天天| 香蕉伊人综合| 99热最新网址| 五月婷婷在线免费观看| 丁香五月激情宗合网| 久久激情中文| 色五月综合在线| 久久996re热这里只有精品无码| 亚洲图色五月天| 五月婷婷中文字幕| 丁香五月婷婷色播艳门照| 92久久| 成人五月丁香花| 丁香激情久久| 狠狠撸激情综合丁香五月天俺来啦| 色情婷| 五月Huangsewang| 97香蕉久久超级碰碰高清版| 色综合五月婷婷狠狠干| 久9热在线视频| 大香蕉久久视频久久视频| 91一起艹| 狠狠插日日干撸| 色播丁香| 日韩欧美成人片| yazhoujiqingav| 天天日夜夜拍| 婷婷情爱五月天6| 色婷婷视频| 国产成人av在线播放| 9视频在线成人网站| 丁香色六月婷婷| 五月婷婷 婷婷五月 一区二区 久久久| 最新av在线观看| 天天色宗合| 五月人妻婷婷| 人人干人人干骚美女| 99色免费| www五月婷婷88导航| 五月香婷婷| 伊人婷婷色| 婷婷五月中文在线视频| 五月激情精品视频| 大香蕉五月天| 激情綜合網址| 99精品丰满| 欧美成人一区二区三区在线视频| 久久婷婷色| 久久538| www夜夜操comwww| 色天天综合天天综合频道。| 91色在线/日韩| 美国不卡视频| 操97在线观看| 琪琪色五月婷婷老师| 97色色色| 九九激情| 天天天天天天操| 99色| 99久久精品国产色欲| 99久久激情视频| 婷婷六月激情综合| 丁香涩涩爱| 久久六月天| 色色网站在线| 色五月天成人| 99热99精品| 日本女人久久| 久99久视频| 精品婷婷| 五月丁香操婷逼| 五月久久婷婷| 久操大香蕉| 九九热视频这里只有精品| 婷婷色婷婷| 色色丁香| 香蕉97碰碰碰欧美| 五月婷婷 自拍| 激情婷婷网| 91在线视频综合| 男人天堂99| 五月天婷婷激情网| 丁六月激情| 熟女五月天久久综合| 婷婷五月综合激情免费视频| 婷婷五月婷| 开心激情站| 亚洲熟女色| 性爱视频99| 日日躁夜夜躁狠狠久久AV| 五月丁香久久久| 丁香久久| 99热最新精品| 婷婷五月丁香六月| 婷婷99综合| wwww.色婷婷| 欧美在线操| 五月丁色AV| 色婷婷丁香五月综合| 激情五月婷婷视频一区二区三区| 婷婷久久99| 最近中文字幕2019视频1| 色色色色丁香| 98色花堂98t.R| AV堂狠狠干| 亚洲欧州色情在线观看| 欧美日韩成人在线网| 色婷婷五月在线| 天堂久久久久天堂网| 欧美婷婷九月| 婷婷激情五月天网站| 色婷激情网| www999日韩精品| 99热综合| a在线免费v| 精热在线综合网| 五月丁香青草综合啪啪| 武则天精品久久| 免费视频WWW在线观看网站| 视频在线免费观看欧洲乱码| 91丨九色丨大屁股| 思思re99视频在线观看| 97色碰| chaopengdaxiangjiao| 色婷婷久久天天性爱| 婷婷综合网在线| 少妇性按摩无码中文A片| 99精品无码| 色色丁香色五月| 婷激情五月天视频导航| 夜夜干天天操| 最近中文字幕在线中文视频| 1024欧美日韩精品久久久| 草操网| 欧美乱码国产一级A片| 成人免费120分钟啪啪| 伊人久久综合| 五月丁香欧美综合免费视频| AAA久久久| 五月婷婷综合色啪首页| 国产亚洲精品人人| 91日视频| 一二线视频 另类| 久久免费操| 五月丁香激情六月| 亚洲无码99| 亚洲av无码精品色午夜| 在线A色| 久久99精品视频| 97超级碰碰碰| 色99欧洲色19| 大香蕉九九| 超碰在线免费| 天天草天天摸| 99精日本久久| 亚洲色色爱| 深爱激情六月天| 天天激情综合| 婷丁香五月天| 97色碰碰公开视频| 99 热| 97在线/亚洲| 嫩草AV久久伊人妇女超级A| 色色色色色热| 成人网在线视频| 国产操逼网站| 日本不卡五月婷婷丁香| 性欧美大战久久久久久久83| 99久久精| www.yw尤物| 97干婷婷| 深爱激情综合| 天天色凹凸| 五月婷婷啪啪网| 亚洲国产精品SUV| 五月婷婷深深爱爱| 色色丁香| 这里只有精品亚洲| 91碰视频| 狠干综合| 99热99re6国产在线播放| 九九婷婷网五月天| 天天爽人人综合免费7799| 67194中文字幕| 97碰成超视频免费视频| 九九热只有精品| 久久一操| 十月色综合| 婷婷色情五月| 丁香五月Av| 午夜丁香 婷婷| 四色五月婷婷在线观看| 九九九九中文字幕| 停停五月丁香| 99热第一页| 播五月丁香三月婷婷| 激情五月天的婷婷| 五月开心网| 五月婷婷激情| 中文字幕永久免费| 亚洲一个色| 激情五月丁香五月| 五月丁香WWW| 中文字幕日本最新乱码视频| 婷婷伊人五月| www久久久久久久| 激情综合丁香五月| www.激情五月天.con| av在线免费网站 | 91婷婷在线| 婷婷天堂综合| 79亚洲精品少妇| 久草热8精品视频在线观看| 日日鲁鲁夜夜爽爽| 91av视频| 五月婷婷激情| 成人国产综合| 成人综合网站| 日日夜夜爽爽| 国产资源在线视频| AV在线中文| 婷婷五月 丁香六月| 亚洲三级无码| 丁香五月人妻| 日韩成人电影av| 91干| 色婷婷电影| 久久99这里只有精品视频| 碰人人97| 五月丁香啪啪啪综合网| 开心五月婷婷六月丁香| av电影在线播放| 色色色在线观看| 五月丁香六月色婷婷综合五月天| 伊人五月天| 婷婷五月情天| 26UUU欧美激情一区二区| 日本片日本片祼观看网站在线看中文版网页在线看 | 婷婷丁香五月天在线视频| 中文字幕丰满乱孑伦无码专区| 熟女激情五月天 | 岛国av网站| 激情婷婷丁香五月天小说| 七月丁香婷婷 色色| 国产avapp 网| 熟女五月天久久综合| 婷婷99丁香| 五月天婷婷色色| 色激情五月| 激情综合网丁香| 男女啪啪视频久 9| 在线视频你懂得| 激情综合网激情五月丁香| 在线视频另类| 日韩熟女啪啪视频| 1024日韩| 色婷婷精品| 激情综合青草| 97自拍99| 色狠狠色噜噜AV天堂五区| 丁香五月手机在线| 激情图片婷婷| 久婷婷色| 成人无码免费一区二区中文| 超碰女人天堂| 天天成人丁香美女AV| 五月丁香| 自拍视频99| 无码日本精品XXXXXXXXX| 深爱综合网| 激情欧美婷五月| 婷婷狠狠97| 久久婷婷五月天大香蕉| 婷婷中文无码| 五月婷av| 5月婷婷综合| 91婷婷丁香五月| 大香蕉视频99| 色色热| 丁香久久综合| 婷婷五月伦理| 高潮毛片遮挡费高一百度| 久久婷婷六月综合综合| 国产在线aaa片一区二区99| 人妻精品在线| 开心激情五月天网| 成人小说 五月天 婷婷| 亚洲网视屏| 久在线综合69| 亚洲春色奇米影视| 丁香五月天啪啪| 婷婷 伊人 久久| 人人爱人人摸人人澡| 丁香六月av| 五月丁香亚洲校园欧美| 亚洲视频无| AV在线免费观看不卡| 五月天久久久| 99re8这里只有精品99re8热视频| 五月天亚洲综合网| 超碰人人操人人9| 97日韩无套内| 9999久久久久| 国产在这里只有精品| 天天色粽合合合合合合合| 欧美美美女性色视频| 五月婷婷六月爱| 久久精品国产色| 99久久久久| 女同激情久久av久久| 五月天激情啪啪| 日本丰满久久| 色综合99无码 | av电影在线播放| 这里只有精品久久| 五月丁香另类图片| 五月丁香久久呀| 99久热这里有精品| 99啪| 丁香久月婷| 五月J香蕉婷婷| 五月丁香久久| 99视频内射三四| 天天操天天插| 六月丁香五月天| 精品人妻久久久| 九九sese| 色五月婷婷久久| 丁香五月激情棕合| 九九热在线视频观看免费10| 狠狠爱丁香婷| 久久久婷丁香五月| 国产国产乱老熟女视频网站97| 婷婷五月天综合网| 九九碰九九爱97| 日本三级日本三级99| 26uuu国产| 五月天最新网| 午夜不卡成人一区二区| 国产Va视频| 五月熟妇婷婷久久| 美女五月天婷婷| 欧日韩AV| 六月丁香成人| 九九综合久久丁香婷婷,开心激情综合网| 99精品热| 丁香六月婷婷综情欧美| 五月综合视频在线| ay2区| 国产五月丁香在线| 开心五月天私房婷婷| 五月天合网| 婷丁五月| 五月天欧美 另类小说| 激情网站综合五月天| 婷婷亚洲丁香五月| 五月婷婷丁香六月在线| 五月婷婷天| 欧美三9久九观看| 亚洲激情淫网| xx综合网| 激情五月六月婷婷综合啪啪| 99视频在线观看视频| 九九热短视频在线观看| 久久这里只有精品16| www.色擼擼.com| AV五月丁香| 五月天停停成人网| 久久一热| 91久久色| 久久9视频欧美| 婷婷五月在线观看| 国产内射婷婷| 丁香狠狠色婷婷久久无码视频| 91精品综合久久久五月天| 久久久久久久久久久月丁| 色色狼人综合| 综合欧美五月婷婷| 丁香五月天在线直播观看| 国精产品一区二区三区| 99热在这里只有精品| 9久久婷婷国产综合精品性色| 久热九九| 五月婷婷综合网| 激情玖玖综合网| 91久久久久久久久久| 在线播放中文字幕| 五月色丁香国产在线视频| 色六月视频| 久久WW| 99视频| 婷久久久| 五月丁香亭亭操逼| 欧美五月丁香在线| 婷婷五月天六月| 色婷婷丁香五月| 五月丁香影院| 婷婷综合久久综合| 欧美图片丁香五月天| 婷婷久久午夜网| 婷婷五月丁香伊人网| 五月天狠狠色| 丰满老熟妇BBBBB搡BBB| 日本久碰| 99re在线视频精品,这里只有精品18,| 情婷婷五月天在线| 丁香九月激情久久| 26uuu欧美日韩| 婷婷五月色综合| 婷婷91| 国产偷人爽久久久久久老妇APP| 婷婷丁香综合| 香蕉婷婷色五月| 国产色五月| 99这里只有精品|v| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 26uuu亚洲精品国产| 超碰在线视屏| 玖玖色综合色| 丁香六月久久| 91大屁股| 午夜婷婷| 日本性视频| 九九热视频精品2| 亭亭五月色男人| 91成人性爱视频| 成人AV综合在线| 六月综和久久| 五月天偷拍| 全部老头和老太XXXXX| 国产黄色一级片| 午夜不卡成人一区二区| 婷婷91| 日本美女97在线视频| 思思久久99热| 婷婷开心六月| 天天干天天做| 99热狠狠操| 久热最新视频| 久久丁香五月天| 一区三区视频有限公司| 丁香婷婷免费| 婷婷色网站| AA片在线观看视频在线播放| 五月天三级久久| 日韩在线五月天婷婷| 欧美激情五月天| 久久人操| 十一月婷婷激情四射| 欧美性生交xXxX久久久| 无码色色色色色| 色五月欧美| 五月婷婷香蕉| 丁香色六月婷婷| 久久久久人妻网址| 婷婷五月激情四射手| 99这里只有精品国产| 91ncom.色| 97热久久| 五月天狠狠网| 日韩AV在线影片| 婷婷五月丁香影院| 精品五月天| 97色女人在线| 五月亭亭直播| 日韩AV免费看| 日本女天天爽| 天天看A片| 91在线操| 综合网五月| 久久婷婷大香蕉| 99国产性感视频| 亚洲综合网在线| www.十八禁不禁AV.com| 婷婷六月天| 99色在线视频观看| 丁香五月婷婷影院| 久久久性爱网| 丁香 久久| 9月色婷婷| 亚洲国产精品VA在线看黑人| 色综合色综合色综合| 色色哒五月婷婷六月丁香| 国产性av| 五月婷婷之六月丁香| 色狠狠色噜噜AV天堂五区| 五月天婷婷三级黄| 色综合色综合网| 五月婷婷色播| 色99热| 日本91在线| 天天摸天天肏| 久久久五月天婷婷| 欧美色偷偷大香| 激情综合丁香| 欧美天天干天天草| 日本欧美成人片AAAA| 天干天天干天天天天天| 国自产拍偷拍精品啪啪一区二区| 嫩草AV久久伊人妇女超级A| 人人干av| 9久国产| 五月婷婷丁香大陆免费| 久久久宗合| 欧美Va日本Va| 免费人人操| www.婷婷.com| 99久在线观看| 色婷婷基地| 女性自慰系列第五页| www.五月.com| 丁香五月激情婷婷视频| 久久精彩免费视频| 噜噜噜噜噜日本视频| www.狠狠| 亚洲色欲欧美一区二区三区| 久久久亚洲精品一区二区三区浴池| 丁香五月天激情综合网| 碰99在线| 97热这里只有精品| w婷婷五月婷婷w| 六月丁香啪啪| 婷婷丁香第一页| 超碰69天堂| 99精品久久久久久久婷婷久久| 色婷婷亚洲综合av| 天天肏在线观看| 久久婷丁香五月| 超碰人人在线| 五月婷婷五月天亚洲无码| www,setingting| 五月婷婷成人| 91精品91久久久中77777|