宋嚴(yán)
(長春師范大學(xué),吉林長春,130000)
DAC1230和單片機(jī)Atmega128接口技術(shù)研究
宋嚴(yán)
(長春師范大學(xué),吉林長春,130000)
隨著全球單片機(jī)技術(shù)的飛速發(fā)展,關(guān)于單片機(jī)及DAC芯片的應(yīng)用也變得更加廣泛,本文通過對DAC1230芯片與Atmega128單片機(jī)接口連接技術(shù)展開研究,目的是為了能夠進(jìn)一步加深對單片機(jī)及DAC芯片的結(jié)構(gòu)認(rèn)識,提高信號傳輸?shù)目煽啃?,從而滿足單片機(jī)市場中“高性能、低能耗”數(shù)字集成電路發(fā)展要求。
DAC1230;單片機(jī)Atmega128;接口技術(shù)
單片機(jī)Atmega128具有RICS結(jié)構(gòu)特點(diǎn),通過 JITAG接口的應(yīng)用,可以拓展芯片調(diào)試功能,完善邊界掃描特性,同時還具備特殊的微控制特性,完成對信號的復(fù)位,電源中斷等操作,實現(xiàn)I/O接口封裝,將DAC1230芯片和單片機(jī)Atmega128連接起來,可以更好地完善單片機(jī)的使用性能。
表1 DAC1230芯片真值表
1.1 DAC1230
從DAC1230的工作原理來看,它一共有五根控制線,分別是CS、ByTE1/ByTE2還有WR1、WR2,一起來負(fù)責(zé)完成對大規(guī)模電路器件的地址尋找,輸入以及轉(zhuǎn)換和鎖定等,其中CS控制線主要控制的是選片信號,電平值較低,可以在WR1控制線上寫信號1,則低電平數(shù)值有效,當(dāng)WR1為0時,意味著需要讓數(shù)據(jù)進(jìn)入到鎖存器,當(dāng)WR1為1的時候,需要將數(shù)據(jù)鎖定在鎖存器中,與此同時,ByTE1/ByTE2負(fù)責(zé)數(shù)據(jù)信號的順序控制,當(dāng)兩者的比值為1時,可以把數(shù)據(jù)輸入到8位的鎖存器中,此時相應(yīng)的4位輸入鎖存器中的數(shù)值也會出現(xiàn)轉(zhuǎn)變[1]。如果二者的比值為0,說明ByTE1為0,就只能把數(shù)據(jù)輸入到4位的輸入器當(dāng)中,而WR2控制線可以寫信號,另外XFER可以被看作是控制轉(zhuǎn)換信號,如果XFER的數(shù)值為0的話,就只能將數(shù)據(jù)輸入到12位的DAC寄存器當(dāng)中,并且D/ A 接口會出現(xiàn)轉(zhuǎn)換,在將 DAC1230芯片同8位Atmega 128微控制器進(jìn)行配接時,需要把WR1、WR2連接起來,獲得DAC1230芯片的真值表,一般情況下,會將微控制器中的地址連接線用最低位的A0來表示,同DAC1230芯片中ByTE1/ByTE2接口展開連接,芯片的其他部分,會分為編碼以后的CS、XFer信號[2]。
1.2 單片機(jī)Atmega128
要想了解單片機(jī)Atmega128,我們需要先對AVR單片機(jī)進(jìn)行了解,AVR單片機(jī)已經(jīng)廢除了機(jī)械周期,并且使用了RISC精簡指令集,以字為單位長度,取指的周期較短,可以預(yù)取指令,完成流水作業(yè),從而高速執(zhí)行指令,具有較高的可靠性,無論是在硬件速度和性能上面,都能夠做到平衡優(yōu)化,可以說是一種性價比比較高的單片機(jī),這種AVR式單片機(jī)的優(yōu)點(diǎn)是I/O端口資源比較靈活,具有幾種獨(dú)立的時鐘分頻器,能夠?qū)崿F(xiàn)高波特率的可靠通信,進(jìn)而提升了嵌入式系統(tǒng)的可靠性,抗干擾性強(qiáng),可以在休眠模式和寬壓模式下運(yùn)行,集成多電路功能,在技術(shù)方向上正朝著SOC方向發(fā)展和過渡[3]。
Atmega128單片機(jī)是一種基于AVR單片機(jī)低功率消耗模式下的CMOS 8位微控制器,頻率可以達(dá)到1MIPS/MHz,這種單片機(jī)一共有六種省電模式,分別是IDLE空閑省電模式,即CPU需要停止工作,而其他的運(yùn)行子系統(tǒng)可以正常運(yùn)行,有噪聲抑制ADC模式,即CPU同整個I/O接口模塊都停止運(yùn)行,此時的ADC模數(shù)轉(zhuǎn)換器和異步定時器可以繼續(xù)工作,而在Power save省電模式中,需要保證異步定時器的正常運(yùn)行,讓其他控制器部分處在一種休眠的狀態(tài),在Power down掉電模式中,只有中斷部分與硬件復(fù)位的地方是在工作的,其他部分都要停止,在Standby省電模式中,是只有振蕩器在工作,在拓展型Standby模式中,只有振蕩器和異步定時器在工作[4]。
在使用DAC1230芯片同單片機(jī)Atmega128進(jìn)行技術(shù)配接時,如圖1所示,為DAC1230同單片機(jī)Atmega128接口技術(shù)的配接模式圖,其中的PA端口可以被看作是地址/數(shù)據(jù)總線進(jìn)行使用,此時的74LS373地址鎖存器芯片可以在ALE 自適應(yīng)技術(shù)的控制調(diào)節(jié)下進(jìn)行PA輸出端口的地址信號鎖存,將PA端口的地址信號控制在A0-A7,同時,還可以讓74LS138譯碼器在輸出端口,也就是在Y0、Y1端口處完成DAC1230芯片同XFER信號與CS信號的有效配接,這樣74LS373地址鎖存器就可以和74LS138譯碼器服完成D/A接口轉(zhuǎn)換,使得PB7.0通用全字段查詢技術(shù)可以連接譯碼器進(jìn)而完成高電平傳輸,允許輸入端口G1通過信號,在PB7.0中完成數(shù)據(jù)信號反相,同PC6組成相或,進(jìn)而獲得或運(yùn)算的信號輸出結(jié)果。
圖1 DAC1230與Atmega128的接口配接圖
從圖中我們可以看出,DAC1230芯片中的8位輸入鎖存器、4位輸入鎖存器還有12位的寄存器地址,分別被設(shè)計為8003H、8002H和8000H,也就是說當(dāng)DAC1230可以接收8位微控制器數(shù)據(jù)的時候,此時的8位輸入鎖存器只可以接受向左對齊數(shù)據(jù)。
(1)分時傳送
通常情況下,通國對地址進(jìn)行單獨(dú)譯碼,然后所提供出的XFER信號電路一般可以適用在一個具有幾個DAC的微控制系統(tǒng)中,而且還會要求開啟轉(zhuǎn)換電路,能夠?qū)AC控制系統(tǒng)中的XFER信號數(shù)據(jù)連接在一起,共同有一個專門的地址譯碼器進(jìn)行信號的控制,即實現(xiàn)分時傳送數(shù)據(jù)功能,還可以一同啟動D/A接口轉(zhuǎn)換電路,將DAC1230芯片的8位輸入鎖存器同4位的輸入鎖存器的地址提升為8005H與8004H,在分時傳送中,單片機(jī)Atmage128可以分時向1、2進(jìn)行數(shù)據(jù)傳送,假設(shè)Y0為0,就意味著PB7+PC6=0,那么兩片DAC1230鎖存器在輸入過程中可以將所有數(shù)據(jù)傳送到12位的DAC寄存器當(dāng)中,完成D/A 接口轉(zhuǎn)換。
(2)數(shù)據(jù)自動傳送
在數(shù)據(jù)自動傳送時,自動傳送基本上如圖2中所示,就是要讓DAC1230芯片在數(shù)據(jù)信號傳輸中,可以讓XFER信號同 ByTE1/ByTE2端口連接起來,此時的PB7可以被看作是DAC1230芯片的片選信號CS,使得8位的輸入鎖存器地址變?yōu)?001H,然后將4位的輸入鎖存器同12位的DAC寄存器地址設(shè)為0000H,這樣DAC1230在微控制器的作用下,如果需要傳遞4位的鎖存器數(shù)據(jù),就可以把輸入鎖存器中的數(shù)據(jù)傳入到DAC1230的寄存器當(dāng)中,開始進(jìn)行D/A數(shù)據(jù)接口的自動傳送。
圖2 自動傳送
(3)外設(shè)DAC選通
在應(yīng)用外設(shè)DAC選通的方式進(jìn)行接口數(shù)據(jù)傳輸時,我們需要針對所要傳輸?shù)腦FER信號進(jìn)行外設(shè)通信信號STB設(shè)置,此時的Atmage128單片機(jī)需要向DAC1230芯片的輸入鎖存器展開數(shù)據(jù)的傳送,假如出現(xiàn)了外設(shè)STB通訊信號的時候,那么所要傳送的數(shù)據(jù)只能是從DAC1230的輸入鎖存器繼續(xù)傳入到12位的DAC寄存器當(dāng)中,進(jìn)而展開D/A 接口數(shù)據(jù)轉(zhuǎn)換。
需要注意的是,不管是選擇哪一種數(shù)據(jù)傳送方式,都要明確它們彼此之間的數(shù)據(jù)關(guān)系,就是在對微控制器系統(tǒng)進(jìn)行寫入時,脈沖的寬度WR需要>320ns,與此同時,還要保證DAC1230系統(tǒng)寄存器的保持耗時間>90ns,明確數(shù)據(jù)保持時間的定義,也就是當(dāng)WR值升高的時候,需要等待轉(zhuǎn)換的數(shù)據(jù)值在DAC1230輸入端口的保持時間,如果Atmage128單片機(jī)的時鐘頻率可以≤4NHZ的話,上面兩種時間關(guān)系是可以實現(xiàn)的。
(1)零點(diǎn)校準(zhǔn)
在進(jìn)行DAC1230芯片零點(diǎn)校準(zhǔn)時,需要短接一個內(nèi)部反饋的RFb電阻,然后給予DAC1230全“0”數(shù)據(jù),進(jìn)而開啟D/A接口轉(zhuǎn)換模式,調(diào)節(jié)電位器,一直放大到輸出Vout值是0。具體校準(zhǔn)程序按照00H→A,00H→DAC8位, OFH→A,0000B→4位,啟動D/A轉(zhuǎn)換的順序進(jìn)行。
(2)滿量程校準(zhǔn)
在進(jìn)行滿量程校準(zhǔn)時,需要撤去RFb短接線,然后給予DAC1230芯片全“1”數(shù)據(jù),開始D/A 接口的數(shù)據(jù)轉(zhuǎn)換,在調(diào)整滿量程電位器W時,需要一直進(jìn)行運(yùn)算,直到運(yùn)算的輸出值為Vout,且Vout滿足4095/4096VREF,將輸入電壓值控制在10v以內(nèi)。具體的滿量程校準(zhǔn)程序按照FFH→A,F(xiàn)FH→DAC 8位,1111B→A ,1111B→4位,啟動D/A轉(zhuǎn)換的順序來進(jìn)行。
通過對DAC1230芯片和單片機(jī)Atmega128接口連接技術(shù)的調(diào)試,能夠很好地完成D/A接口的高效轉(zhuǎn)換,大大提升了信號的傳送效率,延長了單片機(jī)Atmega128硬件的使用壽命,使得單片機(jī)的使用更加具有靈活性和可控性。
[1]陳海,陳宇珂,潘澤森,丁效軍,張興安.基于實時操作系統(tǒng)的ATmega128串行通信驅(qū)動程序設(shè)計[J/OL].中國醫(yī)學(xué)裝備,2016,13(11):98-103.
[2]王景輝.增量式編碼器與Atmega128單片機(jī)接口及程序?qū)崿F(xiàn)方法[J].自動化應(yīng)用,2012,(04):78-80.
[3]范偉成,宗情,朱辰元.基于單片機(jī)的CAN-USB通信轉(zhuǎn)換模塊的設(shè)計與實現(xiàn)[J].計算機(jī)測量與控制,2012,20(03):744-746.
[4]范偉成,宗情,朱辰元,彭小方.基于ATmega128和CH374的USB接口設(shè)計[J].電子設(shè)計工程,2012,20(02):129-131.
Research on Atmega128 interface technology of DAC1230 and MCU
Song Yan
(Changchun normal university,Changchun Jilin,130000)
With the rapid development of global SCM technology, the application of MCU and DAC chip have become more widely, with the study of the DAC1230 chip and Atmega128 MCU interface technology, in order to further deepen understanding of the structure of MCU and DAC chip, improve the reliability of signal transmission, so as to meet the single market “high performance and low power consumption digital integrated circuit development
DAC1230; MCU Atmega128; interface technology
吉林省教育廳“十二五”科學(xué)技術(shù)研究項目(吉教科合字【2015】第362號 )。
宋嚴(yán)(1982.2-),男,漢族,吉林磐石人,碩士,高級實驗師,研究方向計算機(jī)應(yīng)用技術(shù)。