目錄預(yù)覽
1.問(wèn)題描述
2.問(wèn)題的排查
3.原因的進(jìn)一步分析
客戶在項(xiàng)目開發(fā)中使用STM32F427GT6的SPI連接外部Flash時(shí),發(fā)現(xiàn)在常溫下能正常讀寫,但是在高溫下一段時(shí)間后(大概5分鐘左右)出現(xiàn)讀寫異常的情況。讀寫異常時(shí)發(fā)生在發(fā)送0x5指令后,返回?cái)?shù)據(jù)通過(guò)軟件讀取的是0,而硬件抓取的是1。同時(shí)也發(fā)現(xiàn)同一份代碼,同樣硬件,如果flash換成別的廠家的,在同樣溫度條件下又沒(méi)有出現(xiàn)讀寫異常。
根據(jù)客戶的描述,初期懷疑是否是不同F(xiàn)lash廠家的兼容性問(wèn)題,現(xiàn)場(chǎng)進(jìn)一步測(cè)試,發(fā)現(xiàn)客戶軟件在70℃環(huán)境溫度下,除了program、erase時(shí)寄存器會(huì)讀錯(cuò)數(shù)據(jù),用只讀指令0x03也會(huì)讀錯(cuò)數(shù)據(jù)(0x55、0xaa會(huì)被軟件讀成0x54、0xab)。
根據(jù)這個(gè)結(jié)果,我們懷疑到tCLQV這個(gè)參數(shù)。看上去當(dāng)前的軟件是在flash輸出數(shù)據(jù)時(shí),在CLK下降沿時(shí)去采集flash MO數(shù)據(jù)的,所以高溫引起的細(xì)微的tCLQV變化可能會(huì)導(dǎo)致軟件采集出錯(cuò)。我們建議MCU在下一個(gè)CLK的上升沿去采集數(shù)據(jù),此時(shí)flash MO數(shù)據(jù)已經(jīng)穩(wěn)定為1。
現(xiàn)場(chǎng)調(diào)整GPIO(即flash CLK/SI/SO)OSPEEDR速率后異常現(xiàn)象消失,GPIO速率調(diào)整后CLK信號(hào)斜率變大,tCLQV跟隨變小,軟件抓到錯(cuò)誤數(shù)據(jù)的現(xiàn)象消失,這個(gè)實(shí)驗(yàn)結(jié)果也與上述tCLQV這個(gè)懷疑點(diǎn)相匹配。下面是不同GPIO速率下的測(cè)試結(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。
進(jìn)一步了解客戶系統(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的勘誤手冊(cè),我們發(fā)現(xiàn)有同樣問(wèn)題的描述:
對(duì)于文檔推薦的2種workaround也和我們測(cè)試時(shí)發(fā)現(xiàn)的一樣。
至此也是能較好的和客戶解釋了MCU底層的一些原理,并建議客戶按照相應(yīng)workaround的配置,去設(shè)定APB總線與OSPEEDR的關(guān)系,最終讓問(wèn)題得以解決。
長(zhǎng)按掃碼關(guān)注公眾號(hào)
更多資訊,盡在STM32
▽點(diǎn)擊“閱讀原文”,可下載原文檔
原文標(biāo)題:應(yīng)用筆記 | SPI讀取數(shù)據(jù)的最后一位出錯(cuò)問(wèn)題
文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
單片機(jī)
+關(guān)注
關(guān)注
6040文章
44604瀏覽量
637115 -
STM32
+關(guān)注
關(guān)注
2270文章
10918瀏覽量
356857
原文標(biāo)題:應(yīng)用筆記 | SPI讀取數(shù)據(jù)的最后一位出錯(cuò)問(wèn)題
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論