串行D/A轉(zhuǎn)換器與單片機的接口設(shè)計
摘要:簡述串行D/AMAX521的工作原理,介紹它的工作時序及其與單片機的連接方法和部分程序。
本文引用地址:http://www.ex-cimer.com/article/149075.htm1引言
MAX521是一種2線8路八位電壓輸出DAC(數(shù)模轉(zhuǎn)換器)。MAX521有5路參考電壓輸入,前面的四路DAC(DAC0~DAC3)每路有一個獨立的參考電壓輸入(REF0~REF3),允許獨立地設(shè)置每路的電壓范圍;剩下的四路DAC(DAC4~DAC7)共享一路參考電壓輸入REF4。它具有串行接口和內(nèi)置軟件協(xié)議,允許最高轉(zhuǎn)換頻率達400kbps。MAX521的接口具有雙緩沖輸入結(jié)構(gòu),允許DAC的寄存器單獨或者同時更新;它具有低能耗模式,可以使工作電流減少到4μA。MAX521以單一的+5V電源供電。
應(yīng)用范圍:最小模擬器件系統(tǒng);數(shù)據(jù)偏移/采樣調(diào)節(jié);工業(yè)過程控制;自動檢測設(shè)備。
MAX521有20腳DIP,24腳SO和24腳SSOP三種封裝形式。20腳DIPMAX521的引腳如圖1。
OUT0~OUT7:DAC0~7的電壓輸出端;REF0~REF3:DAC0~3的參考電壓輸入端;REF4:DAC4~7的參考電壓輸入端;AD0、AD1:設(shè)備地址輸入引腳;SCL:串行時鐘輸入端;SDA:串行數(shù)據(jù)輸入端;DGND:數(shù)字信號地;AGND:模擬信號地
2MAX521的軟件通訊協(xié)議
I2C總線組成:僅由兩條線組成。一條是時鐘線(SCL),另一條是數(shù)據(jù)線(SDA)。SCL線為時鐘信號,由總線控制設(shè)備產(chǎn)生,為總線提供統(tǒng)一的時鐘信號。
SDA線為數(shù)據(jù)信號,在總線控制設(shè)備和總線上的其他設(shè)備間進行雙向傳送。
I2C總線協(xié)議規(guī)定:SCL為高電平時SDA信號有效,SDA線上的數(shù)據(jù)變化應(yīng)在SCL為低電平時進行。此規(guī)定唯一的例外是開始信號和停止信號。
I2C輸入/輸出一個字節(jié)的格式是高位在前、低位在后。每一次I2C總線訪問是由一系列的基本操作組成的,下面對這些基本操作進行詳細解釋。
2.1開始信號
每次I2C總線訪問前要在總線上發(fā)送開始信號。當(dāng)SCL線為高電平時,SDA線由高變低,便形成開始信號。
2.2結(jié)束信號
每次I2C總線訪問后要在總線上發(fā)送結(jié)束信號。當(dāng)SCL線為高電平時,SDA線由低變高,便形成結(jié)束信號。
開始信號和停止信號的時序圖如下:
2.3器件尋址字節(jié)
無論讀寫操作均需一個器件尋址字節(jié)。MAX521的尋址字節(jié)的前五位為01010(選中該設(shè)備的標(biāo)志代碼)。后兩位為設(shè)備地址,由MAX521的AD0、AD1引腳的狀態(tài)決定。最后一位X是向設(shè)備寫入或讀出數(shù)據(jù),若向MAX521寫入數(shù)據(jù)時X為0。
下面是MAX521完整的工作時序圖:
2.4數(shù)據(jù)地址字節(jié)或命令字節(jié)
設(shè)備尋址字節(jié)后為命令字。命令字的前三位為0,后面兩位為RST和PD,再后面三位A2A1A0是8個DAC輸出寄存器的通道地址。數(shù)據(jù)地址字節(jié)或命令字節(jié)的工作時序見圖4:
R2R1R0設(shè)置為0,屬保留位。當(dāng)RST為高時,MAX521復(fù)位所有DAC寄存器,但輸出一直保持到“停止”信號。當(dāng)PD位為高時,在收到“停止信號”后MAX521進入低能耗模式。在低能耗模式中,DAC輸出取決于此時通道地址設(shè)置和輸出字節(jié)設(shè)置狀態(tài),此時提供最大電流為20μA。當(dāng)PD位為低時,MAX521返回正常工作狀態(tài)后緊跟著發(fā)送“停止信號”,DAC輸出的電壓取決于當(dāng)前通道地址設(shè)置和輸出字節(jié)設(shè)置情況。
2.5應(yīng)答信號
在每傳送完一個地址字節(jié)或一個數(shù)據(jù)字節(jié)之后的第九個時鐘脈沖期間,接收方在SDA線上產(chǎn)生一個低電平的應(yīng)答信號ACK,以通知發(fā)送方數(shù)據(jù)已接收到,可以繼續(xù)發(fā)送。所有數(shù)據(jù)傳送完畢后,單片機向SDA線發(fā)送一個停止信號,結(jié)束該次數(shù)據(jù)傳送。
注意:
1)總線空閑時,SCL和SDA線應(yīng)保持在高電平。
2)一次新的啟動前,總線空閑時間tBUF>4.7μs。
3)時鐘為高電平、低電平的時間和開始信號建立時間、結(jié)束信號建立時均需大于4.7μs。
4)兩次寫發(fā)送時間間隔tWR>10ms。
5)SCL線的操作速率可以達到400kHz。
3MAX521與MCU的接口和程序
如圖1所示,MAX521與單片機的P1.6、P1.7相連,并把它作為I2C總線來操作。所有參考電壓均接+5V,使輸出的模擬電壓值在0~+5V之間。設(shè)備地址設(shè)為01B。OUTPUT后接執(zhí)行設(shè)備。
4結(jié)束語
本系統(tǒng)已成功應(yīng)用在具有多個DAC轉(zhuǎn)換的電路中,比通常并行DAC器件節(jié)省,并為智能化設(shè)備研發(fā)提供了很好的方案。
評論