MAX5121及其在DSP系統(tǒng)中的應(yīng)用
1 MAX512l型D/A轉(zhuǎn)換器
MAX5121是美國(guó)MAXIM公司生產(chǎn)的12位低功耗電壓輸出型串行數(shù)模轉(zhuǎn)換器(DAC)。該器件具有靈活的三線串行接口,可以與SPI、QSPI和MICROWIRE串行口實(shí)現(xiàn)無縫聯(lián)接。在使用內(nèi)部基準(zhǔn)參考電壓源時(shí),其最大輸出電壓為2.0475V。
MAX5121內(nèi)部帶有一個(gè)+1.25V基準(zhǔn)參考電壓源,如用戶需要,也可外接片外參考電壓。此外,它內(nèi)部還包括一個(gè)16位的串行移位寄存器、一個(gè)輸入寄存器、一個(gè)DAC寄存器和一個(gè)輸出放大器。其輸出電壓的計(jì)算公式為:
式中,VREF是基準(zhǔn)電壓,Code是在0x000~0xFFF范圍內(nèi)的輸入數(shù)字量,VOS為片外輸入模擬電壓。
MAX5121數(shù)模轉(zhuǎn)換器具有兩種工作模式,即正常工作模式(電流500μA)和關(guān)斷工作模式(電流3μA)。當(dāng)處于關(guān)斷工作模式時(shí),OUT輸出變?yōu)楦咦钁B(tài),但輸入寄存器內(nèi)容將被保存,以便MAX5121被喚醒后能“回憶”起進(jìn)入關(guān)斷模式前的輸出狀態(tài)。
MAX512l采用+3V單電源供電,封裝為16pin QSOP封裝形式。
1.1 MAX5121的內(nèi)部結(jié)構(gòu)及引腳功能
MAX5121的內(nèi)部結(jié)構(gòu)框圖如圖1所示。表1所列是該芯片的引腳功能說明。
1.2 MAX512l的串行接口命令
MAX512l的編程控制由16位串行字組成,即3位控制位、12位數(shù)據(jù)位和1位子位。圖2所示是其16位串行字格式,表2所列是其串行接口命令及功能描述。
1.3 MAX5121的工作時(shí)序
MAX512I在工作時(shí),首先將CS置為低電平以使能MAX5121,然后從SCLK的上升沿開始將DIN上的串行數(shù)據(jù)一位接一位移入MAX5121內(nèi)部的16bit串行移位寄存器。當(dāng)CS為高電平后,串行移位寄存器中的數(shù)據(jù)將被裝入MAX5121內(nèi)部的輸入寄存器或送入DAC寄存器,具體取決于16位串行字中C2、C1、C0這三位的取值。MAX5121的最高串行工作時(shí)鐘頻率為6.6MHz。圖3是MAX5121的串行口工作時(shí)序。
2 TMS320LF2407的SPI接口
TMS320LF2407是美國(guó)TI公司推出的、專為數(shù)字電機(jī)控制和其它控制應(yīng)用系統(tǒng)而設(shè)計(jì)的一款高性能、低功耗、高性價(jià)比的16位定點(diǎn)DSP (數(shù)字信號(hào)處理)芯片。它將數(shù)字信號(hào)處理的高速運(yùn)算功能與面向電機(jī)的強(qiáng)大控制能力結(jié)合在一起,從而成為傳統(tǒng)的多微處理器單元和多片設(shè)計(jì)系統(tǒng)的理想替代品。TMS320LF2407內(nèi)部有4個(gè)引腳的串行外設(shè)接口(SPI)模塊。該SPI是一個(gè)高速、同步串行I/O口,它允許長(zhǎng)度可編程的串行位流(1~16)以可編程的位傳輸速度移出或移入器件。通常SPI用于DSP處理器和外部外設(shè),以及其它處理器之間的通信。其典型應(yīng)用包括通過諸如移位寄存器、顯示驅(qū)動(dòng)器、DAC,以及日歷時(shí)鐘等器件所進(jìn)行的外部I/O或器件的擴(kuò)展。SPI的主/從操作模式均支持多處理器通信。SPI模塊的特性包括以下幾點(diǎn):
(1) 有主動(dòng)或從動(dòng)兩種方式。TMS320LF2407的SPI功能模塊是一種真正的同步串行接口,可以工作于主動(dòng)和從動(dòng)方式。當(dāng)SPI工作在主動(dòng)方式時(shí),SPICLK為時(shí)鐘信號(hào)輸出端,可與從器件的時(shí)鐘信號(hào)輸入引腳相連接,兩者共用TMS320LF2407的時(shí)鐘信號(hào)。SPl數(shù)據(jù)傳輸則由如下四個(gè)外部引腳完成,即SPISOMI(從動(dòng)輸出主動(dòng)輸入)、SPISIMO(從動(dòng)輸入主動(dòng)輸出)、SPISTE(從動(dòng)發(fā)送使能)、SPICLK(串行時(shí)鐘輸入輸出);
(2) 具有四種時(shí)鐘方案。分別為無延時(shí)上升沿(SPICLK信號(hào)上升沿發(fā)送數(shù)據(jù),下降沿接收數(shù)據(jù))、有延時(shí)上升沿(SPICLK信號(hào)上升沿半個(gè)周期發(fā)送數(shù)據(jù),上升沿接收數(shù)據(jù))、無延時(shí)下降沿(SPICLK信號(hào)下降沿發(fā)送數(shù)據(jù),上升沿接收數(shù)據(jù))、有延時(shí)下降沿(SPICLK信號(hào)下降沿半個(gè)周期發(fā)送數(shù)據(jù),下降沿接收數(shù)據(jù))。一般情況下,當(dāng)DSP作為主器件時(shí),時(shí)鐘模式的選擇還要參考從器件的工作方式;
(3) 有125種可編程波特率。TMS320LF2407中SPI模塊靈活的波特率設(shè)置可以方便地與外設(shè)進(jìn)行通信,最大可達(dá)10MHz。波特率的設(shè)定應(yīng)參考外設(shè)的最大傳輸頻率。設(shè)計(jì)時(shí)通過向波特率寄存器寫入設(shè)定值,可以得到不同的波特率;
(4) TMS320LF2407數(shù)據(jù)字長(zhǎng)度可以是1到16位。收發(fā)數(shù)據(jù)的位數(shù)可由SPI的配置控制寄存器決定;
(5) 發(fā)送和接收可用中斷或查詢方式完成。
3 MAX512l與TMS320LF2407的硬件接口
在設(shè)計(jì)TMS320LF2407與MAX5121的硬件接口電路時(shí),可將TMS320LF2407作為SPI主機(jī),MAX512l作為從機(jī)。MAX5121只接受來自主機(jī)的數(shù)據(jù),然后進(jìn)行D/A轉(zhuǎn)換并從OUT引腳輸出模擬電壓。由于MAX5121是在SCLK的上升沿接收SPI線上的數(shù)據(jù),因此,DSP應(yīng)采用無延時(shí)的下降沿來發(fā)送SPI數(shù)據(jù),這樣才能配合MAX5121的工作時(shí)序。圖4給出了TMS320LF2407與MAX512l的硬件接口電路。
4 軟件設(shè)計(jì)
4.1 SPI總線波特率的設(shè)置
由于不同SPI器件的最高工作頻率有所不同,為了使SPI總線高效工作,應(yīng)了解各個(gè)SPI器件最高能接受的頻率,然后取低頻率的SPI器件的最高頻率作為通訊波特率。由于MAX5121的最高允許時(shí)鐘頻率為6.6 MHz,因此,在TMS320LF2407與MAX512l的應(yīng)用系統(tǒng)設(shè)計(jì)中,SPI總線的最高時(shí)鐘頻率不能超過6.6 MHz。
4.2 軟件設(shè)計(jì)
限于篇幅,圖5僅給出用TMS320LF2407向MAX5121發(fā)送一個(gè)16bit DAC數(shù)據(jù)的軟件實(shí)現(xiàn)流程圖(用軟件查詢方式發(fā)送),以表明出MAX5121在DSP應(yīng)用系統(tǒng)中的一般編程方法。
5 結(jié)束語
利用DSP的SPI接口擴(kuò)展各種串行接口的元器件應(yīng)具有接口簡(jiǎn)單、編程方便的優(yōu)點(diǎn)。如今的串行接口器件種類繁多(有SPI語音芯片、LED驅(qū)動(dòng)芯片、A/D轉(zhuǎn)換芯片、D/A轉(zhuǎn)換芯片、EEPROM芯片等),這些器件給系統(tǒng)設(shè)計(jì)帶來了更多的選擇。因此,在實(shí)時(shí)性要求不高的場(chǎng)合,串行接口器件的使用可以簡(jiǎn)化電路設(shè)計(jì),提高系統(tǒng)設(shè)計(jì)的可靠性。