SoC已集成了很多數(shù)字功能,設(shè)計(jì)者們開始將目光投向復(fù)雜的模擬與射頻功能。模擬模塊不適用于構(gòu)建SoC的標(biāo)準(zhǔn)IP(知識(shí)產(chǎn)權(quán))集成策略,它們與設(shè)計(jì)中其他部分有太多的交互作用。
現(xiàn)在有許多公司已經(jīng)開始推出混合信號(hào)微處理器,如TI的MSP430系列、Cypress的PSoC系列、SiliconLabs的C8051F系列。這些芯片不僅集成大量的數(shù)字IP核,而且集成了常用的模擬單元。
本文基于TI公司的混合信號(hào)處理器MSP430F5504設(shè)計(jì)了一款超低功耗、高性價(jià)比、高處理能力的USB混合信號(hào)處理器開發(fā)板(校園廣播系統(tǒng))。
1校園廣播系統(tǒng)總體設(shè)計(jì)
校園廣播系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)更好地說明MSP430系列芯片的良好功能和開發(fā)方法,系統(tǒng)總體原理框圖如圖1所示。整個(gè)系統(tǒng)包括MSP430混合信號(hào)處理器模塊、電源模塊、輸入模塊、液晶顯示模塊、通用串口模塊(包含I2C、SPI、UART)、JTAG調(diào)試模塊、USB模塊等。
2系統(tǒng)硬件設(shè)計(jì)
2.1主控電路設(shè)計(jì)
MSP430F5504是優(yōu)秀的片上系統(tǒng),只要外接1.8~3.6V電源,加上一個(gè)低頻晶振就能工作。MSP430F5504有VQFN和LPFQ兩種封裝,這里采用LQFP48封裝,方便焊接、安裝、調(diào)試。
本系統(tǒng)由一個(gè)32.768kHz的低頻晶振和一個(gè)4MHz的高頻晶振構(gòu)成。低頻晶振和兩個(gè)12pF的負(fù)載電容接在MSP430F5504的Xin和Xout端,當(dāng)系統(tǒng)需要高頻時(shí)鐘時(shí)使用(供CPU高速運(yùn)行、作為ADC的高速轉(zhuǎn)換時(shí)鐘等)。高頻晶振需要更大的負(fù)載電容才能正常工作,系統(tǒng)采用了一個(gè)4MHz的高頻晶振及其相匹配的兩個(gè)47pF電容接在高頻時(shí)鐘引腳端(XT2IN和XT2OUT)。微處理器的數(shù)字電源和模擬電源都從3.3V的穩(wěn)壓電源獲得。系統(tǒng)要正確地恢復(fù)到原始狀態(tài),必須有復(fù)位電路,MSP430F5504是低電平復(fù)位。
2.2LCD液晶電路設(shè)計(jì)
本系統(tǒng)采用Nokia5110LCD,此LCD由Philips公司生產(chǎn)的PCD8544驅(qū)動(dòng)芯片控制。PCD8544是一塊低功耗的CMOSLCD控制驅(qū)動(dòng)器,設(shè)計(jì)為驅(qū)動(dòng)48行×84列的圖形顯示。所有顯示功能集成在一塊芯片上,包括LCD電壓及偏置電壓發(fā)生器,只需很少外部元件且功耗低。
Nokia5110屬于低功耗LCD,靜態(tài)電流只有200μA??刂?u>接口簡單,通過SPI接口就可以輕松地進(jìn)行控制,具有5根信號(hào)線、2根電源線。還可根據(jù)需要通過控制BL背光控制線來開關(guān)背光。在低功耗運(yùn)行時(shí),可通過此控制線關(guān)閉背光。
2.3調(diào)試電路設(shè)計(jì)
JTAG測試允許多個(gè)器件通過JTAG接口串聯(lián)在一起,電路板上的很多芯片可以將它們的JTAG引腳通過DaisyChain的方式連在一起,并且Probe只需連接到一個(gè)JTAG端口就可以訪問一塊電路板上的所有IC。
MSP430F5504集成了JTAG調(diào)試接口,這極大地方便了程序的開發(fā)。MSP430采用了14引腳的JTAG調(diào)試接口。通過該接口不僅可以對(duì)程序進(jìn)行在線調(diào)試,而且可以下載程序,讓程序全速運(yùn)行,并觀測程序在實(shí)際電路上的運(yùn)行效果。
2.4通用串口模塊設(shè)計(jì)
串口是系統(tǒng)與外界聯(lián)系的重要手段,在嵌入式系統(tǒng)開發(fā)和應(yīng)用中,經(jīng)常需要上位機(jī)實(shí)現(xiàn)系統(tǒng)調(diào)試及現(xiàn)場數(shù)據(jù)的采集和控制。一般是通過上位機(jī)本身配置的串口,通過串行通信技術(shù)和嵌入式系統(tǒng)進(jìn)行通信。
通用串口模塊是TI微處理器特有的設(shè)計(jì),它在一個(gè)串口硬件模塊中支持多個(gè)串口通信協(xié)議。TI的MSP430系列的通用串口模塊支持的串口協(xié)議有UART、SPI、I2C總線協(xié)議。根據(jù)不同的寄存器配置,通用串口通信模塊可以配置為上述的任意的一個(gè)串口,具有極大的靈活性,特別是對(duì)于小引腳數(shù)的單片機(jī),通過引腳復(fù)用大大地增強(qiáng)了單片機(jī)的功能。
2.4.1通用串口——UART模式
異步通信字符格式由4部分組成:起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位。其中,用戶可以通過軟件設(shè)置數(shù)據(jù)位、停止位的位數(shù),還可以設(shè)置奇偶位的有無。通過選擇時(shí)鐘源的波特率寄存器的數(shù)據(jù)來確定位周期。
串行操作自動(dòng)錯(cuò)誤檢測:USART模塊接收字符時(shí),能夠自動(dòng)進(jìn)行校驗(yàn)錯(cuò)誤、幀錯(cuò)誤、溢出錯(cuò)誤和打斷狀態(tài)檢測。
在異步通信中,波特率是很重要的指標(biāo),表示為每秒傳送二進(jìn)制數(shù)碼的位數(shù)。波特率反映了異步串行通信的速度。波特率發(fā)生器產(chǎn)生同步信號(hào)表明各位的位置。波特率部分由時(shí)鐘輸入選擇、分頻、波特率發(fā)生器、調(diào)整器和波特率寄存器組成。串行通信時(shí),數(shù)據(jù)接收和發(fā)送的速率就由這些構(gòu)件控制。
2.4.2通用串口——I2C模式
(1)I2C總線位傳輸
由于連接到I2C總線的器件有不同種類的工藝(CMOS、NMOS、雙極性),邏輯0(低)和1(高)的電平不是固定的,它由VDD的相關(guān)電平?jīng)Q定,每傳輸一個(gè)數(shù)據(jù)位就產(chǎn)生一個(gè)時(shí)鐘脈沖。
I2C總線模式支持任何從模式或主模式下的I2C總線兼容設(shè)備。每個(gè)I2C總線設(shè)備都有唯一的地址可供識(shí)別,并可以隨意作為發(fā)送端或接收端對(duì)其操作。當(dāng)進(jìn)行數(shù)據(jù)傳輸時(shí),I2C總線總線上的設(shè)備可以被視為主設(shè)備或者是從設(shè)備。主設(shè)備開始數(shù)據(jù)發(fā)送并產(chǎn)生時(shí)鐘信號(hào)SCL,任何一個(gè)能被主設(shè)備尋址到的設(shè)備都可視為一個(gè)從設(shè)備。
I2C總線數(shù)據(jù)通過串行數(shù)據(jù)線(SDA)和串行時(shí)鐘線(SCL)進(jìn)行傳輸,SDA和SCL均為雙向,它們必須通過一個(gè)上拉電阻連接到供電電源的正極。
(2)I2C總線的串行數(shù)據(jù)
每傳輸一個(gè)數(shù)據(jù)位,主設(shè)備都會(huì)產(chǎn)生一個(gè)時(shí)鐘脈沖。I2C總線模式下進(jìn)行的是字節(jié)操作,每個(gè)起始位發(fā)出之后的第一個(gè)字節(jié)包含有7位從地址和一個(gè)R/W位。當(dāng)R/W=0時(shí),主設(shè)備向從設(shè)備發(fā)送數(shù)據(jù);當(dāng)R/W=1時(shí),主設(shè)備從從設(shè)備接收數(shù)據(jù)。應(yīng)答位ACK是接收方對(duì)應(yīng)第9個(gè)SCL時(shí)鐘發(fā)出的握手信號(hào)。START起始條件和STOP停止條件都是由主設(shè)備產(chǎn)生。在SCL為高時(shí),將SDA由高跳變至低,產(chǎn)生一個(gè)START起始條件。在SCL為高時(shí),將SDA由低跳變至高,產(chǎn)生一個(gè)STOP停止條件??偩€忙位UCBBUSY在START出現(xiàn)后置位,在STOP出現(xiàn)后清零。
(3)I2C總線尋址方式
I2C總線模式下支持7位和10位尋址方式。
7位尋址的格式如圖2所示,第一個(gè)字節(jié)包括7位從地址和一個(gè)R/W讀寫控制位。應(yīng)答位ACK是接收方在每個(gè)字節(jié)后發(fā)出的握手信號(hào)。
10位尋址的格式如圖3所示,第一個(gè)字節(jié)由11110b加上10位從地址的高兩位和R/W位構(gòu)成。每個(gè)字節(jié)結(jié)束后,由接收方發(fā)送ACK應(yīng)答信號(hào)。下一個(gè)字節(jié)是10位從地址剩下的8位數(shù)據(jù),在這之后是ACK應(yīng)答信號(hào)和8位數(shù)據(jù)。
主設(shè)備可以在不停止當(dāng)前傳輸狀態(tài)的情況下,通過再次發(fā)送一個(gè)起始位來改變SDA上數(shù)據(jù)流的傳輸方向,這被稱為“再次起始”。再次起始位產(chǎn)生后,從設(shè)備的地址和標(biāo)示數(shù)據(jù)流方向的R/W位需要重新發(fā)送。再次起始條件格式如圖4所示。
(4)I2C總線模式下的操作方式
在I2C總線模式下USCI模塊可以工作在主發(fā)送模式、主接收模式、從發(fā)送模式或者從接收模式。
主設(shè)備模式:選擇I2C總線模式的同時(shí)設(shè)置UCMODEx=11,USCYNC=1,并置位UCMST位可以使USCI模塊工作在I2C總線主模式。當(dāng)主模塊是一個(gè)多主設(shè)系統(tǒng)的一部分時(shí),必須對(duì)UCMM置位,并通過編程將其本機(jī)地址寫入寄存器UCBxI2COA中。當(dāng)UCA10=0時(shí),選擇7位尋址模式。當(dāng)UCA10=1時(shí),選擇10位尋址模式。若要響應(yīng)廣播,則可以置位UCGCEN位。
從設(shè)備模式:選擇I2C總線模式的同時(shí)設(shè)置UCMODEx=11,USCYNC=1,并清零UCMST位可以使USCI模塊工作在I2C總線從模式。
2.4.3通用串口——SPI模式
在同步模式下,USCI通過3個(gè)或者4個(gè)引腳把MSP430連接到一個(gè)外部系統(tǒng)中,這些引腳分別是:UCxSIMO、UCxSOMI、UCxCLK和UCxSTE。選擇SPI模式有兩種情況:當(dāng)“同步位”時(shí)置“1”;根據(jù)UC模式的位來選擇。
4線的SPI主模式為控制本主機(jī)。當(dāng)UCxSTE處于主模式不工作的狀態(tài)中:
①UCxSIMO和UCxCLK被置“1”,用來輸入信號(hào),并且不再驅(qū)動(dòng)總線。
②出錯(cuò)位UCFE被置“1”,用來報(bào)告通信整體性的錯(cuò)誤需要用戶處理。
③內(nèi)部的狀態(tài)為機(jī)器復(fù)位,移位工作被終止。
4線的SPI從模式為在4引腳的SPI從模式下,UCxSTE被從模式用來使發(fā)送和接收處于工作狀態(tài)。當(dāng)UCxSTE處于從模式活動(dòng)狀態(tài)時(shí),從動(dòng)器件處于正常工作的狀態(tài)。
當(dāng)UCxSTE處于停止?fàn)顟B(tài)時(shí):
①任何在UCxSIMO口進(jìn)行中的接收工作將會(huì)停止;
②UCxSOMI被置于輸入的方向;
③移位工作也會(huì)停止,一直到UCxSTE過渡到從模式下的活動(dòng)狀態(tài)。
這種UCxSTE輸入信號(hào)的功能不用于3引腳的模式當(dāng)中。
2.4.4D/A轉(zhuǎn)換模塊的設(shè)計(jì)
特定型號(hào)的MSP430F5504芯片帶有內(nèi)置D/A轉(zhuǎn)換器,但MSP430F5504不帶有內(nèi)置D/A轉(zhuǎn)換器,而增加外部D/A轉(zhuǎn)換器將增加了電路的復(fù)雜性。一般的條件下,只要求某一幅度的直流電壓值同,所以采用低成本的PWM加外置無源器件來實(shí)現(xiàn)D/A轉(zhuǎn)換器的功能。
PWM技術(shù)是一種對(duì)模擬信號(hào)電平的數(shù)字編碼方法,通過使用高分辨率計(jì)數(shù)器(調(diào)制頻率)調(diào)制方波的占空比,實(shí)現(xiàn)對(duì)一個(gè)模擬信號(hào)的電平進(jìn)行編碼。其最大的優(yōu)點(diǎn)是,從處理器到被控對(duì)象之間的所有信號(hào)都是數(shù)字形式的,無需再進(jìn)行數(shù)模轉(zhuǎn)換過程;而且對(duì)噪聲的抗干擾能力也大大增強(qiáng)(噪聲只有在強(qiáng)到足以將邏輯值改變時(shí),才可能對(duì)數(shù)字信號(hào)產(chǎn)生實(shí)質(zhì)的影響),這也是PWM在通信等信號(hào)傳輸行業(yè)得到大量應(yīng)用的主要原因。
通過調(diào)節(jié)PWM的占空比,可以產(chǎn)生等效幅度的電壓,再通過低通濾波器產(chǎn)生相應(yīng)的模擬輸出。
在信號(hào)接收端,需將信號(hào)解調(diào)還原為模擬信號(hào),目前在很多微型處理器內(nèi)部都包含有PWM控制器模塊。
2.4.5LED輸出指示電路
有時(shí)為了電路調(diào)試方便,將引腳的狀態(tài)通過LED燈來進(jìn)行指示,也可以作為簡單的測試使用,連接一個(gè)I/O口,并與LED和一個(gè)1kΩ電阻串聯(lián)組成該電路。
2.4.6按鍵輸入電路
通過按鍵來模擬用戶的有效UI接口,把I/O引腳上拉到DVCC3.3數(shù)字電源,當(dāng)有按鍵按下時(shí)把I/O口狀態(tài)拉低。
2.4.7電源指示電路
當(dāng)電源接通時(shí)給用戶一個(gè)提示,這有利于改善用戶的使用感受,給用戶一個(gè)反饋,表明電源是否正確連接。
當(dāng)在低功耗模式下,或用戶已不需要電源指示功能時(shí),可以通過去除跳帽來減少系統(tǒng)的功耗。
2.4.8電源隔離電路
高速的I/O口操作和I/O的上拉下拉,都會(huì)使系統(tǒng)的數(shù)字電源產(chǎn)生尖峰電流脈沖,這對(duì)系統(tǒng)的正常工作有很大影響。如果這些噪聲引入系統(tǒng)的模擬設(shè)備,將影響系統(tǒng)的模擬外設(shè)。所以,對(duì)系統(tǒng)的數(shù)字電源和模擬電源進(jìn)行隔離是非常必要的。
在系統(tǒng)的模擬電源AVCC33和數(shù)字電源DVCC33之間接入一個(gè)磁珠,能有效地提高系統(tǒng)的穩(wěn)定性,保證系統(tǒng)的正常工作。數(shù)字地和模塊之間通過0Ω電阻相連,也能有效地減小系統(tǒng)的干擾。
2.5程序下載電路設(shè)計(jì)
MSP430F5504可以通過多種接口對(duì)程序進(jìn)行下載,通過JTAG和SBW接口不僅可以對(duì)程序進(jìn)行調(diào)試和下載,而且還能夠在調(diào)試完畢后通過一定的指令燒斷保密熔絲,使調(diào)試接口自毀。自毀后JTAG或SBW接口失效,再也無法通過它讀取內(nèi)部代碼,避免代碼被他人讀取或復(fù)制,從而保護(hù)知識(shí)產(chǎn)權(quán)。
在設(shè)計(jì)階段和原理樣機(jī)階段,要對(duì)程序不斷進(jìn)行編寫、修改、仿真和調(diào)試,只需要JTAG和SBW接口,不進(jìn)行燒熔絲操作。一旦產(chǎn)品定型,在發(fā)布和量產(chǎn)階段,不再需要調(diào)試程序,只需要燒寫代碼;如果要燒毀熔絲,則要保留BSL接口。
2.6電源電路設(shè)計(jì)
本系統(tǒng)可以通過單枚紐扣電池供電,也可以通過USB接口供電。
結(jié)語
MSP430F5504是混合信號(hào)處理器的一種,獨(dú)特的設(shè)計(jì)和架構(gòu)給用戶很大的靈活性,并帶來超低的功耗和強(qiáng)大的處理能力?,F(xiàn)在已經(jīng)廣泛用于各種領(lǐng)域,如聯(lián)網(wǎng)式氣表、便攜式測量儀器、醫(yī)療器械等。設(shè)計(jì)制作高性能、低成本MSP430系列開發(fā)板可以加快產(chǎn)品的開發(fā)速度,減短產(chǎn)品的上市時(shí)間,加大前端應(yīng)用的普及性。因此,設(shè)計(jì)一款方便、穩(wěn)定、可靠的開發(fā)板也就顯得比較有意義。
來源:桂林電子科技大學(xué)信息科技學(xué)院朱震