本篇將以德州儀器(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ù);
首先介紹該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í)序裕量。
-
芯片
+關(guān)注
關(guān)注
455文章
50851瀏覽量
424001 -
adc
+關(guān)注
關(guān)注
98文章
6501瀏覽量
544776 -
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)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論