串行D/A轉換器與單片機的接口設計
摘要:簡(jiǎn)述串行D/AMAX521的工作原理,介紹它的工作時(shí)序及其與單片機的連接方法和部分程序。
本文引用地址:http://dyxdggzs.com/article/149075.htm關(guān)鍵詞:串行D/A;I2C總線(xiàn);單片機
1引言
MAX521是一種2線(xiàn)8路八位電壓輸出DAC(數模轉換器)。MAX521有5路參考電壓輸入,前面的四路DAC(DAC0~DAC3)每路有一個(gè)獨立的參考電壓輸入(REF0~REF3),允許獨立地設置每路的電壓范圍;剩下的四路DAC(DAC4~DAC7)共享一路參考電壓輸入REF4。它具有串行接口和內置軟件協(xié)議,允許最高轉換頻率達400kbps。MAX521的接口具有雙緩沖輸入結構,允許DAC的寄存器單獨或者同時(shí)更新;它具有低能耗模式,可以使工作電流減少到4μA。MAX521以單一的+5V電源供電。
應用范圍:最小模擬器件系統;數據偏移/采樣調節;工業(yè)過(guò)程控制;自動(dòng)檢測設備。
MAX521有20腳DIP,24腳SO和24腳SSOP三種封裝形式。20腳DIPMAX521的引腳如圖1。

OUT0~OUT7:DAC0~7的電壓輸出端;REF0~REF3:DAC0~3的參考電壓輸入端;REF4:DAC4~7的參考電壓輸入端;AD0、AD1:設備地址輸入引腳;SCL:串行時(shí)鐘輸入端;SDA:串行數據輸入端;DGND:數字信號地;AGND:模擬信號地
2MAX521的軟件通訊協(xié)議
I2C總線(xiàn)組成:僅由兩條線(xiàn)組成。一條是時(shí)鐘線(xiàn)(SCL),另一條是數據線(xiàn)(SDA)。SCL線(xiàn)為時(shí)鐘信號,由總線(xiàn)控制設備產(chǎn)生,為總線(xiàn)提供統一的時(shí)鐘信號。
SDA線(xiàn)為數據信號,在總線(xiàn)控制設備和總線(xiàn)上的其他設備間進(jìn)行雙向傳送。
I2C總線(xiàn)協(xié)議規定:SCL為高電平時(shí)SDA信號有效,SDA線(xiàn)上的數據變化應在SCL為低電平時(shí)進(jìn)行。此規定唯一的例外是開(kāi)始信號和停止信號。
I2C輸入/輸出一個(gè)字節的格式是高位在前、低位在后。每一次I2C總線(xiàn)訪(fǎng)問(wèn)是由一系列的基本操作組成的,下面對這些基本操作進(jìn)行詳細解釋。
2.1開(kāi)始信號
每次I2C總線(xiàn)訪(fǎng)問(wèn)前要在總線(xiàn)上發(fā)送開(kāi)始信號。當SCL線(xiàn)為高電平時(shí),SDA線(xiàn)由高變低,便形成開(kāi)始信號。
2.2結束信號
每次I2C總線(xiàn)訪(fǎng)問(wèn)后要在總線(xiàn)上發(fā)送結束信號。當SCL線(xiàn)為高電平時(shí),SDA線(xiàn)由低變高,便形成結束信號。
開(kāi)始信號和停止信號的時(shí)序圖如下:

2.3器件尋址字節
無(wú)論讀寫(xiě)操作均需一個(gè)器件尋址字節。MAX521的尋址字節的前五位為01010(選中該設備的標志代碼)。后兩位為設備地址,由MAX521的AD0、AD1引腳的狀態(tài)決定。最后一位X是向設備寫(xiě)入或讀出數據,若向MAX521寫(xiě)入數據時(shí)X為0。
下面是MAX521完整的工作時(shí)序圖:

2.4數據地址字節或命令字節
設備尋址字節后為命令字。命令字的前三位為0,后面兩位為RST和PD,再后面三位A2A1A0是8個(gè)DAC輸出寄存器的通道地址。數據地址字節或命令字節的工作時(shí)序見(jiàn)圖4:

R2R1R0設置為0,屬保留位。當RST為高時(shí),MAX521復位所有DAC寄存器,但輸出一直保持到“停止”信號。當PD位為高時(shí),在收到“停止信號”后MAX521進(jìn)入低能耗模式。在低能耗模式中,DAC輸出取決于此時(shí)通道地址設置和輸出字節設置狀態(tài),此時(shí)提供最大電流為20μA。當PD位為低時(shí),MAX521返回正常工作狀態(tài)后緊跟著(zhù)發(fā)送“停止信號”,DAC輸出的電壓取決于當前通道地址設置和輸出字節設置情況。
2.5應答信號
在每傳送完一個(gè)地址字節或一個(gè)數據字節之后的第九個(gè)時(shí)鐘脈沖期間,接收方在SDA線(xiàn)上產(chǎn)生一個(gè)低電平的應答信號ACK,以通知發(fā)送方數據已接收到,可以繼續發(fā)送。所有數據傳送完畢后,單片機向SDA線(xiàn)發(fā)送一個(gè)停止信號,結束該次數據傳送。
注意:
1)總線(xiàn)空閑時(shí),SCL和SDA線(xiàn)應保持在高電平。
2)一次新的啟動(dòng)前,總線(xiàn)空閑時(shí)間tBUF>4.7μs。
3)時(shí)鐘為高電平、低電平的時(shí)間和開(kāi)始信號建立時(shí)間、結束信號建立時(shí)均需大于4.7μs。
4)兩次寫(xiě)發(fā)送時(shí)間間隔tWR>10ms。
5)SCL線(xiàn)的操作速率可以達到400kHz。
3MAX521與MCU的接口和程序
如圖1所示,MAX521與單片機的P1.6、P1.7相連,并把它作為I2C總線(xiàn)來(lái)操作。所有參考電壓均接+5V,使輸出的模擬電壓值在0~+5V之間。設備地址設為01B。OUTPUT后接執行設備。




4結束語(yǔ)
本系統已成功應用在具有多個(gè)DAC轉換的電路中,比通常并行DAC器件節省,并為智能化設備研發(fā)提供了很好的方案。
評論