91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

應(yīng)用筆記 | SPI讀取數(shù)據(jù)的最后一位出錯問題

STM32單片機 ? 來源:未知 ? 2023-08-18 18:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


關(guān)鍵字:STM32F42xx,SPI,OSPEEDR,APB



目錄預(yù)覽


1.問題描述

2.問題的排查

3.原因的進一步分析



01

問題描述


客戶在項目開發(fā)中使用STM32F427GT6的SPI連接外部Flash時,發(fā)現(xiàn)在常溫下能正常讀寫,但是在高溫下一段時間后(大概5分鐘左右)出現(xiàn)讀寫異常的情況。讀寫異常時發(fā)生在發(fā)送0x5指令后,返回數(shù)據(jù)通過軟件讀取的是0,而硬件抓取的是1。同時也發(fā)現(xiàn)同一份代碼,同樣硬件,如果flash換成別的廠家的,在同樣溫度條件下又沒有出現(xiàn)讀寫異常。


02

問題的排查


根據(jù)客戶的描述,初期懷疑是否是不同F(xiàn)lash廠家的兼容性問題,現(xiàn)場進一步測試,發(fā)現(xiàn)客戶軟件在70℃環(huán)境溫度下,除了program、erase時寄存器會讀錯數(shù)據(jù),用只讀指令0x03也會讀錯數(shù)據(jù)(0x55、0xaa會被軟件讀成0x54、0xab)。


根據(jù)這個結(jié)果,我們懷疑到tCLQV這個參數(shù)。看上去當(dāng)前的軟件是在flash輸出數(shù)據(jù)時,在CLK下降沿時去采集flash MO數(shù)據(jù)的,所以高溫引起的細微的tCLQV變化可能會導(dǎo)致軟件采集出錯。我們建議MCU在下一個CLK的上升沿去采集數(shù)據(jù),此時flash MO數(shù)據(jù)已經(jīng)穩(wěn)定為1。



現(xiàn)場調(diào)整GPIO(即flash CLK/SI/SO)OSPEEDR速率后異常現(xiàn)象消失,GPIO速率調(diào)整后CLK信號斜率變大,tCLQV跟隨變小,軟件抓到錯誤數(shù)據(jù)的現(xiàn)象消失,這個實驗結(jié)果也與上述tCLQV這個懷疑點相匹配。下面是不同GPIO速率下的測試結(jié)果。


GPIO_SPEED_FREQ_LOW,常溫:tCLQV=5.584ns。

GPIO_SPEED_FREQ_LOW,70℃:tCLQV=6.064ns,FAIL。

GPIO_SPEED_FREQ_MEDIUM,70℃:tCLQV=4.805ns。

GPIO_SPEED_FREQ_HIGH,70℃:tCLQV=4.577ns。


03

原因的進一步分析


進一步了解客戶系統(tǒng)的初始化,其中clock配置信息如下:采用外部晶振為25MHZ,plln=360,pllm=25,pllp=2,pllq=8,系統(tǒng)主頻:25/25*360/2=180MHz,APB2:180/2=90MHz,SPI的波特率為2.8MHz。SPI的引腳設(shè)置均為GPIO_Initure.Speed為low。


查找到STM32F42xx的勘誤手冊,我們發(fā)現(xiàn)有同樣問題的描述:



對于文檔推薦的2種workaround也和我們測試時發(fā)現(xiàn)的一樣。



至此也是能較好的和客戶解釋了MCU底層的一些原理,并建議客戶按照相應(yīng)workaround的配置,去設(shè)定APB總線與OSPEEDR的關(guān)系,最終讓問題得以解決。


完整內(nèi)容請點擊“閱讀原文”下載原文檔。

長按掃碼關(guān)注公眾號


更多資訊,盡在STM32

點擊“閱讀原文”,可下載原文檔


原文標(biāo)題:應(yīng)用筆記 | SPI讀取數(shù)據(jù)的最后一位出錯問題

文章出處:【微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6076

    文章

    45495

    瀏覽量

    670406
  • STM32
    +關(guān)注

    關(guān)注

    2309

    文章

    11162

    瀏覽量

    373464

原文標(biāo)題:應(yīng)用筆記 | SPI讀取數(shù)據(jù)的最后一位出錯問題

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    SPI NOR Flash和SPI NAND Flash存儲芯片的區(qū)別

    SPI NOR Flash與SPI NAND Flash并非相互替代,而是互補關(guān)系。SPI NOR勝在讀取速度快、使用簡單、可靠性高,是代碼存儲的理想選擇。
    的頭像 發(fā)表于 01-29 16:58 ?470次閱讀
    <b class='flag-5'>SPI</b> NOR Flash和<b class='flag-5'>SPI</b> NAND Flash存儲芯片的區(qū)別

    STM32中SPI模塊的CRC功能

    CRCNEXT=1,表示下個傳輸值來自TxCRC寄存器,而不是Tx buffer:例如,可以在TX中斷ISR中,在最后一位發(fā)送數(shù)據(jù)填入DR之前,將CRCNEXT置為1(否則發(fā)送的就是
    發(fā)表于 01-15 23:21

    LAT1178+關(guān)閉 SPI 會導(dǎo)致 WRPERR 錯誤的問題分析應(yīng)用筆記

    在 STM32 的應(yīng)用中,SPI 算是用的比較多的外設(shè)了,也是單片機最常見外設(shè)之。客戶說它執(zhí)行了關(guān)閉 SPI 的代碼,竟然會導(dǎo)致 Flash 中的 WRPERR 標(biāo)志置,致使應(yīng)用碰
    發(fā)表于 01-11 17:31 ?0次下載

    DRAM組織結(jié)構(gòu)和讀取原理介紹

    DRAM 被組織成層次化的陣列,總共由數(shù)十億個 DRAM 單元組成,每個單元存儲一位數(shù)據(jù)
    的頭像 發(fā)表于 12-26 15:10 ?2157次閱讀
    DRAM組織結(jié)構(gòu)和<b class='flag-5'>讀取</b>原理介紹

    掌握NFC標(biāo)簽批量讀取,輕松提升數(shù)據(jù)采集效率!

    NFC批量讀取技術(shù)解決傳統(tǒng)單點讀取效率低、成本高、易出錯等問題,實現(xiàn)高效、自動化數(shù)據(jù)采集。
    的頭像 發(fā)表于 09-23 16:11 ?534次閱讀
    掌握NFC標(biāo)簽批量<b class='flag-5'>讀取</b>,輕松提升<b class='flag-5'>數(shù)據(jù)</b>采集效率!

    怎么用LL命令讀取SPI?

    用cubemx構(gòu)建工程,MDK開發(fā),這個項目采用AD4020 202MSPS外置ADC,ADC轉(zhuǎn)換速率高達0.5us,而STM32H5用HAL的HAL_SPI_Receive(&
    發(fā)表于 09-09 08:17

    SPI NOR FLASH是什么,與SPI NAND Flash的區(qū)別

    存儲一位數(shù)據(jù) (0或1) ,可以直接尋址,尋址速度非??臁?b class='flag-5'>SPI NOR FLASH支持全雙工、單工以及半雙工傳輸方式,被廣泛應(yīng)用于嵌入式系統(tǒng)中,如Bootloader、操作系統(tǒng)內(nèi)核等程序的存儲。由于它的讀寫速度和尋址方式類似于系統(tǒng)內(nèi)存,因此它可以映射到系統(tǒng)的0地址空間。
    的頭像 發(fā)表于 08-21 09:26 ?1588次閱讀

    使用stm32u575rg通過spi讀取外置adc的數(shù)據(jù),如何設(shè)置才能讓spi不需要中斷重啟持續(xù)讀取數(shù)據(jù)?

    我打算使用stm32u575rg通過spi讀取外置adc的數(shù)據(jù),通過lptim2的ch2提供外置ad的觸發(fā)信號,ch1提供觸發(fā)信號給spi1,SPI
    發(fā)表于 07-10 08:22

    GPDV6624C應(yīng)用筆記1.0版

    電子發(fā)燒友網(wǎng)站提供《GPDV6624C應(yīng)用筆記1.0版.pdf》資料免費下載
    發(fā)表于 06-06 17:20 ?0次下載

    FreeRTOS讀取ADS1299數(shù)據(jù)有誤

    您好,請問,用stm32的FreeRTOS的隊列對ADS1299傳感器讀取數(shù)據(jù),已設(shè)置采樣率為2khz 在采集任務(wù)中:通過spi讀取數(shù)據(jù)
    發(fā)表于 05-05 22:48

    labview tcp讀取數(shù)據(jù)不完整

    *附件:未命名 1.rar 我用labview tcp協(xié)議讀取電源的電壓,返回的數(shù)據(jù)正常應(yīng)該是這樣的: 00 00 00 00 00 07 01 03 04 00 00 27 10 但實際返回是這樣
    發(fā)表于 04-29 09:58

    AD7768與STM32F407進行數(shù)據(jù)通信,SPI1讀取到的數(shù)據(jù)不完整,整體數(shù)據(jù)在字節(jié)上出現(xiàn)偏移,怎么解決?

    我再做個任務(wù),需要使用STM32F407對AD7768的數(shù)據(jù)進行讀取,當(dāng)然我們的AD采集速率要求不高,只需要2K。 我使用GPIO來模擬SPI對AD7768的寄存器進行配置
    發(fā)表于 04-24 06:40

    ad77681數(shù)據(jù)讀取異常的原因?

    現(xiàn)異常。 我確保每個DRDY信號到來后讀取次ADC的數(shù)據(jù),并且在SPI2發(fā)送adc數(shù)據(jù)包時,spi
    發(fā)表于 04-16 07:26

    ADXL355從停止模式進入測量模式后,第讀取加速度數(shù)據(jù)值為0是怎么回事?

    出的值為全為0,但讀取數(shù)據(jù)前先讀取0x04狀態(tài)寄存器,顯示DATA_RDY的值為1。怎樣操作才能保證退出停止模式進入測量模式后,第
    發(fā)表于 04-16 07:01

    STM32 SPI從機用DMA方式實現(xiàn)全雙工,數(shù)據(jù)在傳輸過程中就會CRC校驗失敗,為什么?

    STM32配置成從機全雙工,采用DMA方式,出現(xiàn)個問題:當(dāng)我把DMA方式配置成DMA_CIRCULAR后,數(shù)據(jù)在傳輸過程中就會CRC校驗失敗。 在完成上述相關(guān)配置后,在SPI初始化函數(shù)最后
    發(fā)表于 03-11 07:09