在论坛上看到越来越多的地方在讨论用单片机直接输出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,这仅是我一点单纯的思路,希望大家积极发表意见,特别是如果我的想法有不对的地方,