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

ARTICLE DETAIL

資訊詳情

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

MRAM替換并行SRAM:MKV58 FlexSPI工業(yè)存儲(chǔ)方案實(shí)戰(zhàn)

MRAM替換并行SRAM:MKV58 FlexSPI工業(yè)存儲(chǔ)方案實(shí)戰(zhàn) 1. 為什么工業(yè)現(xiàn)場(chǎng)還在用并行SRAM而MRAM已經(jīng)悄悄替換了它如果你拆過(guò)工業(yè)伺服驅(qū)動(dòng)器、電力保護(hù)裝置或者車載數(shù)據(jù)記錄儀大概率會(huì)在板子上看到一顆TSOP封裝的并行SRAM旁邊掛一顆紐扣電池或者超級(jí)電容。這套SRAM后備電源的組合統(tǒng)治了工業(yè)數(shù)據(jù)存儲(chǔ)領(lǐng)域?qū)⒔暝蚝芎?jiǎn)單并行SRAM的寫(xiě)入速度是納秒級(jí)沒(méi)有寫(xiě)入壽命限制接口時(shí)序簡(jiǎn)單到用GPIO都能模擬。但它的問(wèn)題同樣致命——掉電就丟數(shù)據(jù)靠電池續(xù)命意味著三到五年后電池必然漏液或耗盡設(shè)備返修率居高不下。MR25H40CDF這類MRAM磁阻隨機(jī)存儲(chǔ)器器件的出現(xiàn)本質(zhì)上是在回答一個(gè)問(wèn)題能不能有一種存儲(chǔ)器既有SRAM的寫(xiě)入速度和無(wú)限次擦寫(xiě)能力又有Flash的非易失特性還不需要電池MRAM的存儲(chǔ)單元是磁性隧道結(jié)MTJ通過(guò)改變自由層的磁化方向來(lái)存儲(chǔ)0和1寫(xiě)入靠的是自旋轉(zhuǎn)移矩STT效應(yīng)整個(gè)過(guò)程沒(méi)有電荷積累所以不存在Flash那種擦寫(xiě)次數(shù)限制也不存在SRAM那種掉電丟失的問(wèn)題。MR25H40CDF提供4Mbit容量SPI接口最高40MHz時(shí)鐘工業(yè)級(jí)溫度范圍-40到85攝氏度這些參數(shù)放在工業(yè)場(chǎng)景里就是剛剛好。而MKV58F1M0VLQ24是NXP Kinetis V系列的一款MCUCortex-M7內(nèi)核主頻240MHz1MB Flash256KB SRAM帶FlexSPI接口和eDMA。選它來(lái)搭配MR25H40CDF不是隨便挑的——Kinetis V系列本身就是為電機(jī)控制和數(shù)字電源設(shè)計(jì)的FlexSPI外設(shè)支持內(nèi)存映射模式可以把外部SPI存儲(chǔ)器直接映射到MCU的地址空間讀操作像訪問(wèn)內(nèi)部Flash一樣直接不需要每次調(diào)用讀函數(shù)。這個(gè)組合在工業(yè)數(shù)據(jù)記錄、參數(shù)存儲(chǔ)、故障錄波這些場(chǎng)景里非常實(shí)用。我最近在一個(gè)電力監(jiān)測(cè)項(xiàng)目里用這套方案替換了原來(lái)的SRAM超級(jí)電容架構(gòu)板子面積縮小了三分之一BOM成本降了大概百分之十五最關(guān)鍵的是再也不用擔(dān)心電容老化導(dǎo)致數(shù)據(jù)丟失。下面我把整個(gè)設(shè)計(jì)過(guò)程拆開(kāi)講包括硬件連接、FlexSPI配置、讀寫(xiě)驅(qū)動(dòng)、性能實(shí)測(cè)以及踩過(guò)的幾個(gè)坑。2. MR25H40CDF的SPI時(shí)序與MKV58F1M0VLQ24的FlexSPI匹配細(xì)節(jié)2.1 MR25H40CDF的指令集與工作模式選擇MR25H40CDF的SPI接口支持模式0CPOL0CPHA0和模式3CPOL1CPHA1這兩個(gè)模式的區(qū)別在于空閑時(shí)SCK的電平。模式0空閑低電平第一個(gè)邊沿上升沿采樣模式3空閑高電平第一個(gè)邊沿下降沿采樣。實(shí)際用下來(lái)模式0在長(zhǎng)走線時(shí)抗干擾稍好一些因?yàn)榭臻e時(shí)SCK拉低不容易被耦合噪聲誤觸發(fā)。我一般建議在工業(yè)環(huán)境里優(yōu)先用模式0。指令集方面MR25H40CDF支持的標(biāo)準(zhǔn)指令包括指令名稱指令碼功能說(shuō)明時(shí)鐘頻率上限WREN0x06寫(xiě)使能40MHzWRDI0x04寫(xiě)禁止40MHzRDSR0x05讀狀態(tài)寄存器40MHzWRSR0x01寫(xiě)狀態(tài)寄存器40MHzREAD0x03讀數(shù)據(jù)40MHzWRITE0x02寫(xiě)數(shù)據(jù)40MHzFAST_READ0x0B快速讀40MHz這里有個(gè)容易忽略的點(diǎn)MR25H40CDF的寫(xiě)操作不需要擦除。Flash寫(xiě)之前必須發(fā)擦除指令把整個(gè)扇區(qū)置為0xFF然后才能寫(xiě)入。MRAM沒(méi)有這個(gè)步驟直接發(fā)WRITE指令就能覆蓋寫(xiě)。這意味著寫(xiě)一個(gè)字節(jié)和寫(xiě)一整頁(yè)的時(shí)序開(kāi)銷是一樣的都是指令碼加地址加數(shù)據(jù)沒(méi)有額外的擦除等待時(shí)間。在需要頻繁更新小數(shù)據(jù)的場(chǎng)景里這個(gè)特性帶來(lái)的效率提升非常明顯。狀態(tài)寄存器的bit0是WIPWrite In Progress位寫(xiě)操作期間該位為1完成后自動(dòng)清零。雖然MRAM的寫(xiě)周期很短典型值只有幾十納秒但SPI傳輸本身需要時(shí)間所以驅(qū)動(dòng)里還是需要輪詢WIP位或者用固定延時(shí)來(lái)確保寫(xiě)完成。我實(shí)測(cè)下來(lái)在40MHz時(shí)鐘下寫(xiě)一個(gè)字節(jié)從發(fā)指令到WIP清零大約需要1.2微秒其中大部分時(shí)間是SPI移位的開(kāi)銷。2.2 FlexSPI外設(shè)的時(shí)鐘配置與引腳分配MKV58F1M0VLQ24的FlexSPI是一個(gè)很靈活的外設(shè)支持A/B兩組通道每組可以配4根數(shù)據(jù)線。接單線SPI器件時(shí)只用通道A的DATA0MOSI和DATA1MISO就夠了。時(shí)鐘源選擇上FlexSPI的根時(shí)鐘來(lái)自PLL0經(jīng)過(guò)分頻后輸出SCK。240MHz的PLL0輸出分頻系數(shù)設(shè)6得到40MHz的SCK正好是MR25H40CDF的上限。引腳分配我用了FlexSPI_A_SS0_B作為片選FlexSPI_A_SCK作為時(shí)鐘FlexSPI_A_DATA0和FlexSPI_A_DATA1作為數(shù)據(jù)線。這里要注意MKV58的引腳復(fù)用表FlexSPI的引腳和普通GPIO是復(fù)用的配置IOMMUX寄存器時(shí)要選對(duì)ALT模式。我一開(kāi)始把FlexSPI_A_DATA0配成了ALT1結(jié)果發(fā)現(xiàn)那個(gè)ALT1是普通GPIO功能ALT2才是FlexSPI功能白白浪費(fèi)了半天時(shí)間查波形。// FlexSPI引腳配置示例基于MCUXpresso SDK IOMUXC_SetPinMux(IOMUXC_GPIO_SD_B1_06_FLEXSPI_A_SS0_B, 1U); IOMUXC_SetPinMux(IOMUXC_GPIO_SD_B1_07_FLEXSPI_A_SCK, 1U); IOMUXC_SetPinMux(IOMUXC_GPIO_SD_B1_08_FLEXSPI_A_DATA0, 1U); IOMUXC_SetPinMux(IOMUXC_GPIO_SD_B1_09_FLEXSPI_A_DATA1, 1U); // 配置引腳驅(qū)動(dòng)強(qiáng)度和上下拉 IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_06_FLEXSPI_A_SS0_B, 0x10B0U); IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_07_FLEXSPI_A_SCK, 0x10B0U); IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_08_FLEXSPI_A_DATA0, 0x10B0U); IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_B1_09_FLEXSPI_A_DATA1, 0x10B0U);驅(qū)動(dòng)強(qiáng)度我設(shè)的是R0/6也就是大約37歐姆的輸出阻抗。工業(yè)環(huán)境里SPI走線如果超過(guò)10厘米建議把驅(qū)動(dòng)強(qiáng)度調(diào)高到R0/4甚至R0/3同時(shí)SCK線上串一顆22歐姆的電阻做阻抗匹配。這個(gè)電阻不是隨便選的22歐姆加上驅(qū)動(dòng)器輸出阻抗大約37歐姆總共約59歐姆接近傳輸線特征阻抗50歐姆能有效抑制過(guò)沖和振鈴。2.3 片選信號(hào)的硬件與軟件控制取舍FlexSPI的片選可以配成硬件自動(dòng)控制也可以配成軟件手動(dòng)控制。硬件片選的好處是時(shí)序精確片選建立和保持時(shí)間由外設(shè)自動(dòng)保證不占用CPU干預(yù)。軟件片選的好處是靈活可以在一次片選周期內(nèi)發(fā)多條指令比如先發(fā)WREN再發(fā)WRITE中間不拉高片選。MR25H40CDF的寫(xiě)操作要求WREN和WRITE之間片選保持低電平如果片選在兩條指令之間拉高了WREN設(shè)置的寫(xiě)使能鎖存器會(huì)被復(fù)位后面的WRITE指令會(huì)被忽略。所以這里必須用軟件片選或者用硬件片選但確保兩條指令在同一個(gè)片選周期內(nèi)連續(xù)發(fā)送。我一開(kāi)始圖省事用了硬件片選結(jié)果寫(xiě)操作全部失敗讀回來(lái)全是0xFF。用邏輯分析儀抓波形才發(fā)現(xiàn)WREN指令發(fā)完后片選自動(dòng)拉高了WRITE指令發(fā)出去的時(shí)候?qū)懯鼓芤呀?jīng)失效。后來(lái)改成軟件控制片選在WREN和WRITE之間保持片選低電平問(wèn)題解決。// 軟件片選控制寫(xiě)操作 void MRAM_WriteEnable(void) { FLEXSPI_TransferSendBlocking(0, wrenTransfer); } void MRAM_WriteData(uint32_t addr, uint8_t *data, uint32_t len) { // 拉低片選 GPIO_PinWrite(GPIO, CS_PORT, CS_PIN, 0); // 發(fā)送WREN指令 MRAM_WriteEnable(); // 發(fā)送WRITE指令地址數(shù)據(jù) uint8_t cmd[4] {0x02, (addr 16) 0xFF, (addr 8) 0xFF, addr 0xFF}; FLEXSPI_TransferSendBlocking(0, writeCmdTransfer); FLEXSPI_TransferSendBlocking(0, writeDataTransfer); // 拉高片選 GPIO_PinWrite(GPIO, CS_PORT, CS_PIN, 1); }注意軟件片選時(shí)片選拉低到第一個(gè)SCK邊沿之間要留至少10納秒的建立時(shí)間片選拉高前要確保最后一個(gè)SCK邊沿已經(jīng)過(guò)去至少10納秒。MKV58的FlexSPI在軟件片選模式下不會(huì)自動(dòng)插入這些延時(shí)需要在代碼里加nop或者用定時(shí)器保證。3. 從寄存器操作到內(nèi)存映射FlexSPI的三種訪問(wèn)模式實(shí)測(cè)3.1 IP命令模式最直接但最慢的方式IP命令模式是FlexSPI最基本的訪問(wèn)方式CPU通過(guò)寫(xiě)FLEXSPI_IPCR0和FLEXSPI_IPCR1寄存器發(fā)起傳輸數(shù)據(jù)通過(guò)FLEXSPI_TFDR和FLEXSPI_RFDR寄存器進(jìn)出。這種方式下每次讀寫(xiě)都要CPU參與適合初始化階段配置器件或者偶爾讀寫(xiě)幾個(gè)字節(jié)的場(chǎng)景。實(shí)測(cè)下來(lái)IP命令模式讀一個(gè)字節(jié)大約需要20個(gè)SCK周期其中指令碼8個(gè)周期地址24個(gè)周期數(shù)據(jù)8個(gè)周期加上寄存器讀寫(xiě)開(kāi)銷在40MHz時(shí)鐘下大約0.5微秒。寫(xiě)一個(gè)字節(jié)因?yàn)橐l(fā)WREN和WRITE兩條指令大約需要1.2微秒。這個(gè)速度對(duì)于初始化配置足夠了但如果要在運(yùn)行時(shí)頻繁記錄數(shù)據(jù)CPU開(kāi)銷就太大了。3.2 AHB命令模式DMA加持下的批量傳輸AHB命令模式允許通過(guò)AHB總線直接訪問(wèn)FlexSPI配合eDMA可以實(shí)現(xiàn)大批量數(shù)據(jù)的自動(dòng)搬運(yùn)。配置好FLEXSPI_AHBCR寄存器和FLEXSPI_AHB_IPCR寄存器后DMA源地址指向MRAM的映射地址目的地址指向MCU的SRAM緩沖區(qū)傳輸自動(dòng)完成。我用這個(gè)模式做了1KB數(shù)據(jù)的連續(xù)讀取測(cè)試DMA配置為每次傳輸32字節(jié)總共32次傳輸。實(shí)測(cè)傳輸1KB數(shù)據(jù)耗時(shí)約25微秒平均每字節(jié)24納秒折算下來(lái)等效時(shí)鐘頻率約33MHz接近SCK的40MHz上限。這個(gè)效率已經(jīng)非常接近內(nèi)部SRAM的訪問(wèn)速度了。// AHB模式DMA讀取配置 void MRAM_DMA_Read(uint32_t mramAddr, uint8_t *dest, uint32_t len) { edma_transfer_config_t config; EDMA_PrepareTransfer(config, (void *)(FLEXSPI_AMBA_BASE mramAddr), // 源地址 sizeof(uint8_t), // 源寬度 (void *)dest, // 目的地址 sizeof(uint8_t), // 目的寬度 sizeof(uint8_t), // 每次傳輸字節(jié)數(shù) len, // 總傳輸字節(jié)數(shù) kEDMA_PeripheralToMemory); // 傳輸類型 EDMA_SubmitTransfer(dmaHandle, config); EDMA_StartTransfer(dmaHandle); // 等待傳輸完成 while (!dmaCompleteFlag) {} dmaCompleteFlag false; }3.3 內(nèi)存映射模式像訪問(wèn)內(nèi)部Flash一樣讀寫(xiě)MRAM內(nèi)存映射模式是FlexSPI最強(qiáng)大的功能。配置好FLEXSPI_HADDRR和FLEXSPI_HADDROFFSR寄存器后MRAM的地址空間被映射到FLEXSPI_AMBA_BASE開(kāi)始的區(qū)域CPU直接用指針訪問(wèn)就行不需要任何SPI傳輸函數(shù)調(diào)用。// 內(nèi)存映射模式讀取 #define MRAM_BASE_ADDR (FLEXSPI_AMBA_BASE 0x00000000) #define MRAM_SIZE (512 * 1024) // 4Mbit 512KB uint8_t readBuffer[256]; memcpy(readBuffer, (void *)MRAM_BASE_ADDR, 256);這段代碼看起來(lái)和讀內(nèi)部SRAM一模一樣但背后FlexSPI硬件自動(dòng)完成了SPI時(shí)序生成、地址發(fā)送、數(shù)據(jù)接收的全過(guò)程。實(shí)測(cè)內(nèi)存映射模式讀256字節(jié)耗時(shí)約6微秒等效頻率約34MHz和AHB DMA模式差不多。但內(nèi)存映射模式有個(gè)限制只能讀不能寫(xiě)。寫(xiě)操作必須回到IP命令模式或者AHB命令模式。這是因?yàn)镾PI存儲(chǔ)器的寫(xiě)操作需要先發(fā)WREN指令而內(nèi)存映射模式是純地址訪問(wèn)沒(méi)有地方插入WREN指令。所以實(shí)際使用中讀用內(nèi)存映射寫(xiě)用IP命令模式這是最合理的組合。3.4 三種模式的性能對(duì)比與選型建議訪問(wèn)模式讀1字節(jié)讀1KB寫(xiě)1字節(jié)寫(xiě)1KBCPU占用適用場(chǎng)景IP命令模式0.5us500us1.2us1200us高初始化配置AHB DMA模式0.6us25us1.3us1300us低批量讀寫(xiě)內(nèi)存映射模式0.02us6us不支持不支持無(wú)頻繁讀取選型邏輯很清晰初始化階段用IP命令模式配置器件參數(shù)運(yùn)行時(shí)讀數(shù)據(jù)用內(nèi)存映射模式寫(xiě)數(shù)據(jù)用IP命令模式或者AHB DMA模式。如果寫(xiě)數(shù)據(jù)量很大比如一次寫(xiě)4KB的故障錄波數(shù)據(jù)用AHB DMA模式配合eDMACPU只需要發(fā)起傳輸然后等完成中斷就行。4. 數(shù)據(jù)可靠性設(shè)計(jì)從寫(xiě)保護(hù)到ECC的完整防護(hù)鏈4.1 狀態(tài)寄存器的寫(xiě)保護(hù)位配置MR25H40CDF的狀態(tài)寄存器有兩個(gè)寫(xiě)保護(hù)位BP0和BP1可以保護(hù)部分或全部存儲(chǔ)區(qū)域不被寫(xiě)入。在工業(yè)場(chǎng)景里我一般把參數(shù)存儲(chǔ)區(qū)設(shè)為只讀保護(hù)防止程序跑飛時(shí)誤寫(xiě)參數(shù)。配置方法是通過(guò)WRSR指令寫(xiě)狀態(tài)寄存器設(shè)置BP11BP00保護(hù)高半?yún)^(qū)地址0x40000到0x7FFFF。// 設(shè)置寫(xiě)保護(hù) void MRAM_SetWriteProtect(void) { uint8_t status 0x00; // 讀當(dāng)前狀態(tài) MRAM_ReadStatus(status); // 設(shè)置BP11, BP00保護(hù)高半?yún)^(qū) status | 0x08; // BP1 status ~0x04; // BP0 // 寫(xiě)狀態(tài)寄存器 MRAM_WriteStatus(status); }這里有個(gè)細(xì)節(jié)WRSR指令執(zhí)行前必須先發(fā)WREN和寫(xiě)數(shù)據(jù)一樣。而且WRSR執(zhí)行期間WIP位會(huì)置1需要輪詢等待完成。我見(jiàn)過(guò)有人寫(xiě)完WRSR后直接讀狀態(tài)寄存器驗(yàn)證結(jié)果讀回來(lái)還是舊值就是因?yàn)閃IP還沒(méi)清零。4.2 數(shù)據(jù)完整性校驗(yàn)CRC與ECC的取舍MRAM本身的存儲(chǔ)單元是磁性的不存在Flash那種電荷泄漏導(dǎo)致的位翻轉(zhuǎn)但SPI傳輸過(guò)程中可能因?yàn)殡姶鸥蓴_出現(xiàn)位錯(cuò)誤。在工業(yè)環(huán)境里我建議對(duì)關(guān)鍵數(shù)據(jù)加CRC校驗(yàn)。MKV58F1M0VLQ24內(nèi)部有硬件CRC模塊可以配置成CRC-32或者CRC-16計(jì)算速度很快。// 使用硬件CRC計(jì)算數(shù)據(jù)校驗(yàn)值 uint32_t MRAM_CalculateCRC(uint8_t *data, uint32_t len) { CRC_Type *base CRC0; CRC_WriteData(base, (uint32_t *)data, len); return CRC_GetResult(base); } // 寫(xiě)入數(shù)據(jù)時(shí)附帶CRC void MRAM_WriteWithCRC(uint32_t addr, uint8_t *data, uint32_t len) { uint32_t crc MRAM_CalculateCRC(data, len); // 寫(xiě)數(shù)據(jù) MRAM_WriteData(addr, data, len); // 寫(xiě)CRC到數(shù)據(jù)末尾 MRAM_WriteData(addr len, (uint8_t *)crc, 4); } // 讀取時(shí)驗(yàn)證CRC bool MRAM_ReadWithCRC(uint32_t addr, uint8_t *data, uint32_t len) { uint32_t storedCRC, calculatedCRC; // 讀數(shù)據(jù) MRAM_ReadData(addr, data, len); // 讀CRC MRAM_ReadData(addr len, (uint8_t *)storedCRC, 4); // 計(jì)算CRC calculatedCRC MRAM_CalculateCRC(data, len); return (storedCRC calculatedCRC); }如果數(shù)據(jù)量不大比如只存幾個(gè)配置參數(shù)用CRC-16就夠了校驗(yàn)值只占2字節(jié)。如果存故障錄波數(shù)據(jù)建議用CRC-32雖然多占2字節(jié)但檢錯(cuò)能力更強(qiáng)。4.3 掉電保護(hù)MRAM的天然優(yōu)勢(shì)與寫(xiě)完成確認(rèn)MRAM的寫(xiě)操作是磁化方向翻轉(zhuǎn)不需要電荷泵升壓也不存在Flash那種寫(xiě)一半掉電導(dǎo)致數(shù)據(jù)損壞的問(wèn)題。但SPI傳輸過(guò)程中掉電可能導(dǎo)致指令發(fā)了一半器件處于不確定狀態(tài)。所以關(guān)鍵數(shù)據(jù)的寫(xiě)入流程應(yīng)該是寫(xiě)數(shù)據(jù)、讀回驗(yàn)證、確認(rèn)無(wú)誤后才更新標(biāo)志位。// 安全寫(xiě)入流程 bool MRAM_SafeWrite(uint32_t addr, uint8_t *data, uint32_t len) { uint8_t verifyBuffer[256]; // 寫(xiě)數(shù)據(jù) MRAM_WriteData(addr, data, len); // 讀回驗(yàn)證 MRAM_ReadData(addr, verifyBuffer, len); // 比較 if (memcmp(data, verifyBuffer, len) ! 0) { return false; } // 更新寫(xiě)入完成標(biāo)志 uint32_t flag 0xAA55AA55; MRAM_WriteData(FLAG_ADDR, (uint8_t *)flag, 4); return true; }這個(gè)流程看起來(lái)簡(jiǎn)單但在實(shí)際項(xiàng)目里救過(guò)我兩次。一次是電源紋波導(dǎo)致SPI時(shí)鐘異常寫(xiě)進(jìn)去的數(shù)據(jù)錯(cuò)了一位讀回驗(yàn)證發(fā)現(xiàn)了。另一次是片選信號(hào)被干擾誤觸發(fā)導(dǎo)致寫(xiě)地址偏移也是讀回驗(yàn)證發(fā)現(xiàn)的。5. 工業(yè)現(xiàn)場(chǎng)踩坑實(shí)錄那些手冊(cè)上不會(huì)寫(xiě)的細(xì)節(jié)5.1 上電初始化順序與器件就緒等待MR25H40CDF上電后需要一段時(shí)間才能響應(yīng)SPI指令手冊(cè)上寫(xiě)的是典型值100微秒最大值1毫秒。我一開(kāi)始沒(méi)注意這個(gè)參數(shù)上電后立刻發(fā)指令結(jié)果前幾條指令全部無(wú)響應(yīng)。后來(lái)在初始化代碼里加了1毫秒延時(shí)問(wèn)題解決。但1毫秒延時(shí)在低功耗場(chǎng)景里太浪費(fèi)了。更好的做法是上電后先發(fā)RDSR指令讀狀態(tài)寄存器如果讀到0xFF或者0x00說(shuō)明器件還沒(méi)就緒延時(shí)100微秒后再試最多重試10次。這樣正常情況下的初始化時(shí)間可以縮短到200微秒以內(nèi)。// 等待MRAM就緒 bool MRAM_WaitReady(uint32_t timeoutMs) { uint32_t startTime GetTickCount(); uint8_t status; while ((GetTickCount() - startTime) timeoutMs) { MRAM_ReadStatus(status); // 狀態(tài)寄存器不是全0也不是全1說(shuō)明器件已就緒 if (status ! 0x00 status ! 0xFF) { return true; } DelayUs(100); } return false; }5.2 SPI走線過(guò)長(zhǎng)導(dǎo)致的信號(hào)完整性問(wèn)題工業(yè)設(shè)備的PCB往往比較大MCU和MRAM可能隔了十幾厘米。我遇到過(guò)一個(gè)案例SPI時(shí)鐘跑到20MHz以上就開(kāi)始出現(xiàn)隨機(jī)讀寫(xiě)錯(cuò)誤降到10MHz就正常。用示波器看SCK波形發(fā)現(xiàn)上升沿有明顯的振鈴過(guò)沖達(dá)到了電源電壓的1.5倍。解決方案有三個(gè)一是降低SCK頻率但犧牲了性能二是在SCK線上串電阻我試了22歐姆和33歐姆33歐姆效果更好但波形邊沿變緩最終選了27歐姆三是在MRAM的SCK引腳附近加一顆10pF到22pF的電容到地濾除高頻振鈴。三個(gè)措施一起上SCK可以穩(wěn)定跑到40MHz。提示SPI走線超過(guò)10厘米時(shí)建議按傳輸線處理走線阻抗控制在50歐姆左右SCK和DATA線盡量等長(zhǎng)差值控制在5毫米以內(nèi)。片選線可以放寬要求因?yàn)槠x信號(hào)變化頻率低。5.3 多器件共享SPI總線的片選沖突有些設(shè)計(jì)里MRAM和別的SPI器件比如ADC、DAC共享總線。這時(shí)候片選信號(hào)的管理就很重要。我見(jiàn)過(guò)一個(gè)設(shè)計(jì)MRAM和一顆SPI ADC共用SCK和MOSI片選分別控制。但ADC的片選在上電復(fù)位期間是浮空的導(dǎo)致ADC誤響應(yīng)了MRAM的指令把配置寄存器寫(xiě)亂了。解決辦法是在每個(gè)SPI器件的片選引腳上加一顆10kΩ上拉電阻確保上電期間片選為高電平。另外在軟件初始化時(shí)先把所有片選拉高再逐個(gè)初始化器件。MKV58的FlexSPI支持多個(gè)片選輸出可以配置SS0到SS3分別對(duì)應(yīng)不同器件硬件自動(dòng)管理片選時(shí)序比軟件模擬更可靠。5.4 寫(xiě)操作期間的電源波動(dòng)與數(shù)據(jù)保持MRAM的寫(xiě)操作雖然不需要高壓但寫(xiě)電流脈沖會(huì)在電源線上產(chǎn)生噪聲。如果電源去耦不充分可能導(dǎo)致寫(xiě)操作失敗或者影響同一電源域的其他電路。我在MRAM的VDD引腳旁邊放了兩個(gè)電容一個(gè)100nF的陶瓷電容緊貼引腳一個(gè)10uF的鉭電容在附近。實(shí)測(cè)寫(xiě)操作期間電源紋波從原來(lái)的80mV降到了20mV以內(nèi)。另外MRAM的數(shù)據(jù)保持能力雖然標(biāo)稱20年但這是在常溫下的數(shù)據(jù)。如果設(shè)備工作在85攝氏度的高溫環(huán)境數(shù)據(jù)保持時(shí)間會(huì)縮短。雖然對(duì)于工業(yè)設(shè)備來(lái)說(shuō)20年已經(jīng)遠(yuǎn)超設(shè)備壽命但如果你的應(yīng)用場(chǎng)景溫度更高建議定期刷新數(shù)據(jù)比如每5年重寫(xiě)一次。6. 性能實(shí)測(cè)數(shù)據(jù)與不同場(chǎng)景下的配置建議6.1 連續(xù)讀寫(xiě)吞吐量測(cè)試我用MKV58F1M0VLQ24的定時(shí)器做了精確的吞吐量測(cè)試SCK頻率40MHzSPI模式0測(cè)試結(jié)果如下測(cè)試項(xiàng)目數(shù)據(jù)量耗時(shí)等效速率內(nèi)存映射連續(xù)讀512KB15.2ms33.7MB/sAHB DMA連續(xù)讀512KB15.8ms32.4MB/sIP命令模式連續(xù)讀512KB256ms2.0MB/sIP命令模式連續(xù)寫(xiě)512KB620ms0.8MB/sAHB DMA連續(xù)寫(xiě)512KB615ms0.83MB/s寫(xiě)速度明顯慢于讀速度原因是每次寫(xiě)操作都要先發(fā)WREN指令而且寫(xiě)操作之間需要等待WIP清零。如果連續(xù)寫(xiě)多個(gè)字節(jié)可以在一次WREN之后連續(xù)寫(xiě)多個(gè)數(shù)據(jù)這樣WREN的開(kāi)銷被分?jǐn)偭?。我測(cè)試過(guò)一次WREN后連續(xù)寫(xiě)256字節(jié)寫(xiě)吞吐量提升到了1.5MB/s左右。6.2 不同應(yīng)用場(chǎng)景的配置參數(shù)推薦根據(jù)實(shí)際項(xiàng)目經(jīng)驗(yàn)我整理了幾個(gè)典型場(chǎng)景的配置建議場(chǎng)景一參數(shù)存儲(chǔ)少量數(shù)據(jù)低頻寫(xiě)入訪問(wèn)模式IP命令模式SCK頻率10MHz降低功耗和干擾寫(xiě)保護(hù)使能保護(hù)參數(shù)區(qū)CRC校驗(yàn)CRC-16寫(xiě)入策略立即寫(xiě)讀回驗(yàn)證場(chǎng)景二故障錄波大量數(shù)據(jù)突發(fā)寫(xiě)入訪問(wèn)模式AHB DMA模式SCK頻率40MHz寫(xiě)保護(hù)不使能CRC校驗(yàn)CRC-32寫(xiě)入策略DMA批量寫(xiě)寫(xiě)完成后統(tǒng)一驗(yàn)證場(chǎng)景三實(shí)時(shí)數(shù)據(jù)記錄中等數(shù)據(jù)量持續(xù)寫(xiě)入訪問(wèn)模式IP命令模式寫(xiě)內(nèi)存映射模式讀SCK頻率20MHz寫(xiě)保護(hù)不使能CRC校驗(yàn)CRC-16寫(xiě)入策略環(huán)形緩沖區(qū)定期批量寫(xiě)入6.3 功耗實(shí)測(cè)與低功耗優(yōu)化MR25H40CDF的待機(jī)電流典型值只有幾十微安讀寫(xiě)電流在10mA左右。在電池供電的工業(yè)傳感器里這個(gè)功耗水平是可以接受的。但如果要進(jìn)一步優(yōu)化可以在不訪問(wèn)MRAM時(shí)把FlexSPI外設(shè)時(shí)鐘關(guān)掉需要訪問(wèn)時(shí)再打開(kāi)。MKV58的FlexSPI時(shí)鐘門控通過(guò)CCM_CCGR寄存器控制關(guān)掉后外設(shè)功耗降到接近零。// 關(guān)閉FlexSPI時(shí)鐘 void MRAM_ClockDisable(void) { CCM-CCGR2 ~CCM_CCGR2_FLEXSPI_CLK_MASK; } // 打開(kāi)FlexSPI時(shí)鐘 void MRAM_ClockEnable(void) { CCM-CCGR2 | CCM_CCGR2_FLEXSPI_CLK_MASK; }實(shí)測(cè)下來(lái)關(guān)閉FlexSPI時(shí)鐘后整個(gè)MRAM子系統(tǒng)的功耗從12mA降到了0.5mA以下。對(duì)于每秒只記錄一次數(shù)據(jù)的應(yīng)用可以把占空比做到很低平均功耗降到1mA以內(nèi)。7. 從MRAM到整個(gè)存儲(chǔ)架構(gòu)的擴(kuò)展思考這套MRAMFlexSPI的方案跑通之后我陸續(xù)在幾個(gè)項(xiàng)目里做了擴(kuò)展。一個(gè)是把MRAM作為MCU內(nèi)部Flash的補(bǔ)充存放那些需要頻繁更新的配置參數(shù)比如PID參數(shù)、校準(zhǔn)系數(shù)、設(shè)備序列號(hào)。內(nèi)部Flash擦寫(xiě)次數(shù)有限頻繁更新容易損壞MRAM沒(méi)有這個(gè)問(wèn)題。另一個(gè)擴(kuò)展是用MRAM做掉電前的數(shù)據(jù)緊急保存。系統(tǒng)檢測(cè)到電源掉電后利用電源電容里剩余的電量把關(guān)鍵數(shù)據(jù)從SRAM搬到MRAM。因?yàn)镸RAM寫(xiě)入速度快不需要擦除整個(gè)過(guò)程可以在幾毫秒內(nèi)完成。我實(shí)測(cè)過(guò)在電源掉電后利用1000微法的電容儲(chǔ)能可以完成4KB數(shù)據(jù)的緊急保存。還有一個(gè)思路是用多顆MRAM做冗余存儲(chǔ)。MR25H40CDF的SPI接口支持級(jí)聯(lián)用不同的片選信號(hào)可以掛多顆。關(guān)鍵數(shù)據(jù)同時(shí)寫(xiě)兩份讀的時(shí)候?qū)Ρ葍煞輸?shù)據(jù)如果一致就認(rèn)為可靠不一致就觸發(fā)錯(cuò)誤處理。這個(gè)方案的成本比用一顆大容量MRAM高一些但可靠性提升明顯。最后說(shuō)一個(gè)實(shí)際項(xiàng)目里的教訓(xùn)。我一開(kāi)始把MRAM的地址空間直接映射到指針用memcpy讀寫(xiě)代碼很簡(jiǎn)潔。但后來(lái)發(fā)現(xiàn)編譯器優(yōu)化會(huì)把memcpy展開(kāi)成多條加載存儲(chǔ)指令如果中間被中斷打斷可能讀到不一致的數(shù)據(jù)。解決辦法是在訪問(wèn)MRAM前后關(guān)中斷或者用DMA傳輸避免CPU干預(yù)。這個(gè)細(xì)節(jié)在手冊(cè)上不會(huì)寫(xiě)但實(shí)際項(xiàng)目里很關(guān)鍵。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚州男人天堂| 蜜臀久久久| 欧美性爽xyxOOOO| 麻豆激情综合| 啊啊啊97视频| 丰满人妻一区二区三区四 | 久久99国产综合精品女同| 1769一区二区| 国产a片操逼| 少妇蹲下露出大唇5| 色九九九综合| 久久久爆乳翘臀一线天伦理视频| 色情乱伦AV| 一级性爱视频免费在线| 99re视频这里只有精品| 亚洲春色欧美| AV男人天堂网| 精品无码久久久久| 九九英色视频| 午夜精品久久久99| 久湿久久| 亚洲AV色图一区| 91美女看B| 99啪啪| 欧美人妻精品| 亚洲免费97免费| 亚洲av总站| 国产精品色色| 嗯~啊~快点 死我视频| 丁香色五月 97干| 国产精品免费美女视频| 99久久e免费热视| 亚洲精品影视老司机| 国产日韩精品人妻久久久久色欲网站| 欧美亚洲第一页| 国产亚洲日韩欧| 3PAV乱伦视频| 无码高清操逼网址| 91精品女厕偷拍视频| 国产精品福利视频播放| 尤物黄色在线观看网站| 日本三级黄页| 99蜜桃臀亚洲成人在线观看| 狠狠操狠狠燥| 久草成人| 370p日韩欧美亚洲精品| 欧美综合区| 丁香六月婷婷| 色呦呦、国产精品| 一区二区三区成人| 国产97色在线| 五月天婷婷在线看| 丝袜AV一二三区| 欧美亚综合色图| 999综合色| 男人精品天堂一区| 亚洲欧美伦综合| 亚洲有码视频二区| 在线无码网站| av中文在线| 蜜臀精品1区2区| 97热视频在线观看| 综合五月天| 日本操逼视频在线| 欧美人妻一区| 综合亚洲情色| 秘书高跟黑色丝袜国产91在线| 99re超碰| 日韩色| 久热99| 嗯~啊~快点 死我视频| 中文字幕乱码人妻一区二区三区,99精品| 夜夜嗷嗷一区二区| 欧美激情精品| 国产 热久久久久国产精品| 人人干人人搞人人摸| 女优免费一区二区永久| 动漫av中文| 校园春色第一页| 91伊人久| 亚洲AV高潮| 自拍第一页| 乱伦一二三区| 性色avv| 亚洲情色综合网| 91春色| 免费人成?大片在线播放| 色性综合| 亚洲小说视频| 怡红院一区二区熟女人妻| 国产13区| 日本天天干天天操一区| www.色操逼| 亚洲色图伊人网| 大香蕉欧美| 国产99 中文字幕日韩小视频| 91国产美女丝袜足交精品视频| 97在线公开视频| 免费的很黄很污的全部视频 | 天天射日日干| 免费看欧美美女黄色大片 | 三男一女不戴套的A片| 人妻精品视频一区二区| 91精品少妇搡搡搡| 肉嘟嘟www视频在线观看高清| 看黑人AV不卡| 亚洲图片欧美| 男人天堂.AB| 亚洲男人天堂手机版| 欧美日韩国内不卡| 色婷婷一区二区三区久久午夜成人不| 亚洲无吗在线视频| 欧美日韩国产人人| 中文字幕123| 亚洲凸凹超碰成人| 亚洲成A∨人影院在线欢看| 综合网欧| 人妻一二三区| 午夜无码熟妇丰满人妻| 美女操逼福利视频| 久久九九精品一区二区| 久久,精品一二三| henhen91| 日韩精品人妻系列无码天堂| 翔田千里无码一区| 日韩欧美三级| 口爆综合网| 国产一区在线播放| 人人摸人人干| 视频国产精品未满十八禁止在线观看| 夜夜爽爽夜夜精品视频| 天天干美少妇一区| 翔田千里A片一区二区| 成人精品电影| 日韩一性一交一A片俄罗斯| 五毛骚逼极品美女怕怕| 97人人草| 日本道久久综合色色| 久久久久幕乱码| 国产自偷自拍一区| 欧美性爱综合,免费| 啊啊啊啊二区好大| 人妻aa| 天天色综合影视网| 中文字幕视频2区| 91美女视频电影| 日美免费黄片| 国产兽交视频在线播放| 97这里都是精品| 国产精品亚洲一区二区三区四区| 欧美高潮在线| 亚洲精品第一| 69精品| 精品一区二区麻豆| 美日韩成人| 性色综合网| 亚洲免费97免费| 五月天丁香婷婷综合网站| 欧姜老司机| 欧美色66| 99热这里只有精品9| 欧美综合网在线| 中文字幕88av在线| 91超碰人人操| 国产超碰AV在线精品| 人妻激情在线视频| 日本九九久久99播| 91精品久久久久久77777| 神马久久久久久久| 综合大香蕉美。| 五月天丁香欧洲日韩| 岛国黄片网站| 天天日天天操天天射河南省| 精品一区二区三区麻豆| 超碰97极品9| 超碰97在线 欧美 国产| 天天天天操| 无码精品一区二区三区潘金莲| 欧美亚洲手机在线| 国产2.3.4区| www.一本大99| 大香网伊人久久综合网eew| 成片免费观看视频大全| 九九碰九九爱97超碰| 日本人妻中文字幕精品| 欧美亚洲国产91在线| 高精欧美色| 公司1区2区3区精产精| 欧美 青青草| 99色综合| 精品色色| 婷婷五月天社区| 熟女乱伦二区| 天天色综合天天操| 欧美成人精品A片免费一区99| 精品无码不卡视频| 午夜.DJ高清在线观看免费7| 黄色电影观看久久9| 99久久无码| 久九九九九九九九热| 亚洲色图 图片| 久久综合女优| 丁香婷婷激情五月天无毒不卡 | 亚洲精品国产精品乱码不卡| 美国久久一二三四| 嫩草伊人久久精品| 亚洲第一二区另类图| 日韩紧密久久| 久久久久久久久九九久孕交| 91欧美美女日韩国产婷婷| 91 国产丝袜在线放观看| 综合熟女| 欧美最婬乱婬爆婬性视频| 蜜桃传媒一区二区亚洲| 97玖玖人妻| 不卡超碰护士AV在线免费播放| 国产精品一二三区福利| 情侣开房子拍 日韩无码 女的很漂亮| 久久不卡一区二区| 亚洲色资源| 日韩精品国模| 青草地一本线一区二区三区| 亚洲91网| 免费一级精品啪啪视频| 午夜久久无码1000合集| 天天综合精品| 9长久久精品| 偷窥自拍亚洲| 精品久久久高清无码| 亚洲中文国际强奸字幕| 操逼操操操91| 日韩一级二级在线| 欧美线天码中字| 综合色欧美| 一级做a爰片性色毛片久久| 亚洲国产一区二区日韩专区| 国产高清无码一区二区三区四区皇冠| 婷婷五月天av| 日本东京热大香蕉a片| 极品色电影院| 舔足天天操天天射| 中文字幕中文字幕一区二区| 99操| 欧美少妇高潮视频| 欧美色www亚洲国产阿娇要播| 午夜超爽| 麻豆2区1区天美| 男人久久精品| 清纯唯美亚洲综合| 中文字幕在线日亚州9| 67194无码不卡| 91精品国产乱码| 成人无码欧美一级A片狼牙直播| 亚洲精品自拍| 国产亚洲精品自在线亚洲情侣| 日韩成人色图| 九九热午夜欧亚国产视频| 美女91| 亚洲暴力强奸AV| 日韩乱码Av| 九九热午夜欧亚国产视频| 屁股久久久久久久久久| 新婚人妻扶着粗大强行坐下| 日本一区二区三区精品| 久久超碰com| 亚洲色图殴美色图激情乱伦| 亚洲国产精品久久久男人的天堂| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 69丨亚洲丨精品丨入口免费播放| 成年人网站在线免费观看| 日韩AV熟女乱伦| 久久精品72| 亚洲久久久久| 极品色社| 竹菊一区二区三区AV线| 看黄片视频免费| 欧美激情 日韩精品| 啪啪啪男女亚洲中文字幕99| 在线观看精品国产免费| 日韩精品国模| 欧亚成人| 偷拍色图| 日韩精品人妻一| 久久超碰、| 亚洲影院成人| 亚洲综合性感在线| av网站免费线看| 91neishe| 精品国模无码| 1区2区3区中文字幕日韩| 人人弄人人摸| 69精品人人人人| 色欲天天综合久久久无码网中文| 好吊色在线观看| 蜜臀久久99精品久久久久久婷婷| 婷婷激情啪啪| 思思热一热婷婷热一热| 伊人国产视频| 欧美黄片免费在线观看视频| 青青草色插素人| 日本免费中文字幕在线| 91AV天美在线视频| 手机看片1024你懂的国产| www.av不卡中文字幕| 久久久国产亚洲精品系列| 婷婷15月天青娱乐| 人人做人人妻人人夜视频| 热久久无毒不卡| 国产视频一区二区免费| 好吊色综合| 一区麻豆 高清中文字幕| 成人26uuu| 色偷综合| 6080yy午夜理论三级一区二区三区无码| 超碰99re| 青青草五月天| 亚洲aV性爱| 在线二区不卡| 成人老鸭窝人人在线视频| 人人摸.人人色| 人人妻天天做天天爽| 伊人久久大香大香线蕉中文| 欧美91变态| 九九英色视频| 日韩av在线播放不卡| 婷婷国产精品一区二区| 久插综合| 亚州国产精品乱| 久久国产熟女影院| 9久9久9久9久视频网站| 少妇被玩视频二三区| 三级激情网站| 亚洲男人天堂网| 啊啊啊不要啊啊受不了了视频在线 | 中文字幕 人妻不满 在线视频| 女人综合网| 精品176精品2| 婷婷丁香五月综合| 草草影院最新网址| 久久久四区| 亚洲欧美日韩电影网站一区 | 中文字幕乱碼在线| 99这里有精品视频| 亚洲日韩美女中文字幕乱| 色五月AV| 97欧美资源| 麻豆一区在线| 欧美色图私拍91| www.色婷婷| 三级特黄60分钟播放| 97久久久网站| 偷拍2020| 天美精品一区二区三区四区在线观看| 五月天精品| 狠狠色噜噜狠狠狠狠狠色综合久久 | 亚洲精品一二区| 夜夜躁狠狠躁日日躁av| 熟女一区二区三区四区| 亚洲自拍欧美国产首页网曝| 水澄无码AV| 立川理惠无码一区二区| www.伪伪| 亚洲精品免费中文字幕| 亚洲欧美不卡线| 欧美色图另类图片| 国产人妻精品一区二区三区秋霞 | 97在线免费观看| 国产91 丝袜在线播放| 欧美熟女逼久久久久久| 超碰久久草| 国产美女口爆吞精| 亚洲精品1区| 躁躁日曰躁2020| 久久久不能久久久久| 色色婷婷五月天| 91|九色|国产熟女| 国内精品久久久久影院亚洲| 三级三级三级a级全黄三| 亚洲日韩视频二区| 天天日天天搞天天干| 黄片免费日韩| 亚洲 无码 偷拍| 东北少妇高潮zzzz| 无码区蜜乳| 国产亚洲欧美每日在线| 少妇高潮流水av免费| 91大神精品长腿在线观看网站| 婷婷久久五月综合激情| 天天草夜夜草高潮片| 亚洲一曲日韩精品| 免费黄色A片| 艹比视频国产精品| 免费看毛片操穴| 97色伦欧美| 久久久久无码| 97色色国产视频| 天天射夜夜| 99re在线视频这里只有精品| 天天综合,91入口| 91综合无码| 黄页av| 伊人网免费视频| 一级二级三级黑人无码| 亚洲成人福利电影免费 | 久男人久久| 日韩久射综合| 少妇熟女1区2区3区| 欧美激情另类一区二区| 日韩乱插| 亚洲精品久久久久久久久豆丁网| 夜草欧美| 网友自拍第1页| 日韩AV无码网站| 国产午夜激片Av毛片不卡| 中文字幕在线日亚洲9| 欧插网站| 尤物视频偷拍免费| 97超碰久久| 国产免费操逼| 日本91白丝| 极品久久久久久久久久久久久久| 亚洲天天自拍| 大香蕉www.超碰| 91啪啪视频| 97se综合网| 亚洲AV色图一区| 亚洲?V高清一区二区三区尤物| 强奸乱伦AV网址| 激情五月综合| 欧美一品道| 日韩啊V| 九九无码视频| 欧美91精彩| 蜜臀久久99精品久久久久久婷婷 | 日韩天堂av电影在线观看| av72网| 久久超碰97| 乱伦av国产| 久久久艹艹艹| 欧美高清91| 欧美日韩国产中文精品字幕自在自线 | 牛牛久久国产精品视频一二三| 久久精品区| av最新免费中文字幕| 爆乳免费黄网站| 日韩AV噜噜噜一区二区三区四区| 人人操人人操人人操人人操人人操人人人11.CM | 日本一区二区不卡精品| 青青青青草av在线观看| 亚洲天堂欧美| 丁香五月色| 欧洲一区二区三区四区在线观看| 欧美一级美片在线观看免费| 九九热免费国产视频婷婷伊人| 日本不卡一区二区三区| 国产网红精品| 国产精品在线网站| av爱爱爱| 狠狠搞 亚洲91| 大象AV在线| 淫妻综合网| 日韩无码第3页| 亚洲欧美日韩综合在线尤物| 一区二区三区男人的天堂| 亚洲成a人在线观看久| 成人精品一区二区三区| 小视频国产| 日本大香蕉| 先锋色眉乱伦资源| 亚州Av天美传媒| 3D污黄视频在线观看| 亚洲精品蜜桃久久久久久久| 久久美女国产| 欧美日韩系列| AV 少妇 人妻 偷拍| 色图四区| 91人妻视频在线| 狠狠操,使劲操| 精产国品一区二三产品| 乱欲一区二区| 天天夜夜rb| 五月天色图影视| 久久精品国产亚洲5555| 性欧美天天| 日韩av不卡在线看| 人妻精品一区一区三区蜜桃91| 91精品无码人妻系列| 少妇高潮九九九九九九九| 欧美在线视频99| 色五月AV| 久久宗合亚洲| 中文字幕成人| 你懂的在线观看区国产| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 神马久久啊啊| 日韩中文字幕二区| 精…码一二三区| 国产AV天美| 操逼片中文| 欧美黑人熟妇精品91| 五月天伊人| 福利色色| 欧美极品美女aaaaaa级黄片| 亚洲偷拍欧美激情| 人妻少妇蜜桃视频欧美一区| 内射夫妻三片| 日本一二三免费久久| 九九久久首页| 欧美综合区| 久久午夜鲁丝片| 亚洲第一视频 欧美风情 日韩| 大香蕉操久久| 在线精品福利免费播放| 视频国产欧美在线播放| 久久久久久99999国产精品| 一色网男人的天堂| 欧美一级做a爰片免费视频| 黄色无码高清黄色无码网站| 日韩av电影网站| 色女网日韩| 欧美 亚洲 偷拍自拍| 国产亚洲日韩欧| 黑人性欧美| 亚州欧美一区| 欧色综合| 伊人影院中文字幕| 五月丁香激情综合| 久久成人国产| 人人玩人人添人人澡免费| 天天操妹子| 香蕉av一区二区三区| 麻豆久久久久久久久丝袜 | 大香蕉一人在线| 91色综| 99热官网| 欧美成人性爱视频大全| 精品成人亚洲午夜电影| 小说区 图片区色 综合区| 中文字幕第7页| 欧美丝袜美女电影一二三四区| 国产有码一区| 天天添天天干电影| 九月丁香婷婷| 色人久久| 99色在线视频| 五月丁香狠狠爱| 偷窥自拍A片| 午夜久久无码1000合集| 亚洲天堂7777| 殴美大黄片| 日本视频在线观看污污污| 殴美牲| 日比av无码| 三级激情网站| 国产农村妇女精品一| 亚洲制服欧美另类内射| 国产中文精品一区二区在线观看| 免费的黄片有限公司| 久久久久9999| AV乱伦国产| 欧美黄色手机在线观看| 成人26uuu| 久久久久久久九九九九九九| 亚洲性爱电影| 欧美三级中文字幕hd| 国产 热久久久久国产精品| 天天色天天干天天射| 国产高清免费不卡av| 99re公开精品免费视频| 婷婷激情五月天小说网| 国产精品无码AV网站| www…国产操逼| 色欲久久综合| 天综合中文| 大香蕉 222| 综合97亚洲| 精品少妇人妻一区二区三区| 欧美在线大香999| 一区二区影视| 牛牛操视频逼| 精品一二三区久久AAA片| 色色婷婷丁香| 大香蕉伊人一区在线观看| 日韩AV色图| 日韩综合97P| 一区二区三区一亚洲中文字幕、综合区灬 | 香一区二区三区| 亚洲美女 晚间男人天堂| 麻豆a'v电影| 色欧洲| 日韩熟女乱伦中出| 操操啪| 欧洲射精91| 台湾佬中文娱乐网久久久久久久久久com | 操操AV电影| 久久鲁夜| 亚洲日韩美女丝袜美腿人妻视频| 五月天久久综合网| 性爱综合网| 粉嫩AV输入| 亚洲色人阁| 日韩国产在线观看av| 丁香五月激情网| 啊啊啊啊啊啊啊啊啊啊在线观看| 精品玖九九久| 亚洲高清无码在线桃色| 久极品在线观看| yazhouzaixian| 国产精品国产亚洲区艳妇糸列| 午夜精品久久久久久久99蜜桃一| 九九九九九九亚洲| 91亚洲最新在线| 亚洲国产91精品一区二区久久| 91九色精品熟女内射| 久噜噜| 国产精品com| 国产精品午夜高潮呻吟久久av| 丝袜夫妻自拍| 大香蕉中文201| 中文字幕交换人妻| 日韩在线人妻网站| 加勒比海色香蕉婷婷| 伊人黄色视频免费观看| 欧美A√综合网| 日韩三级伦理中文字幕| 色婷婷久久| 一本色道久久综合亚洲二区三区| 国产最新小视频在线播放下载| 欧美精品四区| 91狠狠综合久久| 女人午夜视频777| 伊人久久蜜月| 久久人人爽爽人人爽人人片αV| 欧美精品在线观看| 一区二区三| 亚洲.欧美.丝袜.中文.综合| 麻豆一区二区AV天美| 欧美日韩性爱操大逼| 高清肉丝中文无码| 日本熟女中文字幕一区| 黑人与人妻| 日本三级一区二区 在线 | 在线观看无码三级少妇| 99国产精品久久久久久久成人热| 日产操逼| 欧美黄色图片| 日韩成人在线性爱视频| 亚洲涩涩| 国产精品制服丝袜清纯唯美 | 久操凹凸视频| 中国熟女网站| 家庭乱伦网站国产| 亚洲人精品久久久| 97精品综合| 激情小说激情视频| 97中文超碰| 伊人热综合| 亚洲瓯美色图| 亚洲 自拍偷拍 欧美| 日韩精品电影| 96久久精品一二三区色欲| 亚洲脚交| 天美传媒国产原创中文字幕亚洲欧美另类| 91网站18禁| 久久a久久| 国产精品亚洲高清在线| 99国产精品自在自在| 探花一区在线| 亚州综合色| 欧美精品91| hd成人一区二区在线| 男人天堂毛片| 大香蕉 222| av绯色| 欧美色97| 97爱亚洲综合色| 国产真实野战在线视频| 东京太热男人的天堂久久久| 成人AV素股で擦久久| 先锋色眉乱伦资源| 噜噜噜噜久久久精品免费| 国产蜜臀精品一区免费尤物| 白天啪啪晚上啪啪视频| 嗯嗯啊啊啊好爽| 91美女视频在线| 综合一区中亚洲国产成人综合精品 | 97就爱干| 亚洲人精| 深夜激情无码| 俺去啦俺来也久久综合| 老鸭窝成人| 久久九九一区二区三区成人| 成人黑料社久久| 久久亚洲中文字幕视频| 中文字幕色AV| 超碰天天久久79| 97香蕉碰碰人妻国产欧美| 欧美人与动性人交a| 国产日韩中文字幕欧美| 欧美超碰96| AV九九| 国产精品视频一区二区三区八戒| 天天干电影| 少妇高潮喷水无套久久久久久| 精品人人| www.99视频| 亚乱色| 午夜福利一区二区影院| 欧美综合色,www| 96久久久精品| 69人妻精品丰满熟女区| 人妻少妇蜜桃视频欧美一区| 五月综合婷婷久久网站| 亚洲精品国产熟女| 日韩欧美福利视频看看| 三四中文字幕| 9久9久| 色偷偷人人玩人人舔人人操人人摸人人爽| 精品久久久久9999| 久久久一级| 最近的最新的中文字幕视频| 亚洲人妻在线一区| 最新日日夜夜天天干干| 免费精品无码一级毛片牛牛影视| 国产精品一区二区三区在线| 亚洲区限制级 99| 久久啊啊啊视频| 精品亚洲俞拍视频一区| 九九九九九九亚洲| 91精品电影18| 小草三级久久观看| 大香蕉操久久| 久操九九九九| 欧美成人9797| 超碰久久中文| 九月丁香婷婷| 啊啊啊com| 国产久久久9999| 美女啊啊啊啊啊啊啊| 920日本午夜免费| 久久一二三四五六七八九区区区| 婷婷97| 精品一区二区啪啪啪| 亚洲黑丝在线| 欧美日韩夜夜| 午夜天堂网| 日本A级视频| 亚州熟妇精品| 另类老少妇| 啊啊啊水好多| 91人人| 久久婷婷电影网| 91大神精品长腿在线观看网站| jazzjazz国产精品麻豆| 日韩在线地址一| 成人七区| 久热大香蕉| 色性欧美| 亚洲www91| 少妇激情AV| 另类欧美色| 亚洲成人精品在线一区| 欧美一级黄片视频在线| 亚洲AV无码久久久国产精品| 首页亚洲国产高跟丝袜诱惑视频| 国产精品一区二区在钱播放| 亚洲欧洲无码97久久精品| 美女丝袜激情小说| 欧美激情1区| 欧美在线永久天堂| 欧日a| 日本天天吊| 加勒比人妻综合| 狠狠爱夜夜| 手机在线免费看的av| 操逼片中文| 狼天天狼天天大香蕉| 高跟伊人julia ann| 91麻豆天美国产欧美高潮| 久操精品| 国产情侣自拍在线播放| 最新一二三区视频| 麻豆区久久久久亚| 思思久热在线精品66| 欧美人妻久久精品二区三区| 丁香激情网| 国产精品在线网站| 九九九九九精品视频| 无码人妻精品一区二区中文 | 蜜臀久久99精品久久久久久成人小说 | www.高清无码诱惑一区.com | 99性爱| 中文字幕人乱码中文字的预防方法 | 亚洲av青草久久一区二区| 啪啪资源网| 午夜久久一区二区无码中出| 免费男人的天堂| 国产亚洲日韩欧| 伊人91| 丝袜狂射91| 亚洲一区中文精品| 99热这里只有精品99| 欧美精品三区| 国产精品4p在线观看| 开心五月深爱五月| 国产人妻精品一区二区三区秋霞| 日韩亚洲欧美中文字幕| 乱伦熟女区| 成熟熟女国产精品一区二区| 亚洲 暴爽 AV人人爽日日碰| 国产视频一区二区免费| 欧日韩在线观看| 伊人热综合| 亚洲人成网www| 国产suv精品一区| 人人操人人操人人操人人操人人操人人人11.CM | 夜夜骑操视频| 日小BB小视频| 人人摸人人干| 人妻色偷色噜| 欧美色三级片91| 久久99国产精品| 色婷婷久久| 91N综合网| 日本 欧美 国产一区| 九九九九97| 岛国视频免费在线观看| 精品一久久久| 17c在线成人免费A片观看| 欧美成人精品一区二区三区| 97超碰日韩| 插入综合网| 另类图片天天影视| 麻豆天美电影一区二区| 97干在线视频| 插入综合网| 国内一区二区免费| 九色 人妻 大香蕉| 12一15性XXXX粉嫩国产| 日韩久久超碰色| 三男一女不戴套的A片| 91网亚洲| 精品人妻一区二区视频| baiduhicn.com。| 日韩免费大片一级播放| AV中文字幕剧情1区2区3| 黄色AAAAA欧美| 久久久内射良家| 日本福利二区视频| 日韩精品午夜操呦呦不卡影院| 色色婷婷五月天| 国产精品自拍视频| 爽爽爽免费视频| 精品中文字幕第一页| a片亚洲一本通视频| 国产av美女被艹的乱叫| 精品十八在线观看| 极品丝袜无码| 狠狠操夜夜| 蜜区区视频79 | 麻豆成人影音在线| 麻豆乱码久久精| 韩国黄片aaaa| 久久有码视频| 97精品一二区| 日韩无码a片| 97久久久久| 91女网站| 中文字幕亚洲热播人妻| 啪啪啪男女亚洲中文字幕99| 天天添天天干电影| 淫荡少妇免费| 伊人网高清| 久久、1234| 色色色五月婷婷| 伊人操你| 亚洲天天自拍| 91丝袜激情在线 | 91黄站| 天天天天天超碰| www.久久| 中日亚韩免费视频| 九久9精品| 久久夜精品一区二区三区| 狠狠色丁香| 2018天天干在线视频| 精产品久久| 97频视在线| 999狠狠综合| 亚洲国产精品成人无码久久久| 一本色道综合久久欧美日韩精品| 久久天天躁日日躁狠狠躁| 中文字幕 国产区| 久久性爱精品一区| 一本色道综合久久欧美日韩精品| 成人在线视频一区| 色综合91| 三级三久久线久久99久目本WW| 白丝被操91| 大香蕉中文在线| 破处bbq| 欧美A√综合网 | 大香蕉欧美国产日韩高潮| 亚洲色图超碰在线| 人妻99p| 18禁精品网站在线看| 久久久久亚洲Av无码专区老牛影视 | 欧美姓爱综合网| 午夜精品人妻二区三区| 欧美白嫩在线放| 成人在线视频二区| 色婷婷视频| 国产精品亚洲美女久久久久| 日逼视频日本| 91伊人久| 女性喷水高潮在线观看| 91亚洲欧美激情| 亚洲天堂一二| 亚洲影视第一页| 超碰午夜| 久久精品夜色国产亚洲AV| 四虎影视在线| 大香蕉伊利av| 亚洲综合色男人网| 婷婷尹人大香蕉免费| 日韩在线观看中文字幕视频| 色噜噜精品一区二区三| 曰韩操B| 欧美一区二区三区另类精品| 国产AV色黄看到爽| www.91人妻.com| 亚洲黄色视频在线观看视频| 欧美日本成人一区二区| 啊啊啊好多水| 男人天堂网站| 思思热在线视频在线| 国产精品美女久久久久久网站| 精品人妻av区天天看片| 酒色综合网| 91色拍| 精品人妻视频入口| 国产又色又粗又黄又爽| 国产一区二区三区白丝| 日韩在线一区高清在线| 操逼www.| 俺去俺来也在线www| 人人色人人操在线| 狠狠狠狠狠狠| 天堂九九九九九九九九九| 国产不卡片| 神马午夜久久久| 天堂射| 天天操熟妇| 黄页| 思思热在线视频免费| 91av一区二区在线观看| 精品人体无圣光凹凸| 国产激情在线| 亚洲欧美精品91| 青青色综合| 日韩欧美中文字| 少妇高潮九九九九九九九| 97在线免费视频观看| 亚洲色狠| 国产女人和拘做爰视频 | 国产精品色| 口爆欧美91| 久久久免费懂色| 国产久久天堂资源| 亚洲男人综合| 欧美性爱视频免费一区一A| 成人短视频在线观看| 美女露胸露奶头| 欧美综合网1| 成人小电影网站tex| 呦呦影院| 色色色色网站| 蜜桃臀 后入 一区 二区 三区 在线| 91美女视频在线| 大香蕉手机在线| 国产精品直播在线观看直播| 91在线视频免费播放| 丁香五月激情啪啪| 中文字幕日韩精品一区二区三区| 内射中国少妇高清视频免费视频| 日韩九九九| 国产日产精品久久快鸭的功能介绍| 不卡啪啪视频| 亚洲色图加勒比| 999久久芭蕾| 亚洲无码超碰免费| 99热自拍| 蜜屁Av| 精品国产Av无码久久久伦古装| 韩国黄片aaaa| 精品v1区| 精品一区二区三区蜜桃| 国产在线激情视频| oumeisetu综合| 国内成人圈中文字幕无码视频| 深夜福利黄片| 大香蕉丝袜一级片| 色超碰综合| 国产女同在线观看视频| 综合久| 男人天堂免费| 影音先锋新男人| 欧美精品在线观看| 亚洲精品熟妇1区2区3区。| 欧美探花网| WWW4虎| 久久这里只| 亚洲乱熟女一区二区三区大香蕉| 神马久久网| 一区二区乱码福利| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 日韩在线电影| 91狠狠综合久久久| 亚洲日本天堂| 一本精品日本在线视频精品| 久久久久久久久久久人妻| 国产丝袜啪啪| 开心五月婷婷激情| 玖日综合网| 色久桃花影院在线观看| 老熟妇综合| 欧美激情性久久久久久| 亚洲日本男人天堂网| 97免费在线视频| 亚州伊人色综台| 99中文字幕| 天天影视色香色欲| 深夜国产福利| www.夜夜| 啊啊啊想要| 最新加勒比丝袜在线| 国产精品扒开腿做爽爽爽视频| 日本三级中国三级99人妇网站| 亚洲激情久久久伊人综合| 5月婷婷6月六月丁香| 欧美96交| 亚洲操逼网| 亚洲中文丝袜美腿诱惑字幕| 毛片电影一区二区三区| 久久久三区二区一区| 99九九精品| 中文字幕黄色一起草| 色噜噜狠狠色综无码久久合欧美| 精品人妻一区二区三区视频在线| 婷婷五月天av| 亚洲97精品| 久jiu久神马影院| 狠狠操,使劲操| 青女在线| 成人乱码一区二区三少妇| 黑白配性爱AV成| 五月天色五月| 亚洲欧美日韩偷拍色图| 大香蕉99热| 成人八戒网站| 欧美美逼| 国产丝袜美女诱惑| 一级成人性爱| 欧美综合自拍亚洲综合图| 99精品热| 亚洲欧美高清无码| 九九国产热| 色婷婷狠狠18禁| 日本在线观看网址| 白丝在线一区| 天天流夜夜操| 国产综合在线视频网站| 精品无码一区二区人妻久久蜜桃 | 啊啊啊想要| 欧美激情色婷婷花野真衣一区二区| 在线无码操| 国产久久久久久| 天天插夜夜爽| 婷婷色在线| 国产色综合亚洲色综合吹潮| 亚洲国产精品久久久久婷婷老年| 欧美日韩999| 一级岛国大片| 国产又粗又长又大的视频| 嗯嗯啊啊用力视频免费| 久久久久成人亚洲国产| 91狠狠综合网| 精品中文一区二区| oumeisetu综合| 最新中文字幕精品在线| 亚洲色宗合| 91精品免费| 人妻夜夜爽天天爽麻豆三区网站| 家庭乱伦性爱av| 免费操逼91| 夜夜操夜夜高潮夜夜爽国产精品区| 青青操青娱乐| 把腿张开老子CAO烂你| 国产一级高清免费观看| 日韩色图 一区二区| 欧美色图亚洲色图成人在在线| 大香蕉一线视频| 99久久亚洲精品无码毛片潘甜甜 | 亚洲宅男天堂| 黄色视频特级毛片| 韩日色费| 欧美在线天堂| 大香蕉日韩欧美| 歐美性天天| 热久久91婷婷| 丁香六月婷| 无码在线亚洲| 久久亚洲欧美中文字幕国语| 青青草好吊色| 亚欧操逼片在线观看 | 欧美日韩人妻精品一区二区三区| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 亚洲欧美大| 免费看日产一区二区三区| 国产一区二区a毛片| 强奸抽插av| 精品视频在线观看| 蜜臀网 一区| 久肏视频字幕| 九九免费影片| 久久久久元码视频| 婷婷情色五月天| 亚洲情色一区综合| 伊人97超碰| 人妻啊啊人妻啊| 五月丁香| 色五月激情综合网| 91人妻Pr| 亚洲AV无码成人精品久久| 人妻日日干| 色yeye成人免费视频| 国产女人和拘做爰视频 | 九九九九精品一区| 夜夜综合| 天堂资源站| 免费超碰97久久| 欧美猛交黑寡妇中文字幕| 人人综合| 歐美性天天| 欧美 亚洲 另类 综合| 综合网欧| 日韩美女高潮喷水视频| 91久久国产综合精品| 久热久操| 日韩 女同 综合| 亚洲激情欧美色图| 国产2.3.4区| 欧美姓爱综合网| 97视频免费播放| 国产精品久久| 操国产逼| 无码人妻精品一区二区中文| xxx0国产在线播放| 亚洲成A∨人影院在线欢看| 国产成人在线观看综合|