高速A/D轉(zhuǎn)換器AD7654與單片機(jī)接口電路設(shè)計
關(guān)鍵詞:A/D轉(zhuǎn)換器;AD7654;接口;串行模式;串行外設(shè)接口;ADuC848
1 引言
模/數(shù)轉(zhuǎn)換是現(xiàn)代測控電路中非常重要的環(huán)節(jié),它有并行和串行兩種數(shù)據(jù)輸出形式。目前,模/數(shù)轉(zhuǎn)換器ADC已被做成大規(guī)模集成電路,并有多種型號和種類可供選擇。本文介紹了AD7654的性能特點,并設(shè)計了AD7654與單片機(jī)ADuC848的接口電路,同時給出了軟件流程和相應(yīng)的匯編源程序。
2 AD7654的性能特點和工作原理
AD7654是ADI公司推出的一種低功耗、四通道、電荷再分布式高速A/D轉(zhuǎn)換器,該A/D轉(zhuǎn)換器的主要特點是:16位分辨率且無漏失碼;O V~5 V模擬輸入范圍;SPI/QSPI/Microwire/DSP兼容;兩個允許同步采樣的低噪音、高帶寬跟蹤/保持放大器;功耗典型值為120 mW;可提供串行和并行兩種輸出接口,給予用戶靈活的選擇。串行A/D轉(zhuǎn)換的速率很高,并且具有體積小、功耗低、占用單片機(jī)口線少的優(yōu)點,文中采用串行模式設(shè)計電路,有關(guān)引腳說明如下:
A0:轉(zhuǎn)換通道選擇;
A/B:高電平時,先輸出A通道轉(zhuǎn)換數(shù)據(jù)再輸出B通道轉(zhuǎn)換數(shù)據(jù),低電平反之;
SER/PAR:串行/并行模式選擇。低電平為并行模式,高電平為串行模式;
EXT/INT:高電平時選擇外部時鐘,低電平時選擇內(nèi)部時鐘;
SDOUT:轉(zhuǎn)換數(shù)據(jù)輸出位;
SCLK:串行數(shù)據(jù)時鐘輸入或輸出(取決于EXT/INT的邏輯狀態(tài));
CNVST:開始轉(zhuǎn)換。CNVST的下降沿使內(nèi)部采樣保持進(jìn)入保持狀態(tài)并開始轉(zhuǎn)換;
BUSY:正在轉(zhuǎn)換標(biāo)志;
EOC:轉(zhuǎn)換結(jié)束標(biāo)志。
AD7654的轉(zhuǎn)換過程由CNVST下降沿啟動,轉(zhuǎn)換啟動與CS和RD信號狀態(tài)無關(guān),A0引腳控制轉(zhuǎn)換通道的選擇。在轉(zhuǎn)換結(jié)束之前,即使掉電轉(zhuǎn)換也不會重新開始或終止。轉(zhuǎn)換進(jìn)行過程中,BUSY變?yōu)楦唠娖剑珽OC也為高電平,EOC在每一個通道轉(zhuǎn)換結(jié)束后變?yōu)榈碗娖剑鳥USY線在兩個通道轉(zhuǎn)換全部結(jié)束后才變?yōu)榈碗娖?,轉(zhuǎn)換的32位數(shù)據(jù)可以從SDOUT上讀出。轉(zhuǎn)換時序圖如圖1所示。AD7654有串行和并行兩種接口方式,每種接口方式又有主從兩種模式,本文介紹其串行接口下從模式的硬件和軟件設(shè)計。
3 AD7654與單片機(jī)的接口電路設(shè)計
在本系統(tǒng)中,單片機(jī)選用ADI的ADuC848,具體的接口電路如圖2所示。筆者設(shè)計AD7654工作在串行從模式下,因此其數(shù)據(jù)的轉(zhuǎn)換和讀取都需要微處理器ADuC848的控制,所需的高精度2.5 V基準(zhǔn)電壓由AD780提供,AD7654上所有的電源和地之間都需連接去耦電容器。因為ADuC848的P1口只能作為輸入口,而P0口被USB接口器件占用,所以AD7654的控制引腳只能連接到單片機(jī)P2和P3口上的部分端口。在實驗電路中,AD7654的SER/PAR和EXT/INT引腳直接由硬件置高電平,INVS-CLK由硬件置低電平,使ADC以串口方式工作,同時使數(shù)據(jù)輸出由外部時鐘控制。由于AD7654是兩個通道同時采樣,所以需要給A/B置位以控制數(shù)據(jù)的輸出順序。ADuC848的P2.5引腳接至AD7654的CNVST,這樣只需要通過單片機(jī)ADuC848控制使P2.5產(chǎn)生一個寬度大于5 ns的負(fù)脈沖,該負(fù)脈沖的下降沿就可以啟動ADC開始轉(zhuǎn)換,轉(zhuǎn)換的時間約為2μs。當(dāng)轉(zhuǎn)換結(jié)束時,BUSY引腳上的信號就會變成低電平,從而通知單片機(jī)可以開始讀取轉(zhuǎn)換的數(shù)據(jù),由于實際AD7654轉(zhuǎn)換速度很快,因此BUSY線可以不用,啟動轉(zhuǎn)換后可以直接讀取數(shù)據(jù)。在單片機(jī)讀取數(shù)據(jù)前,需要通過P2.6和P3.4口給讀選通RD和片選CS置零,以使SDOUT上的數(shù)據(jù)有效,然后單片機(jī)通過P2.0(SCLK)引腳向AD7654發(fā)送8個時鐘脈沖,與此同時單片機(jī)就可以通過P2.2口從SDOUT上讀取8位轉(zhuǎn)換的數(shù)據(jù)。串行從模式下讀數(shù)據(jù)時序圖如圖3所示。
該系統(tǒng)中微處理器ADuC848與A/D轉(zhuǎn)換器AD7654之間的數(shù)據(jù)傳送采用SPI(串行外設(shè)接口)方式。SCLOCK是主機(jī)的時鐘線,為MISO數(shù)據(jù)的發(fā)送和接收提供同步時鐘信號。每一位數(shù)據(jù)的傳輸都需要1次時鐘作用,因而發(fā)送或接收1個字節(jié)的數(shù)據(jù)需要8個時鐘的作用。SPI有2個相關(guān)的寄存器:即SPICON和SPIDAT,其中SPICON包含各種標(biāo)志位、使能位、方式位及時鐘位;另一個SPI寄存器是SPIDAT,對這一寄存器的寫操作會使SCLOCK產(chǎn)生8個時鐘脈沖,從高位開始一位一位地發(fā)送數(shù)據(jù)。如果寫操作發(fā)生在其他數(shù)據(jù)正在傳輸?shù)倪^程中,那么WCOL將置位。如果寫操作進(jìn)行時沒有其他數(shù)據(jù)在傳輸,輸入字節(jié)保留在移位寄存器中,此時ISPI自動置位(如果有中斷設(shè)置,則產(chǎn)生中斷),移位寄存器的數(shù)據(jù)將被鎖存到SPIDKT中,此后對SPIDAT的讀操作將把數(shù)據(jù)讀出。SPI時序圖如圖4所示。
4 應(yīng)用軟件設(shè)計
下面給出數(shù)據(jù)采集實驗中,AD7654工作在串行從模式下的軟件流程(如圖5所示)和核心匯編源程序(轉(zhuǎn)換結(jié)果存在30H中)。
匯編源程序:
5 結(jié)束語
采用AD7654串行模式進(jìn)行A/D轉(zhuǎn)換具有速度快、精度高、功耗低、占用口線少的優(yōu)點,非常適用于AC伺服電動機(jī)控制、頻率轉(zhuǎn)換、三相功率監(jiān)視、不間斷電源、四通道數(shù)據(jù)取樣和汽車電子等方面。該系統(tǒng)電路已在實驗中調(diào)試通過,實際應(yīng)用中應(yīng)考慮靈活性,所有控制線均由軟件控制實現(xiàn)。
評論