在論壇上看到越來越多的地方在討論用單片機直接輸出SPWM波形的話題,但大多數都是在爭論單片機能否實現的問題,就我最近在網上查找的一些單片機的資料,有一些增強型的單片機應該是可以的,如:
菲利浦的p89lpc938,輸出PWM最高32M,晶振最高18M,指令執行時間2至4個時鐘周期。我目前所用
c80051F系列,單周期指令執行,最高可達100MIPS(據宣傳)。輸出I/O可編程。功能強大。
還有在論壇上常看見的Si8250好像也不錯。
雖然在這里列出了幾款單片機,我希望在下面的帖子就不要再討論有關單片機硬件的問題。
希望大家多多討論SPWM的算法,以及用單片機實現的控制過程
我現在僅對規則采樣法了解一點,公式如下:
脈寬=aTcsin(wTd) Tc為載波頻率,a為調制度,w為正弦波角頻率, Td為脈沖所在的時間。這個公式算出的結果用兩個IO輸出,當一個IO輸出一個半波的PWM時,此時另一個輸出為無效電平。
我用單片機實現這個公式的想法:
用查表的方法。把0.5Tcsin(wTd)算出做一個表格,用一個八位的A/D來采樣輸出電壓的變化,計算后得到a值,再根據下面的式子算出實際的脈寬:0.5aTcsin(wTd)/128,這僅是我一點單純的思路,希望大家積極發表意見,特別是如果我的想法有不對的地方,