楊 侃,金肖依
(北方電子研究院集團(tuán)有限公司 微電子部,江蘇 蘇州 215163)
基于ADS7230與ADSP21363的SPI通信接口電路設(shè)計(jì)
楊 侃,金肖依
(北方電子研究院集團(tuán)有限公司 微電子部,江蘇 蘇州 215163)
針對(duì)數(shù)字信號(hào)處理系統(tǒng)中的模擬信號(hào)轉(zhuǎn)換的要求和系統(tǒng)連線簡(jiǎn)單、結(jié)構(gòu)緊湊的考慮,采用串行接口的A/D芯片來完成模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。根據(jù)TI公司的雙通道、低功耗、高精度A/D轉(zhuǎn)換器ADS7230的性能特點(diǎn),以及AD公司的SHARC系列ADSP21363內(nèi)設(shè)接口特點(diǎn),設(shè)計(jì)了基于ADSP21363與ADS7230的 SPI通信接口電路,并給出了接口的硬件電路圖,SPI口串口通信軟件程序流程圖,以及部分驅(qū)動(dòng)程序代碼。實(shí)際應(yīng)用結(jié)果表明,該設(shè)計(jì)合理可行。
ADS7230;模數(shù)轉(zhuǎn)換;SPI;ADSP21363
數(shù)字信號(hào)處理器(DSP)的應(yīng)用廣泛,數(shù)據(jù)采集與信號(hào)處理是DSP系統(tǒng)應(yīng)用中不可分割的2個(gè)部分。而自然界的信號(hào)多以模擬信號(hào)的形式存在,因此如果進(jìn)行數(shù)字信號(hào)處理,則須進(jìn)行模數(shù)信號(hào)的轉(zhuǎn)換。在DSP與A/D芯片連接時(shí)通常采用串口和并口等2種接口形式,并口接口的優(yōu)點(diǎn)在于資源豐富,但是使用過程中需要加入譯碼電路,這樣不僅連線復(fù)雜,增加了布線的面積,而且一定程度上或?qū)⒁敫蓴_和不穩(wěn)定的因素;串行接口的優(yōu)勢(shì)在于連線簡(jiǎn)單、布線少,相對(duì)并口接口而言更穩(wěn)定,但是硬件資源較少。基于連線簡(jiǎn)單、結(jié)構(gòu)更加緊湊方面的考慮,一些信號(hào)處理系統(tǒng)通常會(huì)采用串行接口的A/D芯片[1]。
1.1 模數(shù)轉(zhuǎn)換芯片ADS7230 的特點(diǎn)和工作原理
1.1.1 模數(shù)轉(zhuǎn)換芯片ADS7230的特點(diǎn)
TI公司的ADS7230是一款高速、低功耗、高性能的電容逐次逼近型SPI接口A/D轉(zhuǎn)換器,采樣率高達(dá)1 MHz??梢赃x擇多種電源管理模式,并支持菊花鏈接口模式和軟件配置方式,工作電壓為2.7~5.5 V,具有極好的直流和交流特性[2]。該器件有16腳QFN和TSSOP等2種外形封裝。為方便布線板級(jí),本文選取TTSOP封裝形式。
1.1.2 模數(shù)轉(zhuǎn)換芯片ADS7230工作原理
ADS7230擁有一個(gè)2至1輸入多路復(fù)用器,使得每個(gè)ADC都能將2個(gè)通道進(jìn)行數(shù)字化,減少了組件數(shù),縮小了板級(jí)空間。ADS7230必須采用外部基準(zhǔn)源,外部參考電壓為0.3~5 V,內(nèi)部自帶采樣保持功能。
ADS7230在數(shù)據(jù)轉(zhuǎn)換時(shí)采用內(nèi)部自帶的時(shí)鐘信號(hào)或通過SCLK管腳輸入外部的串行時(shí)鐘信號(hào)。ADS7230自帶的一個(gè)振蕩器作為內(nèi)部時(shí)鐘,用于控制模數(shù)轉(zhuǎn)換的速度,時(shí)鐘的最小頻率為21 MHz。該振蕩器一直處于工作狀態(tài),除非芯片處于低功耗狀態(tài),或者使用可編程的外部時(shí)鐘源SCLK作為轉(zhuǎn)換時(shí)鐘[3]。采用內(nèi)部時(shí)鐘時(shí),最小采樣時(shí)間需要3個(gè)時(shí)鐘周期,轉(zhuǎn)換時(shí)間需要12個(gè)時(shí)鐘周期。當(dāng)模數(shù)轉(zhuǎn)換的時(shí)鐘源采用外部的串行時(shí)鐘SCLK信號(hào)時(shí),使整個(gè)電路達(dá)到系統(tǒng)同步的效果。使用外部時(shí)鐘信號(hào)時(shí)具體時(shí)序如圖1所示。
圖1 ADS7230外部時(shí)鐘時(shí)序圖
1.2 DSP處理器的選擇
ADI公司的SHARC系列浮點(diǎn)DSP產(chǎn)品具有運(yùn)行速度快、片內(nèi)資源豐富和接口齊全的特點(diǎn)。本電路選擇SHARC系列處理器的第3代產(chǎn)品ADSP21363做DSP處理器,其主要優(yōu)勢(shì)在于:1)時(shí)鐘頻率高達(dá)300 MHz,指令周期為3.3 ns,運(yùn)算能力為1 800 MFLOPS,采用單指令、多數(shù)據(jù)運(yùn)算方式,支持32 bit定點(diǎn)和32/40 bit浮點(diǎn)運(yùn)算;2)片上存儲(chǔ)器容量大,SRAM為2 Mbit,ROM為4 Mbit;3)片上接口豐富,數(shù)字外設(shè)接口包括2個(gè)SPI、2個(gè)UART、3個(gè)定時(shí)器和1個(gè)兩線I2C,數(shù)字應(yīng)用接口包括8個(gè)串行端口SPORT、S/PDIF TX/RX、8通道異步采樣率轉(zhuǎn)換器ASRC、4個(gè)精密時(shí)鐘發(fā)生器、16個(gè)PWM、1個(gè)TWI和32 bitSDRAM接口[2]。特有的數(shù)字應(yīng)用接口(DAI)和數(shù)字外設(shè)接口(DPI)均允許用戶將任何外設(shè)引腳功能分配到他們想要的任意一個(gè)引腳。這種靈活性顯著減少了支持特殊系統(tǒng)所需的外部引腳數(shù)量,有助于硬件設(shè)計(jì)的簡(jiǎn)化,進(jìn)一步降低成本。
1.3 ADS21363與ADS7230接口電路
ADSP21363具有2個(gè)SPI接口資源,采用串行工作方式,不僅滿足了采集的快速性要求,在硬件上也較容易實(shí)現(xiàn)。ADSP21363的SPI接口與ADS7230硬件連接如圖2所示。
圖2 ADS21363與ADS7230接口電路示意圖
ADS7230外部基準(zhǔn)采用5 V供電,數(shù)字供電范圍為1.65~5.5 V,取3.3 V工作電壓,以匹配于ADSP21363的I/O口電壓,無需電平轉(zhuǎn)換芯片[4]。ADSP21363的MOSI管腳對(duì)應(yīng)連接ADS7230的數(shù)據(jù)輸入SDI管腳,MISO管腳對(duì)應(yīng)數(shù)據(jù)輸出SDO管腳,時(shí)鐘管腳SPICLK提供ADS7230的時(shí)鐘控制管腳SCLK,DPI-P9與ADS7230片選CS控制管腳,DPI-P17與ADS7230的轉(zhuǎn)換開始標(biāo)志CONVST管腳相連。ADSP21363的EOC引腳為轉(zhuǎn)換輸出結(jié)束標(biāo)志引腳。
2.1 ADS7230串口轉(zhuǎn)換時(shí)序
ADSP21363和ADS7230都擁有各自的硬件SPI接口,因此只需按照ADS7230的SPI的讀寫時(shí)序圖編寫軟件程序。首先對(duì)ADS7230的SPI接口工作時(shí)序(見圖3)進(jìn)行分析。每一次操作循環(huán)是從FS/CS下降沿開始的,首先是通過ADSP21363的SPI的相關(guān)寄存器的設(shè)置,把其配置為從模式,接著對(duì)SPI的字長(zhǎng)、波特率和時(shí)鐘模式等進(jìn)行相應(yīng)的配置;然后通過ADSP21363的GPIO口的DPI-P9片選ADS7230,并通過GPIO口的DPI-P17啟動(dòng)ADC的轉(zhuǎn)換,當(dāng)轉(zhuǎn)換控制輸入CONVST到一個(gè)下降沿時(shí),片內(nèi)采樣保持器由采樣模式轉(zhuǎn)換為保持模式,保持模擬輸入信號(hào),并啟動(dòng)轉(zhuǎn)換過程,此時(shí)EOS信號(hào)一直保持低電平;轉(zhuǎn)換完成后,EOS信號(hào)變成高電平,CS信號(hào)置低,在ADS7230的輸出脈沖SCLK的控制下,把12位的采集數(shù)據(jù)結(jié)果送到指定的存儲(chǔ)單元。
圖3 SPI通信時(shí)序圖
2.2 軟件實(shí)現(xiàn)
采集程序在VisualDSP++5.0環(huán)境下采用C語言編程,包括系統(tǒng)初始化程序、SPI接口配置程序等。ADS7230的內(nèi)部寄存器一共16位,分為兩部分:4 bit的(CMR)命令寄存器和12 bit(CFR)配置寄存器。本電路采用查詢方式讀取SPI口數(shù)據(jù)。圖4為SPI口串口通信程序流程圖。
圖4 SPI口串口通信程序流程圖
為了實(shí)現(xiàn)SPI接口通信,編寫了兩者接口的驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序功能主要由以下2個(gè)函數(shù)完成。
1)ADSP21363SPI的初始化函數(shù)Init_SPI( )。
Init_SPI( )
{
SRU( HIGH, PBEN17_I );
SRU( HIGH, DAI_PB17_I );
SRU( HIGH, PBEN09_I );
SRU( HIGH, DAI_PB09_I );
ADS7230_SPI_Initial(10, WL16);//初始化ADSP21363的SPI口,頻率10MHz,字長(zhǎng)16bit
SRU(LOW,DAI_PB09_I);
temp = SPI_RW(0xeffc, ADSP21363_SPI);
delayms(1000);
SRU(LOW,DAI_PB09_I);
temp = SPI_RW(0xe79d, ADSP21363_SPI);
dat = SPI_RW(ADC_IN1, ADSP21363_SPI);
}
2)讀數(shù)據(jù)函數(shù)。
unsigned int SPI_RW(unsigned int cmd, unsigned int spi_port)
{
unsigned int temp;
asm("r0 = %0;"::"d"(cmd));
if(spi_port == ADSP21363_SPI)
{
asm("dm(TXSPI) = r0;");
while((*pSPISTAT & RXS ) != RXS);
}
return temp; //返回SPI數(shù)據(jù)
}
ADS7230的輸入模擬量Vin=2.5 V時(shí)的串口通信記錄圖如圖5所示。圖5中,通道CH1為SPI的輸出時(shí)鐘SCLK,通道CH2為ADS7230的SDO引腳輸出的12位數(shù)據(jù)。
圖5 串口通信記錄圖
本文通過對(duì)TI公司的高速、低功耗12位A/D芯片ADS7230與ADI公司的SHARC系列ADSP21363的研究,設(shè)計(jì)了基于兩者SPI高速串口通信接口電路,實(shí)現(xiàn)了硬件電路和軟件設(shè)計(jì)。該嵌入式數(shù)據(jù)采集電路設(shè)計(jì)簡(jiǎn)潔,程序采用C語言在ADSP集成開發(fā)環(huán)境VisualDSP++5.0下編寫、調(diào)試完成。該A/D芯片的字長(zhǎng)和波特率配置靈活,傳輸速度快,實(shí)現(xiàn)了與ADSP的SPI接口的串口通信,滿足了嵌入式數(shù)據(jù)采集電路的高速數(shù)據(jù)傳輸要求。
[1] 張揚(yáng). 集成開關(guān)電源的數(shù)字功放模塊的設(shè)計(jì)[D].成都:電子科技大學(xué),2009.
[2] Datasheet for ADS7230.Texas Instrument,Inc.2009
[3] 康華光,陳大欽.電子技術(shù)基礎(chǔ)模擬部分[M].4版.北京:高等教育出版社,1999.
[4] SHARC Processors ADSP-21361/ ADSP-21362/ ADSP-21363/ ADSP-21364.Analog Devices,Inc.2009
責(zé)任編輯 馬彤
SPI Communication Interface Circuit Design based on ADS7230 and ADSP21363
YANG Kan, JIN Xiaoyi
(Microelectronics Department, North Electronics Research Institute Group Co., Suzhou 215163, China)
Mainly introduce ways of adopting serial interface of A/D chip to convert the analog signal into digital signal. On the study of performance characteristic of A/D converter ADS7230, it is characterized as dual channel, low power consumption, and high precision. The SPI communication interface circuit is designed based on ADS7230 and ADSP21363. Display the hardware circuit diagram, SPI serial communication software program flow chart, and parts of drive codes. The actual application shows that the design is reasonable.
ADS7230, A/D converter, SPI, ADSP21363
TP 334
A
楊侃(1979-),男,高級(jí)工程師,碩士,主要從事數(shù)?;旌霞杉夹g(shù)和傳感器應(yīng)用技術(shù)等方面的研究。
2016-09-25