根據(jù)PWM((脈寬調制(PWM:(Pulse Width ModulaTION)是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的模式))的特點,,在使用ATmega128的定時/計數(shù)器設計輸出PWM時應注意以下幾點:
1.首先應根據(jù)實際的情況,確定需要輸出的PWM頻率范圍,,這個頻率與控制的對象有關,。如輸出PWM波用于控制燈的亮度,由于人眼不能分辨42Hz以上的頻率,,所以PWM的頻率應高于42Hz,,否則人眼會察覺到燈的閃爍。
2.快速PWM可以的到比較高頻率的PWM輸出,,但占空比的調節(jié)精度稍微差一些,。此時計數(shù)器僅工作在單程正向計數(shù)方式,計數(shù)器的上限值決定PWM的頻率,,而比較匹配寄存器的值決定了占空比的大小,。PWM頻率的計算公式為:
3.然后根據(jù)需要PWM的頻率范圍確定ATmega128(是ATMEL公司的 8位系列單片機的最高配置的一款單片機,應用極其廣泛)定時/計數(shù)器的PWM工作方式,。AVR定時/計數(shù)器的PWM模式可以分成快速PWM和頻率(相位)調整PWM兩大類,。
PWM頻率 = 系統(tǒng)時鐘頻率/(分頻系數(shù)*(1+計數(shù)器上限值)) AVR單片機是1997年由Atmel公司研發(fā)出的增強型內置Flash的RISC(Reduced 根據(jù)PWM((脈寬調制(PWM:(PULSE Width Modulation)是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的模式))的特點,在使用ATmega128的定時/計數(shù)器設計輸出PWM時應注意以下幾點:
1.首先應根據(jù)實際的情況,,確定需要輸出的PWM頻率范圍,,這個頻率與控制的對象有關。如輸出PWM波用于控制燈的亮度,,由于人眼不能分辨42Hz以上的頻率,,所以PWM的頻率應高于42Hz,否則人眼會察覺到燈的閃爍。
2.快速PWM可以的到比較高頻率的PWM輸出,,但占空比的調節(jié)精度稍微差一些,。此時計數(shù)器僅工作在單程正向計數(shù)方式,計數(shù)器的上限值決定PWM的頻率,,而比較匹配寄存器的值決定了占空比的大小,。PWM頻率的計算公式為:
3.然后根據(jù)需要PWM的頻率范圍確定ATmega128(是Atmel公司的 8位系列單片機的最高配置的一款單片機,應用極其廣泛)定時/計數(shù)器的PWM工作方式,。AVR定時/計數(shù)器的PWM模式可以分成快速PWM和頻率(相位)調整PWM兩大類,。
PWM頻率 = 系統(tǒng)時鐘頻率/(分頻系數(shù)*(1+計數(shù)器上限值)) AVR單片機是1997年由ATMEL公司研發(fā)出的增強型內置Flash的RISC(Reduced InSTruction Set CPU) 精簡指令集高速8位單片機。
4.頻率(相位)調整PWM模式的占空比調節(jié)精度高,,但輸出頻率比較低,,因為此時計數(shù)器僅工作在雙向計數(shù)方式。同樣計數(shù)器的上限值決定了PWM的頻率,,比較匹配寄存器的值決定了占空比的大小,。PWM頻率的計算公式為:
PWM頻率 = 系統(tǒng)時鐘頻率/(分頻系數(shù)*2*計數(shù)器上限值))
5.快速PWM模式適合要求輸出PWM頻率較高,但頻率固定,,占空比調節(jié)精度要求不高的應用,。
6.相位調整PWM模式適合要求輸出PWM頻率較低,但頻率固定,,占空比調節(jié)精度要求高的應用,。當調整占空比時,PWM的相位也相應的跟著變化(PhaseCorrect),。
7.在PWM方式中,,計數(shù)器的上限值有固定的0xFF(8位T/C);0xFF,、0x1FF,、0x3FF(16位T/C)。
8.頻率和相位調整PWM模式適合要求輸出PWM頻率較低,,輸出頻率需要變化,,占空比調節(jié)精度要求高的應用。此時應注意:不僅調整占空比時,,PWM的相位會相應的跟著變化,;而一但改變計數(shù)器上限值,即改變PWM的輸出頻率時,,
會使PWM的占空比和相位都相應的跟著變化(Phase and Frequency Correct),。
二、 PWM應用設計參考
PWM模式可以分成快速PPWM是一種對模擬信號電平進行數(shù)字編碼的方法,。通過高分辨率計數(shù)器的使用,,方波的占空比被調制用來對一個具體模擬信號的電平進行編碼。PWM信號仍然是數(shù)字的,因為在給定的任何時刻,,滿幅值的直流供電要么完全有(ON),,要么完全無(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復脈沖序列被加到模擬負載上去的,。通的時候即是直流供電被加到負載上的時候,斷的時候即是供電被斷開的時候,。只要帶寬足夠,,任何模擬值都可以使用PWM進行編碼。WM和頻率(相位)調整PWM兩大類,。
* 設置提供調制方波的片上定時器/計數(shù)器的周期
* 在PWM控制寄存器中設置接通時間
* 設置PWM輸出的方向,,這個輸出是一個通用I/O管腳
* 啟動定時器
* 使能PWM控制器PWM模式可以分成快速PWM和頻率(相位)調整PWM兩大類。
下面在示例中使用PWM方式來產生一個1KHz左右的正弦波,,幅度為0-Vcc/2,。
首先按照下面的公式建立一個正弦波樣本表,樣本表將一個正弦波周期分為128個點,,每點按7位量化(127對應最高幅值Vcc/2):
f(x) = 64 + 63 * sin(2πx/180) x∈[0…127]
如果在一個正弦波周期中采用128個樣點,,那么對應1KHz的正弦波PWM的頻率為128KHz。實際上,,按照采樣頻率至少為信號頻率的2倍的取樣定理來計算,,PWM的頻率的理論值為2KHz即可??紤]盡量提高PWM的輸出精度,,實際設計使用PWM的頻率為16KHz。這意味著在128點的正弦波樣本表中,,每隔8點取出一點作為PWM的輸出,。
程序中用的ATmega128的8位T/C0工作模式為相位調整PWM模式輸出,系統(tǒng)時鐘為8MHz,,分頻系數(shù)為1,,其可以產生最高PWM頻率為:
8000000Hz / 510 =
15686Hz。每16次輸出構成一個周期正弦波,,正弦波的頻率為980.4Hz,。PWM由OC0(PB4)引腳輸出。參考程序如下(ICCAVR),。
//ICC-AVR application builder : 2004-08
// Target : M128
// Crystal: 8.0000Mhz
#include 《iom128v.h》
#include 《macros.h》
#pragma data:code
// 128點正弦波樣本表
const unsigned char auc_SinParam[128] = {
64,,67,70,,73,,76,79,82,,85,,88,91,,94,,96,99,,102,,104,106,,109,,111,113,,115,,117,118,,120,,121,
123,,124,,125,126,,126,,127,127,,127,,127,127,,127,,127,126,,126,,125,124,,123,,121,120,,118,,
117,,115,113,,111,,109,106,,104,,102,99,,96,,94,91,,88,85,,82,,79,76,,73,,70,67,,64,,60,57,,54,,51,48,,
45,,42,39,,36,,33,31,,28,,25,23,,21,,18,16,,14,,12,,10,9,,7,,6,4,,3,,2,1,,1,,0,0,,0,,0,0,,0,,0,1,,1,,2,3,,4,,6,
7,,9,,10,12,,14,,16,18,,21,,23,25,,28,,31,33,,36,,39,42,,45,,48,,51,54,,57,,60};
#pragma data:data
unsigned char x_SW = 8,,X_LUT = 0,;
#pragma interrupt_handler timer0_ovf_isr:17
void timer0_ovf_isr(void)
{
X_LUT += x_SW; // 新樣點指針
if (X_LUT> 127) X_LUT -= 128,; // 樣點指針調整
OCR0 = auc_SinParam[X_LUT],; // 取樣點指針到比較匹配寄存器
}
void main(void)
{
DDRB |= 0x10; // PB4(OC0)輸出
TCCR0 = 0x71,; // 相位調整PWM模式,,分頻系數(shù)=1,正向控制OC0
TIMSK = 0x01,; // T/C0溢出中斷允許
SEI(),; // 使能全局中斷
while(1)
{……};
}
每次計數(shù)器溢出中斷的服務中取出一個正弦波的樣點值到比較匹配寄存器中,,用于調整下一個PWM的脈沖寬度,這樣在PB4引腳上輸出了按正弦波調制的PWM方波,。當PB4的輸出通過一個低通濾波器后,,便得到一個980.4Hz的正弦波了。如要得到更精確的1KHz的正弦波,,可使用定時/計數(shù)器T/C1,,選擇工作模式10,設置ICR1=250為計數(shù)器的上限值,。
ATMEL在系統(tǒng)級集成方面所擁有的世界級專業(yè)知識和豐富的經(jīng)驗使其產品可以在現(xiàn)有模塊的基礎上進行開發(fā),,保證最小的開發(fā)延期和風險。憑借業(yè)界最廣泛的知識產權(IP)組合,,Atmel提供電子系統(tǒng)完整的系統(tǒng)解決方案的廠商,。 這使客戶能夠帶領他們與市場的電子產品的體積更小,更聰明,,更符合成本效益比以往任何時候都通用的服務,。 Atmel集成電路的主要集中在消費,工業(yè),,安全,,通信,計算和汽車市場,。在ATMEL公司網(wǎng)站上,,給出了使用一個定時/計數(shù)器實現(xiàn)雙音頻撥號(雙音頻用兩中頻率組合表示一個號碼,。比如你撥7 就是 1230 和 990HZ兩種頻率。5 為1230 和 1100,, 相當與不同的二進制組合,。)