基于MSP430 Timer_B的D/A轉(zhuǎn)換
摘 要:本文分析了利用MSP430的Timer_B在比較模式下輸出的脈寬調(diào)制(PWM)波,來實(shí)現(xiàn)D/A轉(zhuǎn)換的工作原理。介紹了利用MSP430F449的Timer_B的PWM輸出產(chǎn)生正弦波和直流電平的方法,并給出了對(duì)應(yīng)的硬件電路和C語(yǔ)言源程序。
關(guān)鍵詞:MSP430F449;脈寬調(diào)制;D/A轉(zhuǎn)換
D/A Conversion Based on MSP430 Timer_B
Abstract:This paper analyses the principle of utilizing the PWM to realize D/A when the MSP430 Timer_B is working in compare mode. It describes the method of using the PWM of MSP449F449's Timer_B to create a sine wave and a DC level. At last, it gives the corresponding hardware circuit and C language program.
Key words: MSP430F449; PWM; D/A conversion
1.簡(jiǎn)介
1.1 MSP430單片機(jī)介紹 雖然目前在國(guó)內(nèi)市場(chǎng)上應(yīng)用較多的單片機(jī)仍然是8位單片機(jī),但是由美國(guó)德州儀器(TI)公司推出的16位單片機(jī)MSP430具有處理能力強(qiáng)、運(yùn)行速度快、低功耗、指令簡(jiǎn)單等優(yōu)點(diǎn)。并采用了JTAG技術(shù)、FLASH在線編程技術(shù)、BOOTSTRAP等諸多先進(jìn)技術(shù),因此具有很高的性價(jià)比,在歐洲市場(chǎng)已得到了非常廣泛的應(yīng)用。雖然MSP430進(jìn)入國(guó)內(nèi)市場(chǎng)的時(shí)間不是很長(zhǎng),但是因其具有以上所述的卓越品質(zhì),一進(jìn)入國(guó)內(nèi)市場(chǎng)就被眾多電子工程師所青睞。其中MSP430F449具有7個(gè)工作模式可選8、10、12、16的16位計(jì)數(shù)器。用其比較模式產(chǎn)生的PWM可以實(shí)現(xiàn)D/A轉(zhuǎn)換(D/A conversion)。
1.2 PWM D/A簡(jiǎn)介 很多嵌入式的微控制器(microcontroller)應(yīng)用都需要產(chǎn)生模擬信號(hào)。這種情況下往往是采用集成的或者是分立的數(shù)模轉(zhuǎn)換器DAC(digital-to-analog converter)來實(shí)現(xiàn)。但是采用脈寬調(diào)制PWM(pulse-width modulated)信號(hào)來實(shí)現(xiàn)D/A轉(zhuǎn)換(簡(jiǎn)寫為PWM D/A)也是一種常用的方法??梢杂肞WM信號(hào)產(chǎn)生所需的直流或交流信號(hào)。這篇文章以MSP430F449的Timer_B輸出的PWM為例來產(chǎn)生一個(gè)200Hz的正弦波和一個(gè)0.5VCC的直流電平。實(shí)際上類似的方法可以用于Timer_A以及MSP430其它型號(hào)的單片機(jī)。
2. 用PWM實(shí)現(xiàn)DAC的原理
2.1 基本原理 PWM信號(hào)是一種具有固定周期(T)不定占空比( )的數(shù)字信號(hào),如圖1所示。如果PWM信號(hào)的占空比隨時(shí)間變化,那么通過濾波之后的輸出信號(hào)將是幅度變化的模擬信號(hào)。因此通過控制PWM信號(hào)的占空比,就可以產(chǎn)生不同的模擬信號(hào)。在MSP430F449中就是采用CCR0來控制周期T,而用與定時(shí)器對(duì)應(yīng)的CCRx寄存器來控制可變占空比 ,進(jìn)而實(shí)現(xiàn)D/A轉(zhuǎn)換。
2.2 分辨率
基于Timer_B PWM的DAC分辨率就等于計(jì)數(shù)器的長(zhǎng)度,通常是CCR0寄存器的值。PWM DAC的最低有效位是一個(gè)計(jì)數(shù)值,分辨率是總的計(jì)數(shù)值。
Rcounts = Lcounts
其中Rcounts是以計(jì)數(shù)值為單位的分辨率,Lcounts是計(jì)數(shù)器的總計(jì)數(shù)值。例如對(duì)8-bit DAC,計(jì)數(shù)器的長(zhǎng)度為8 bits,或者256個(gè)計(jì)數(shù)值。那么分辨率也就是8 bits,或者256。
更一般的情況下,基于PWM定時(shí)器和濾波器的PWM DAC的分辨率等于產(chǎn)生模擬信號(hào)的PWM信號(hào)的分辨率。PWM信號(hào)的分辨率決定于計(jì)數(shù)器的長(zhǎng)度和PWM計(jì)數(shù)器能夠?qū)崿F(xiàn)的最小占空比。用數(shù)學(xué)表達(dá)式如下:
Rcounts=,其中 = Lcounts,C是最小占空比。
比特分辨率用下式計(jì)算:
如果PWM計(jì)數(shù)器的長(zhǎng)度為512個(gè)計(jì)數(shù)值,最小的占空比為2個(gè)計(jì)數(shù)值,那么PWM DAC的分辨率就為: ,或者以比特表示: 。
2.3 系統(tǒng)頻率 PWM 信號(hào)需要的輸出頻率等于DAC的更新頻率,因?yàn)镻WM信號(hào)占空比的每一次變化等效于一次DAC抽樣。PWM 定時(shí)器所需的頻率取決于PWM信號(hào)頻率和所需的分辨率。如下所示:
在這兒, 是所需的PWM定時(shí)器頻率, 是PWM信號(hào)的頻率,也就是DAC的更新頻率,n 是所需的比特分辨率。下文即將描述怎樣采用8-bit PWM DAC來同步產(chǎn)生一個(gè)200Hz的正弦波。由抽樣定理可得,最低的抽樣頻率應(yīng)該為400Hz。但是通常情況下,PWM信號(hào)的頻率要遠(yuǎn)高于Nyquist抽樣速率。這是因?yàn)镻WM信號(hào)的頻率越高,對(duì)濾波器的階數(shù)就要求越低,合適的濾波器越容易實(shí)現(xiàn)。通常抽樣速率取Nyquist速率的16或者32倍。
2.4 所需的MSP430資源 文中的例子是用MSP430F449的Timer_B再加外部濾波器來產(chǎn)生一個(gè)200Hz的正弦波和一個(gè)0.5VCC的直流電平的。將Timer_B配置為16-bit、up模式。在這種模式下計(jì)數(shù)器計(jì)數(shù)至CCR0,然后復(fù)位從0開始重新計(jì)數(shù)。給CCR0賦值255也就意味著計(jì)數(shù)器的長(zhǎng)度為8bits。CCR1和TB1用于產(chǎn)生正弦波,CCR2和TB2用于產(chǎn)生直流電平。輸出模式都選為模式7,即PWM復(fù)位/置位模式。如圖2所示,在這種模式下,復(fù)位后每一個(gè)定時(shí)器的輸出都為高電平,直到計(jì)數(shù)器達(dá)到各自的CCRx值時(shí)變?yōu)榈碗娖?,?dāng)計(jì)數(shù)器達(dá)到CCR0時(shí)再置位。也就是說CCRx的值決定了各自正脈沖的寬帶。若CCRx的值是變化的,就可以產(chǎn)生可變寬度的脈沖,下文中的正弦波就是用這種辦法產(chǎn)生的;若不變則產(chǎn)生的是固定寬度的脈沖,下文中的直流電平就是這樣產(chǎn)生的。最后SMCLK用作Timer_B的時(shí)鐘源。系統(tǒng)采用32768Hz的鐘表晶振,通過采用內(nèi)部硬件鎖頻環(huán)FLL(frequency-locked-loop),來校準(zhǔn)DCO(Digital Control Oscillator)頻率為系統(tǒng)提供MCLK/SMCLK時(shí)鐘。
3. 實(shí)現(xiàn)電路 用Timer_B PWM實(shí)現(xiàn)DAC外圍電路比較簡(jiǎn)單,如圖3所示。實(shí)際上外圍電路就是晶振電路和RC低通濾波器。
3.1 正弦信號(hào)的產(chǎn)生 在這個(gè)例子中,一個(gè)正弦波用32個(gè)抽樣值生成。正弦波的頻率為200Hz,所以每秒要抽樣200
低通濾波器相關(guān)文章:低通濾波器原理
塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
評(píng)論