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

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

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

ADC的4線SPI配置時(shí)序介紹與分析

FPGA之家 ? 來源:FPGA之家 ? 2020-09-07 17:09 ? 次閱讀

本篇將以德州儀器(TI)的高速ADC芯片ads52j90為例,進(jìn)行ADC的4線SPI配置時(shí)序介紹與分析。

從ads52j90的數(shù)據(jù)手冊(cè)我們不難發(fā)現(xiàn),其SPI控制模塊主要包含4根信號(hào)線SEN,SCLK,SDIN以及SDOUT。TI公司對(duì)其產(chǎn)品SPI配置信號(hào)的命名方式與通用的SPI信號(hào)命名方式不一樣,但實(shí)際上SENSDINSDOUT分別對(duì)應(yīng)CSBSDISDO。

SEN:SPI讀寫的使能信號(hào);

SDIN:FPGA寫入ADC的配置數(shù)據(jù)(寄存器地址和對(duì)應(yīng)地址的值);

SDOUT:ADC對(duì)應(yīng)地址輸出的配置寄存器數(shù)據(jù);

SCLK:FPGA提供給ADC的SPI接口時(shí)鐘

首先介紹該ADC的SPI的寫時(shí)序,datasheet給出的時(shí)序圖如圖1所示:我們首先大致看一下寫時(shí)序圖,能夠了解到對(duì)于SDIN來說,需要先寫入A7~A0的8bit的地址,接下來寫入該地址下的16bit的寄存器數(shù)值D15~D0,也就是說每進(jìn)行一次寫操作需要不間斷的寫入24bit的數(shù)據(jù)。對(duì)于SEN來說,在進(jìn)行寫操作時(shí),其一直保持低電平,寫之前和寫完后都保持高電平。對(duì)于SCLK來說,其上升沿每次采集每1bit SDIN數(shù)據(jù)的中心位置,共需要采集24次,才能完成這24bit SDIN數(shù)據(jù)的寫入。

圖1:SPI寫時(shí)序圖

上面三點(diǎn)就是我們初步看這個(gè)時(shí)序圖所得到的結(jié)論。對(duì)于該ADC,按照這種方式進(jìn)行寫操作就不會(huì)有問題。實(shí)際上所有ADC的SPI寫操作都有類似于上面介紹的共同準(zhǔn)則,這里歸納如下:

1,無論SPI進(jìn)行讀還是寫操作,SEN必須拉低,否則SPI不工作(既不讀也不寫),讀、寫完成之后SEN必須拉高;

2,SDIN的數(shù)據(jù)每次在SCLK的上升沿寫入SPI;

3,SDIN的數(shù)據(jù)組成一定是先寫入配置寄存器地址,再連續(xù)寫入配置寄存器數(shù)值;

圖2:SPI時(shí)序要求

另外,我們看到時(shí)序圖上有許多時(shí)間參數(shù),我們?cè)趯懘a時(shí)不僅要遵守以上的共同準(zhǔn)則,還要滿足這些參數(shù)的時(shí)序關(guān)系,并保留一定的時(shí)間量。datasheet都提供了這些參數(shù)的大小,如圖2所示。比如tSCLK的最小值是50ns,意味著SPI的時(shí)鐘最高20MHz。tSEN_SU的最小值為8ns,就表示SEN下降沿至少提前第一個(gè)SCLK的上升沿時(shí)間8ns。tDSU則表示SDIN的數(shù)據(jù)必須至少提前SCLK的上升沿5ns準(zhǔn)備好,等等。只要遵守了相關(guān)的SPI準(zhǔn)則以及datasheet里的SPI時(shí)序參數(shù),SPI的寫操作就不會(huì)有問題了。

現(xiàn)在我們介紹該ADC的SPI讀時(shí)序,如圖3所示。讀操作的主要目的是監(jiān)測ADC內(nèi)部寄存器狀態(tài),從而判斷ADC的配置狀態(tài)是否符合用戶的需求。從圖上我們可以看到,SPI的讀操作可以分解為兩個(gè)部分:第一個(gè)部分是先寫入A7~A0 8bit的寄存器地址到SDIN,然后SDOUT輸出對(duì)應(yīng)地址的16bit的寄存器數(shù)值。

這里重點(diǎn)強(qiáng)調(diào)一下:理論上來說,在上升沿鎖存寫入的地址最后1bit后,在接下來的每次SCLK下降沿,SDOUT輸出1bit寄存器值,直到16bit寄存器數(shù)值完全輸出。但實(shí)際上每次SCLK下降沿輸出的數(shù)據(jù)只有經(jīng)過tOUT_DV(12ns ~28ns)后才穩(wěn)定,后端FPGA才能正確接收。從圖上我們不難發(fā)現(xiàn),F(xiàn)PGA在SCLK的上升沿附近獲取SDOUT的數(shù)據(jù)是非常合適的,在這個(gè)位置獲取的數(shù)據(jù)最穩(wěn)定。

圖3:SPI讀時(shí)序圖

4線SPI的讀寫時(shí)序分析就到這里了,再次強(qiáng)調(diào)幾個(gè)關(guān)鍵點(diǎn):

關(guān)鍵點(diǎn)1:SEN在讀寫操作時(shí),必須拉低。讀寫完成之后,必須拉高。

關(guān)鍵點(diǎn)2:SDIN的數(shù)據(jù)每次必須在SCLK的上升沿寫入SPI。對(duì)應(yīng)的數(shù)據(jù)格式一定是寄存器地址+要寫入的寄存器數(shù)值。

關(guān)鍵點(diǎn)3:SOUT的數(shù)據(jù)總是在SCLK的下降沿輸出,因此選擇FPGA在SCLK的上升沿獲取SDOUT數(shù)據(jù)最穩(wěn)定。

關(guān)鍵點(diǎn)4:一定要滿足datasheet給出的SPI的時(shí)序參數(shù),并在代碼實(shí)現(xiàn)時(shí)要留有適當(dāng)?shù)臅r(shí)序裕量。

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

    關(guān)注

    455

    文章

    50851

    瀏覽量

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

    關(guān)注

    98

    文章

    6501

    瀏覽量

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

    關(guān)注

    17

    文章

    1707

    瀏覽量

    91645

原文標(biāo)題:FPGA通過SPI對(duì)ADC配置簡介(二)--4線SPI配置時(shí)序分析

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DAC7568按數(shù)據(jù)手冊(cè)上要求的SPI時(shí)序不能配置,內(nèi)部參考是否也沒有輸出,為什么?

    按數(shù)據(jù)手冊(cè)上要求的SPI時(shí)序不能配置,內(nèi)部參考是否也沒有輸出,手冊(cè)上面介紹的操作有沒有順序要求,沒有給出來。試了上面所有寫操作也沒有輸出輸入您的問題
    發(fā)表于 12-31 06:21

    KeyStone架構(gòu)串行外設(shè)接口(SPI)手冊(cè)

    )、MOSI(主設(shè)備輸出從設(shè)備輸入)、MISO(主設(shè)備輸入從設(shè)備輸出線)和CS/SS(片選線)。SPI協(xié)議支持主從模式,其中主設(shè)備生成時(shí)鐘信號(hào)并控制數(shù)據(jù)傳輸?shù)?b class='flag-5'>時(shí)序,而從設(shè)備響應(yīng)主設(shè)備的請(qǐng)求。這種協(xié)議廣泛應(yīng)用于嵌入式系統(tǒng)中,因?yàn)?/div>
    發(fā)表于 12-16 10:33 ?0次下載

    ADS8568使用SPI通信無法正常訪問配置寄存器怎么解決?

    0x000003FF不符。 在代碼中讀取的時(shí)序為: spi.write([0xC0, 0x00, 0x3F, 0xFF]) data = spi.read(4) 請(qǐng)幫忙看下讀取的
    發(fā)表于 12-03 07:24

    請(qǐng)問ADS8671讀寫時(shí)序是怎么樣的?

    ;_00000000_00000000,然后再發(fā)送16bit的sclk來讀取寄存器數(shù)據(jù),但是讀取到的數(shù)據(jù)是adc的轉(zhuǎn)換數(shù)據(jù),并且寫入也沒成功,看過spi時(shí)序是對(duì)的,想請(qǐng)問這個(gè)期間的讀寫時(shí)序
    發(fā)表于 11-21 08:23

    ADC3663的SPI配置管腳連接至FPGA時(shí)遇到IO電平不匹配怎么解決?

    ADC3663的SPI配置管腳連接至FPGA時(shí)遇到IO電平不匹配問題。FPGA的IO是2.5V CMOS電平,ADC3663是1.8V CMOS電平,但是3663的
    發(fā)表于 11-14 08:08

    ADS127L11配置ADC使用外部時(shí)鐘以及FILTER[4:0]都不成功,為什么?

    配置ADC使用外部時(shí)鐘以及FILTER[4:0]都不成功,spi時(shí)序都是正常的,使用的是4
    發(fā)表于 11-13 08:03

    ADS127L11使用4spi不管怎么配置寄存器,示波器看到ADC的drdy脈沖周期始終是400K,怎么回事?

    我使用4spi不管怎么配置寄存器,示波器看到ADC的drdy脈沖周期始終是400K,不知道怎么回事?我檢查
    發(fā)表于 11-13 06:36

    TPS65910x時(shí)序配置

    電子發(fā)燒友網(wǎng)站提供《TPS65910x時(shí)序配置.pdf》資料免費(fèi)下載
    發(fā)表于 10-25 09:57 ?0次下載
    TPS65910x<b class='flag-5'>時(shí)序</b><b class='flag-5'>配置</b>

    瀚海微SD NAND之SD 協(xié)議(42)SPI總線時(shí)序

    -卡已準(zhǔn)備好 下面的時(shí)序圖描述了基本的命令響應(yīng)(無數(shù)據(jù))SPI事務(wù)。 主機(jī)命令到卡響應(yīng)卡忙 下面的時(shí)序圖描述了R1b響應(yīng)的命令響應(yīng)事務(wù)(例如SET_WRITE_PROT和ERASE)。 當(dāng)卡信號(hào)繁忙時(shí),主機(jī)可以在任何時(shí)候取消選擇
    的頭像 發(fā)表于 10-21 10:19 ?282次閱讀
    瀚海微SD NAND之SD 協(xié)議(42)<b class='flag-5'>SPI</b>總線<b class='flag-5'>時(shí)序</b>

    DDR4時(shí)序參數(shù)介紹

    DDR4(Double Data Rate 4時(shí)序參數(shù)是描述DDR4內(nèi)存模塊在執(zhí)行讀寫操作時(shí)所需時(shí)間的一組關(guān)鍵參數(shù),它們直接影響到內(nèi)存的性能和穩(wěn)定性。以下是對(duì)DDR
    的頭像 發(fā)表于 09-04 14:18 ?2599次閱讀

    FPGA 高級(jí)設(shè)計(jì):時(shí)序分析和收斂

    今天給大俠帶來FPGA 高級(jí)設(shè)計(jì):時(shí)序分析和收斂,話不多說,上貨。 這里超鏈接一篇之前的STA的文章,僅供各位大俠參考。 FPGA STA(靜態(tài)時(shí)序分析) 什么是靜態(tài)
    發(fā)表于 06-17 17:07

    STM32F4 Cube配置ADC時(shí)選擇轉(zhuǎn)換觸發(fā)通道的選項(xiàng)中為什么沒有EXTI11的選項(xiàng)?

    STM32F4 Cube 配置ADC時(shí)選擇轉(zhuǎn)換觸發(fā)通道的選項(xiàng)中為什么沒有EXTI 11的選項(xiàng),而在庫中有宏定義”ADC_EXTERNAL
    發(fā)表于 05-13 07:01

    FPGA設(shè)計(jì)中SPI的參數(shù)化結(jié)構(gòu)設(shè)計(jì)方法

    為了避免每次SPI驅(qū)動(dòng)重寫,直接參數(shù)化,盡量一勞永逸。SPI master有啥用呢,你發(fā)現(xiàn)各種外圍芯片的配置一般都是通過SPI配置的,只不過
    發(fā)表于 04-02 10:01 ?880次閱讀
    FPGA設(shè)計(jì)中<b class='flag-5'>SPI</b>的參數(shù)化結(jié)構(gòu)設(shè)計(jì)方法

    STM32H7的Octo-SPI或者Quad-SPI能否支持讀取ADC的數(shù)據(jù)?

    ADC使用的AD7380.2通道4M的同步ADCSPI接口需要使用2個(gè)數(shù)據(jù)接收引腳 和一個(gè)數(shù)據(jù)輸出引腳。等于是三根數(shù)據(jù)。 普通的
    發(fā)表于 04-01 06:10

    STM32F030F4使用HAL_SPI_Transmit發(fā)送函數(shù),執(zhí)行到數(shù)據(jù)寫入DR時(shí)就進(jìn)硬件錯(cuò)誤中斷怎么解決?

    大家好,我最近用STM32F030F4SPI驅(qū)動(dòng)一塊3.5寸LCD,是三的,LCD要求時(shí)序如下 于是我配置
    發(fā)表于 03-28 07:11