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

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

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

ADC的SPI接口讀取返回0xFF解決方案

星星科技指導(dǎo)員 ? 來(lái)源:ADI ? 作者:Umesh Jayamohan ? 2023-02-17 09:56 ? 次閱讀

Umesh Jayamohan

系統(tǒng)中,ADC的SPI接口每次讀取都會(huì)返回0xFF。可能出了什么問(wèn)題?

答:

新一代GSPS(每秒千兆采樣)ADC(模數(shù)轉(zhuǎn)換器)在系統(tǒng)實(shí)現(xiàn)中提供了業(yè)界領(lǐng)先的性能和可靠性。但是,如果SPI接口每次讀取都回讀0xFF,那么這肯定是不可能的。這很可能意味著ADC內(nèi)部的某些東西不符合要求。讓我們找出它可能是什么。

最新一代GSPS ADC(例如AD9680)采用深亞微米65 nm CMOS工藝設(shè)計(jì)。為了達(dá)到所需的交流性能規(guī)格,該設(shè)計(jì)必須適應(yīng)多個(gè)電壓域(1.25 V、2.5 V、3.3 V)。通常,任何具有這些多個(gè)電壓域的硅器件都需要某種電源排序。但是,ADI公司的設(shè)計(jì)人員內(nèi)置了一些超基準(zhǔn)電路,無(wú)需任何電源排序,使AD9680更易于客戶(hù)在其系統(tǒng)中實(shí)現(xiàn)。

AD9680內(nèi)置上電復(fù)位(POR)保姆電路,可控制所有電源軌。在該P(yáng)OR電路滿(mǎn)足電源軌電平之前,器件將處于復(fù)位模式。在復(fù)位模式下,如果SPIVDD為1.8 V、2.5 V或3.3 V,ADC將通過(guò)SPI端口發(fā)送每次讀取0xFF。看起來(lái)我們正在到達(dá)某個(gè)地方。這就是您最好的朋友是舊的可靠數(shù)字萬(wàn)用表 (DMM) 的地方。

使用數(shù)字萬(wàn)用表時(shí),首先要檢查的是AD9680各個(gè)引腳的電源電壓。就POR電路而言,其中之一可能超出了范圍?,F(xiàn)在事情可能會(huì)變得棘手。請(qǐng)看圖1,其中顯示了AD9680-1250的框圖原理圖,時(shí)鐘頻率為1.25 GHz。 對(duì)于第一次看原理圖的人來(lái)說(shuō),這里的一切看起來(lái)都很正常。此處未顯示去耦電容,其他電源域也是如此。重點(diǎn)是1.25 V域,因?yàn)檫@是最小的電源電壓。

poYBAGPu3riAPxeJAABCGm9gnCk930.png?la=en&imgver=1

圖1.使用ADP1 LDO為AD25上的9680.1741 V域供電

ADP1741應(yīng)有足夠的空間為所有連接到1.25 V的域供電。然而,這里的罪魁禍?zhǔn)撞皇荓DO,也不是ADC,而是毫無(wú)戒心的鐵氧體磁珠。通常,鐵氧體磁珠用于電網(wǎng)中,以過(guò)濾流向某個(gè)設(shè)備的功率。鐵氧體磁珠中經(jīng)常被忽視的一個(gè)參數(shù)是DCR(直流電阻)。那么,我們?yōu)槭裁匆獡?dān)心DCR?因?yàn)橐晃幻袉讨巍の髅伞W姆的紳士是這么說(shuō)的。

歐姆定律指出,通過(guò)兩點(diǎn)之間導(dǎo)體的電流與兩點(diǎn)之間的電位差成正比。因此,ADP1741 LDO輸出的電壓可能為1.25 V,聽(tīng)起來(lái)不錯(cuò)。但是,如果測(cè)量ADC引腳或鐵氧體磁珠另一側(cè)的電壓,DMM讀數(shù)為1.12 V(假設(shè)標(biāo)稱(chēng)電流)。這就是ADC SPI讀數(shù)0xFF的真正原因。保姆顯然對(duì)AD9680內(nèi)部的電壓不滿(mǎn)意。

那么補(bǔ)救措施是什么?有一些選項(xiàng):

1.選擇不使用鐵氧體磁珠。這可能會(huì)也可能不會(huì)使設(shè)計(jì)更容易受到噪聲的影響。

2. 將LDO輸出電壓調(diào)高,以考慮鐵氧體磁珠上的IR壓降。但是,當(dāng)未拉出足夠的電流時(shí),這可能會(huì)使AD9680面臨過(guò)大的電壓。

3. 選擇另一個(gè)阻抗和載流能力相同但DCR(小于50 mΩ)的鐵氧體磁珠。

4. 將電壓輸出拆分到相應(yīng)的域(AVDD1、AVDD1_SR、DVDD、DRVDD),并使用具有較低 DCR 的鐵氧體磁珠以確保適當(dāng)?shù)墓ぷ麟妷骸?/p>

圖 2 顯示了上面討論的選項(xiàng) 2 和 4。選項(xiàng) 4 提供了最佳折衷方案。但是,這確實(shí)會(huì)增加物料清單 (BOM) 成本,必須考慮到這一點(diǎn)。選項(xiàng) 4 還通過(guò)在 AVDD、DVDD 和 DRVDD 域之間提供一些濾波來(lái)提供更高的抗噪性。

pYYBAGPu3rqASjVeAACGvqSAJYI976.png?la=en&imgver=1

圖 2:選擇和使用鐵氧體磁珠為 AD9680 供電的不同選項(xiàng)。

因此,下次您插入ADC時(shí),發(fā)現(xiàn)它不起作用,并且SPI在每個(gè)讀取周期都返回0xFF,您可能會(huì)感謝歐姆先生。在這種情況下,古老的數(shù)字萬(wàn)用表成為您的首選工具,而不是示波器或您友好的應(yīng)用工程師。鐵氧體磁珠當(dāng)然可以為您的系統(tǒng)提供良好的抗噪性。但是,如果選擇不當(dāng),并且不考慮歐姆定律,這個(gè)小元件可能會(huì)在實(shí)現(xiàn)ADC在系統(tǒng)中的真實(shí)性能時(shí)引起一些嚴(yán)重問(wèn)題。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • CMOS
    +關(guān)注

    關(guān)注

    58

    文章

    5718

    瀏覽量

    235523
  • adc
    adc
    +關(guān)注

    關(guān)注

    98

    文章

    6498

    瀏覽量

    544681
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1706

    瀏覽量

    91598
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SPI中斷時(shí)讀取會(huì)多接收多余的0Xff的原因?

    源代碼,實(shí)現(xiàn)的是spi的寫(xiě)讀(阻塞式) 改成中斷時(shí)讀取,代碼如下 這種情況會(huì)多接收多余的0Xff 是哪里有問(wèn)題呢
    發(fā)表于 03-13 07:53

    why???s3c2440中的spi驅(qū)動(dòng)程序讀取的數(shù)據(jù)都是0xff

    ;");printf("%.2X ", rx[ret]); } puts("");}在這里我調(diào)用這個(gè)函數(shù)循環(huán)的傳一個(gè)地址,然后再傳一個(gè)數(shù)據(jù)。當(dāng)我短接mosi和miso時(shí),數(shù)據(jù)返回正常,但是一旦接上外設(shè),返回的數(shù)據(jù)都是0xff。求
    發(fā)表于 11-15 22:43

    why???s3c2440中的spi驅(qū)動(dòng)程序讀取的數(shù)據(jù)都是0xff

    返回正常,但是一旦接上外設(shè),返回的數(shù)據(jù)都是0xff。當(dāng)我想外設(shè)先傳控制數(shù)據(jù)初始化外設(shè),然后再循環(huán)傳一個(gè)數(shù)據(jù)時(shí),結(jié)果一樣都是0xff求高手解答?。?/div>
    發(fā)表于 11-16 16:18

    why?s3c2440中的spi驅(qū)動(dòng)程序讀取的數(shù)據(jù)都是0xff

    調(diào)用這個(gè)函數(shù)循環(huán)的傳一個(gè)地址,然后再傳一個(gè)數(shù)據(jù)。當(dāng)我短接mosi和miso時(shí),數(shù)據(jù)返回正常,但是一旦接上外設(shè),返回的數(shù)據(jù)都是0xff。求高手解答??!
    發(fā)表于 11-17 10:14

    硬件SPI讀取W25x64返回值一直是0xff

    現(xiàn)在用MSP430的硬件SPI,UCB0SPi,當(dāng)我發(fā)送命令喚醒w25x64之后讀取它的ID,但是總是返回
    發(fā)表于 11-10 14:52

    cyble-22001 SPI讀取只得到0xFF

    你好,先生,我用SPI接口連接Cype 22001和熱電偶IC,但是在讀取數(shù)據(jù)時(shí),我只得到0xFF。我的代碼在這里。UTI8Max 31856A Read數(shù)據(jù)(UIT8 ReGuad
    發(fā)表于 11-22 17:07

    AD9361 SPI讀回來(lái)的數(shù)據(jù)是0xFF

    最近在調(diào)9361的時(shí)候,發(fā)現(xiàn)在用SPI讀寄存器標(biāo)志,確認(rèn)BBPLL是否鎖定時(shí),發(fā)現(xiàn)SPI讀回來(lái)的數(shù)據(jù)是0xFF,感覺(jué)SPI讀取存在問(wèn)題,于是
    發(fā)表于 02-27 14:39

    通過(guò)SPI讀取Who Am I register返回值為0xFF

    我對(duì)LSM6DS3有一個(gè)奇怪的問(wèn)題。 上電后我嘗試通過(guò)SPI讀取Who Am I register。返回值為0xFF,如果我再次讀取它將發(fā)送
    發(fā)表于 03-01 10:14

    為什么SPI讀取的第一個(gè)字節(jié)總是0xFF?

    你好,你好嗎?我使用PIC32 MX250F128D作為主機(jī),通過(guò)ADI與ADAU1701 DSP進(jìn)行通信。寫(xiě)得很好,效果很好。然而,讀回有一個(gè)問(wèn)題:SPI讀取的第一個(gè)字節(jié)總是0xFF。所以如果我
    發(fā)表于 10-14 13:43

    為什么 byte=SPIx_ReadWriteByte(0Xff);這里要寫(xiě)入0XFF?

    SPIx_ReadWriteByte(W25X_ReadStatusReg); //發(fā)送讀取狀態(tài)寄存器命令 byte=SPIx_ReadWriteByte(0Xff); //讀取一個(gè)字節(jié)
    發(fā)表于 10-14 22:04

    為什么往w25q128里面讀取數(shù)據(jù)就寫(xiě)入0xff?

    為什么往w25q128里面讀取數(shù)據(jù)就寫(xiě)入0xff?//讀取SPI FLASH//在指定地址開(kāi)始讀取指定長(zhǎng)度的數(shù)據(jù)//pBuffer:數(shù)據(jù)存儲(chǔ)
    發(fā)表于 04-23 09:35

    RTThread SPI讀取W25Q16設(shè)備ID返回 0XFF的問(wèn)題怎么解決?

    RTThread SPI讀取W25Q16設(shè)備ID返回 0XFF的問(wèn)題怎么解決?
    發(fā)表于 02-17 07:21

    M031-SPI讀寫(xiě)外掛flash為什么返回的都是0Xff?

    我采用SPI對(duì)外掛的flash(w25q256)讀取ID,寄存器狀態(tài),但返回的都是0Xff,查找問(wèn)題許久,但還是沒(méi)有解決,我嘗試把自動(dòng)硬件從選關(guān)閉了、速率降低了,但還是不行因此想向各位
    發(fā)表于 08-21 06:33

    MSP432P401R I2C讀取MPU6050的數(shù)值為0xff但是 ACK 是正常的解決辦法

    板子,隊(duì)友讓我開(kāi)發(fā)開(kāi)發(fā)陀螺儀,期間遇到了MSP432P401R讀取MPU6050的數(shù)值為0xff但是 ACK 是正常的的問(wèn)題,花了幾天時(shí)間解決了,所以寫(xiě)一篇總結(jié)記錄一下ouo。參考:I2C 讀取總是
    發(fā)表于 12-06 14:06 ?18次下載
    MSP432P401R I2C<b class='flag-5'>讀取</b>MPU6050的數(shù)值為<b class='flag-5'>0xff</b>但是 ACK 是正常的解決辦法

    RTThread SPI 讀取 W25Q16 設(shè)備ID 返回 0XFF,已解決

    硬件:stm32f103rct6最小系統(tǒng)板,Rtthread V4.0.1問(wèn)題說(shuō)明:參考RTthread官網(wǎng)SPI例程,剛開(kāi)始報(bào)錯(cuò)無(wú)法查找到"spi10",讀取到的全部是ff或者00等。儲(chǔ)備知識(shí)
    發(fā)表于 12-22 19:44 ?7次下載
    RTThread <b class='flag-5'>SPI</b> <b class='flag-5'>讀取</b> W25Q16 設(shè)備ID <b class='flag-5'>返回</b> <b class='flag-5'>0XFF</b>,已解決