纯软件做的stc11f04e芯片spwm
母线加载15V的spwm启动波形,由于是纯软件的,加入死区后工频频率要有些下降,打算提升晶振频率重新计算一遍sin表
ARM CM3的cpu正在学习当中,打算先利用ARM的速度跑一个纯软件的SPWM+推挽,看看双闭环能不能做到。
ARM刚进入的时候确实坑爹!比51要麻烦,不过价格好像差别不大几块钱的也有,就是仿真口比较坑爹比CPU还大,集成在微逆变里面仿真口是个累赘。
使用函数库,ARM还是多容易的,边写的时候边拿PDF对照,看着库函数写
目前对gpio口的操作基本都是通过位定义来操作的,等以后熟悉了再封装成库,每种开发板和资料都会有自己的库,很乱。 接下来要把定时器和中断吃下来,这样stc的代码就可以移植过来了。 48脚的stm比20脚的stc小,可以节省一点pcb面积。 stm的io口分辨率是stc无法比拟的,如果是16k的载频正弦波,每脉宽的颗粒估计可达到3千个,stc用定时器只能达到128个在24m晶振。
stm碰到了扯淡和死机,希望是我技术不行,stc的查表加上调制比计算移植stm后才运行2-3个共工频周期就死机,运行SIN函数计算好像也不爽,难道是我的两块开发板的电路设计都有问题?
比如程序中只要把M*tab[aa];这条语句去掉就不死机了,只要加入这个语句就运行两个工频周期就完蛋。
检查数据溢出吧,32为的int类型用来中间计算不错32位的,用8位机来算32位的乘法太慢了
对计算结果要判断是不是超越了pwm的周期值