• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

算是找到门道了,spwm软启动波形

纯软件做的stc11f04e芯片spwm

母线加载15V的spwm启动波形,由于是纯软件的,加入死区后工频频率要有些下降,打算提升晶振频率重新计算一遍sin表

ARM CM3的cpu正在学习当中,打算先利用ARM的速度跑一个纯软件的SPWM+推挽,看看双闭环能不能做到。

ARM刚进入的时候确实坑爹!比51要麻烦,不过价格好像差别不大几块钱的也有,就是仿真口比较坑爹比CPU还大,集成在微逆变里面仿真口是个累赘。

 

全部回复(11)
正序查看
倒序查看
2013-03-15 10:13

使用函数库,ARM还是多容易的,边写的时候边拿PDF对照,看着库函数写

0
回复
hnzkwz
LV.7
3
2013-03-15 12:39
加油楼主~
0
回复
2013-03-16 10:03
@重庆酱油仔
使用函数库,ARM还是多容易的,边写的时候边拿PDF对照,看着库函数写
后面重点学习stc+cpld和stm+cpld,感觉这几个个芯片联合可以解决数控电源大部分问题,成本,功能,性能
0
回复
2013-03-18 15:45
@重庆酱油仔
使用函数库,ARM还是多容易的,边写的时候边拿PDF对照,看着库函数写
学习arm一定要像学stc一样学,如果要跟别人一样去玩库会被整死的。
0
回复
2013-03-19 09:31
@westkinger
学习arm一定要像学stc一样学,如果要跟别人一样去玩库会被整死的。

目前对gpio口的操作基本都是通过位定义来操作的,等以后熟悉了再封装成库,每种开发板和资料都会有自己的库,很乱。

接下来要把定时器和中断吃下来,这样stc的代码就可以移植过来了。

48脚的stm比20脚的stc小,可以节省一点pcb面积。

stm的io口分辨率是stc无法比拟的,如果是16k的载频正弦波,每脉宽的颗粒估计可达到3千个,stc用定时器只能达到128个在24m晶振。

0
回复
2013-03-19 10:06
@westkinger
目前对gpio口的操作基本都是通过位定义来操作的,等以后熟悉了再封装成库,每种开发板和资料都会有自己的库,很乱。接下来要把定时器和中断吃下来,这样stc的代码就可以移植过来了。48脚的stm比20脚的stc小,可以节省一点pcb面积。stm的io口分辨率是stc无法比拟的,如果是16k的载频正弦波,每脉宽的颗粒估计可达到3千个,stc用定时器只能达到128个在24m晶振。
恭喜,32为的内部定时器相当强大,用过就知道了,ad的效果也好得多
0
回复
2013-03-19 21:25
@westkinger
目前对gpio口的操作基本都是通过位定义来操作的,等以后熟悉了再封装成库,每种开发板和资料都会有自己的库,很乱。接下来要把定时器和中断吃下来,这样stc的代码就可以移植过来了。48脚的stm比20脚的stc小,可以节省一点pcb面积。stm的io口分辨率是stc无法比拟的,如果是16k的载频正弦波,每脉宽的颗粒估计可达到3千个,stc用定时器只能达到128个在24m晶振。

stm碰到了扯淡和死机,希望是我技术不行,stc的查表加上调制比计算移植stm后才运行2-3个共工频周期就死机,运行SIN函数计算好像也不爽,难道是我的两块开发板的电路设计都有问题?

比如程序中只要把M*tab[aa];这条语句去掉就不死机了,只要加入这个语句就运行两个工频周期就完蛋。

0
回复
2013-03-20 09:31
@westkinger
stm碰到了扯淡和死机,希望是我技术不行,stc的查表加上调制比计算移植stm后才运行2-3个共工频周期就死机,运行SIN函数计算好像也不爽,难道是我的两块开发板的电路设计都有问题?比如程序中只要把M*tab[aa];这条语句去掉就不死机了,只要加入这个语句就运行两个工频周期就完蛋。

检查数据溢出吧,32为的int类型用来中间计算不错32位的,用8位机来算32位的乘法太慢了

对计算结果要判断是不是超越了pwm的周期值

0
回复
wangshujun
LV.8
10
2013-03-20 09:32
@westkinger
stm碰到了扯淡和死机,希望是我技术不行,stc的查表加上调制比计算移植stm后才运行2-3个共工频周期就死机,运行SIN函数计算好像也不爽,难道是我的两块开发板的电路设计都有问题?比如程序中只要把M*tab[aa];这条语句去掉就不死机了,只要加入这个语句就运行两个工频周期就完蛋。
不要怀疑单片机,即使stc通常最多是算不过来,算错的可能性也很小的
0
回复
westkinger
LV.4
11
2013-03-20 13:11
@wangshujun
检查数据溢出吧,32为的int类型用来中间计算不错32位的,用8位机来算32位的乘法太慢了对计算结果要判断是不是超越了pwm的周期值
好的
0
回复
westkinger
LV.4
12
2013-03-20 15:14
@wangshujun
不要怀疑单片机,即使stc通常最多是算不过来,算错的可能性也很小的
确实是溢出了,原来aa++后面的复位变量名称写错了,结果就一直加吧单片机给加死了,不过这倒是测试看门狗的好办法。
0
回复