一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

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

掃碼添加小助手

加入工程師交流群


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



目錄預(yù)覽


1.問(wèn)題描述

2.問(wèn)題的排查

3.原因的進(jìn)一步分析



01

問(wèn)題描述


客戶在項(xiàng)目開(kāi)發(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)讀寫異常。


02

問(wè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速率后異?,F(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。


03

原因的進(jìn)一步分析


進(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)題得以解決。


完整內(nèi)容請(qǐng)點(diǎ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)注明出處。

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

    關(guān)注

    6067

    文章

    44985

    瀏覽量

    650321
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    364736

原文標(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)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    了解ISL28022的電流和功率計(jì)算應(yīng)用筆記

    本應(yīng)用筆記討論數(shù)字電源監(jiān)控器(DPM) ISL28022的內(nèi)部計(jì)算程序。它解釋了數(shù)據(jù)寄存器的格式,并舉例說(shuō)明了內(nèi)部數(shù)學(xué)處理器從測(cè)得的分流和總線電壓導(dǎo)出電流和功率值的程序步驟。本應(yīng)用筆記
    的頭像 發(fā)表于 02-21 11:30 ?574次閱讀
    了解ISL28022的電流和功率計(jì)算應(yīng)<b class='flag-5'>用筆記</b>

    使用ADS8331 SPI通訊的SCLK為1K左右能正常讀取數(shù)據(jù),為10K 以上讀到的數(shù)據(jù)都是錯(cuò)去的?如何解決?

    您好!我使用ADS8331 SPI通訊的SCLK為1K左右能正常讀取數(shù)據(jù),為10K 以上讀到的數(shù)據(jù)都是錯(cuò)去的?請(qǐng)問(wèn)如何解決?
    發(fā)表于 02-07 08:12

    CDK應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《CDK應(yīng)用筆記.pdf》資料免費(fèi)下載
    發(fā)表于 01-16 16:17 ?0次下載
    CDK應(yīng)<b class='flag-5'>用筆記</b>

    ES32VF2264應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《ES32VF2264應(yīng)用筆記.pdf》資料免費(fèi)下載
    發(fā)表于 01-16 16:14 ?0次下載
    ES32VF2264應(yīng)<b class='flag-5'>用筆記</b>

    ADS1194調(diào)試串口輸出,在定時(shí)間的轉(zhuǎn)換后數(shù)據(jù)會(huì)少一位輸出,為什么?

    調(diào)試的是ADS1194,每個(gè)/DRDY 接收轉(zhuǎn)換數(shù)據(jù)并通過(guò)串口發(fā)送到串口助手中,先調(diào)試的CH1~CH4 通道,使用的是內(nèi)部的Test_signal,增加了一位調(diào)試,即每進(jìn)次/DR
    發(fā)表于 01-07 07:30

    S32K3xxICU應(yīng)用筆記

    S32K3xxICU應(yīng)用筆記
    發(fā)表于 12-30 15:38 ?2次下載

    ADS1292R檢測(cè)到DRDY有下降沿的時(shí)候,讀取數(shù)據(jù),讀出的數(shù)據(jù)一位都代表什么?。?/a>

    請(qǐng)教TI技術(shù)支持: 當(dāng)檢測(cè)到DRDY有下降沿的時(shí)候,讀取數(shù)據(jù),讀出的數(shù)據(jù)一位都代表什么啊
    發(fā)表于 12-27 07:42

    使用STM32F407的硬件SPI接口去讀取ADS8694的18ad數(shù)據(jù)怎樣才能讀取出來(lái)?

    使用STM32F407的硬件SPI接口去讀取ADS8694的18ad數(shù)據(jù)怎樣才能讀取出來(lái),因?yàn)镾TM32F407的硬件
    發(fā)表于 12-27 06:23

    ADS1299讀取數(shù)據(jù)出錯(cuò)的原因?

    寄存器正確。用/DRDY下降沿觸發(fā)中斷,在中斷程序內(nèi)讀取24+8*24Byte(1個(gè)狀態(tài)+8個(gè)通道) 但是讀出來(lái)的數(shù)據(jù),只有第個(gè)24狀態(tài)為0xC00000,后8個(gè)24
    發(fā)表于 12-25 06:48

    DS90UB954出錯(cuò)后就不能繼續(xù)收?qǐng)D圖,怎么解決?

    在使用過(guò)程中出現(xiàn)DS90UB954出錯(cuò)后就不能繼續(xù)收?qǐng)D現(xiàn)象. 出錯(cuò)時(shí)候0x4D提示:[0x4D] : 0x30 或者是0x33 手冊(cè)提示是: Bi-directional Control
    發(fā)表于 12-16 08:27

    ADS1292R讀取spi總線,有延時(shí)會(huì)讀取數(shù)據(jù)出錯(cuò),怎么回事?

    ADS1292R讀取spi總線,當(dāng)有延時(shí)讀取數(shù)據(jù)出錯(cuò) (1)ADS1292R 2mS 定時(shí)采樣中斷
    發(fā)表于 11-29 14:46

    在兩片ads1299菊花鏈模式連接下,讀取到的數(shù)據(jù)是216+1+216這種形式嗎,中間多了一位額外的數(shù)據(jù),可舍棄?

    我想問(wèn)下各位工程師,在兩片ads1299菊花鏈模式連接下,讀取到的數(shù)據(jù)是216+1+216這種形式嗎,中間多了一位額外的
    發(fā)表于 11-18 08:38

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-spi編程示例之spi硬件原理

    應(yīng)的CS(下圖使用NSS表示)信號(hào)線拉低。SPI接口為收發(fā)為雙全工串行方式傳輸,收發(fā)同步,主設(shè)備發(fā)出一位給從設(shè)備時(shí),從設(shè)備也發(fā)出一位給主設(shè)備。主多從情況如下圖: 工作模式
    發(fā)表于 11-06 09:17

    飛凌嵌入式ElfBoard ELF 1板卡-spi編程示例之spi硬件原理

    應(yīng)的CS(下圖使用NSS表示)信號(hào)線拉低。SPI接口為收發(fā)為雙全工串行方式傳輸,收發(fā)同步,主設(shè)備發(fā)出一位給從設(shè)備時(shí),從設(shè)備也發(fā)出一位給主設(shè)備。主多從情況如下圖: 工作模式
    發(fā)表于 11-05 08:44

    tas6424E-Q1 iic的sda的數(shù)據(jù)位初始化的時(shí)候最后一位現(xiàn)半高電平 , 直初始化不成功,為什么?

    現(xiàn)在所用的芯片tas6424E-Q1iic的sda的數(shù)據(jù)位初始化的時(shí)候最后一位現(xiàn)半高電平 ,直初始化不成功 ,波形圖和原理圖如下,可能
    發(fā)表于 09-27 09:35