左現(xiàn)剛,余周,侯志松,張志霞
(河南科技學(xué)院,河南新鄉(xiāng)453003)
通過(guò)單片機(jī)I/O口直接控制繼電器或可控硅是后向通道中最簡(jiǎn)單的形式,當(dāng)被控對(duì)象需要根據(jù)模擬量的大小連續(xù)控制時(shí),最簡(jiǎn)單的方法便是采用數(shù)/模轉(zhuǎn)換器(DAC).DAC種類繁多,從接口形式來(lái)看,有串口和并口之分.早期的DAC一般采用并口方式,如廣為流行的DAC0832.隨著半導(dǎo)體技術(shù)的不斷發(fā)展和進(jìn)步,為節(jié)省CPU的硬件資源,目前一些新型的D/A轉(zhuǎn)換器均采用了流行的串行總線協(xié)議,如采用SPI(Serial Peripheral Interface)總線協(xié)議的TLC5615.該總線是由Motorola公司提出的一種4線制同步串行外設(shè)總線接口,包括時(shí)鐘、使能、輸入和輸出4根引腳,主要用于CPU與各種外圍器件以串行方式進(jìn)行通信[1-2].從D/A芯片的輸出形式來(lái)看,又分為電流輸出型和電壓輸出型兩種,常用的DAC0832就是典型的電流輸出型D/A轉(zhuǎn)換器.由于輸出是電流形式,因此在實(shí)際的電路設(shè)計(jì)中還必須通過(guò)運(yùn)算放大器組成電流/電壓轉(zhuǎn)換器將電流輸出轉(zhuǎn)化成電壓輸出.而TLC5615則是電壓輸出型,可以通過(guò)外接的基準(zhǔn)電壓來(lái)調(diào)節(jié)電壓輸出的幅度[3-4].
TLC5615是帶有緩沖基準(zhǔn)輸入(高阻抗)的10位電壓輸出DAC,具有基準(zhǔn)電壓兩倍的輸出范圍,且DAC是單調(diào)變化的,使用簡(jiǎn)單,采用單5 V電源,具有上電復(fù)位功能以確??芍貜?fù)啟動(dòng).數(shù)字控制通過(guò)3線串行SPI總線,與CMOS兼容且易于和工業(yè)標(biāo)準(zhǔn)微控制器接口.器件接收16位數(shù)據(jù)字以產(chǎn)生模擬輸出.數(shù)字輸入端帶有施密特觸發(fā)器,具有高噪聲抑制能力.工作溫度范圍為0~70℃.其功能框圖如圖1所示.
圖1 TLC5615內(nèi)部功能
8腳直插式TLC5615的引腳分布如圖2所示,各引腳功能如表1所示.
圖2 TLC5615引腳排列
表1 TLC5615引腳功能
圖3 TLC5615的工作時(shí)序
TLC5615工作時(shí)序如圖3所示.可以看出,只有當(dāng)片選CS為低電平時(shí),串行輸入數(shù)據(jù)才能被移入16位移位寄存器.當(dāng)CS為低電平時(shí),在每一個(gè)SCLK時(shí)鐘的上升沿將DIN的一位數(shù)據(jù)移入16位移寄存器.注意,二進(jìn)制最高有效位被導(dǎo)前移入.接著,在CS的上升沿將16位移位寄存器的10位有效數(shù)據(jù)鎖存于10位DAC寄存器,供DAC電路進(jìn)行轉(zhuǎn)換;當(dāng)片選CS為高電平時(shí),串行輸入數(shù)據(jù)不能被移入16位移位寄存器.注意,CS的上升和下降都必須發(fā)生在SCLK為低電平期間.
從圖1可以看出,16位移位寄存器分為高4位虛擬位、低2位填充位以及10位有效位.在單片TLC5615工作時(shí),只需要向16位移位寄存器按先后輸入10位有效位和低2位填充位,2位填充位數(shù)據(jù)任意,這是第一種方式,即12位數(shù)據(jù)序列.第二種方式為級(jí)聯(lián)方式,即16位數(shù)據(jù)序列,可以將本片的DOUT接到下一片的DIN,需要向16位移位寄存器按先后輸入高4位虛擬位、10位有效位和低2位填充位,由于增加了高4位虛擬位,所以需要16個(gè)時(shí)鐘脈沖.其輸出電壓為:
VOUT=VREFIN×N/1 024
其中:VREFIN為參考電壓,N為輸入的二進(jìn)制數(shù).
TLC5615與Mega16接口采用標(biāo)準(zhǔn)的SPI串行總線協(xié)議,實(shí)際連接可參照?qǐng)D4,當(dāng)MCU自身不帶有SPI接口時(shí),可通過(guò)普通I/O口模擬SPI串行總線協(xié)議的工作方式.在片選/CS為低電平時(shí),由MCU發(fā)往TLC5615的輸入數(shù)據(jù)被讀入到16位移位寄存器(最高有效位在前).在SCK時(shí)鐘信號(hào)的上升沿把數(shù)據(jù)送到輸入寄存器,隨后由/CS片選信號(hào)的上升沿將數(shù)據(jù)傳送至DAC寄存器.當(dāng)/CS為高電平時(shí),輸入數(shù)據(jù)不能由時(shí)鐘同步并送入到輸入寄存器[5-6].
圖4 TLC5615與Mega16的連接
SPI協(xié)議規(guī)定為8位字節(jié)形式,因此數(shù)據(jù)輸入到DAC寄存器需要兩個(gè)寫(xiě)周期.對(duì)于QSPI接口,由于總線傳送的數(shù)據(jù)格式為8位至16位可變,因此可以在一個(gè)寫(xiě)周期之內(nèi)將輸入數(shù)據(jù)裝載至DAC輸入寄存器.TLC5615的轉(zhuǎn)換精度與PCB板的設(shè)計(jì)相關(guān),模擬地和數(shù)據(jù)地在印制電路板中應(yīng)嚴(yán)格區(qū)分.TLC5615的AGND模擬地端應(yīng)連接到系統(tǒng)模擬地,并應(yīng)在VDD和AGND之間靠近器件處并聯(lián)一個(gè)電容量為104的旁路電容.
程序編輯軟件采用ICCAVR,版本為6.31.程序代碼如下:
通過(guò)程序可以看出,在保證SPI同步傳輸?shù)母咝院透咚傩缘耐瑫r(shí),采用SPI接口的芯片在和微控制器進(jìn)行數(shù)據(jù)通信時(shí),控制程序顯得簡(jiǎn)單和清晰.
由于使用帶SPI功能的器件采用3或4根信號(hào)線進(jìn)行串入并出數(shù)據(jù)傳輸,使程序控制變得更為簡(jiǎn)潔高效,而且增強(qiáng)控制系統(tǒng)的移植性,大幅簡(jiǎn)化電路的繁雜布線,提高整體系統(tǒng)的穩(wěn)定性.另外AVR單片機(jī)把SPI總線接作為其技術(shù)特性固化在系列芯片中,所以更加方便對(duì)具有SPI接口的芯片進(jìn)行連接和控制.
[1]王志,王文廉,張志杰.SPI及USB雙通信接口的設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化儀表,2010,31(1):72-75.
[2]王耿,王金明.SPI接口控制器設(shè)計(jì)與實(shí)現(xiàn)[J].電子質(zhì)量,2010(1):4-5.
[3]孫曉曄.PIC單片機(jī)與串行閃存的SPI接口設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(4):46-48.
[4]陳志彬,王仲初,崔文華.SPI接口芯片在單片機(jī)小系統(tǒng)中的應(yīng)用[J].自動(dòng)化與儀表,2001(1):63-65.
[5]耿德根,宋建國(guó).AVR高速嵌入式單片機(jī)原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2001.
[6]彭希南.基于SPI接口的ISD4104系列語(yǔ)音錄放芯片及其應(yīng)用[J].微型機(jī)與應(yīng)用,2000(9):24-26.