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

准备给stc编一个多任务准os,正在构思三相spwm的编程,使用stc12c5608

stc12c5608ad有6个定时器,如果控制三相6管资源刚刚好够,还是用软件输出spwm,以目前的知识,用软件变频比较简单。

思路迸发,不知道先写哪个好,前一段时间用2051以及后面的20脚系列的stc单片机做出单极性单相spwm,做成后自我贬低一下,感觉这是鸡脑级别的,编出这样的程序一点都不觉得有成就感,双极性的spwm需要用到中断,属于多任务,难度加高了,光编制出双极性spwm并不难,难在调压,所以采用田忌赛马的策略,这个留到以后,等某个时候融汇贯通了这个也许就不是难题了。

这几天研究了三相正弦波以及多任务操作系统,发现这两个东西应该有交集。

所以俺的编程进化路径正在从鸡脑向猪脑进化。路一步一步的走,步子大了容易扯着蛋。

我的理解,spwm,硬件上最关键的就是解决米勒效应和短路保护,剩下的都可交给软件处理。

全部回复(26)
正序查看
倒序查看
as6341534
LV.3
2
2012-08-30 15:30
老夫觉得51核的机子真心不适合跑OS,不如换个主频高高点的32位的单片机来做
0
回复
qita
LV.2
3
2012-08-30 17:27
建议使用Intel 4004  等高端片子做,那样更能体现出楼主的水平了
0
回复
2012-08-30 21:41

今天收到35M hz的有源晶振,STC 最高速度跑起来了,原来那个35MHZ的无源晶振跑不动自动降频。

进度好慢,都是用空余时间研究的。

0
回复
2012-08-30 21:59
@as6341534
老夫觉得51核的机子真心不适合跑OS,不如换个主频高高点的32位的单片机来做
很同意你的意见,不过等有迈不过去的坎了再考虑。
0
回复
2012-08-30 22:34
@qita
建议使用Intel4004 等高端片子做,那样更能体现出楼主的水平了
当作网络日记吧。呵呵!俺是00年的计算机专业的毕业生,后转做硬件,现在估计又要搞软硬件结合,呵呵重拾旧业。俺的水平低于年龄,才工作了十几年,不过从现在到退休还有30年左右要工作,要工作就要学习,要不然会被无数人超越。也许要工作到7-80岁,这个是我对自己的一个预想,活到老学到老。
0
回复
2012-08-30 22:57
@as6341534
老夫觉得51核的机子真心不适合跑OS,不如换个主频高高点的32位的单片机来做
搜到一个800B的准OS,慢慢研究中。stc5608,有8K的闪存,768B的内存,再跑到35M的主频,有可能会接近或超过AVR。
0
回复
IGBT2010
LV.8
8
2012-08-31 14:22
@westkinger
今天收到35Mhz的有源晶振,STC最高速度跑起来了,原来那个35MHZ的无源晶振跑不动自动降频。进度好慢,都是用空余时间研究的。

期待楼主的三相SPWM!!

0
回复
tongyemk
LV.4
9
2012-08-31 20:41
@IGBT2010
期待楼主的三相SPWM!!

期待楼主早日成功

0
回复
westkinger
LV.4
10
2012-09-04 09:59
@westkinger
今天收到35Mhz的有源晶振,STC最高速度跑起来了,原来那个35MHZ的无源晶振跑不动自动降频。进度好慢,都是用空余时间研究的。

三相spwm的思路逐渐清晰,正在整理思路当中,同时也适合于双极性,等我把pca搞熟了,再发一些思路上来。

不需要用os,os不够快,不过os确实有吸引力。

俺已经好长时间没玩游戏了,有时间就玩这些个。

0
回复
IGBT2010
LV.8
11
2012-09-04 10:32
@westkinger
三相spwm的思路逐渐清晰,正在整理思路当中,同时也适合于双极性,等我把pca搞熟了,再发一些思路上来。不需要用os,os不够快,不过os确实有吸引力。俺已经好长时间没玩游戏了,有时间就玩这些个。
呵呵 期待楼主的大作!!!
0
回复
westkinger
LV.4
12
2012-10-10 00:32
@westkinger
三相spwm的思路逐渐清晰,正在整理思路当中,同时也适合于双极性,等我把pca搞熟了,再发一些思路上来。不需要用os,os不够快,不过os确实有吸引力。俺已经好长时间没玩游戏了,有时间就玩这些个。

买了几种STC单片机,用了一个STC89S52搞了三路SPWM输出,不过波形并不好看,三个定时器,三个中断,可能因为89系列是6T的单片机,处理能力太弱,时间争用导致波形差,唉动力不够。

为什么用定时器,因为最初编写单相正弦波的时候,stc 1T的单片机spwm只使用了一个定时器,单相单极性正弦波非常好编写,波形非常漂亮,编程方式非常多,V/F变频非常方便,调压也很方便。

所以,现在打算换个方式,每个单片机只负责自己半桥的上下两管互补波形,3个单片机,3H桥,其中一个单片机做为主机,另外两个作为从机,死区由外部的硬件来完成,变频数据通过一个P口来完成同步。50HZ的时候每个单片机可独立调整本相电压。

三个单片机共用一个有源35M晶振,不知道行不行?

估计用各自的晶振也不会有什么问题。

目前独立半桥的波形已经出来,两个相反的波头,好像上下管都做成双极性的了,反正每个管子时刻都有信号。

不知道三相的双极性和单向的双极性是否一样,单向的是左右半桥做减法,那三相的怎么减??有大虾能解释吗?

三相SPWM的思路:主机为U相在查表每经过120°,就顺序启动V相从机、W相从机信号脚;

从机每运行完一个正弦周期便查询主机信号是否实时给出,如有信号接着运行下一周期,无信号则等待主机的信号。

电机的正反转,只要把V相和W相的信号脚调换一下即可。

这个估计在高手眼里是垃圾,但俺是初学者,别跟俺计较。

淘宝上购买的1.5KW的三相电机估计过两天就到了,铝线的很便宜。

如果SPWM玩好了,接着玩SVPWM。

0
回复
2012-10-10 09:11
@westkinger
买了几种STC单片机,用了一个STC89S52搞了三路SPWM输出,不过波形并不好看,三个定时器,三个中断,可能因为89系列是6T的单片机,处理能力太弱,时间争用导致波形差,唉动力不够。为什么用定时器,因为最初编写单相正弦波的时候,stc1T的单片机spwm只使用了一个定时器,单相单极性正弦波非常好编写,波形非常漂亮,编程方式非常多,V/F变频非常方便,调压也很方便。所以,现在打算换个方式,每个单片机只负责自己半桥的上下两管互补波形,3个单片机,3H桥,其中一个单片机做为主机,另外两个作为从机,死区由外部的硬件来完成,变频数据通过一个P口来完成同步。50HZ的时候每个单片机可独立调整本相电压。三个单片机共用一个有源35M晶振,不知道行不行?估计用各自的晶振也不会有什么问题。目前独立半桥的波形已经出来,两个相反的波头,好像上下管都做成双极性的了,反正每个管子时刻都有信号。不知道三相的双极性和单向的双极性是否一样,单向的是左右半桥做减法,那三相的怎么减??有大虾能解释吗?三相SPWM的思路:主机为U相在查表每经过120°,就顺序启动V相从机、W相从机信号脚;从机每运行完一个正弦周期便查询主机信号是否实时给出,如有信号接着运行下一周期,无信号则等待主机的信号。电机的正反转,只要把V相和W相的信号脚调换一下即可。这个估计在高手眼里是垃圾,但俺是初学者,别跟俺计较。[图片]淘宝上购买的1.5KW的三相电机估计过两天就到了,铝线的很便宜。如果SPWM玩好了,接着玩SVPWM。

牛B,这种想法是可以的,早日实现!


0
回复
westkinger
LV.4
14
2012-10-11 10:03
@westkinger
买了几种STC单片机,用了一个STC89S52搞了三路SPWM输出,不过波形并不好看,三个定时器,三个中断,可能因为89系列是6T的单片机,处理能力太弱,时间争用导致波形差,唉动力不够。为什么用定时器,因为最初编写单相正弦波的时候,stc1T的单片机spwm只使用了一个定时器,单相单极性正弦波非常好编写,波形非常漂亮,编程方式非常多,V/F变频非常方便,调压也很方便。所以,现在打算换个方式,每个单片机只负责自己半桥的上下两管互补波形,3个单片机,3H桥,其中一个单片机做为主机,另外两个作为从机,死区由外部的硬件来完成,变频数据通过一个P口来完成同步。50HZ的时候每个单片机可独立调整本相电压。三个单片机共用一个有源35M晶振,不知道行不行?估计用各自的晶振也不会有什么问题。目前独立半桥的波形已经出来,两个相反的波头,好像上下管都做成双极性的了,反正每个管子时刻都有信号。不知道三相的双极性和单向的双极性是否一样,单向的是左右半桥做减法,那三相的怎么减??有大虾能解释吗?三相SPWM的思路:主机为U相在查表每经过120°,就顺序启动V相从机、W相从机信号脚;从机每运行完一个正弦周期便查询主机信号是否实时给出,如有信号接着运行下一周期,无信号则等待主机的信号。电机的正反转,只要把V相和W相的信号脚调换一下即可。这个估计在高手眼里是垃圾,但俺是初学者,别跟俺计较。[图片]淘宝上购买的1.5KW的三相电机估计过两天就到了,铝线的很便宜。如果SPWM玩好了,接着玩SVPWM。
思考了一下,既然每个单片机只管一个桥臂,死区也做到程序里面去,又可以省一堆电路,多几行代码而已。
0
回复
westkinger
LV.4
15
2012-10-11 10:04
@lizlk
牛B,这种想法是可以的,早日实现!
感谢前辈指导
0
回复
westkinger
LV.4
16
2012-10-16 09:05
@westkinger
思考了一下,既然每个单片机只管一个桥臂,死区也做到程序里面去,又可以省一堆电路,多几行代码而已。

通过对定时器的进一步了解,可以使用16位定时器作为每个spwm脉冲周期的载体,考虑到stc 35mhz的最高频率太小所以16位定时器可能只能利用9-10位分辨率。

也就是说通常的stc pwm口是8位的,而使用定时器可达到9-10位甚至更高,考虑到实用性一般只用到9-10位,也就是每个脉冲周期可以有512份或者1024份,而8位的只有256份。

定时器的优势开始显现。

0
回复
as6341534
LV.3
17
2012-10-17 10:27
@westkinger
通过对定时器的进一步了解,可以使用16位定时器作为每个spwm脉冲周期的载体,考虑到stc35mhz的最高频率太小所以16位定时器可能只能利用9-10位分辨率。也就是说通常的stcpwm口是8位的,而使用定时器可达到9-10位甚至更高,考虑到实用性一般只用到9-10位,也就是每个脉冲周期可以有512份或者1024份,而8位的只有256份。定时器的优势开始显现。
建议LZ直接用STM32吧,多个定时器功能强大,只需要改改寄存器,LZ要的波形都有了,速度也非常够用
0
回复
westkinger
LV.4
18
2012-10-17 19:42
@as6341534
建议LZ直接用STM32吧,多个定时器功能强大,只需要改改寄存器,LZ要的波形都有了,速度也非常够用

介绍一下吧,有什么优点或者放点资料链接,STM是可以考虑的,有点心动。

芯片好不好,主要是看能不能随意掌控。

呵呵先上一个stc双极性的波形吧,ttl电平,死区也用软件做的,没用PWM口。

 

  

变频,慢吞吞的变频,要慢慢调变频斜率

 

STC会不会出三核的单片机呀,只需要把寄存器共享就可以了,方便几个独立内核交换数据。呵呵那会强大无比,STC就会成为电机控制的黑马。

0
回复
IGBT2010
LV.8
19
2012-10-18 08:18
@westkinger
介绍一下吧,有什么优点或者放点资料链接,STM是可以考虑的,有点心动。芯片好不好,主要是看能不能随意掌控。呵呵先上一个stc双极性的波形吧,ttl电平,死区也用软件做的,没用PWM口。 [图片] [图片] 变频,慢吞吞的变频,要慢慢调变频斜率[图片] STC会不会出三核的单片机呀,只需要把寄存器共享就可以了,方便几个独立内核交换数据。呵呵那会强大无比,STC就会成为电机控制的黑马。
你可以把三个单片机做到一个小板子上,做成控制模块!!!
0
回复
wangshujun
LV.8
20
2012-10-18 09:53
@westkinger
介绍一下吧,有什么优点或者放点资料链接,STM是可以考虑的,有点心动。芯片好不好,主要是看能不能随意掌控。呵呵先上一个stc双极性的波形吧,ttl电平,死区也用软件做的,没用PWM口。 [图片] [图片] 变频,慢吞吞的变频,要慢慢调变频斜率[图片] STC会不会出三核的单片机呀,只需要把寄存器共享就可以了,方便几个独立内核交换数据。呵呵那会强大无比,STC就会成为电机控制的黑马。

stm32最便宜的4块钱左右,内部定时器1可以直接出三相带死区的spwm,你就别坚持了

跑完了spwm还剩下至少90%的cpu能力,你想玩啥都随便的

0
回复
wangshujun
LV.8
21
2012-10-18 09:54
@wangshujun
stm32最便宜的4块钱左右,内部定时器1可以直接出三相带死区的spwm,你就别坚持了跑完了spwm还剩下至少90%的cpu能力,你想玩啥都随便的
对了片内还有12为的ad可以用
0
回复
IGBT2010
LV.8
22
2012-10-18 14:50
@wangshujun
stm32最便宜的4块钱左右,内部定时器1可以直接出三相带死区的spwm,你就别坚持了跑完了spwm还剩下至少90%的cpu能力,你想玩啥都随便的
推荐一款型号!!!
0
回复
westkinger
LV.4
23
2012-10-20 00:47
@wangshujun
stm32最便宜的4块钱左右,内部定时器1可以直接出三相带死区的spwm,你就别坚持了跑完了spwm还剩下至少90%的cpu能力,你想玩啥都随便的

图片是单一管脚的RC积分。

今天把变频斜率的问题搞得差不多了,从5HZ到80HZ的频率都可以较快速的变化了,设置了几段斜率,这样调节起来不用慢吞吞的等待。

剩下来就是变频数据同步,电压数据同步,还有低扭提升的事了。想想还有什么?

那个STM了解了一下,从51stc转到stm估计又要一个痛苦的过程,NND程序看着有点眼花,随缘吧。

51玩不成的再考虑STM。

 

0
回复
2014-04-06 12:56
你好楼主能交流一下吗我最近也在考虑做三相的逆变也是用STC单片机做希望我们能互相交流学习!
0
回复
uuniao
LV.5
25
2014-04-06 13:01
@westkinger
图片是单一管脚的RC积分。今天把变频斜率的问题搞得差不多了,从5HZ到80HZ的频率都可以较快速的变化了,设置了几段斜率,这样调节起来不用慢吞吞的等待。剩下来就是变频数据同步,电压数据同步,还有低扭提升的事了。想想还有什么?那个STM了解了一下,从51stc转到stm估计又要一个痛苦的过程,NND程序看着有点眼花,随缘吧。51玩不成的再考虑STM。[图片] 
LZ真心牛……
0
回复
ytwsdz
LV.7
26
2014-04-06 13:41

从学习角度研究是个探讨性问题。

多实用角度,这个方法不看好。在实用电路中。单片机有自己的特点也有对设备不安全的因素。

不就是个SPWM吗,现在流行啊。本来要求波形稳定现在反而要求不稳定并在一定范围内抖动。

从开关电源设计上来讲,各有各自的设计想法,多路控制可以设计出好几种电路,多画几个电路分析一下找出共同的目地和要求,为何不总结最佳方案呢?

逆变电路已经有SPWM芯片了。在高频电路中可以用叠加干扰法实现。用单片机来干扰PWM,这样驱动电路都是安全成熟的,就是MCU不工作了也不影响电路使用,也不会因为MCU那出现问题而发生严重故障,当然可以设计多重保护电路,那这设计师水平太高了啊。

用MCU叠加干扰法实现SPWM我因为是最好的方法,(已经使用在产品上)这样对MCU的要求也不高,程序也漂亮,就是MCU不工作了,也不影响设备使用。

曾经看到有人用1000多的芯片做产品,这产品也太值钱了,也太不可为了吧。

0
回复
wwpwwp20088
LV.5
27
2014-04-16 11:37
@westkinger
买了几种STC单片机,用了一个STC89S52搞了三路SPWM输出,不过波形并不好看,三个定时器,三个中断,可能因为89系列是6T的单片机,处理能力太弱,时间争用导致波形差,唉动力不够。为什么用定时器,因为最初编写单相正弦波的时候,stc1T的单片机spwm只使用了一个定时器,单相单极性正弦波非常好编写,波形非常漂亮,编程方式非常多,V/F变频非常方便,调压也很方便。所以,现在打算换个方式,每个单片机只负责自己半桥的上下两管互补波形,3个单片机,3H桥,其中一个单片机做为主机,另外两个作为从机,死区由外部的硬件来完成,变频数据通过一个P口来完成同步。50HZ的时候每个单片机可独立调整本相电压。三个单片机共用一个有源35M晶振,不知道行不行?估计用各自的晶振也不会有什么问题。目前独立半桥的波形已经出来,两个相反的波头,好像上下管都做成双极性的了,反正每个管子时刻都有信号。不知道三相的双极性和单向的双极性是否一样,单向的是左右半桥做减法,那三相的怎么减??有大虾能解释吗?三相SPWM的思路:主机为U相在查表每经过120°,就顺序启动V相从机、W相从机信号脚;从机每运行完一个正弦周期便查询主机信号是否实时给出,如有信号接着运行下一周期,无信号则等待主机的信号。电机的正反转,只要把V相和W相的信号脚调换一下即可。这个估计在高手眼里是垃圾,但俺是初学者,别跟俺计较。[图片]淘宝上购买的1.5KW的三相电机估计过两天就到了,铝线的很便宜。如果SPWM玩好了,接着玩SVPWM。
可否贡献下程序代码,我比较好奇你的89C52出三路SPWM波。还有1T的单片机如果没有PCA模块的怎么软件生成SPWM波。。。
0
回复