上篇以德州儀器(TI)的高速ADC芯片——ads52j90為例,介紹完了4線SPI配置時(shí)序。本篇將以Analog Device(ADI)的多通道高速ADC芯片AD9249為例,介紹3線SPI讀寫配置時(shí)序。另外,大家如果想詳細(xì)了解Analog Device(ADI)公司的關(guān)于SPI的所有內(nèi)容,推薦大家在其官網(wǎng)閱讀AN-877。

AD9249的SPI控制模塊包含4根信號線,即CSB1、CSB2、SDIO以及SCLK。但CSB1、CSB2可以一起由CSB來控制,實(shí)際上就是3線SPI。由于3線SPI數(shù)據(jù)的讀、寫操作在同一根信號線SDIO上實(shí)現(xiàn),因此其配置方式與4線的配置稍微有些不一樣。下面我們將詳細(xì)介紹讀寫操作:
CSB:SPI控制讀寫使能信號;
SDIO:SPI的數(shù)據(jù)、地址讀寫端口;
如下圖1所示為該ADC的SPI讀、寫配置時(shí)序圖。其中CSB和SCLK的操作和上篇介紹的4線SPI配置相同,圖上的時(shí)序參數(shù)在其datasheet上也有明確的說明,這里就不介紹了。
3線SPI與4線SPI配置的主要不同之處在傳輸?shù)臄?shù)據(jù)格式以及I/O轉(zhuǎn)換上。其讀寫數(shù)據(jù)格式由控制命令+地址+數(shù)據(jù)組成,而上篇提到的4線配置只有地址+數(shù)據(jù)。

圖1:SPI讀、寫時(shí)序圖
其中R/~W為高電平時(shí),表示讀操作,低電平表示寫操作。W1,W0表示要讀寫的數(shù)據(jù)字節(jié)數(shù),一般都設(shè)為0,代表每次讀寫一個(gè)寄存器地址的數(shù)據(jù)。A12~A0表示13bit的寄存器地址。D7~D0表示要讀寫的8bit寄存器數(shù)據(jù)。
因此我們在SPI寫操作時(shí),只需寫入1bit 1+ 2bit 0 +13bit地址+ 8bit數(shù)據(jù)即可。其配置的方法和上篇的4線SPI寫操作相同。但當(dāng)我們在執(zhí)行SPI讀操作時(shí),就需要注意了:
首先需寫入1bit 0+ 2bit 0 +13bit地址,當(dāng)最后1bit的地址A0在SCLK的上升沿寫入SDIO后,SDIO會由輸入口變?yōu)檩敵隹?,然后在接下來?個(gè)SCLK下降沿,SDIO會輸出寄存器的8bit數(shù)據(jù)。因此,在ADC的SDIO由輸入變?yōu)檩敵隹跁r(shí),F(xiàn)PGA端的SDIO必須同步由輸出口變?yōu)檩斎肟?,并在SCLK上升沿接收這8bit數(shù)據(jù)最穩(wěn)定,F(xiàn)PGA端口的這種I/O轉(zhuǎn)換可以通過其內(nèi)置的三態(tài)門來實(shí)現(xiàn)。
如圖2所示為SDIO由輸入口變?yōu)檩敵隹诘臅r(shí)序控制圖,tEN_SDIO為轉(zhuǎn)換時(shí)間,其最小時(shí)間為10ns,參考零點(diǎn)為SCLK下降沿。

圖2:SDIO輸入轉(zhuǎn)換為輸出的時(shí)序圖
如圖3所示為SDIO由輸出口變?yōu)檩斎肟诘臅r(shí)序控制圖,tDIS_SDIO為轉(zhuǎn)換時(shí)間,其最小時(shí)間也為10ns,參考零點(diǎn)為SCLK上升沿。

圖3:SDIO輸出轉(zhuǎn)換為輸入的時(shí)序圖
3線SPI的讀寫時(shí)序分析就介紹到這里了,同樣強(qiáng)調(diào)幾個(gè)關(guān)鍵點(diǎn):
關(guān)鍵點(diǎn)1:CSB在讀寫操作時(shí),必須拉低。讀寫完成之后,必須拉高。
關(guān)鍵點(diǎn)2:SDIO作為輸入口時(shí),數(shù)據(jù)每次必須在SCLK的上升沿寫入SPI。
關(guān)鍵點(diǎn)3:SDIO作為輸出口時(shí),寄存器數(shù)據(jù)每次在SCLK的下降沿輸出SPI,F(xiàn)PGA端在SCLK的上升沿處捕獲數(shù)據(jù)最穩(wěn)定。
關(guān)鍵點(diǎn)4:一定要滿足datasheet給出的SPI的時(shí)序參數(shù),并在代碼實(shí)現(xiàn)時(shí)要留有適當(dāng)?shù)臅r(shí)序裕量。
關(guān)鍵點(diǎn)5:注意FPGA端的SDIO口的三態(tài)控制邏輯,以便正確讀寫ADC寄存器。
-
adc
+關(guān)注
關(guān)注
100文章
7392瀏覽量
553801 -
控制模塊
+關(guān)注
關(guān)注
2文章
144瀏覽量
19653 -
SPI
+關(guān)注
關(guān)注
17文章
1866瀏覽量
99810
原文標(biāo)題:FPGA通過SPI對ADC配置簡介(三)---3線SPI配置時(shí)序分析
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
請問如何讓SPI額外發(fā)出一個(gè)時(shí)鐘?
如何讓SPI額外發(fā)出一個(gè)時(shí)鐘?
【CW32模塊使用】0.96寸SPI單色屏
ads1148 SPI寫寄存器錯(cuò)誤的原因?
lmp90098無法使用SPI接口讀取數(shù)據(jù)怎么解決?
ADS1118 spi通信時(shí)序的問題誰來解答一下
AN-1267: 使用ADSP-CM408F ADC控制器的電機(jī)控制反饋采樣時(shí)序
AN-878: 高速ADC SPI控制軟件[中文版]
ADC108s022 DIN是在SCLK上升沿向ADC寫參數(shù),而DOUT在SCLK的下降沿從ADC中讀取轉(zhuǎn)換后的數(shù)據(jù)?
DAC7568按數(shù)據(jù)手冊上要求的SPI時(shí)序不能配置,內(nèi)部參考是否也沒有輸出,為什么?
使用STM32F103的SPI3與ADS1248通訊,讀取的ADC值波動很大,為什么?
KeyStone架構(gòu)串行外設(shè)接口(SPI)手冊
AMC1304M25通信接口是SCLK和DOUT兩根信號線,將這兩根線連接至MCU的SPI_CLK和SPI_DOUT引腳上,是否可以獲取ADC轉(zhuǎn)換值嗎?
ADC3xxxEVM和ADC3xJxxEVM用戶指南

ADC的3線SPI配置時(shí)序
評論