亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

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

MRAM替代EEPROM:瑞薩RA2L1工業(yè)數(shù)據(jù)存儲方案實(shí)踐 做工業(yè)嵌入式設(shè)備的這幾年一提到“存儲和讀取數(shù)據(jù)”很多人第一反應(yīng)就是 SPI Flash 或者 I2C EEPROM??梢坏﹫鼍白兂筛哳l寫日志、斷電要保數(shù)據(jù)、產(chǎn)品生命周期內(nèi)要反復(fù)擦寫這兩類器件很容易成為整個系統(tǒng)里最先掉鏈子的部分。我最近在一個工業(yè)數(shù)據(jù)采集器項(xiàng)目里把這些底層存儲整個換成了 Everspin 的 MR25H40CDF 磁阻存儲器MRAM主控用的是瑞薩 R7FA2L1AB2DFP搭建了一套適合工業(yè)環(huán)境的數(shù)據(jù)讀寫方案。這篇就完整記錄這顆 MRAM 和這顆 MCU 的配合過程為什么選了 MRAM、硬件怎么接、FSP 里怎么配置 RSPI、驅(qū)動代碼如何組織、以及實(shí)測中遇到的那些典型問題和排查方法。如果你也在做嵌入式數(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àng)目現(xiàn)場設(shè)備每 2 秒要記錄一條 16 字節(jié)的工況數(shù)據(jù)。一天下來就是 43200 次寫入一年就是 1576 萬次左右。拿 100 萬次壽命的 EEPROM 來算兩個月多一點(diǎn)就報廢了。哪怕把壽命說到 1000 萬次一年左右也要提心吊膽。現(xiàn)場反饋回來的故障也確實(shí)吻合寫失敗、數(shù)據(jù)偶爾丟失、設(shè)備重啟后日志斷檔。這還沒算 EEPROM 的另一個問題寫一頁和寫一個字節(jié)的時間幾乎一樣但頁編程前必須把整個頁擦掉。日志類應(yīng)用往往是隨機(jī)追加、字節(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)生高壓把電子注入進(jìn)去擦除時再靠隧穿效應(yīng)把電子拉出來。這個過程天生慢而且每一次擦寫都在氧化層上留下一點(diǎn)損傷所以壽命有限。MRAM 用的是磁隧道結(jié)MTJ。存儲單元里有兩層磁性材料中間夾著一層極薄的絕緣層自由層的磁化方向和固定層的磁化方向平行或反平行時隧道電阻不同對應(yīng) 0 和 1。寫入的時候施加電流產(chǎn)生的磁場或自旋極化電流直接把自由層的磁化方向翻轉(zhuǎn)。沒有電荷注入沒有擦除操作翻轉(zhuǎn)完成數(shù)據(jù)就穩(wěn)定了。理解了這個原理你就能明白為什么 MRAM 在工業(yè)場景里這么香寫入前不需要擦除所以隨機(jī)寫、字節(jié)寫都很快不挑地址。寫壽命極高不用做磨損均衡。非易失性斷電后數(shù)據(jù)不丟而且不存在電荷泄漏的長期可靠性隱患。讀速度接近 SRAMSPI 接口跑到 40MHz 沒什么壓力。數(shù)據(jù)保持能力通常在 20 年以上。當(dāng)然MRAM 也不是沒有缺點(diǎn)最直接的就是單位容量價格比 Flash 高而且大容量型號選擇少。但在工業(yè)數(shù)據(jù)記錄這個場景里容量需求往往只有幾十到幾百 KBMRAM 的價格劣勢并不明顯可靠性優(yōu)勢卻是實(shí)打?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而是單獨(dú)拿一個普通 GPIO 來控制。原因后面寫驅(qū)動時會詳細(xì)說核心點(diǎn)是 MRAM 的寫使能和寫執(zhí)行需要精確控制 CS 的下降沿和上升沿用 GPIO 軟控時序最直接可讀性也最好。我的接線示意如下MR25H40CDF 引腳功能接 R7FA2L1AB2DFPCS片選P301GPIO 輸出默認(rèn)拉高SCLKSPI 時鐘RSPI0 SCLKSI數(shù)據(jù)輸入RSPI0 MOSISO數(shù)據(jù)輸出RSPI0 MISOWP寫保護(hù)接 3.3 V禁用寫保護(hù)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 腳叫寫保護(hù)低電平有效。接低電平會禁止寫狀態(tài)寄存器和數(shù)據(jù)區(qū)具體行為取決于器件配置但最穩(wěn)妥的做法就是直接接高電平徹底關(guān)掉寫保護(hù)功能。不要讓它懸空工業(yè)現(xiàn)場電磁干擾多懸空引腳很容易被耦合出錯誤電平導(dǎo)致寫操作莫名失敗。HOLD 腳是傳輸暫停低電平有效。HOLD 拉低時SPI 時鐘和 CS 狀態(tài)會被器件忽略總線上的數(shù)據(jù)保持外部主機(jī)暫時沒辦法繼續(xù)通信。這個腳同樣不能懸空接高電平即可。VCC 旁邊要放 100 nF 的陶瓷電容盡量貼近引腳再加一顆 10 uF 鉭電容做低頻去耦。工業(yè)現(xiàn)場如果電源本身波動大建議在電源入口加 TVS 管和磁珠防止繼電器或其他大功率設(shè)備啟停時把尖峰灌進(jìn)來。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è)電路板上如果有電機(jī)驅(qū)動、繼電器、開關(guān)電源這些干擾源會通過長走線耦合進(jì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 模塊。配置項(xiàng)里幾個關(guān)鍵參數(shù)Operation ModeMaster主機(jī)模式。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ǎn)必須強(qiáng)調(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ù)下也更容易擴(kuò)展。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ā)下一條命令也可以馬上讀回驗(yàn)證。但注意每次寫命令之前都必須重新做一次 WREN因?yàn)?WEL 位在一次寫操作完成后會自動清掉。很多第一次用 MRAM 的工程師都會在這里翻車寫使能只做了一次然后連續(xù)寫多個地址第二個地址開始全部寫不進(jìn)去。讀數(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ā)同時進(jìn)行上層接口負(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再看底層實(shí)現(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讀取后判斷一下能幫我們快速定位“寫不進(jìn)去”的問題。寫數(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 實(shí)現(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ū)動不可重入如果項(xiàng)目里有多個任務(wù)同時訪問 MRAM記得在外面加互斥保護(hù)。4. 實(shí)測與排錯全 0xFF、寫不進(jìn)去、以及滾寫可靠性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 一直高M(jìn)RAM 根本沒被選中數(shù)據(jù)線自然一直高電平讀回來全是 0xFF。第二步查 SPI 模式。MR25H40CDF 只支持模式 0 和模式 3如果 FSP 里配成了模式 1 或模式 2器件永遠(yuǎn)不會給出正確數(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排除信號振鈴。還有一個容易被忽略的點(diǎn)就是讀狀態(tài)寄存器。上電后正常 RDSR 應(yīng)該返回 0x00。如果 RDSR 返回 0xFF幾乎可以斷定命令根本沒發(fā)進(jìn)去問題出在 CS 時序或 SPI 配置如果 RDSR 返回 0x02 之類說明 WEL 處于置位狀態(tài)可能是上次寫操作后沒清這本身不算故障。4.2 寫不進(jìn)去先查 WEL 位再查 CS 邊沿全 0xFF 的問題解決后緊接著遇到寫不進(jìn)去調(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 拉低會讓器件進(jìn)入寫保護(hù)狀態(tài)WREN 命令本身雖然能發(fā)但 WEL 可能不會被正確置位或者即使置位了后續(xù) WRITE 也會被拒絕。所以先量一下 WP 引腳電壓確認(rèn)是高電平。如果 WEL 已經(jīng)是 1但 WRITE 還是寫不進(jìn)去就要查地址對不對。MR25H40CDF 只有 19 位有效地址最高地址是 0x7FFFF如果地址算錯寫到了非法區(qū)域器件不會報錯但數(shù)據(jù)也進(jìn)不去。我總是先用固定地址比如 0x00000 來測試寫一組 0x5A 5A 5A 5A讀回比對最大限度減少變量。最后還要注意一個時序細(xì)節(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)通之后真正的考驗(yàn)才開始。我寫了一個壓力測試固件對固定地址反復(fù)寫入遞增計數(shù)每次寫完立即讀回校驗(yàn)并使用軟件 CRC32 做數(shù)據(jù)完整性判斷。日志通過串口輸出。測試結(jié)果很直觀260 萬次滾寫全部通過沒有一次讀回錯誤。這個數(shù)字對 EEPROM 來說已經(jīng)是不可想象的任務(wù)對 MRAM 來說只是熱身。我也用示波器同時觀察了 SPI 波形寫操作完成后 CS 上升沿到下一次命令發(fā)起之間沒有額外延時說明 MRAM 確實(shí)不需要內(nèi)部寫等待。掉電測試更有意思。我在主循環(huán)里周期性寫一條 64 字節(jié)記錄然后人為隨機(jī)斷電再重新上電掃描 MRAM 里的記錄區(qū)檢查每一條記錄的 magic、長度和 CRC。因?yàn)?MRAM 的寫入是原子提交每次結(jié)果要么是完整的舊記錄要么是完整的新記錄沒有出現(xiàn)半條記錄混雜的情況。這正是工業(yè)掉電場景最需要的特性。高低溫方面我用熱風(fēng)槍把板子加熱到 105℃ 左右持續(xù)運(yùn)行再放回常溫驗(yàn)證數(shù)據(jù)讀寫均正常。有條件的話建議做一輪完整的 -40℃ 到 85℃ 溫度循環(huán)工業(yè)級存儲器件在這種條件下反而比消費(fèi)級 Flash 穩(wěn)定得多。5. 工程化思考掉電保護(hù)、容量規(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ù)維護(hù)成“鏡像”。比如環(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ū)單獨(dú)劃出來是因?yàn)槊看螌懭胗涗浐蠖家轮羔樔绻羔樅陀涗浕煸谝黄馂?zāi)難恢復(fù)會非常麻煩。主日志區(qū)做環(huán)形緩沖滿了以后覆蓋最舊記錄這樣 MRAM 的寫壽命被分散在整個區(qū)域而不是集中在一個地址上。如果設(shè)備需要保存較大的波形數(shù)據(jù)或批量事件512 KB 可能不夠那就需要考慮把 MRAM 換成功耗更高的 SPI NOR Flash或者加 SD 卡。但請注意這種擴(kuò)容通常會犧牲隨機(jī)寫入壽命和寫速度本質(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ù)的實(shí)現(xiàn)mram_write_buf 和 mram_read_buf 不需要動。如果換成帶硬件 CS 的 MCU我還是堅持用 GPIO 軟控 CS因?yàn)?MRAM 命令序列對 CS 邊沿的要求比較明確軟控不受外設(shè)自動控制邏輯干擾出問題也好定位。另外提醒一點(diǎn)不同 MCU 的 SPI 時鐘極性命名可能不同。ST 的 HAL 里 SPI_MODE0 是 CPOL0、CPHA0SPI_MODE3 是 CPOL1、CPHA1。瑞薩 FSP 里同樣用模式 0/模式 3 命名但有些老工程師習(xí)慣叫“空閑時鐘電平高還是低”這時候直接看寄存器定義最安全。這次把存儲介質(zhì)從 EEPROM 換成 MRAM改動的代碼量并不大但帶來的是整個系統(tǒng)可靠性的明顯提升。如果非要說留下什么經(jīng)驗(yàn)我會記下三條第一MRAM 不是 Flash別再用擦除的老思路第二CS 邊沿的時序比命令字本身更關(guān)鍵第三測試存儲器件一定要在真實(shí)寫頻和掉電條件下跑而不是寫入一次讀一次就算驗(yàn)證完成。后面如果再遇到類似的工業(yè)數(shù)據(jù)記錄需求我還是會優(yōu)先看這類 MRAM 方案。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
中文一区二区三区影院| 伊人991| 2023天天操夜夜操| 天天爱天天操| 欧美激情亚洲情色| 国产成人天堂| 国内91熟女人妻丝袜天天精品视频在线| 操逼逼一区视频| 玖草在线视频| 人妻精品一区二区三区| 狠狠91| 啊啊啊好大好深| 麻豆国产成人精品| 日本999精品| 久久久久久久久久久97| 26uuu欧美| 日本色色色视频| 国产美女销魂在线观看不卡| 日韩少妇丰满亚洲| 熟女欧美日韩综合婷婷| 欧美人人天天网| 欧美 亚洲 另类 综合| 蜜桃精品一区二区三区ww| 99精品成人免费看| 多乙久久久久久| 欧美真人抽搐一进一出gif| 91高清日| 久久久久久久| 中文字幕成人乱码熟女精品国50| 精品人妻一区二区三区日产| 91 综合网| 91痴汉| 热热色国产一二区AV| 色臀aV| 亚洲色图欧美另类在线| 四虎免费视频| 超碰97综合网| 美欧色综合| 亚洲第二页| 伊人久大| 精品无码少妇| 欧美操人视频| 久久精品国产99精品亚洲蜜...| 国产毛片毛片4p懂色| 另类图片综合| 99re热有精品视频国产| 99热这里只有精品地址| 久久草草欧美精品| 99久热精品99re6热| 国产小炒后入式| 特级丰满少妇一级AAAA爱毛片| 日韩色欲久久一二三四区| 精品欧美А∨无码黑人大荫蒂 | 亚洲经典啪啪| 亚洲精品99| 好爽,再快点啊哈嗯嗯嗯嗯| 北京专精特新企业招聘信息| 天天干天天中出av| 熟妇人妻精品一区二区| 婷婷伊人五月| 亚洲欧美日韩夜夜| 亚州操操穴网| 欧洲一区二区三区四区在线观看| 2024年最新色情网站在线观看 | 99re在线观看| 看看日B真人视频| 大香蕉线| 美国aaaaa一级黄片| 久久99人妖视频国产| 97综合在线| 天天看天天综合成人网| 国产后入清纯| 亚洲欧洲av影音| 女人午夜视频777| 亚洲一区深夜| 亚洲素人综合| Av手机版天堂网| 亚春色色| 尤物黄色在线观看网站| 97色色网| 久久久成人免费av电影| 9久在线视频只有精品| 免费观看国产小粉嫩喷水精品午| 鲁鲁色综合网| 国产精品一二三| 国产高清视频无码在线| 920日本午夜免费| 蜜桃色院一区久久| 国产精品久久久久久高清无码免费看| 亚洲精品一区二区三区新线路| 欧美一区二区三区成人性生活| 欧美精品黑人猛交高潮| 秋霞免费AV| 偷拍超碰| 欧美精品精品一区二区| 91久久久久久| 好涩综合| 夜夜狼人妻| 啊啊啊男女| 911av网站免费观看| 长长久久免费视频| 78操B| 中国大陆国产高清AⅤ毛片| 嗯嗯嗯啊啊啊操的我好爽| 欧美 色 亚洲| 狠狠综合网| 国产av美女被艹的乱叫| 成人黄页| 69精品久久久久中文字幕| 亚洲蜜臀懂色| 老熟女乱伦一区| 亚洲中文制服诱惑| 国产成人无码啪| 综合网亚| 家庭乱伦性爱av| 91精品成人| 亚洲 欧美 制服 另类 自拍| 区一二区日韩亚洲乱码av电影| 亚洲国产成人精品女人久久久| 日本天天色| 东北女人性交| 9久综合网| 久久超碰com| 大香蕉九九| 淫纸中9区| 五月丁香六月激情综合| 成人精品无码| 伊人伊人LD| 欧美日韩另类在线| 69久久久久久久久久久久久| 人妻在线视频| 天天拍夜夜| 99啪| 日本操色导航| 秋霞曰韩R级| 啊啊啊轻点在线观看| 久久久亚洲高清不打码| 欧美青青草视频| 日韩性爱网址| 三级特黄60分钟播放| 夜夜综合| 翘臀vidoes| 久久精品人人做人人看| 一区二区亚州激情久婷婷欧美| 国产自偷自拍一区| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 亚洲91大片| 久久久久国产精品喷潮免费观看臀 | 夜夜爽爽夜夜精品视频| 欧美婷婷五月天| 久久69| 欧洲亚洲人妻无码中字久久三区四区 | 国产一级作爱毛片| 人妻丝袜日本| 先锋音影AV| 秋霞视频一区二区| 日韩免费高清大片在线| 91蜜桃传媒精品久久久一区二区| 91av一区二区在线观看| 亚洲欧美综合网站| 中文字幕日产av人| 伊人久久婷婷| 色狠狠色| 欧美日韩 强奸乱伦| 综合网天天| 五月天加勒比啪| 91在线色综合| 婷婷视频网| 亚洲精品乱码线路中文字幕| 麻豆91熟妇人妻中文字幕茄子| 97视频7| 久久久com| 中文字幕日韩精品久久| 超碰在线人人射| 久久久久96| 日韩AV一区二区三区三州三州| 亚洲二区精品在线观看| 飘花国产午夜精品不卡| 搡老女人老91妇女老熟女| 偷拍色图| 国产青视频| 天天摸,夜夜摸| 天天色播| 亚洲色综合| 99久久e免费热视| 高清国产精品福利网站| 亚洲黄色| 国产精品一区在线播放| 超碰偷拍| 91色综合色| 97精品97| 久久久久久久久久久久久久久久9| 亚洲情色91| 秋霞一级视频在线观看免费| 亚洲丝袜99| 久久久禁| 校园春色家庭伦理欧美激情| 粉嫩久久久久| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 欧美激情性爱视频网站| 最近2018中文字幕在线高清第一页| 亚州男人天堂| 九九九久久久| 天天射天天操天天干天天吃2018 | 综合色啪| www.久久| 狠狠 91| 野狼激情网| 大香蕉操久久| 麻豆久久久久久久久丝袜| 久久久9品一区二区三区| 神马视频久久久久久| 欧美性天天影视| 熟妇熟女视频一区二区三区| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 久久精品夜色国产亚洲AV| 97超碰热线| 91欧美偷拍| 热久久99999| 精品亚洲俞拍视频一区| 国产精品69久久久久久久| 夜夜青青无码影院| 99久久综合网| 嫩草 人人网精品| 屌妞视频久久久久久久久久久久| 中亚黄色三级大片| 亚洲交性| 日B操| av在线免费一区二区| 噜噜吧,噜噜色,噜噜| 人人透人人操| B049AV在线播放| 97综合久第一页| 2020中文字幕在线观看| 2018天天干在线视频| 亚洲码专区| 99热啪啪| 欧美中字二区| 超碰97.com| 中文一区二区三区影院| 久久一级无码精品毛片6| 青青草丝袜在线视频| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 东京热男人的天堂| 人妻aa| 人妻少妇视频在线播放| 天天超级碰碰碰| 麻豆亚洲AV成人无码久久精品| 免费看黄片现成| 黄色片大香蕉| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 九九九九97| 天天干嫩逼网| 操99| 亚州色图片在线色| 九月激情婷婷| 亚洲精品色| 97久操| 精品成人亚洲午夜电影| 久视频在线观看| 中文字幕av一区二区三区人妻少妇| av网站免费看| 国产欧美伊人| 久操免费在线| 丁香五月婷婷啪啪| 欧亚韩国999| 日本色色视频网站| 久操99| 国产精品一二三| 天天弄天天操| 亚洲永久永久永久永久一级一级一级精品| 亚洲人成网站7777| 人夜夜精品网站香蕉嫩草| 国产人妻精品一区二区三区秋霞| 香蕉热人人精品| 精品国产乱码久久久久久久久1| 久久久久久裸体| 欧美性爱18观看| 无码99| 啪啪自拍九九综合| 天天做天天爱天天爽| 中文字幕二区| 精品-91人妻子系列| 日韩欧美中文日韩欧美色| 99热超碰| 蜜臀久久99精品久久久久久-DVD原版全| 日本午夜精品理论片A级APP发布| 88在线一区二区三区| 精品区国产区一区二区三区| 尤物视频偷拍免费| 国产精品成人福利在线| 色香91| 久久精品国产96精品亚洲拳交| 精品无码久久久久| blacked精品一区国产| 成人欧美日超碰| 伊人久久综合精品欧美| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 日韩亚洲美女一区久久| 精品国产乱码久久久久久久久久毛片| 三级三久久线久久99久目本WW| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 国产精品粉嫩福利在线| 大香蕉五月天婷婷| 亚洲精品97久久| 婷婷尹人大香蕉免费| 97超碰精品图片| 在线日韩视频| 欧美日韩啪啪电影| 天天插天天操天天摸天天射天天看| 影音先锋新男人| 亚洲限制级| 激情网色| 久久99亚洲精品久久99果| 日韩人人精品| 青青草原人妻| 国产女人与拘做受视频免费| 超碰是碰在线观看| 男人的天堂网免费| 美女尤物人人操| 青青草影视蜜久久| 久久婷婷色综合一区二区三区| 久久精品国产精品一区| 加勒比伊人综合| 九九RE视频在线精品| 97精品免费| 91熟女.com| 亚洲中文字幕噜噜噜久久久| 中字幕人妻一区二区三区| 蜜臀无码一区二区| 国产馆极品诱惑| 人人 操人人 操人人| 超碰97.com| 日韩女优在线| 99热免费| 亚洲国产欧美中文永久| 久久AV无码AV| 精品国产乱码久久久A| 97爱爱影院| 日韩av乱伦| 色婷婷六月丁香七月婷婷| 97网站在线观看| 青草香蕉网| 国产精品色色| 日本欧美国内在线| 国产精品无码av嫩草| 国内外色色色色色成人视频| 国产熟女完整版中字 | 日本99热| 五月婷婷性爱| 人妻-91porn| 欧美18 在线观看| 99热欧美| 蜜臀va69| 国产天天噜一噜久久久| 久久一二三四五六七八九区区| 五月丁香色情| 国产 无码 一区二区| 久久精品熟女亚洲AV麻豆软件| 亚洲AV在线资源| 骚乳在线| 欧美日韩99精品麻豆传媒| 中文字幕 国产区| 日韩在线一区高清在线| 高清国产无码av| 精精品人妻一区二区三区| 超碰97在线色男人??| 青青草在线视频欧美| 95精品在线| 五月天偷拍| 日韩啪啪网| 久久精品亚洲成a人天堂| 正在播放国产精品一区| 久久精品国产亚洲AV清纯| 亚洲一区二区av| 欧美在线干| 操亚州| 无码视频一区二区| 日日噜噜夜夜久久亚洲一区二区| 欧美性巨大╳╳╳╳╳高跟鞋| 日韩有码 一区二区三区| 免费国产视频| 丝袜亚洲综合| 人人贴人人摸| 日本性爱网址| 日本天天色| 玖色AV| 四虎永久在线精品免费网址 | 亚洲高清在线se| 韩日自拍| 亚洲中文字幕久久无码精品| 天美传媒麻豆一区二区三区国产精| 青青草影视蜜久久| 日韩熟女精一区二区三区不卡| 九久9精品| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 夜夜国自区| 欧日韩一二三f区| 一本色道久久综合精品婷婷| 男人久久天堂| 韩国一级婬片A片无码天美| 一起草欧美| 操高情无码| 五月天大香蕉| 亚洲不卡av在线| 大香蕉啪啪啪啪在线| 亚洲drav色图| 天天影视亚洲| 在线观看无码三级少妇| 九九Av| 精品免费视频国产一区| 日韩无码操逼片| 日本熟妇人妻中出视频| 天天爽天天爽| 亚洲涩涩| 3PAV乱伦视频| 国产浮力影院第1页| 久久9视频| 殴美日韩m| 久久久九精品| 免费国产电影一区二区| 一区二区三区欧美激情| 草蕉影视亚洲无码| 国产精品农村妇女| 久久美女国产| 亚洲国产剧情少妇激情| 久久男人| 欧美成人四级在线播放| 亚洲欧洲美腿丝袜| 天天舔日美女视频| 日韩黄色av中文字幕| 97香蕉碰碰人妻国产欧美| 国产精品经典一卡久久久| 人妻熟女一区二区| 免费观看网黄| 天天爱天天韩国日本牛牛牛牛 | 国产精品视频91久久| 色综合久| 涩涩久久精品| 一级做a爰片性色毛片久久| 日本在线视频导航| 亚州日韩97| 99久久久无码国产精品性啊聊| 综合一区中亚洲国产成人综合精品 | 欧美亚洲日本激情在线| 美女大乳久久久久久久女人18| 色网亚洲人| 日韩中文字幕人妻视频| 久久e6只有精品| 酒色综合网| 久久 国产精品 一区| 91热情品| 大香蕉一区二区在线观看.| 欧美黑人猛交春色影视大全| 久久黄人人爽视频| 色婷婷影院| 啊啊啊轻点在线观看| 黄色AAAAA欧美| 欧色综合| 久热精品在线国产| 亚洲精品骚逼| 欧美日韩电影成人在线| 亚拍在线| 成人 日本A片无码8888| 欧美超碰人妻97| 免费超碰97在线观看| 东北女人的毛片| 欧美操人视频| 歐美性天天| 国产一区二区a毛片| 亚洲天堂第一页| 91被操| 天天看人人操屄犊摸阴| 操婢日韩| 久操av在线| 国产AV高清AV无码| 亚洲成人ab| 久操九九九九| 精品久久无码午夜福利| 欧美91在线+|+欧美| 日本精品网站在线中文| 99最新日韩偷拍视频| 中文字幕亚洲在线一区| 干B网| 亚洲图片欧美日韩| 74成人在线| 日韩八十路老熟女| 九九热精品| 热思思免费视频| 丝袜视频一区二区在线播放国产中文| 日本性爱不卡视频| 超碰地址久久| 欧美性生活内射| 一区二区三区视频在线观看免费| 欧美宗合网| 后入人妻一区| 激情接吻视频久久久久久| 97久久综合网| 观看免费区二区三区二| 久久久久久久亚洲Av无码| 四虎免费在线播放| 亚洲AO在线| 日韩成人性爱电影在线播放| 操逼操逼操| 啊啊啊不要嗯嗯在线观看| 九九亚洲| 国产高清26uuu| 欧洲一区二区| 天天综合网1| 五月天激情小说| 国产又黄又爽又刺激久久久久久 | 国产亚洲精品玖玖玖在线观看| 欧美激情精品| 91艹| 欧美熟妇操操视频| 国内91熟女人妻丝袜天天精品视频在线 | 国产日韩美女小穴视频网站不卡| 国产人伦精品一区二区三区| 亚洲国产无码精品首页久久久| 一二三区操逼国产91| 欧美91色| 97超碰逼| 美女露胸露屁股| 97任你吞精| 影音先锋日本一区二区| 亚洲欧美高清| 蜜桃网熟妇| 亚洲第91页 | 免费a v| 日本二区不卡| 日日日日做夜夜夜夜做无码97| 丰满少妇人妻久久久久久| 午夜天堂啪啪| 亚洲精品第一| 日韩精品碰碰| 8x福利精品第一福利视频导航| 美女91在线| 蜜桃AV天堂| 超碰97亚洲区| 91欧美性| 嗯嗯啊啊好疼| 99啪啪| 91亚洲精品青草| 青青草操逼逼视频| 五月丁香影视| 天天日天天色| 91狠狠色丁香婷婷综合久久精品| 大香蕉黄色一区| 懂色AV蜜臀无码精品APP | 麻豆AV一区二区| 天天流夜夜操| 玖玖综合.com| 日韩在线视频1234| 色哟哟国产精品免费网址| 长长久久曰曰夜夜成人网| 大香蕉九九| 99精品无码| 成人情色一区二区| 久久久艹艹艹| 亚洲s在线观看| 密臀在线免费观看| 欧美人妻色| 九九国产| 色九色久| 亚洲久久久| 免费国产视频| 国产美女口爆吞精视频| 无码天天操| 91成人在线免费视频| 秋霞曰韩R级| 五月丁香啪啪| 久久色激情一区二区三区| 伊人色综合超碰| 97公开久久| 丰满少妇精品一区二区| 青娱乐黄色录像| 欧美99999| 亚洲图片色图欧美另类| 自拍偷拍 日韩无码| 亚洲精品三| 亚洲无套久久嗯嗯| 亚洲自拍一区夜夜操| 2019亚洲男人天堂| 九九九九精品| 天堂俺去俺来也www久久婷婷| aⅴ日韩成人电影av在线免费看av大全| 无码自拍SM| 天天干天天日天天射黄色| 狠狠夜色午夜久久综合在线| 亚洲AV不卡在线观看| 亚洲影视综合| www.91逼逼.com| 成人精品在线| 中出789在线视频| 国产2.3.4区| 黄片免费日韩| 国产67194| 欧美一区二区三区大综合| 伊人午夜福利视频| 韩日色费| 色婷婷丁香五月| 偷拍在线观看视频| 九色黄站| 国产做?爰片久久毛片?片美国| 77777亚洲蜜臀精品久久综合蜜臀| 亚洲揄拍网| 日韩射精| 国产精品一区二区黄片| 最新精品久久蜜桃 | 人人性爱视频免费| 五月婷在线| 97精品国产手机| 蜜桃久久一区二区| 伦理片秋霞免费影院| 欧美亚洲丝袜美女电影| 91性网| 九九探花视频在线观看| 久久九九一区二区三区成人| 99re久久| 成年女人18级毛片毛片免费观看| 97超视频在线观看| 婷婷av在线中文字幕| 亚洲麻豆精品二区三区| 亚洲伊人青青草| 思思热免费在线视频| 亚洲精品一二三四区| 欧美亚洲首页| 婷婷色网| 亚洲一区二区av| 俺去俺来也在线www| 大香蕉综合在线| 浓厚中出中文字幕在线| 亚洲少妇诱惑| 青春草莓视频在线观看网址| 99热| 久9精品| 91大学精品激情戏| 日日摸日日碰夜夜爽视频| 激情五月天社区| 精品制服美女中文一区二区三区| 中文字幕日韩人妻视频一区二区三区| 韩国三级三级BD在线| 久久产精品一区二区三区电影| 日韩精品99999| 日本不卡在线二区三区| 天天摸,夜夜摸| 色妇综合网| 看看小穴| 国产第12页| 亚洲AV不卡在线观看尤物| 91人精品妻入口| 中国小夫妻勾搭露脸淫荡对白| 五码视频在线观看| 亚洲 另类 丝袜 自拍 动漫| 手机在线人成免费视频| 人妻喷水| 亚洲天堂,男人| 一区二区乱码福利| 欧美 传媒 麻豆 日韩 偷拍| 亚洲色图尤物视频| 国产精品乱码久久久久久| 熟妇精品juliaannAV| 巨爆乳一区二区爆乳区| 亚洲自拍青操视频| 色色色网站| 久久精品一区二区一8| 欧美中字二区| 嫖老熟女A片一二三区| 久久大香蕉97| 欧美少妇一区二区三区| 午夜激情成人在线观看| 国产中文字幕在线| 人妻天天爽夜夜爽爽| 色综合天天| 亚洲欧洲日韩中文字幕一区| 91暧暧| 欧美丝袜制服久久| 78超碰| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 玖玖草久草99蜜月一区二区三区| 色狠狠综合| 亚洲av性爱电影| 丝袜狂射91| 97超级久久强资源| 视频黄色国产一级| 91宗合网| 国产诱惑| 96AV久久久| 国产自偷自拍一区| 美女操逼A A| 可乐操在线| 九九九久久久久| 精品1区2区3区| 三级网站超变态精品| 久热大香蕉| 6080YYY午夜理论片在线观看| 亚洲色图A| 国产欧美成人精品| 亚洲伊人久久精品狠狠在线| 韩国一级婬片A片AAAAA| 欧美一二三级精品在线| 天天综合青苹果| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 日韩人妻丝袜中文字幕| 道久久五香丁月婷婷激情综合| 在线黄页看毛片| 福利伊人玖玖国产| 亚洲AV无码乱码| 另类图片天天影视| 四季av一区二区凹凸精品小说| 大香蕉欧美伊| 久久国色天香香蕉| 大香蕉久操| 精品v日韩欧美国产| 麻豆视频国产一区二区| 好吊色综合| 欧美啪啪啪91| 欧美色图自拍| 99国内熟女露脸视频| 啊啊啊97视频| 欧美日韩222| 欧美淫穴| 国产按摩一区二区三区| 亚洲欧洲另类| 中文字幕一区日韩精| 精品一区二区综合熟妇| 国产乱色国产精品免费视| 99久久久无码国产精品性啊聊| 91熟女网| 欧洲精品一级二级精品综合视频综合| 日日骚av| 亚洲情色 自拍| 超碰色美女| 亚洲天堂另类| 精品一级| 亚洲久久久| 九九九九精品九九九九| av中亚| 91色综合| 91免费看一区二区三区| 人人搞人人插人人操| 热思思免费视频| 思思热在线视频在线| 自拍偷拍国产欧美日韩韩| 色色色日本| 久久无码成人| 亚洲最大成人a毛毛片| 国产AV毛片| 久久久久久久国产视频| 8050午夜少妇无码| 婷婷在线视频| 六九九九| 久久亚洲不卡一区二区三区| 91在线秘 男同| 内射老妇BBWX0C0CK| 亚洲欧美日韩免费电影| 秋霞免费AV| 一区二区三区机械有限公司| 美中韩AV综合网| 中文字幕视频2区| 黑人与人妻| 尤物视频新赏网鲜网色诱网| 美女91在线| 精品人妻一区二区三区四区石在线| 91一区二区三区蜜桃| www.大香| 99爱精品| 亚洲男人的天堂在线看| 久久精品操| 十八禁啪啪视频| 国产亚洲精品农村妇女| 丁香五月久久| 亚洲第一页欧美| 美国三级日本三级久久99| 91亚洲综合在线| 成人免费毛片| 十八禁啪啦拍视频无遮挡| 老熟女91av| 精品人妻伦一区二区三区久久| 97资源亚洲| 中文字幕日韩电影人妻| 国产SV一线| 老司机午夜精品视频| 国产日韩欧美中文在线播放| 人妻AV在线| 破处bbq| 天天操人人操狠狠插| 精品一区二区亚洲国产| 男人的天堂日韩| 国产91影院| 日韩人妻资源在线看| 国产成人在线观看网址| 四虎永久在线精品免费网址| 九九热精彩视频| 蜜桃精品一区二区三区久在线| 色香综合天天影视综合| 激情视频一二三| 久久人人爽爽人人爽人人片αV| 天天干人人看综合| 亚洲色图欧美色图日韩色图| 九九九九久久久| 伊人四虎综合| 成 人片 黄色大片| 美国美女AV在线| 91痴汉| 欧美一区二区三区互相| 亚洲精品一区中文字幕乱码| 2019亚洲男人天堂| 综合国产影视三级| WWW4虎| 综合久久9| 国产原创剧情在线丝袜| 久久一本大香蕉| 99re免费视频精品全部| 亚洲影视综合网| 亚洲少妇综合| 凸凹视频在线观看| av东京热男人的天堂| 国产精品分类在线观看| 97人妻色| 超碰在线一区二区| av天堂影视中文在字幕在线中文 | 鸥美中出| 色婷婷av在线观看| 老熟乱一区二区三区四区| 欧美顶级黄色大片免费| 色麻豆AV| 久久无码成人| 成人片视频| 丁香六月激情| 九九国产热| 欧美丰满少妇xx高潮| 久久久穴999| www.99色| 大香蕉综合久久| 欧美激情性久久久久久| 上床不卡网站| A 在线网址| 操一区| 欧美aaaaaaa| 日本熟妇色熟妇在线视频播放| 色色色色日本| 曰韩少妇无码| 亚洲欧洲网站免费观看| 99AV| 国产精品白虎| 五月天久久综合网| 96久久久精品| 亚洲精品人妻吞精av| 99少妇内射| 殴美牲| 在线女人91| 国产亚洲色婷婷久久99精品91 - 百度| 大香蕉在线视频15| 国产精品久久久久久久AV大片 | 国产精品蜜臀久久久久无码AV| 精品国产99| 亚洲色图日韩精品| 啊啊啊慢点| 蜜臀精品1区2区| 中文字幕一区二区三区高清| 国产精品高朝久久久久久久| 99热久| 欧美真人抽搐一进一出gif| 成人一区二区三区四区| 国产女生在线| 欧美天天射| 欧美日韩婷婷中文| 桃花色涩综合影院| 日产操逼| 91国产伊人大香蕉| 伊人综合色网| 国产网红精品| 射综合网| 色www精品视频在线观看| 激情五月天色色| 日韩激情无码影院| 欧美97se| 熟女中出视频| 天天躁日日躁AAAXX| 强奸抽插av| 超碰97人人乐| 国产精品网站免费| 婷婷五月综合激情| 国产精品人妻熟女aⅴ| 亚洲无码一区成人免费午夜| 国产精品网站免费| 噜噜噜狠狠色综合| 热久久国产| 色综合大香蕉| 五月开心久久AV官网| 欧美色棕合| 欧美劲爆视频一区二区| 中文字幕在线免费观看2| 久久久免费视频18| 日韩情色AV| 丁香六月婷婷综合| 久久久国产亚洲精品系列| 97超碰超碰| 欧美同性恋 的搜索结果 - 91n| 偷拍超碰| 玖玖97综合 | 人人爽天天爽| 婷婷久月| 亚洲国产麻豆一区二区三区| 人人人摸人人| 欧美综合天天| 久操国产在线| 97国产精品在线观看| 大香蕉欧美国产日韩高潮| 国产超碰国产97| 中文字幕成人| 操比国产| 国产操逼逼网| 综合久久久久久久综合网| 日韩精品在线视频,日韩精品……| 97亚洲综合在线| 欧美性视频二区三区| 麻豆国产第一| 上床不卡网站| 久久97资源 网| 亚洲综合113页| 成 人 影视 一区 二区 三区 四区| 色一情一乱一乱一区91Av| 国产 v乱码一区二| 久久综合久色欧美综合狠狠| 宗合情欲网| 一区,二区,三区网站| www.欧精品| 精彩视频日韩| 大香蕉综合| 在线综合 亚洲 欧美中文字幕| 99re这里只有精品中心播放 | 91高清日| 亚洲熟妇AV日韩熟妇在线| 另类专区加勒比| 欧美在线干| 欧美美逼| 97天天| 国产精品久久| 蜜乳AV免费观看| 国产一区二区三区免费视频在性观看| 天天懆天天日| 乱欲一区二区| 午夜高清成人在线视频| 337p大胆噜噜噜噜噜91Av| 国产一级片| A V少妇特黄三级| 久久久工口| 久插综合| 伊人午夜福利视频| 欧美日韩人妻精品系列一区二区三区| 色臀AV| 超碰日韩人妻| 波多野结衣先锋影音| 中文久久爆乳| 国产欧美日韩在线观看麻豆传媒公司 | 美女97超碰| 国产一区二区久久| 美女t无毒不卡不卡| 欧成人精品H无码| 手机看片日韩人妻| 精品中文字幕一区二区l - 百度| 99综合免费视频| 91N五十路| 十八禁一区二区无码观看| 1024精品在线| 无码高清少妇久久| 5月婷婷6月六月丁香| 日韩亚洲美州欧洲综三区一品在线| 绯色AV粉色AV蜜臀AV| 大但人体久久久久| 国产农村妇女精品| 一区二区影院| 伊色综合天堂色97| 加勒比人妻综合| 亚洲国产熟妇综合色专区| 久久久久久久伊人精品| 曰韩无码777| 69AV女优男人的天堂| 天天情欲宗合网| 97久久久| 国产一级αv免费看片| 亚洲天堂女优在线| 一本色道久久综合亚洲二区三区| 中日韩免费看男女操逼大全| 亚洲 欧美 手机在线观看| 超碰久久中文| 日本高清熟女久久一区| 综合久久97| 曰韩成人免费视频| 日少妇亚洲版| 中国特猛少妇色xxx| 一区操逼日比视频| 在现视频女上位好爽| 日本国产二线女色| 韩三级a视频在线观看| 思思热在线视频精品| 久久99草| 91视频伊人| 粉嫩国产精品久久粉嫩| 97欧美色| 一级黄色性爱A级片| 粘花网06av视频| 国产成人精品网站| 亚洲色图日韩精品| 中文字幕免费观看| 亚洲欧美人妻| 超碰AV在线| 欧美精品,四区。五区| 亚洲精品白浆高清久久久久久| 国产女人高潮视频| 精品人妻一区二区三区四区| 国模无码一区二区三区在线| 久久久穴999| 黄色免费一级在线毛片| 女优免费一区二区永久| 91美女视频直播| 国产呦精品一区二区三区下载| 日本东京热大香蕉a片| 国产精品第一区第一页| 色性荡荡荡荡视频| 亚洲丝袜诱惑| 亚洲宅男天堂| 中国特猛少妇色xxx| 色五月综合| 欧亚 另类 久| 桃花色涩综合影院| 久久天堂网| 亚洲第一成人影院色播| 亚洲drav色图| 精品性爱一二三区| 无码人妻系列少妇| 福利在线观看一区二区| 色麻豆AV| 国产熟女免费观看久久| 91无码人妻| 久久无码电影| 中文字幕av一区二区三区人妻少妇| 99性爱在线观看| 精品综合久久久久久97| 美国日韩黄色片| 88在线一区二区三区| 久久久97| 久久无码精品| 日韩美女久久一区二区三区| 日韩欧美性爱电影在线观看| 国产精品久久久久久夜夜夜| 日韩av在线精品观看| 安徽熟妇视频| 人人操人人摸人人看人人干| 超碰视97中文| 91色久| 91丝袜在线观看| 亚洲欧美色综合| 亚洲蜜乳av| 欧美啪啪天堂| 亚洲 欧美 天天| 欧美成熟性爱精品| 五月开心久久AV官网| 激情五月天丁香社区| 久久久久久久9999| 夜夜操av亚洲一区二区| 中文字幕日韩人妻视频一区二区三区| 无码九九| 玖色AV| 久久精品日韩| 国产97色在线 | 亚洲| 97超碰色五月| 天天操夜夜嗨| 天天干嫩逼网| 97在线欧洲| 国产成人无码网站在线视频| 激情色图| 狠操91,com| 翘臀vidoes| 黄在线| 国产精品一区二区三| 欧美视频激情久久久久久| 操逼网站视频漫画国产| 清纯唯美亚洲| 欧美一二级| 欧美美女自慰一区二区三区| 成人乱人伦一区二区| 亚洲图片欧美偷拍| 东北老女人的激情视频| 99热欧美| 二男一女成人A片| 亚洲久9| 亚洲精品久久一区二区三区蜜桃臀| 看日韩美女二区三区免费操逼视频 | 欧美制服网站美腿丝袜| 青娱乐国产盛宴视频| 欧美激情一区| 肉丝中文无码高清| 东京成人一区| 午夜婷婷| 欧美性爱一级操| 伊人网免费视频| 大香蕉中文201| 欧美激色| 激情图片亚洲色图| 五月天激情小说网| 韩国午夜理伦三级好看| jazzjazz国产精品麻豆| 0755午夜福利视频| 东京热熟女亚洲视频网站| 亚洲天堂性爱| 九月丁香| 国产熟女免费观看久久| 婷婷干黄色| 欧美色图20p| 天天夜夜rb| 日本亚欧爱爱| 亚洲和欧美裸体美女双飞视频| 99久久com免费视频′| 亚洲综合在线视频| 中国亚洲呦女专区| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 亚洲无吗在线视频| 欧美的性爱网站免费| 亚洲精品久久久久毛片A片拉屎| 欧美日韩小说| 另类老少妇| 亚洲熟女少妇免费视频| 欧洲精品久久| 中文字幕AV片| 99只有精品| 日本三级一区二区 在线| 丁香色五月 97干| av在线免费一区二区| 日韩簧片免费看| 国产成人亚洲精品无码最新在线| 久久99国产精品| 午夜欧美精品久久久| 黄色交缠性感爆操91国产精品免费一区二区三区| 综合视频91| 九九av| 天堂涩涩| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 亚洲色图20p| 怡红院怡春院| 久久九九一区二区三区成人| 国产久久久9999| 少妇免费视频| 欧美 亚洲 大香| 亚洲成人精品久久久| 伊人网在线观看| 中文字幕AV片| 97伦乱| 亚洲日精品| 玖玖综合网| 日本东京热久久久电影| 人人操,人人插| 麻花豆传媒剧国产MV出差| 人人妻人射| 亚洲欧美中文日韩视频中国语| 五月婷色| 中文一区二区婷婷视频| 亚洲 欧美 小说|