在檢測技術與應用、DCS的I/O板卡以及信號傳輸?shù)仍S多工業(yè)生產(chǎn)過程中都需要將數(shù)據(jù)傳輸?shù)接嬎銠C,這一過程必須先進行A/D轉換。目前A/D轉換芯片種類非常多,有的價格高且設計復雜,有的轉換精度低滿足不了要求。為此,挑選了高精度16位A/D轉換芯片AD7705,該芯片轉換精度高、價格低,滿足多種應用。本文設計了以單片機ATmega16為控制核心,以AD7705為前端采集芯片,以CPLD芯片EPM3064為邏輯開關陣列的32通道模擬量采集系統(tǒng)。給出了相應的硬件電路、驅動程序以及應用軟件,指出了AD7705在實際應用中應當注意的一些問題。
1.A/D轉換芯片AD7705
AD7705具有兩個模擬輸入通道,利用Σ-Δ轉換技術實現(xiàn)了16位無丟失代碼性能。模擬調(diào)制器具有增益可編程功能,片內(nèi)設有數(shù)字濾波器、處理調(diào)制器的輸出信號,通過片內(nèi)控制器可調(diào)節(jié)濾波器的截止點和輸出更新速率。是用于智能系統(tǒng)、微控制器系統(tǒng)和DSP系統(tǒng)的理想產(chǎn)品,其串行接口可配置為3線方式。增益值、信號極性以及更新速率的選擇都可通過串行接口由軟件來設置。該器件還包括自校準和系統(tǒng)校準功能,以消除器件本身或系統(tǒng)的增益和偏移誤差。
ATmega16ATmega16是Atmel公司生產(chǎn)的8位嵌入式單片機,它是基于增強的AVRRISC結構的低功耗8位CMOS微控制器。特點為:16K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時讀寫的能力,即RWW),512字節(jié)EEPROM,1K字SRAM,32個通用I/O口線,32個通用工作寄存器,用于邊界掃描的JTAG接口,支持片內(nèi)調(diào)試與編程,3個具有比較模式的靈活的定時器/計數(shù)器(T/C),片內(nèi)/外中斷,1個可編程串行USART,1個SPI串行端口等,硬件資源非常豐富。
3.采集系統(tǒng)的設計
采集系統(tǒng)的硬件構成在功能上主要包括線性電源電路、AD7705外圍電路、ATmega16外圍電路和通道選擇電路。
3.1線性電源電路
本電路(圖1)電壓為+5V和+3.3V。使用電源芯片78L05、Z33等,D1、D2為5V穩(wěn)壓管,D8、D9為3.3V穩(wěn)壓管。C14、C17用于濾除高頻雜波,C15、C16用于保證輸出電壓平坦,外部供電為+12V。
圖1 線性電源電路
3.2AD7705外圍電路
AD7705的外圍電路如圖2所示。時鐘頻率設計為2.4576MHz,晶振Y1兩端需各接一20pF電容到地以保證時鐘頻率的精準。電源電壓VDD為+5V。AN1+與AN1-,AN2+與AN2-分別接模擬輸入信號。芯片REF192為AD公司生產(chǎn)的精密基準電壓源,為AD7705提供2.5V基準電壓,其輸出引腳6到地之間需并接0.1μF和10μF的電容以保證其輸出電壓平坦。
圖2 AD7705外圍電路原理圖
AD7705與單片機Atmega16接口電路為片選端CS—PD4、復位端RESET—PD5、邏輯輸出端DRRY—PB3、串行數(shù)據(jù)輸入端DIN—PB5、串行數(shù)據(jù)輸出端DOUT—PB6和串行時鐘SCLK—PB7。
3.3ATmega16外圍電路
ATmega16(圖3)的供電電壓VCC為+5V,時鐘頻率8MHz。PB5為串行外設接口SPI的主機輸出端,PB6為主機輸入端,PB7為SPI時鐘。PB3、PD4、PD5用作普通的數(shù)字接口。AVCC為模擬電源,需經(jīng)LC網(wǎng)絡接至數(shù)字電源VCC,L1為10μH,C11為100nF,LC網(wǎng)絡用于抑制噪聲、提高抗干擾能力。該電路控制AD7705以完成數(shù)據(jù)的采集,主要是利用其SPI接口對AD7705進行各種初始配置,控制A/D轉換并讀取轉換結果。
圖3 ATmega16外圍電路原理圖
3.4通道選擇電路
該電路在ATmega16的程序控制下工作,AT-mega16的控制信號通過PA4~PA0以完成32個通道模擬的模擬量采集。以高度集成CPLD芯片EPM3064為解碼電路,制作一個5/32解碼器,用VHDL語言編寫而成,其供電電壓3.3V,輸入信號PA4~PA0和PD7,輸出信號為TD0~TD31。EPM3064是基于EEPROM的CMOS工藝CPLD,其有64個宏單元,100管腳TQFP封裝有66個用戶I/O管腳,可滿足許多應用需要。
PD7作為5/32解碼器的使能信號,用于選擇采集通道0~31。DS2Y-S為信號繼電器,其引腳8、9接AD7705模擬信號1的AN1+與AN1-,引腳4、13接通道0的模擬輸入信號AI0+與AI0-。其導通斷開通過PNP三極管Q1驅動,控制信號為TD0,二極管D1起續(xù)流作用,保護電路正常工作同時具有抑制尖峰干擾作用。通道1~31的選擇電路類似,同理設計模擬信號輸入AI1~AI31的選擇電路。PD7作為使能信號,低電平有效,總共需要32片信號繼電器,本質(zhì)上通道選擇電路(圖4)是由CPLD芯片EPM3064和信號繼電器構建的邏輯陣列開關。
圖4 通道選擇電路
4.軟件設計
軟件設計包括3個子模塊:SPI初始化模塊、AD7705驅動模塊、定時器模塊。工作過程:首先通過ATmega16的SPI接口驅動AD7705,完成AD7705通道設置、時鐘設置、更新速率以及校準模式等,然后啟動ATmega16的定時器,在定時器中斷函數(shù)中查詢AD7705的狀態(tài),如轉換完成則讀取轉換結果,否則繼續(xù)等待直到轉換完成,如此不斷讀出所需的轉換結果。程序流程如圖5所示。
圖5 程序流程框圖
4.1SPI初始化模塊
對ATmega16的SPI接口進行配置:
void spi_init(void)
{
DDRB|=(1《
DDRB&=~(1《
PORTB|=(1《
SPCR=(1《
}
4.2AD7705驅動模塊
該模塊程序完成對AD7705的配置任務,需要注意的是讀寫寄存器之前必須先選擇要操作的寄存器。
向AD7705寫入1字節(jié)函數(shù),入口參數(shù)data為需寫入的字節(jié)數(shù)據(jù):
voidwr_7705(unsignedchardata)
{
SPDR=data;//啟動數(shù)據(jù)傳輸
while(?。⊿PSR&(1《《SPIF)))//等待傳輸
結束;
}
讀出AD7705數(shù)據(jù)函數(shù),返回值為讀出的2字節(jié)數(shù)據(jù):
unsignedintrd_7705(void)
{
unsignedinttemp;//定義臨時變量
wr_7705(0x38);//選擇讀數(shù)據(jù)寄存器,1通道
SPDR=1;//啟動數(shù)據(jù)傳輸
while(?。⊿PSR&(1《《SPIF)))//等待傳輸結
束
{
;
}
temp=SPDR《《8;//讀取高字節(jié)
SPDR=1;//啟動數(shù)據(jù)傳輸
while(?。⊿PSR&(1《《SPIF)))//等待傳輸結束
{
;
}
temp|=SPDR;//讀取低字節(jié)
return(temp);
}
AD7705初始化函數(shù):
voidinit_7705(void)
{
wr_7705(0x20);//選擇時鐘寄存器,下一操作是寫
wr_7705(0x00);//20Hz的更新速率
wr_7705(0x10);//選擇設置寄存器,下一操作是寫
wr_7705(0x44);//自校準模式,增益為1,單極性
}
4.3定時器模塊
利用定時器1按一定的時間間隔讀取AD7705的轉換結果。讀取數(shù)據(jù)之前必須確定數(shù)據(jù)寄存器的狀態(tài),有兩種不同的方式:第1種是查詢DRDY引腳,如果處于低電平,表示已經(jīng)轉換完成,可以讀取;第2種是查詢通信寄存器中的DRDY位,如果是0表示可以讀取數(shù)據(jù):
定時器1初始化函數(shù):
定時器1溢出中斷函數(shù):
結語
本文總結了基于AD7705的32通道模擬量采集系統(tǒng)設計,經(jīng)過試驗證明,該采集系統(tǒng)不僅減少儀表設計調(diào)試時間,而且結合測量儀器可以構建靈活的測量系統(tǒng),節(jié)約儀器購置成本,提高工作效率。
責任編輯人:CC
-
模擬量
+關注
關注
5文章
500瀏覽量
25676 -
AD7705
+關注
關注
2文章
39瀏覽量
20586
發(fā)布評論請先 登錄
相關推薦
使用AD7705進行熱電偶采集,使用兩個通道對兩個熱電偶進行采集出現(xiàn)AD7705無法讀出的情況怎么處理?
請問AD7705切換通道是否需要重新設置寄存器
AD7705雙通道單個熱電偶斷線時無法讀出
AD7705采樣通道2沒有數(shù)據(jù)輸出
AD7705應用經(jīng)驗總結
AD7705的基本特性是什么?怎樣對AD7705進行校準?
模擬量輸入輸出緩沖的問題
基于AD7705的安全帽質(zhì)量檢測
![基于<b class='flag-5'>AD7705</b>的安全帽質(zhì)量檢測](https://file.elecfans.com/web2/M00/48/EF/pYYBAGKhtC6AP8kaAAAN7fd91iQ251.jpg)
AD7705高精度AD采集的兩通道STM32程序免費下載
![<b class='flag-5'>AD7705</b>高精度AD<b class='flag-5'>采集</b>的兩<b class='flag-5'>通道</b>STM32程序免費下載](https://file.elecfans.com/web1/M00/85/2A/pIYBAFxiI3qAEjfEAAGwvN48KK4384.png)
基于AD7705的32通道模擬量采集系統(tǒng)設計資料下載
![基于<b class='flag-5'>AD7705</b>的32<b class='flag-5'>通道</b><b class='flag-5'>模擬量</b><b class='flag-5'>采集</b><b class='flag-5'>系統(tǒng)</b>設計資料下載](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論