本篇將以德州儀器(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讀寫(xiě)的使能信號(hào);
SDIN:FPGA寫(xiě)入ADC的配置數(shù)據(jù)(寄存器地址和對(duì)應(yīng)地址的值);
SDOUT:ADC對(duì)應(yīng)地址輸出的配置寄存器數(shù)據(jù);
首先介紹該ADC的SPI的寫(xiě)時(shí)序,datasheet給出的時(shí)序圖如圖1所示:我們首先大致看一下寫(xiě)時(shí)序圖,能夠了解到對(duì)于SDIN來(lái)說(shuō),需要先寫(xiě)入A7~A0的8bit的地址,接下來(lái)寫(xiě)入該地址下的16bit的寄存器數(shù)值D15~D0,也就是說(shuō)每進(jìn)行一次寫(xiě)操作需要不間斷的寫(xiě)入24bit的數(shù)據(jù)。對(duì)于SEN來(lái)說(shuō),在進(jìn)行寫(xiě)操作時(shí),其一直保持低電平,寫(xiě)之前和寫(xiě)完后都保持高電平。對(duì)于SCLK來(lái)說(shuō),其上升沿每次采集每1bit SDIN數(shù)據(jù)的中心位置,共需要采集24次,才能完成這24bit SDIN數(shù)據(jù)的寫(xiě)入。
圖1:SPI寫(xiě)時(shí)序圖
上面三點(diǎn)就是我們初步看這個(gè)時(shí)序圖所得到的結(jié)論。對(duì)于該ADC,按照這種方式進(jìn)行寫(xiě)操作就不會(huì)有問(wèn)題。實(shí)際上所有ADC的SPI寫(xiě)操作都有類似于上面介紹的共同準(zhǔn)則,這里歸納如下:
1,無(wú)論SPI進(jìn)行讀還是寫(xiě)操作,SEN必須拉低,否則SPI不工作(既不讀也不寫(xiě)),讀、寫(xiě)完成之后SEN必須拉高;
2,SDIN的數(shù)據(jù)每次在SCLK的上升沿寫(xiě)入SPI;
3,SDIN的數(shù)據(jù)組成一定是先寫(xiě)入配置寄存器地址,再連續(xù)寫(xiě)入配置寄存器數(shù)值;
圖2:SPI時(shí)序要求
另外,我們看到時(shí)序圖上有許多時(shí)間參數(shù),我們?cè)趯?xiě)代碼時(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的寫(xiě)操作就不會(huì)有問(wèn)題了。
現(xiàn)在我們介紹該ADC的SPI讀時(shí)序,如圖3所示。讀操作的主要目的是監(jiān)測(cè)ADC內(nèi)部寄存器狀態(tài),從而判斷ADC的配置狀態(tài)是否符合用戶的需求。從圖上我們可以看到,SPI的讀操作可以分解為兩個(gè)部分:第一個(gè)部分是先寫(xiě)入A7~A0 8bit的寄存器地址到SDIN,然后SDOUT輸出對(duì)應(yīng)地址的16bit的寄存器數(shù)值。
這里重點(diǎn)強(qiáng)調(diào)一下:理論上來(lái)說(shuō),在上升沿鎖存寫(xiě)入的地址最后1bit后,在接下來(lái)的每次SCLK下降沿,SDOUT輸出1bit寄存器值,直到16bit寄存器數(shù)值完全輸出。但實(shí)際上每次SCLK下降沿輸出的數(shù)據(jù)只有經(jīng)過(guò)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的讀寫(xiě)時(shí)序分析就到這里了,再次強(qiáng)調(diào)幾個(gè)關(guān)鍵點(diǎn):
關(guān)鍵點(diǎn)1:SEN在讀寫(xiě)操作時(shí),必須拉低。讀寫(xiě)完成之后,必須拉高。
關(guān)鍵點(diǎn)2:SDIN的數(shù)據(jù)每次必須在SCLK的上升沿寫(xiě)入SPI。對(duì)應(yīng)的數(shù)據(jù)格式一定是寄存器地址+要寫(xiě)入的寄存器數(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文章
50721瀏覽量
423172 -
adc
+關(guān)注
關(guān)注
98文章
6496瀏覽量
544474 -
SPI
+關(guān)注
關(guān)注
17文章
1706瀏覽量
91512
原文標(biāo)題:FPGA通過(guò)SPI對(duì)ADC配置簡(jiǎn)介(二)--4線SPI配置時(shí)序分析
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論