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

ARTICLE DETAIL

資訊詳情

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

MRAM替代EEPROM:伺服驅(qū)動(dòng)器高頻掉電數(shù)據(jù)記錄方案詳解

MRAM替代EEPROM:伺服驅(qū)動(dòng)器高頻掉電數(shù)據(jù)記錄方案詳解 前陣子做一臺(tái)伺服驅(qū)動(dòng)器的數(shù)據(jù)記錄改造原來(lái)的方案在板上放了顆EEPROM存運(yùn)行參數(shù)調(diào)試時(shí)發(fā)現(xiàn)三個(gè)問(wèn)題同時(shí)冒出來(lái)寫(xiě)入一次要幾個(gè)毫秒電機(jī)關(guān)斷時(shí)序窗口根本等不及頻繁記錄的累計(jì)運(yùn)行時(shí)間把壽命打到極限中間一次意外掉電恢復(fù)后參數(shù)還是壞了一塊。后來(lái)我把存儲(chǔ)介質(zhì)換成了Everspin的MR25H40CDF一顆4Mbit的SPI接口MRAMMCU側(cè)用的NXP Kinetis MKV44F256VLH16從接線到驅(qū)動(dòng)全部重寫(xiě)問(wèn)題才算根治。這篇文章把這套組合從選型邏輯、電路細(xì)節(jié)到讀寫(xiě)代碼完整拆一遍給正在做工業(yè)控制、嵌入式數(shù)據(jù)采集尤其是電機(jī)控制里需要掉電保存高頻數(shù)據(jù)的同學(xué)一個(gè)參考。為什么是這兩顆芯片MR25H40CDF解決的是非易失存儲(chǔ)寫(xiě)入壽命和速度的痛點(diǎn)MKV44F256VLH16提供168MHz主頻的電機(jī)控制外設(shè)和足夠強(qiáng)壯的SPI控制器。你不需要用電池備份SRAM也不需要忍受EEPROM的毫秒級(jí)字節(jié)寫(xiě)入和十萬(wàn)到百萬(wàn)次壽命上限MRAM這個(gè)掉電不丟的內(nèi)存在工業(yè)場(chǎng)景里非常對(duì)胃口。1. 項(xiàng)目背景與需求拆解1.1 項(xiàng)目到底要解決什么問(wèn)題工業(yè)嵌入式設(shè)備和消費(fèi)電子不太一樣很多現(xiàn)場(chǎng)工況是寫(xiě)多讀少且寫(xiě)入時(shí)機(jī)不可控的。伺服驅(qū)動(dòng)器就是一個(gè)典型每次運(yùn)行動(dòng)作結(jié)束都可能要記錄當(dāng)前位置、累計(jì)運(yùn)行時(shí)長(zhǎng)、故障碼、電流環(huán)參數(shù)標(biāo)定值。這些數(shù)據(jù)的特點(diǎn)是更新頻率高、單次數(shù)據(jù)量不大、掉電后必須還在。用傳統(tǒng)方案會(huì)出現(xiàn)以下幾種難受的情況。EEPROM雖然按字節(jié)寫(xiě)很簡(jiǎn)單但單字節(jié)寫(xiě)入等待時(shí)間通常在3到5毫秒在電機(jī)控制那種微秒級(jí)執(zhí)行周期里根本插不進(jìn)去。更致命的是耐久次數(shù)常見(jiàn)EEPROM標(biāo)稱10萬(wàn)到100萬(wàn)次擦寫(xiě)聽(tīng)著夠用但一個(gè)24小時(shí)不間斷記錄累計(jì)運(yùn)行時(shí)間的設(shè)備每秒寫(xiě)一次一年就是3153萬(wàn)次一個(gè)月不到就把EEPROM壽命寫(xiě)完。Flash也好不到哪里去NOR Flash頁(yè)編程要等擦除要等還有塊結(jié)構(gòu)限制為了改一個(gè)字節(jié)要先把整個(gè)扇區(qū)搬出來(lái)改完再擦回這在工業(yè)現(xiàn)場(chǎng)隨時(shí)掉電的環(huán)境下非常容易出數(shù)據(jù)損壞。BBSRAM也就是帶電池的靜態(tài)RAM讀寫(xiě)得倒快但電池在高溫環(huán)境下的壽命、維護(hù)周期、防拆要求都是麻煩。有些設(shè)備在85℃環(huán)境跑三年電池先掛數(shù)據(jù)照樣丟。這個(gè)項(xiàng)目真正需要的存儲(chǔ)器長(zhǎng)這樣寫(xiě)入速度接近RAM沒(méi)有擦除過(guò)程寫(xiě)入次數(shù)高到可以忽略壽命問(wèn)題掉電不丟數(shù)據(jù)溫度范圍覆蓋工業(yè)級(jí)。MRAM就是這個(gè)思路下的產(chǎn)物而MR25H40CDF恰好是SPI接口、小封裝、容量4Mbit的主流型號(hào)非常適合掛在通用MCU的SPI總線后面。1.2 為什么選中MR25H40CDF加MKV44F256VLH16這套組合MR25H40CDF是Everspin的第四代SPI MRAM容量4Mbit也就是512KB8引腳DFN封裝SPI時(shí)鐘最高可以跑到40MHz讀寫(xiě)速度基本是SRAM級(jí)別寫(xiě)入壽命超過(guò)10的14次方次相當(dāng)于可以無(wú)限次寫(xiě)。它的行為非常樸素地址、命令、數(shù)據(jù)都是標(biāo)準(zhǔn)SPI操作協(xié)議簡(jiǎn)單到像一顆帶掉電保持的SRAM。MCU側(cè)選MKV44F256VLH16也有自己的考慮。它屬于NXP Kinetis V系列ARM Cortex-M4F內(nèi)核主頻168MHzLQFP64封裝Flash 256KBSRAM 32KB溫度范圍是工業(yè)級(jí)的-40到105℃。KV系列本來(lái)就是定位電機(jī)控制板載的FlexTimer、高速ADC、PGA等外設(shè)對(duì)這個(gè)項(xiàng)目后續(xù)擴(kuò)展很有用。更重要的是它有一個(gè)成熟穩(wěn)定的DSPI模塊可以作為SPI主機(jī)直接掛MRAMDMA配置也方便不會(huì)成為性能瓶頸。這套組合還有一個(gè)隱性優(yōu)勢(shì)整板只有一顆MCU加一顆存儲(chǔ)供電3.3V統(tǒng)一走線簡(jiǎn)單MRAM和MCU都支持在工業(yè)溫度范圍工作沒(méi)有外部電池要維護(hù)。對(duì)于需要過(guò)環(huán)境認(rèn)證的工控設(shè)備物料清單越短可靠性越高。2. 兩顆芯片的關(guān)鍵細(xì)節(jié)2.1 MR25H40CDFMRAM不是普通存儲(chǔ)器MRAM的原理值得簡(jiǎn)單說(shuō)清楚因?yàn)槔斫饬嗽砟悴胖浪鼮槭裁茨芡瑫r(shí)做到快和不丟。它內(nèi)部用磁性隧道結(jié)存儲(chǔ)數(shù)據(jù)核心結(jié)構(gòu)是兩層鐵磁層中間夾著一層厚度只有納米級(jí)的絕緣勢(shì)壘。當(dāng)兩層鐵磁層的磁化方向一致隧穿電阻小表示一個(gè)邏輯狀態(tài)方向相反時(shí)隧穿電阻大表示另一個(gè)邏輯狀態(tài)。寫(xiě)入數(shù)據(jù)時(shí)通過(guò)電流產(chǎn)生的磁場(chǎng)或者自旋轉(zhuǎn)移力矩把自由層磁化方向翻轉(zhuǎn)不需要先擦除再寫(xiě)。這就是MRAM和Flash最本質(zhì)的區(qū)別Flash寫(xiě)入前必須把整個(gè)區(qū)塊擦成1再往里面寫(xiě)0擦除和寫(xiě)入是兩個(gè)獨(dú)立步驟所以慢而且傷壽命而MRAM可以直接把目標(biāo)位寫(xiě)入目標(biāo)值如同SRAM一樣。MR25H40CDF的主要參數(shù)我列一下項(xiàng)目參數(shù)容量4Mbit512K x 8接口SPI支持Mode 0和Mode 3最高時(shí)鐘40MHz供電電壓2.7V到3.6V寫(xiě)入耐久大于10的14次方次數(shù)據(jù)保持85℃下超過(guò)20年工作溫度-40℃到85℃工業(yè)級(jí)封裝8引腳DFN待機(jī)電流典型約5mA寫(xiě)操作按字節(jié)寫(xiě)無(wú)需頁(yè)編程或擦除需要特別說(shuō)明的是MR25H40CDF的寫(xiě)入耐久指標(biāo)并不是估計(jì)值而是Everspin通過(guò)實(shí)際循環(huán)測(cè)試保證的。它沒(méi)有Flash那種寫(xiě)壞塊的概念至少在你的產(chǎn)品生命周期內(nèi)可以認(rèn)為不存在磨損問(wèn)題。這對(duì)量產(chǎn)設(shè)備的意義很大不需要做磨損均衡不需要做壞塊管理存儲(chǔ)驅(qū)動(dòng)可以簡(jiǎn)化很多。2.2 MKV44F256VLH16Kinetis KV44在工業(yè)端的底氣MKV44F256VLH16的定位是電機(jī)控制專用MCU但把它當(dāng)通用工業(yè)控制器用也完全沒(méi)問(wèn)題。Cortex-M4F帶FPU跑浮點(diǎn)PID運(yùn)算很輕松168MHz主頻足夠處理電機(jī)控制環(huán)路再加上數(shù)據(jù)記錄任務(wù)。外設(shè)方面FlexTimer可以做多路PWM輸出PGA和高速比較器可以直接處理模擬量12位ADC的采樣時(shí)序可以跟PWM同步這一套組合在伺服和變頻器領(lǐng)域非常成熟。我這里主要關(guān)心DSPI模塊。Kinetis V系列的DSPI支持SPI、DSPI和Queued SPI模式可以配置為PCS自動(dòng)片選也可以手動(dòng)控制。對(duì)MRAM這種連續(xù)讀寫(xiě)命令我建議選擇手動(dòng)片選理由后面代碼部分詳細(xì)說(shuō)。DSPI的發(fā)送FIFO和接收FIFO各16個(gè)條目在40MHz時(shí)鐘下連續(xù)讀寫(xiě)512字節(jié)數(shù)據(jù)時(shí)基本不需要CPU干預(yù)配合DMA甚至可以在CPU不介入的情況下把整塊MRAM內(nèi)容搬到內(nèi)存。本次項(xiàng)目數(shù)據(jù)量不大我直接用了阻塞式讀寫(xiě)簡(jiǎn)單穩(wěn)妥代碼也好維護(hù)。選MKV44F256VLH16還有一個(gè)原因是庫(kù)存和供貨。256KB Flash的Kinetis V系列在市場(chǎng)上流通量大LQFP64封裝也方便手工焊接和返修不像BGA那樣只能靠回流焊。對(duì)很多工控小批量產(chǎn)品來(lái)說(shuō)可維護(hù)性本身就是硬指標(biāo)。3. 硬件設(shè)計(jì)與連接要點(diǎn)3.1 引腳映射與電路接法MR25H40CDF的8個(gè)引腳功能固定除電源地之外核心信號(hào)就是CS、SCK、MOSI、MISO、WP、HOLD。MKV44F256VLH16這側(cè)的DSPI引腳具體編號(hào)跟實(shí)際原理圖走線有關(guān)不同開(kāi)發(fā)板和最小系統(tǒng)板的引腳定義不一定相同這里我按功能對(duì)應(yīng)關(guān)系給出連接方式。MR25H40CDF引腳作用連接目標(biāo)說(shuō)明CS片選低有效MCU某GPIO手動(dòng)控制平時(shí)拉高SCKSPI時(shí)鐘DSPI_SCK最高40MHz建議17度上升斜率MOSI命令和數(shù)據(jù)輸入DSPI_SOUTMCU向MRAM寫(xiě)入數(shù)據(jù)MISO數(shù)據(jù)輸出DSPI_SINMRAM向MCU返回?cái)?shù)據(jù)WP寫(xiě)保護(hù)低有效直接接VDD上拉為高允許寫(xiě)狀態(tài)寄存器HOLD暫停通信低有效直接接VDD必須上拉懸空會(huì)出詭異問(wèn)題VDD電源3.3V并聯(lián)0.1uF加4.7uF去耦電容GND地系統(tǒng)地單點(diǎn)接地走線短粗需要強(qiáng)調(diào)幾點(diǎn)。WP和HOLD引腳不能懸空。HOLD拉低時(shí)MRAM會(huì)忽略SCK邊沿如果在高速通信過(guò)程中HOLD上出現(xiàn)毛刺就會(huì)發(fā)生幀錯(cuò)位出現(xiàn)數(shù)據(jù)寫(xiě)進(jìn)去但讀出來(lái)是亂的這種問(wèn)題。WP雖然只鎖狀態(tài)寄存器寫(xiě)入但同樣建議直接接高避免意外拉低后WRSR命令無(wú)效排查起來(lái)很隱蔽。CS用GPIO控制還是用DSPI硬件PCS控制這是電路設(shè)計(jì)階段就要定的事。我強(qiáng)烈建議用GPIO控制片選原因后面代碼部分展開(kāi)硬件上只需把CS引腳接到任意空閑GPIO不需要DSPI的PCS功能映射到同一個(gè)引腳這樣在設(shè)計(jì)上就規(guī)避了引腳沖突。3.2 DFN8封裝與PCB設(shè)計(jì)經(jīng)驗(yàn)MR25H40CDF的DFN封裝沒(méi)有裸露焊盤(pán)但引腳間距小焊接時(shí)還是要注意。我這邊是加熱臺(tái)配合鋼網(wǎng)或者手工風(fēng)槍加焊膏260到280℃溫度檔位別超過(guò)300℃吹到焊膏完全熔化后再稍微給點(diǎn)時(shí)間讓錫珠聚攏。焊完后可以用萬(wàn)用表測(cè)一下VDD和GND之間有沒(méi)有短路再測(cè)CS、SCK、MOSI對(duì)地電阻確保沒(méi)連錫。有條件的話拿放大鏡或顯微鏡看一眼每個(gè)引腳側(cè)面有沒(méi)有爬錫這比單純量阻值更可靠。PCB走線方面40MHz的SPI信號(hào)不算高頻但也不能太隨意。SCK、MOSI、MISO三條信號(hào)線長(zhǎng)度盡量控制在3厘米以內(nèi)如果超過(guò)5厘米建議在SCK上串一個(gè)22歐到33歐的電阻用于抑制振鈴并在終端加10到20pF電容濾掉高頻噪聲。工業(yè)現(xiàn)場(chǎng)最常見(jiàn)的干擾源是變頻器的IGBT開(kāi)關(guān)噪聲它們會(huì)通過(guò)地線耦合進(jìn)SPI總線。所以MRAM的地腳到MCU地腳之間要走單獨(dú)的粗地線不要和功率部分的回流地共用一段細(xì)走線。電源去耦是另一個(gè)容易被忽略的點(diǎn)。MRAM在40MHz翻轉(zhuǎn)時(shí)瞬態(tài)電流不低如果去耦電容離VDD引腳太遠(yuǎn)VDD在讀寫(xiě)瞬間會(huì)產(chǎn)生壓降導(dǎo)致偶發(fā)寫(xiě)失敗。我的做法是0.1uF盡量貼著VDD引腳放置同時(shí)在3.3V電源入口再加4.7uF鉭電容或陶瓷電容確保高頻和低頻去耦都有覆蓋。4. 軟件讀寫(xiě)實(shí)現(xiàn)4.1 DSPI初始化和時(shí)鐘選擇MKV44F256VLH16的DSPI配置在NXP的MCUXpresso SDK里有現(xiàn)成的驅(qū)動(dòng)直接調(diào)用DSPI_MasterInit即可。關(guān)鍵參數(shù)是模式選擇、時(shí)鐘分頻和片選策略。MR25H40CDF支持SPI Mode 0和Mode 3區(qū)別只在SCK空閑電平。Mode 0是空閑低電平數(shù)據(jù)在SCK上升沿采樣Mode 3是空閑高電平數(shù)據(jù)同樣在上升沿采樣。兩個(gè)模式都可以用我習(xí)慣用Mode 0因?yàn)槌跏蓟瘯r(shí)SCK默認(rèn)低電平能讓總線處于更安靜的狀態(tài)。初始化代碼如下#include fsl_dspi.h #define MRAM_DSPI_BASE DSPI0 #define MRAM_DSPI_CLK_FREQ CLOCK_GetFreq(kCLOCK_Dspi0) void mram_dspi_init(void) { dspi_master_config_t cfg; DSPI_MasterGetDefaultConfig(cfg); cfg.baudRate 40000000U; // 40MHz cfg.whichPcs kDSPI_Pcs0; // 僅用PCS編號(hào)實(shí)際CS由GPIO接管 cfg.clockMode kDSPI_ClockMode0; cfg.phasePolarity kDSPI_ClockPhaseFirstEdge; DSSI_MasterInit(MRAM_DSPI_BASE, cfg, MRAM_DSPI_CLK_FREQ); }時(shí)鐘頻率選40MHz這是MR25H40CDF的上限。如果你的PCB走線質(zhì)量一般或者經(jīng)過(guò)連接器轉(zhuǎn)接可以先把頻率降到20MHz驗(yàn)證功能再逐步往上提。實(shí)測(cè)中40MHz穩(wěn)定工作沒(méi)問(wèn)題但前提是走線短、地回流干凈。另外要注意DSPI的時(shí)鐘分頻是二分頻疊加實(shí)際波特率可能和配置值有微小偏差只要低于40MHz上限即可不必糾結(jié)精確值。CS引腳配置為GPIO輸出默認(rèn)拉高執(zhí)行命令時(shí)手動(dòng)拉低拉高。GPIO的速度性能在這里不是瓶頸因?yàn)橐粭lSPI命令短則幾微秒GPIO翻轉(zhuǎn)時(shí)間都在納秒級(jí)完全跟得上市面常見(jiàn)的存儲(chǔ)讀寫(xiě)節(jié)奏。4.2 命令集與狀態(tài)寄存器MR25H40CDF的命令集非常精簡(jiǎn)實(shí)際用到的就這么幾條命令操作碼功能后續(xù)內(nèi)容WREN0x06寫(xiě)使能置位WEL無(wú)WRDI0x04寫(xiě)禁用清除WEL無(wú)RDSR0x05讀狀態(tài)寄存器返回狀態(tài)字節(jié)WRSR0x01寫(xiě)狀態(tài)寄存器狀態(tài)字節(jié)需要先WRENREAD0x03讀數(shù)據(jù)3字節(jié)地址然后輸出數(shù)據(jù)WRITE0x02寫(xiě)數(shù)據(jù)3字節(jié)地址然后輸入數(shù)據(jù)SLEEP0xB9進(jìn)入睡眠模式無(wú)WAKE0xAB喚醒無(wú)狀態(tài)寄存器里最常用的是Bit7的WPEN和Bit1的WEL。WEL是寫(xiě)使能鎖存位發(fā)送WREN命令后置位執(zhí)行一次WRITE或WRDI后會(huì)清除。也就是說(shuō)寫(xiě)操作之前必須發(fā)WREN否則寫(xiě)命令會(huì)被忽略。這個(gè)機(jī)制和Flash保持一致目的就是防止總線上的意外毛刺把數(shù)據(jù)改寫(xiě)。有一個(gè)很多新手會(huì)混淆的點(diǎn)MRAM不像Flash那樣有忙標(biāo)志寫(xiě)完數(shù)據(jù)不需要輪詢WIP位也不會(huì)出現(xiàn)頁(yè)編程等待。WRITE命令的最后一個(gè)字節(jié)時(shí)鐘邊沿結(jié)束數(shù)據(jù)已經(jīng)物理寫(xiě)入MRAM單元了。這對(duì)工業(yè)時(shí)序設(shè)計(jì)特別友好你可以在關(guān)斷供電前的最后幾十微秒內(nèi)把關(guān)鍵狀態(tài)寫(xiě)進(jìn)去完全來(lái)得及。4.3 完整驅(qū)動(dòng)代碼與講解我給出一個(gè)精簡(jiǎn)但可直接用的MRAM驅(qū)動(dòng)框架包含初始化、寫(xiě)使能、讀、寫(xiě)、讀狀態(tài)寄存器這些基本操作。因?yàn)镸KV44F256VLH16的SDK封裝了DSPI底層傳輸代碼可讀性會(huì)好很多你直接替換引腳定義和DSPI編號(hào)就能用。#include fsl_dspi.h #include fsl_gpio.h #include fsl_port.h #define MRAM_CS_GPIO_PORT PORTA #define MRAM_CS_GPIO_PIN 10U static void mram_cs_low(void) { GPIO_PinWrite(MRAM_CS_GPIO_PORT, MRAM_CS_GPIO_PIN, 0); } static void mram_cs_high(void) { GPIO_PinWrite(MRAM_CS_GPIO_PORT, MRAM_CS_GPIO_PIN, 1); } void mram_gpio_init(void) { gpio_pin_config_t pin_cfg {kGPIO_DigitalOutput, 1}; PORT_SetPinMux(MRAM_CS_GPIO_PORT, MRAM_CS_GPIO_PIN, kPORT_MuxAsGpio); GPIO_PinInit(MRAM_CS_GPIO_PORT, MRAM_CS_GPIO_PIN, pin_cfg); } void mram_write_enable(void) { uint8_t cmd 0x06; uint8_t rx 0x00; mram_cs_low(); DSPI_MasterWriteBlocking(MRAM_DSPI_BASE, cmd, rx, 1); mram_cs_high(); } uint8_t mram_read_status(void) { uint8_t cmd 0x05; uint8_t status 0x00; mram_cs_low(); DSPI_MasterWriteBlocking(MRAM_DSPI_BASE, cmd, status, 1); DSPI_MasterWriteBlocking(MRAM_DSPI_BASE, cmd, status, 1); mram_cs_high(); return status; } void mram_write_burst(uint32_t addr, const uint8_t *data, uint32_t len) { uint8_t buf[4]; mram_write_enable(); buf[0] 0x02; buf[1] (uint8_t)((addr 16) 0xFF); buf[2] (uint8_t)((addr 8) 0xFF); buf[3] (uint8_t)(addr 0xFF); mram_cs_low(); DSPI_MasterWriteBlocking(MRAM_DSPI_BASE, buf, buf, 4); DSPI_MasterWriteBlocking(MRAM_DSPI_BASE, (uint8_t *)data, (uint8_t *)data, len); mram_cs_high(); } void mram_read_burst(uint32_t addr, uint8_t *data, uint32_t len) { uint8_t buf[4]; buf[0] 0x03; buf[1] (uint8_t)((addr 16) 0xFF); buf[2] (uint8_t)((addr 8) 0xFF); buf[3] (uint8_t)(addr 0xFF); mram_cs_low(); DSPI_MasterWriteBlocking(MRAM_DSPI_BASE, buf, buf, 4); DSPI_MasterWriteBlocking(MRAM_DSPI_BASE, (uint8_t *)data, (uint8_t *)data, len); mram_cs_high(); }讀狀態(tài)寄存器那里我故意用了一次多余的發(fā)送原因在于SPI是全雙工總線每一次時(shí)鐘邊沿同時(shí)發(fā)送和接收。讀狀態(tài)寄存器時(shí)必須先發(fā)出0x05命令讓MRAM把狀態(tài)字節(jié)放到輸出緩沖區(qū)緊接著再產(chǎn)生一個(gè)時(shí)鐘才能把狀態(tài)字節(jié)采回來(lái)。所以在mram_cs_low()之后第一次DSPI_MasterWriteBlocking把命令發(fā)出去第二次發(fā)送產(chǎn)生接收時(shí)鐘把狀態(tài)拿到。當(dāng)然SDK的DSPI_MasterReadBlocking也會(huì)有類似邏輯封裝方式不同而已但你要理解底層的數(shù)據(jù)流否則容易把命令位移錯(cuò)。mram_write_burst的時(shí)序要特別說(shuō)明。整條WRITE命令是連續(xù)不中斷的先拉低CS發(fā)送0x02緊接著發(fā)三個(gè)地址字節(jié)再連續(xù)發(fā)送數(shù)據(jù)字節(jié)全部發(fā)完才把CS拉高。MRAM內(nèi)部會(huì)自動(dòng)把地址遞增所以你可以在一次CS低電平窗口期寫(xiě)入任意長(zhǎng)度的連續(xù)數(shù)據(jù)沒(méi)有頁(yè)邊界限制。讀操作同樣如此一次READ命令可以連續(xù)讀出多個(gè)字節(jié)。這里有個(gè)細(xì)節(jié)如果讀操作超過(guò)了整個(gè)512KB地址空間末尾地址會(huì)回卷到0x00000。工業(yè)應(yīng)用幾乎不會(huì)把512KB一次讀完但你要知道這個(gè)行為存在別在寫(xiě)環(huán)形緩沖的時(shí)候讓它靜默回卷覆蓋了配置區(qū)。4.4 為什么CS用GPIO控制而不是硬件PCS這是我覺(jué)得最值得展開(kāi)的一個(gè)設(shè)計(jì)點(diǎn)。NXP的DSPI硬件PCS引腳可以在配置里設(shè)置為自動(dòng)片選每一幀傳輸開(kāi)始時(shí)自動(dòng)拉低傳輸結(jié)束后自動(dòng)拉高。聽(tīng)起來(lái)很方便但問(wèn)題在于MRAM的一條命令往往由多個(gè)字節(jié)組成如果是命令加地址加數(shù)據(jù)的完整傳輸必須要求CS在整個(gè)過(guò)程中保持低電平。而DSPI的PCS在非持續(xù)模式下每個(gè)8位幀結(jié)束就會(huì)釋放CS。要做硬件持續(xù)模式也可以需要配置DSPI的持續(xù)模式并配合PCS控制寄存器把CS在整個(gè)傳輸過(guò)程中鎖住傳輸結(jié)束后再由軟件釋放。這套機(jī)制能工作但多了一層狀態(tài)管理在中途發(fā)生異常時(shí)CS可能保持低電平卡死總線排查起來(lái)比較麻煩。GPIO控制CS的優(yōu)點(diǎn)是絕對(duì)直觀命令字節(jié)發(fā)完了嗎地址字節(jié)發(fā)完了嗎數(shù)據(jù)字節(jié)發(fā)完了嗎好拉高CS。任何一步出錯(cuò)都只是當(dāng)次傳輸失敗下一次從拉低CS重新開(kāi)始。而且GPIO控制CS天然支持命令和命令之間的任意等待比如你先發(fā)WRENCS拉高隔任意時(shí)間再發(fā)WRITE不需要給外設(shè)寄存器設(shè)置狀態(tài)。所以我統(tǒng)一用GPIO做片選把whichPcs僅當(dāng)一個(gè)編號(hào)占位符引腳復(fù)用為GPIO方式避免硬件PCS和GPIO同時(shí)驅(qū)動(dòng)同一個(gè)物理引腳造成沖突。5. 實(shí)際調(diào)試中的問(wèn)題與排查5.1 常見(jiàn)故障速查表調(diào)試過(guò)程中我積累了一張故障對(duì)照表方向感很強(qiáng)分享出來(lái)現(xiàn)象可能原因處理方式讀回全是0xFFCS沒(méi)有拉低或SCK無(wú)時(shí)鐘WP/HOLD懸空檢查GPIO輸出是否正確把WP/HOLD接VDD數(shù)據(jù)錯(cuò)位一個(gè)字節(jié)CS在命令傳輸中途被拉高幀被切斷確認(rèn)整條命令期間CS保持低用GPIO控制寫(xiě)使能后寫(xiě)命令無(wú)效WREN后WEL被意外清除檢查WREN到WRITE之間是否執(zhí)行了其他命令確認(rèn)時(shí)序偶爾讀出某個(gè)位翻轉(zhuǎn)SPI時(shí)鐘過(guò)高信號(hào)完整性差降到20MHzSCK串22歐電阻檢查地線回流掉電后上次數(shù)據(jù)丟失供電在寫(xiě)數(shù)據(jù)過(guò)程中跌落加大去耦電容確保掉電檢測(cè)后預(yù)留2ms穩(wěn)定供電連續(xù)寫(xiě)入后數(shù)據(jù)重疊覆蓋地址回卷或環(huán)形緩沖越界在驅(qū)動(dòng)里對(duì)地址強(qiáng)制掩碼并增加邊界檢查高溫老化后偶發(fā)失敗溫度超過(guò)芯片工作范圍確認(rèn)環(huán)境溫度不超85℃貼片芯片測(cè)溫要測(cè)本體而非環(huán)境5.2 兩個(gè)讓我印象深刻的bug第一個(gè)bug是CS被硬件PCS和GPIO雙重驅(qū)動(dòng)。最初版本硬件上把CS接在DSPI的PCS0引腳上代碼里又開(kāi)了一個(gè)GPIO控制同一條線結(jié)果CS信號(hào)被兩個(gè)輸出源疊加邊緣變緩整個(gè)通信時(shí)好時(shí)壞。后來(lái)我把引腳Mux改為純GPIODSPI只用SCK和SOUT、SIN三根線把所有片選邏輯全部交給GPIO問(wèn)題消失。如果你在調(diào)試中遇到時(shí)好時(shí)壞的通信故障第一個(gè)要查的就是有沒(méi)有兩個(gè)外設(shè)模塊在驅(qū)動(dòng)同一個(gè)引腳。第二個(gè)bug是HOLD引腳懸空惹的禍。原型板上HOLD沒(méi)接任何東西導(dǎo)致在連續(xù)讀寫(xiě)時(shí)偶爾出現(xiàn)一幀錯(cuò)位寫(xiě)128字節(jié)的數(shù)據(jù)讀回來(lái)前面正確中間某一段亂了。起初懷疑MRAM壞道換了芯片還是同樣問(wèn)題。用示波器看HOLD引腳發(fā)現(xiàn)上面有幾十毫伏的隨機(jī)噪聲正好在SCK邊沿附近觸發(fā)了一次HOLD。把HOLD上拉到VDD后跑了48小時(shí)老化測(cè)試一幀都沒(méi)有錯(cuò)過(guò)。這個(gè)教訓(xùn)很簡(jiǎn)單但很貴MRAM的所有控制引腳只要數(shù)據(jù)手冊(cè)說(shuō)低有效并且內(nèi)部沒(méi)有默認(rèn)上拉的統(tǒng)統(tǒng)外部上拉不要省。6. 在工業(yè)項(xiàng)目中擴(kuò)展使用6.1 日志分區(qū)與環(huán)形緩沖設(shè)計(jì)MR25H40CDF的512KB空間在工控?cái)?shù)據(jù)記錄場(chǎng)景里非常充裕但設(shè)計(jì)上仍然建議分區(qū)使用不要所有數(shù)據(jù)都堆在一個(gè)地址區(qū)間。我推薦三個(gè)分區(qū)配置區(qū)、日志區(qū)、掉電保護(hù)區(qū)。配置區(qū)放在起始地址0x00000到0x0FFFF共64KB存設(shè)備序列號(hào)、標(biāo)定參數(shù)、通訊地址這類不經(jīng)常變的數(shù)據(jù)。每次寫(xiě)配置時(shí)先寫(xiě)一個(gè)版本號(hào)再做一次讀回校驗(yàn)并且用兩個(gè)備份區(qū)交替寫(xiě)入。如果現(xiàn)場(chǎng)掉電中斷了配置更新下次上電還能從第二個(gè)備份恢復(fù)避免設(shè)備變成磚頭。日志區(qū)放在0x10000到0x6FFFF共384KB做成環(huán)形緩沖。每一條日志固定長(zhǎng)度比如32字節(jié)包含時(shí)間戳、狀態(tài)字、故障碼。寫(xiě)指針指向當(dāng)前寫(xiě)入位置每寫(xiě)一條日志就移動(dòng)一次。因?yàn)镸RAM不怕寫(xiě)環(huán)形緩沖不需要做擦除操作指針繞圈寫(xiě)就行比Flash方案簡(jiǎn)單太多。掉電保護(hù)區(qū)放在0x70000到0x7FFFF共64KB保存掉電瞬間需要立即記錄的狀態(tài)量。平時(shí)不頻繁寫(xiě)只在檢測(cè)到掉電信號(hào)后利用MCU掉電中斷和儲(chǔ)能電容提供的最后幾毫秒把電機(jī)位置、控制狀態(tài)、累計(jì)脈沖數(shù)寫(xiě)進(jìn)去。上電后先讀這個(gè)區(qū)域判斷上次是否正常斷電再?zèng)Q定是否恢復(fù)到掉電前狀態(tài)。6.2 幾個(gè)實(shí)際經(jīng)驗(yàn)MRAM在邏輯上接近SRAM但驅(qū)動(dòng)代碼里還是建議加一層封裝不要讓業(yè)務(wù)代碼直接面對(duì)SPI命令。哪怕只是簡(jiǎn)單封裝成mram_write(addr, buf, len)和mram_read(addr, buf, len)兩個(gè)函數(shù)后續(xù)做日志模塊、配置模塊時(shí)也會(huì)清爽很多。我甚至在驅(qū)動(dòng)里主動(dòng)屏蔽了地址越界凡是地址超過(guò)0x7FFFF的請(qǐng)求直接返回錯(cuò)誤碼避免環(huán)形緩沖寫(xiě)飛后把配置區(qū)覆蓋掉。工業(yè)現(xiàn)場(chǎng)如果有多個(gè)任務(wù)同時(shí)訪問(wèn)MRAM比如一個(gè)任務(wù)寫(xiě)日志另一個(gè)任務(wù)讀配置SPI總線會(huì)被并發(fā)訪問(wèn)。這時(shí)需要在驅(qū)動(dòng)層加一個(gè)簡(jiǎn)單的互斥鎖無(wú)論是裸機(jī)的臨界區(qū)還是RTOS的互斥信號(hào)量保證每一條MRAM命令都是原子的。不然兩個(gè)任務(wù)交錯(cuò)訪問(wèn)CS信號(hào)會(huì)被打斷讀回的數(shù)據(jù)就是亂的。還有一點(diǎn)是關(guān)于掉電檢測(cè)的優(yōu)先級(jí)。MKV44F256VLH16正常供電在3.3V當(dāng)電源管理單元檢測(cè)到主電源跌落時(shí)要立即關(guān)掉外部設(shè)備的SPI訪問(wèn)把總線資源讓給掉電保存任務(wù)。我自己用了一個(gè)比較器做掉電檢測(cè)當(dāng)VDD低于3.0V時(shí)觸發(fā)中斷中斷里禁用DSPI的DMA傳輸然后只執(zhí)行一次MRAM寫(xiě)操作。這樣即使掉電過(guò)程再快最后幾個(gè)字節(jié)也能穩(wěn)定寫(xiě)進(jìn)去。成本方面MR25H40CDF的單價(jià)比同容量EEPROM貴一些但考慮到省去的磨損均衡邏輯、調(diào)試時(shí)間和售后返修綜合成本反而更劃算。我現(xiàn)在做電機(jī)控制相關(guān)的數(shù)據(jù)保存項(xiàng)目凡是寫(xiě)入頻率高于每分鐘一次的選擇MRAM寫(xiě)入頻率很低的才用EEPROM。最后再分享一個(gè)小技巧。調(diào)試MRAM驅(qū)動(dòng)時(shí)不要一上來(lái)就寫(xiě)業(yè)務(wù)邏輯先用最簡(jiǎn)單的命令流驗(yàn)證讀寫(xiě)上電讀狀態(tài)寄存器發(fā)WREN寫(xiě)一個(gè)0x00到0xFFFF的遞增序列再讀回比對(duì)。這一步通過(guò)了再上自己的業(yè)務(wù)代碼。很多看似玄學(xué)的存儲(chǔ)問(wèn)題最后定位下來(lái)都是SPI時(shí)序或者電源噪聲先用最小用例把物理鏈路確定后面的效率會(huì)高很多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
999综合色| 丁香九月激情啪| 国产传媒美日韩av| 立川理惠无码一区二区| 男同专区一区二区三区在线| 国产日韩人人| 久9视频| 久久久久久久久9| 国产尤物AV尤物在线观看不卡 | 青青操在线亚洲视频观看欧美在线| 91精品无码久久久久久久| 99精品热| 男女性感激情网站| 人妻欧美| 97久久天天综合色天天综合色电影| 久久久免费一级黄片| juliaann欧美丝袜办公室| 97亚洲一区| 伊欧美综合视频| 极品国产内射| 91操熟女| 婷婷婷婷婷婷久久久久| 爱爱啊啊啊| 中文字幕午夜精品久久久| 91国产精品熟女| 啪啪资源网| 上特色A在线| 欧美熟妇亚洲版| 国产精品久久久亚洲一区| 国产中文精品一区二区在线观看| aaa亚无码专区| 青草精品视频一日本久久久久网站| 混色激情av| 亚洲欧美成人在线| 狠狠色婷婷777| 亚洲av综合伊人久久| 日韩精品午夜操呦呦不卡影院| 精品熟女一区=区三区| 欧美日韩另类在线| 欧美色人| 91爱做| 狠狠激情综合狠狠操中文字幕| 蜜臀久久99精品久久久久久| 亚洲另类春色| 一区二区中文| 欧美黄色手机在线观看| 嗯嗯嗯嗯啊啊啊好紧好大| 国产精品点击进入在线影院| 国产高清精品一区二区三区毛片 | 久草综合网| 欧美影音在线| 狠色婷婷久久一区二区三区_| 日韩一级二级在线| 啊啊啊啊啊好大好舒服想要| 9精品久久| 日本A级视频| 激情四射五月天| 男人的天堂日本东京热| 久日综合网| 日韩欧亚中文在线| 天天干夜夜| 欧美伦乱爱| 青青草丝袜在线视频| 亚一综合久久久久久久久久| 六月色色| 欧美情色男人的天堂| 中文字幕 一区二区 亚洲无码| 久久怡红院| 99热免费| 东北女人操比视频| 欧美第五页| 九九九九AV| 手机在线看片免费人成视频| 亚洲天堂区| 旡码电影特区| 99精品丰满人妻无码| 国产97在线播放| 婷婷爽人人婷婷爽视频| 青娱乐福利99| 欧美刺激色黄片免费看| 少妇 综合| 91l欧美在线| 久久偷偷色综合蜜桃| 一区e区三| 东京热,男人的天堂| 大香久久| 在线看片国产精品每日更新| 色墦五月丁香| 欧亚第一综合网| 欧美性天天影院| 色图四区| 操逼1区| 亚洲黄网在哪免费看| 特级毛片特黄久久免费看| 久久AV无码网址| 婷婷色一区| 蜜臀久久99精品| 人妻熟女一区二区三区视频| 欧美强奸乱能| 天堂日本亚洲欧美| 久久黄黄| 51一区二区三区| 日韩电影在线观看网址| 中文字幕日本久久| 少妇三P| 久久色网| 久久精品毛片免费不卡| 日韩性爱网址| 天美传媒av一区二区| 国产午夜精品在线观看| 超碰色97| 日韩无码极品| 亚洲精品一区二区三区在线播放| 偷拍网站久久男女男| 欧美洲精品一级| 91精品国产91久久青草| 欧美一区二区三区日韩| 亚州欧美一区| 中文字幕一区二区三区高清| 国内精品不卡无毒99999| 大白逼三四级| 国内亚洲精彩视频在线| 亚洲欧美天堂在线| 999久久久国产精品| 日韩人妻有码免费视频| 久久嫩草国产成人一区| 日本淫乱女一区二区三区视频| 久久一区二区三区入口| 色色色色日本| 老鸭窝日丰县女人| 蜜桃av综合网发布| AV天黑人| 在线可观看的黄色网址| 亚洲凸凹超碰成人| 国产精品亚洲免费| 大香蕉伊然在亚洲91| 中文字幕一区av| 欧美最婬乱婬爆婬性视频 | 人人操人人射人人干| 久久久久久九九九九| 99热成人| 国产久久久久久| 亚洲人妻AV| 精品人妻一区二区三区视频在线| 亚洲高清无码免费观看视频| 日韩欧美天堂| 丁香久久| 成人 日本A片无码8888| 狠狠躁日日躁夜夜躁A| 伊人专区一区二区三区| 日韩ab网| 亚洲日韩国产欧美综合v| 97超碰色五月| 老熟女91| 330Dv国产女人终合视频极品人与兽 | 中文自拍欧美影视| 久久99久久99精品天美传媒棢·纸:.| 五月婷婷综合网| 男女国产精品| 色综合99| 囯产精品久久久久久久久久梁医生| 五月婷婷色| 99国产精品| 亚洲欧美综合图片| 精品乱码在线观看| 欧美日韩国产中文精品字幕自在自线| 久久久久无码一妻区| 午夜福利av电影在线| 91精品少妇搡搡搡| 亚洲AV不卡在线观看尤物| 欧美另类综合久久| 国产精品直播在线观看直播| 超碰碰小说97| 日本高清电影欧美色图| 99久久久er直播网址| 蜜臀久久99'精品久久久| 97五月天| 性做久久久久久久| 人人妻人人澡人人爽人人精品浪潮| 国产亚洲人妻综合日韩 久久| 欧成人在线| 综合激情五月天| 无遮挡男女激烈动态图| 天堂亚洲精品久久老牛| 国产美女裸体秘 永久无遮挡| 国产精品对白内射| 色999亚洲人成色| 老熟妇乱轮| 久久久久久久久久精| 性色avv| 亚欧韩av| 天天干一干| 99热66| 草草影院在线视频| 午夜人妻精品综合在线| 欧美成人精品A片免费一区99| 在线无码网站| 欧美劲爆视频一区二区| 无码人妻精品一区二区中文| 欧美亚洲情色| 色97综合中文字幕| AV99热18这里只有精品| 日韩欧美~中文字| 欧美特黄视频网站| 黑人在线91| 麻豆久久一区二区三区| 亚洲在线| 国产suv精品一区二区四区999 | 国产1769在线| 亚洲天堂热| 丰满人妻一区二区三区| 国产a级精品| 欧日韩一二三f区| 少妇久久久久久| 日韩人妻一区二区精品| 欧美成人亚洲精品| 国产精品久久久久久久久久久久久久久久 | 久综合国内精品自在自线| 偷拍网站久久男女男| 欧美色图亚洲特色| 17c嫩草51久久91嫩草| 在线观看色视频| 欧美在线|亚洲| 亚州性色| 国产AV超爽| 中文字幕丝袜人妻| 免费视频一二三区| 国产精品久久久鸭无码的功能| 青苹果影院男人的天堂| 91精片| 柠檬AV导航| 999熟女精品| 黄在线| 91处女在线视频| 啊啊啊啊网站| 日本熟妇熟色97一本在线观看| 亚洲欧美大| 国产一区二区精品久久99| 亚洲欧美日韩精品久| 午夜毛片高清免费不卡| 欧美精品精品一区二区| 艳美熟妇先锋一二三区| 欧美综合色综合| 日韩综合无码一区久久92| 爱欲AV| 日本成a人v网站在线观看| 日本网色| 少妇久久久久久久久| 无码直播久久久| 精品无av| 情侣操 逼视频99| 亚洲成人美女无吗| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 裸体1区| 大香蕉啪啪网| 亚洲五码一区二区三区| 婷婷色网| 色官网色综合| 91碰碰| 久久九九综合| 97超碰欧美精品| 亚洲欧美成人在线| 亚洲女毛多水多21P| 国产一级舔足在线观看| 91欧美色| 91精品人妻| 是还免费视频1727我| 色色99| 嗯啊啊啊轻点视频 | 少妇精品久久久| 极品色社| 能在线播放的国产三级| 中文字幕在线免费观看视频| 思思热国产高清| 亚洲日韩资源| 久久青青草在线视频| 男人天堂2017| 亚洲AV成人精品网站在AV| 亚洲第一男人天堂| 久久久精品九| 夜夜夜爽www精品视频| 黑白配性爱AV成| 久操视频免费观看| 乱色老一区二区三区的观看方式 | 久久精品国内Av熟女高清| 亚洲综合色图欧美| 亚洲久久久久| 亚洲熟女中文字幕在线| 后入式在线免费观看60秒| 久久亚洲人妻| 久久久免费视频18| 99999国产| 久久熟女嫩草成人片免费| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 丁香九月 婷婷| 欧美日韩久久精品爱爱| 浪人综合网| 丰满人妻一区二区三区四 | 人妻在线中出视频| 四虎884| 日韩小电影| 岛国免费黄色网址| 久久黄黄| 好爽要喷了| 久久精品—区二区三区内射| 久久久五月天| 97超碰总站| 精品妇操一区二区三区| 欧美日韩小说| 日韩国产乱子伦App| 色婷五月| 欧美亚洲涩涩| 99av| 熟女视频久久| 精品人妻一区二区免费蜜桃| 97日视频| 超碰97护士| 99自拍视频在线| 思思热一热婷婷热一热| 色制服丝袜夫妻av一区| 大香蕉黄色一级片免费看| 人人妻人人操人人乐| 老色鬼成人精品视频下载大在线观看| 国产亲戚伦亲在线| av草草在线电影| 国产成人亚洲精品无码古代早漏男| 四虎国产成人精品免费一女五男| 久久久久亚洲三级电影| 欧亚第一综合网| 无码人妻一区二区三区色欲aⅴ| 九九玖玖精品| 成人日本视频人妻在线| 抽插一区二区视频| 日本欧美亚洲高清在线看| 亚洲限制级| 日本欧美韩国国产在线| 亚洲成人色情五月天丁香花| 国产AV久久野战精品| 一区二区三区四区久久视1| 亚欧无码线免费观看视频| 草草影院在线视频| 亚洲狠狠入| 99热18| 超碰久超碰久| 国产精品久久久亚洲一区| 午夜性| 黄色一区二区秘书性感| 欧美综合1性辶| 欧美夜色| 久久草大香蕉| 国产日韩手机视频在线| 亚洲在线综合| 婷婷久草| 美女的肌被草喷水视频| 五月丁香色色网| 久久无码成人| 最新岛国大片| 四虎在线视频| 四季AV一区二区凹凸精品小说| 日韩激情啪啪| 超碰97护士| 色九九九综合| 婷婷激情啪啪| 超碰人人超在线观看| 欧美亚洲综合高清在线| 亚洲性综合| 欧美日韩资源在线| 熟妇熟女视频一区二区三区| 久久在线观看免费视频| 狠日欧美| 懂色Av一区二区三区| 3P丝袜熟女 色综合| 无码九九| 91熟女视频网| 欧美性五月| 亚州综合图片| 日韩三A大片在线观看| 操老熟女AV| 大香蕉欧美国产日韩高潮| 国产AV人人 夜夜人人澡| 欧美黄色手机在线观看| 国产日韩精品一区二区三区| 97免费在线视频在线观看| 香蕉国产精品麻豆亚洲欧美日韩| 一区超碰一区| 玖日综合网| 色综合 加勒比| 一起草视频在线| 人人操人人摸人人骑| 日本男人天堂| 日韩欧美亚欧在线视频| www.99中文字幕| 蜜乳AV色欲AVAV无码| 五月婷婷大香蕉| 日本三级中国三级99人妇网站| 操逼片中文| 精品人妻伦一二三区久久| 天天做天天爱天天爽| 亚州色图狠狠干| 国产成人无码a| 日本国产高清色www视频在线| 国产一| www.久久最新地址| 91 亚洲 欧美 日韩 国产 综合| 91呆哥人妻| 九九色逼| 99在线啪| 免费精品无码一级毛片牛牛影视| 久久av无码| 志村玲子视频一区二区| 人人操人人摸人| 一本一道人妻久久一区二区三区 | 中文字幕奈奈美被公侵犯| 岛国人妻少妇av在线观看| 久久手机视直播| 亚洲情色第一页| 日韩精品三级| 久久一区二区高清免费| 精品一区二区三区最新| 日韩一卡二卡三卡| 久久久精品无码亚免费| 五月婷婷久久综合| 91男人天堂网| 亚洲女毛多水多21P| 国产一区二区三区,在线观看观看| 黄色香蕉视频网站一区| 天天色踪合| av日韩手机在线影视| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 亚洲天堂一二| 色综合婷婷| 欧美日韩国产电影| 国产一级黄色片在线观看| 欧美桃色网| 99热官网| 囯产精品久久久久久久久久梁医生 | 四虎影视永久在线观看精品免费网站 | 精品一区二区在线针对华人免费观看这里只有精品免费观看 | www.狠狠| 成人一二| 欧美日韩美女精品久草一区二区三区| 我想要啊 啊 啊| 亚洲成a人在线观看久| 男人的天堂久久狠| 天天干天天操天天拍| 淫荡网址| AV色五月天| 婷婷五月天社区| 国产精品国产自产高清AV| 激情露脸爱| 浪人综合网| 亚洲成aⅴ人片不卡无码| 色欧美在线| 综合91网| 丝袜内射| 深爱五月天| 日本欧美一区二区三区视频麻豆| 欧洲大香蕉| 黄色网址久久精品欧美喷水| 国产精品人妻无码久久久互動交流 | av婷婷色网| 在线观看日韩av不卡| 国产特级毛片AAAAAA高潮流水 | 男人网站婷婷| 欧美亚洲综合色| 天天操夜夜嗨| 精品一级毛片在线观看| 99蜜桃臀久久久欧美精品网站| 美日韩男女操屄视频| 中文字幕奈奈美被公侵犯| 久操在97| 亚洲。日韩。欧美| 日本高清视频xxxx| 午夜一区| 国产精品成人AV片免费看网站| 青青操日韩| 国产一区二区三区不卡手机在线| 亚洲 日本 一 二 三| 久久久一二三四区| 婷婷亚洲五月***久久| 日本淫乱女一区二区三区视频| 蜜桃网熟妇| 亚洲性少妇| WWW.加勒比人妻一区不卡.com| 欧美日韩狠狠爱| 老鸭窝黄色视频网站| 爱做久久久久久| 天天色综亚洲91污| 人人人人插| 日本Xx性爱| 老熟妇乱轮| 日韩精品永久在线观看| 思思热在线视频精品| 丁香六月婷婷久久综合| 一区,二区,三区网站| 校园春色 男人天堂| 91成人精品在线播放| AⅤ片水多多| 色伊人91| 蜜臀久久久久久999| 97内射偷拍| 人人操超碰在线| 亚洲一区中文字幕| 国产精品久久久鸭无码的功能| 开心五月婷婷| 91久热| 国际精品久久久| se..亚洲欧美| AAA久久| 欧美九九爱| 国产精品婬乱一级毛片彝族| 久久香蕉国产线看观看猫咪av| 五月丁香社区婷婷日韩欧美精品影院| 亚洲av夫妻操穴网| 精品人妻一区二区乱码一区二区| 九九无码久久精品视频| 欧洲亚洲天堂精品 | 亲子敌伦对白在线播放| 亚洲码专区| 一区二区三区四区五区高清无码永久视频| 精品人妻夜夜草| 风韵犹存大大大大香蕉| 无套内射性感少妇视频| 欧美综合综合| 99这里只有精品| 97超碰9| 成人看片网站| 人人妻人人爱人人玩| 日韩精品色呦呦| 天美av在线| 三级三久久线久久99久目本WW| 超碰久在线天天做| 亚洲av无线观看| 久久av色| 91人妻最真实刺激绿帽| 亚洲天堂第一页| 国产精品ⅴ无码大片在线看.| 成人综合色网| 在线无码网站| 丰满人妻一区二区中文| 大香蕉操久久| 无码直播久久久| 欧美视频第二页| 亚洲精美粉嫩嫩泬在线观看 | AV中文在线可看| 日韩无码服务区| 女人的久久久| 国产日韩精品suv| 91精品成人| 91操人视频| 欧美性生活免费网| 成人精品久久| 美女骚尻视频| 午夜亚洲WWW湿好大| 久久精品日韩专区免费观看| 免费观看啪视频| 天天干天天燥| 2017av无码免费无线播| 美欧色综合| 亚洲天堂自拍| 亚洲丝袜色| 五月天玖玖资源站| 99久久精品无码一区二区| 亚洲性爱成人| 国产精品分类在线观看| 99久久国产精品免费高潮| 97在线视频免费| 久久久久久久性爱| 美女91AV| 99热伊人| 亚洲在线欧美| 天天干天天操天天操夜夜操天天操| 欧美黑人168页欧美黑人167| 鸥美极品| 亚洲黄a三级三级三级看三级| 玖玖爱一区在线| 搡老女人老妇女老妇老熟女怎么读| 亚洲中文字幕精品久久久久久直播| 色欲av一区二区三区蜜芽| 国产男女边吃边摸视频网站| 操逼逼一区视频| 翔田千里无码中出中文字幕| 草莓精品视频在线免费观看| 天天摸夜夜添无码小视频| 97av在线观看| 精品少妇人妻av久久免费| 被体育老师抱着c到高潮| 久久久久婷婷| 69综合网| 国内一级精品| 欧美综合色站| 色综合20p| 久久久精选| 亚洲精品男人的天堂| 95人妻爽爽人人做人人澡| 五月天婷婷成人网| 97国产色综合| 亚洲黄a三级三级三级看三级| 热热色综合网| 日韩精品在线视频在线观看| 五月花婷婷| 爱妻综合网| 欧美天天综合网| 高清无码在线播放网站| 色色色综合网| 欧美性五月| 日韩性爱播放| 九九九免费视频| 全免费a敌肛交毛片免费| 东北女人av| 亚洲乱熟女一区二区| 国产日韩区| 九九热精品在线| 制服丝袜第二页| 色激情综合网站| 男人网站婷婷| 99久久久无码国产精品性啊聊| 日本无码1| 美日韩一二三区| 熟妇的味道HD中文字幕| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 国产精品探花色| 嗯嗯啊啊用力视频免费| 男人久久天堂| 有码免费观看| 亚洲爽图| 99热精品国产| 亚洲国产av中文字幕久久| 欧美熟妇视频| 欧美综合另类| 久久精品中文字幕女同| 深夜激情无码| 天美传媒精品一区二区| 久草资源欧美在线视频| 美国一区二区免费视频| 好湿好紧视频| 婷婷丁香一区二区三区| 97最新在线播放视频| 2017亚洲天堂| 天天综合网合集91| 岛国艾薇凹凸视频天堂| 美欧色综合| 91n免费处女| 天操天操夜操夜月操月年年操| A片大香蕉在线| 99久在线精品99re8热视频在线| 91碰碰| 美女操逼A A| 亚洲中文字幕av | 亚洲加勒比色图| 久久久久久大| 国产女人高潮视频| 精品少妇人妻av久久免费| 美女啊啊啊啊啊啊| 东京热av男人的天堂| 亚洲欧美经典一区二区| 中文字幕精品一区二区精| 超碰97护士| 91色s| 久草精品一区 | 日本成熟少妇A∨网站| 搡老女人老91妇女熟女| 欧美影音在线| 欧美色九九九| 黄色污污污污污污网站| 中日高清无码操逼视频| 国产精品探花在线| 国产亚洲精品av一区| 人人看黄色视频| 精品视频一区二区| 国产性爱强奸乱伦大全| 91欧| 玖草在线视频| 亚洲中文字幕熟女| 噜噜噜在线视频| 中国女人内射6XXXXX| 手机在线人成免费视频| 强奸乱伦αv片| 欧美黄片视频在线观看免费 | 91第一页| 妇女性内射冈站HDWWWCOM| 亚洲天堂精品日韩电影| 亚洲精品免费中文字幕| 色官网色综合| 激情五月天色色网| 蜜臀久久99精品久久久老,,| 肉丝网站91| 加勒比无码一区二区三区| 久久久亚洲精品电影免费看| 97久久精品亚洲中六字幕| 极品后入免费视频| 伊人欧美大香蕉视频| 香蕉综合网| 7777奇米影视久久| www.天天干| 亚洲中文字幕乱码无码一区二区| 91国产丝袜美女| 日本欧美不卡| 强奸乱伦亚洲第一页| 亚洲AV成人在线| 国产久久久9999| 午夜福利在线合集| 国产欧美在线观看免费观看| 亚洲无码一二三区| 青青草精玖玖69精品| com 首页 18岁 禁区 女优 免费 精选 同城| 亚洲综合另类色图| 精品国产乱码久久| 葡萄牙性视频一二区| 久久久少妇| 五月天婷婷久久| 亚洲蜜臀精品视频久久| 亚洲欧洲日韩国产自在线| 美女淫穴| a片久久久久久久久久久久| 97综合在线| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 欧美 亚洲精品首页| 久久久久久国产无码精品| 色婷婷蜜臀av| 久久大| 玖玖色综合| 干超碰碰熟女| 99九九久久| 青草草免费网站av| 天天爱综合网| 国内自拍 日韩激情 99| 日韩特一级久久| 一区在线观看中文字幕| 精品人妻少妇| 九九热免费国产视频婷婷伊人五月 | 精品射1999| 粉嫩av在线| 人妻天天爽夜夜爽精品2| 操屄日韩| 亚洲drav色图| 蜜臀久久99精品久久久久久久久| 日韩字幕一区| 欧美性天天影院| 天天操天天舔| 99国产精品| 日韩美女高潮喷水视频| 69精品人人人人| 午夜视频好爽啊| 天天综合色图| 白丝少妇一区二区| 男人的天堂一区三区| 亚洲婷婷丁香在线| 欧美黑人168页欧美黑人167| 好淫网一二三视区| 精品久久久久av影院| julia ann久久| 97人人干| 东北丰满熟女国产一区| 色妇综合网| 精品人妻一区二区三区视频| av天天在线观看| 人妻一区视频| 男女猛烈无遮掩视频免费软件| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 天天看,天天做| 牛牛AV人人夜夜澡人人爽| 久久久久久无码人妻中文字幕| 欧美五区| 欧美|91色综合| 中国探花熟女| 人人摸人人添人人操 | 成人资源中文字幕在线观看| 伊人久久大香线综合无码| 97色色网| 伊人综合色网| 丁香色五月 97干| 精品一二三区久久AAA片| 国产探花精品在线| 一级岛国大片| 人人操人人摸人人看人人插| 国产中文大片资源中文字幕| 亚洲国产一区二区入口| 欧美性爱中文字幕无线码| 国产精品一二三在线看| 操逼片中文| 美女被艹尤物视频| 深夜啪啪啪视频免费| 91丨国产丨白浆| 嗯嗯啊好大| 淫穴高潮色图| 亚洲日韩黑丝| 九久9精品| 69av一区二区三区| hd成人一区二区在线| 丁香六月婷婷综合| 国产精品视频| 人妻少妇精品无码专区二区密桃| 中文字幕在线免费观看| 国产麻豆一级精品视频| 蜜桃久久综合视频| 九九免费影片| 综合激情婷婷| 狠肏骚人妻| 麻豆区久久久久亚| 午夜小电影在线插入淫高潮 | 黄色片大香蕉| 麻豆国产第一| 天天操天天日天天干| 97欧美综合| 色乱二区| 97超碰久久色| 欧美在线91| 午夜大香蕉| 91 国产丝袜在线播放-百度| 国产福利合集| 五月天黄色激情视频| 大香伊人在线一区| 精品女同一区二区三区| 日韩在线观看字幕精品| 亚洲吊色| 18啪啪手机免费性爱| 96AV精品| 亚洲另类天堂| 久久精品视频久久久| 立川理惠被中出无码| 亚洲无套久久嗯嗯| 久久久蜜桃臀无码视频| 91ise欧美| 日韩三级伦理中文字幕| 久久99国产综合精品女同| 在线a亚洲视频播放在线| 亚洲中文字幕av | 亚洲精品 欧美精品| 免费人成在线观看网站品爱网| 亚洲高清视频在线观看| 免费福利视频中文字幕| 久久久9 9 9精品| 国产少妇肉丝在线观看| 日韩一级欧美一级国产一级台湾| 九九视品黄色| 亚洲激情综合另类男同| 亚洲少妇免费视频\| 激情色播| 密臀在线视频| 国产性感骚丝袜在线| 亚洲熟女性高潮久久久| 亚洲少妇在线影音| 人人看欧美性爱| 色九久| 国产成人天堂| 狠狠干狠狠色| 综合五月婷婷亚洲一区| 黄页| 亚洲第一视频 欧美风情 日韩| 久久女人一区二区三区| 亚洲av无线观看| 亚洲 无码 偷拍| 91美女视频。| 综合天天。| 亚洲九九视频| 欧美性暴力猛交XXXX| 黄色片,com| 91色狼| 啊啊啊啊嗯嗯在线久久久| 欧美国产有色电影| 69精品人人人人| 麻豆天美电影一区二区| 女人爽到高潮潮喷18禁网站| 一级做a爰片性色毛片久久| 啪啪自拍九九综合| 中文三一区| 人妻丝袜二区| 婷婷20月天青娱乐| 91N综合网| 欧美亚洲清纯| 日本国产二线女色| 久久人妻一区二区三区高清 | 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 日韩精品碰碰| 中文字幕日韩人妻视频一区二区三区| 久久久中文| 一区二区三区麻豆| 日夜伊人网| 91综合色噜噜| 天天日天天干天天操| 大香交| 91成人无码| 欧美日韩高潮喷水91| 亚洲久热| 久久久久久久一级黄色打同平台| 欧美夜夜狠| 四虎 精品 WWW| 日本999精品| 亚洲综合草草| 91亚洲欧美激情| 黄色免费一级在线毛片| 强歼乱伦资源网| 色噜噜综合在线| 亚拍在线| 一级人妻性爱视频| 美女自卫慰黄网站免费| 青青青青青手机视频| 综合久久久久久久久91| 亚洲乱熟女一区二区三区大香蕉| 97人人干| 天天摸天天舔天天操| 亚洲影视第一页| 97无码视频在线播放| 欧美性爱无码一区二区三区| 少妇高潮特黄A片| 夜夜爽33333| 熟女高潮合集-永久久久-成人AV| 丝袜综合网| 日韩不卡av一二三| 91在线美女| 伊人骚琪琪亚洲天堂网站| 亚洲图片欧洲图片aⅴ| 人妻熟女一区二区三区在线| 97伊人网| www色婷婷| 天天在线91| 唐山老熟妇露脸啪啪叫| 国产家庭乱伦表演| 日本熟妇熟色97一本在线观看| 色综合超碰超| 国产特级毛片AAAAAA高潮流水| 天天日日舔舔| 久久久96| 免费看污网站| 中文字幕丰满人妻日本| 久久久久国产亚洲一区欧美色图日韩| 欧美 色 亚洲| 神马精品视频| 亚洲婷婷综合网| 和协影院中文字幕三区| 日韩精品免费高清视频在线| 欧美青青草视频| 亚洲夜夜欢无码一区二区| 在线播放欧洲免费av| 国产人妻精品久久久一区二区三区| 九九九久久久| 色五月69夫妻| 激情开心五月天| 一级日本牲交大片好爽在线看| 综合天天网| 91碰碰| 亚洲国产精品无码AV久久久| 蜜桃中文字日产乱幕4区| 婷婷尹人大香蕉免费| 午夜操逼不卡| 欧美不卡二区| 天天干夜夜操网| 婷婷亚洲天堂| 狼人综合婷婷激情四射 | 成人色女网| 久久精品99| 久久男女激情视频网站| 操逼无码操逼| 怡春院久久| 夜夜骑操视频| 99热在线不卡| 91在线视频免费中出| 婷婷中文网| 日韩色欲久久一二三四区| 日韩小电影| 亚洲涩图欧美| 日韩人妻精品中文字幕| 麻豆国产视频精品观看| 性爱AV天堂| 2017天天操| 久久国产性爱| 欧美日动态视频| 91热热色| 一区二区三区免费岛国片| 欧美不卡在线美女| 东京热双插| 亚洲九月丁香| 欧美三级一级| 欧美性夜| 无码99| 日韩丨制服丨中文|在线| 国产午夜精品理论片a大结局| 超碰在线成人| 亚洲丰满很很操| 啪啪啪东京| 亚洲免费精品一区| dy888午夜老子影视达达兔| 日本高清一区二区在线| 亚码人妻| 国产精品久久久久久久AV大片| 激情综合97| 欧美综合自拍| 久久女人视频| 日韩操啪| 国产精品色哟哟| 自拍内地三级在线观看| 亚洲天堂久久久久久粉红视频| 欧美强奸一区二区诱惑| 亚洲性猛| 日韩成人性爱AV| 国产青青综合伊人| 精品一区二区3区| 亚洲电影中字一区二区| 日本人妻天堂网站在线播放| 69XX一中文字幕人妻91| 欧美一区二区情色| 中文字幕第9页萱萱影音先锋| 91人妻视频在线| 青青免费在线视频一区| 久草精品视频| 中亚精品极乱| 国产AAAAAABBBBB| 人妻天天爽夜夜爽2| 91精品国产综合久久久蜜臀| 日本成a人v网站在线观看| 天天舔天天日天天射| 操美女高潮抽搐白浆| 人人人摸人人| 欧美黑人168页欧美黑人167| 夜夜夜久久| 可以免费观看的日韩av毛片| 久久春色| 伊人96在线| 欧美色图亚洲色图成人在在线| 手机在线播放国产福利| 中韩中文字幕在线观看| 九九成人精品| 97九色人妻| 亚洲AV无码乱码在线观看性色| 鸥美中出| 97精品一区| 亚洲污污网站| 色九月综合| 蜜臀AV成人精品蜜臀AV久久| 日本爽爽爽爽爽爽免费视频| 亚洲欧美综合图片| 中文字幕色AV| 在线五区| 九九精品网| 好湿好紧视频| 日本一级性爱| 人人干人人搞人人摸| 视频分类 国内精品| 国产欧美日韩精品中文| 国产精品蜜乳AV| 69精品久久久久中文字幕| 免费在线观看国内色片网站网址| 日韩亚洲精品一区二区| 日本一区二区不卡精品| 久久精品国产96精品亚洲拳交 | 91蜜臀在线久久久久| 天操天操夜操夜月操月年年操| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 色婷网| 欧美乱色| 亚拍在线| 丝袜美腿操av| 大香蕉中文| 久草免费福利在线播放| 熟女精品一区二区三区| 久9久| 综合大香蕉美。| 屁股久久久久久久久久| 亚洲熟女性高潮久久久| 熟女被操视频网址| 亚洲第一页欧美| 91插B网站| 亚洲人妻在线一区| 超碰在线91| 91国内外在线| 人妻一区二区三区四区视频| 日本一区二区三区四区免费观看| 亚洲欧美激情另类色图| 九九人妻| 中文字幕精品一区欧美| 999九九九九国产动| 欧美组图日韩亚洲中文字幕| 亚洲色欲天天人妻无码系列专区| 干b在线性社区| 国产美女自拍视频| 26uuu国产免费观看| 欧美 熟女 日韩| 91看黄片| 人妻天天爽夜夜爽爽| 九九九国产| 日韩射图| 精品国产乱码久久| 日本在线播放不卡一区| 极品内射| 欧洲在线性爱视频| 精品久久一区二区三区四区五区| 九九超碰综合网| 亚洲强奸乱伦影视网| 欧美日本不卡| 性色av婷婷久久一区二区点复制| 欧美综合制服在线| 亚洲精品国产熟女| 99久在线精品99re8a| 丰满少妇乱子伦精品无| 超碰在97| 日本精品第一视频在'| 精品白丝一区| 操一区| 一二三区精品视频| 亚洲色堂免费视频| 一本大道不卡一二三区| 91色堂| 高清国产av无码| 国内一区二区免费| 亚洲情色欧美| 97色论| 久久老子无码午夜伦不卡| 久久久青青草| 97色欧州| 久久99久久99久久99人受| 麻豆天美一区二区| 色偷综合| 人妻激情另类| 成年人黄色小视频网站| 欧美操逼录像国产黄色国产| 欧美色66| 婷婷五月天色色| 日韩精品色呦呦| 欧美色97| 亚洲熟女乱综合一区二区三区 | 激情视频一二三| 大香交伊人网| 蜜臀操逼黄色视频操的好爽| 无码久久国产| 亚洲人妻色图| 老女人91| 青青草色插素人| 九九热免费国产视频婷婷伊人| 亚洲中文日韩精品| 日韩免费福利在线观看| 久久夜夜| 激情另类激情| 99色在线| 日本不卡一区二区三区| 少妇三P| 日韩激情视频| 久久精品72| 黑人天8A∨高清网站| ,国产乱人伦精品一区二区三区| 国产无马av| 亚洲五月婷| 久久女人一区二区三区| 激情综合婷婷| 9999久久久久| 激情婷婷| 男人的天堂2019AV| 日韩美脚一区二区网站| 裸体美女国产免费久久久网站| 91欧美| Av色五月| 偷拍超碰| 亚洲日韩乱码中文无码蜜桃臀网站| 97超级欧美| 中文在线视频| 亚洲欧美清纯| 日韩免费在线观看不卡| 亚洲图片色图欧美另类 | 性爱AV天堂|