STC单片机 PWM。

用STC12系列的单片机,有4路PCA实现PWM功能,程序上如何实现其中的两路PWM互补?反相器就不用了,因为硬件已搭好。

STC目前的单片机的pwm都是边沿对齐的,无法实现死区功能,做互补pwm没有太大意义。如果非要互补,还真就用反相器好处理,至少软件不用去重复置2次值。
除了STC的单片机,能做互补PWM 输出的单片机还有很多,英飞凌的XC8xx系列(51内核),PIC的,新唐的mini51系列的有很多,不必一棵树上吊死。追问

回答的挺不错!如果采用反相器,是不是可以实现严格意义上的互补呢?就是说不用再考虑死区时间的问题?我做的互补PWM,是要防止这2路PWM同时导通。

追答

边沿对齐的PWM即使用反相器,也不能达到你的要求。我提反相器主要是针对程序而言,不用去写互补的两个变量,比较简单省事。你既然要做防止同时导通的互补PWM,可以采用带死区保护的驱动器,比如像IR2103这类的半桥MOS驱动,本身带几百纳秒的死区,能满足一般的应用要求。因为是硬件固定的,所以死区时间无法调节。如果几百纳秒的固定死区时间不能满足你的要求,那么最好是采用带互补PWM的单片机,比如前面我提到的那几类单片机,它们的PWM死区时间可以通过编程调节。

追问

我单片型号确定了,MOS管型号也确定了。单片机不带互补PWM,MOS管也不自带死区。不过还是谢谢你。现在我打算1路用PCA实现PWM信号,互补的PWM信号采用中断使用另外的IO口去实现。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-10
很想帮你,但是没做过,只坐过3路PWM输出的驱动无刷电机的~~
第2个回答  2013-09-10
PCA没用过
不过单就PWM的话,用定时器模拟就行了,很方便,可控性也好些.
相似回答