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

【逆变原创】新人报道,特发用CPLD做的SPWM

最近学习了CPLD,以前都是在淘宝买驱动板做来玩玩,这次自己写个小程序,由于没有示波器,在网上找了个软件,将就着用



找了半天没有24M晶体,最后在下载器里找到了,于是焊跟线当时钟了






全部回复(38)
正序查看
倒序查看
kkehy
LV.2
2
2015-10-07 16:57

调了半天,终于把相位同步的部分搞好,这个是STC15f104,用它来发生50HZ和60HZ的信号

0
回复
kkehy
LV.2
3
2015-10-07 17:00
@kkehy
[图片]调了半天,终于把相位同步的部分搞好,这个是STC15f104,用它来发生50HZ和60HZ的信号

电脑软件示波器就这样,方波看着那么别扭,

蓝色的是STC15f104产生的,红色的是双极性调制信号,在零点的时候同步

0
回复
kkehy
LV.2
4
2015-10-07 17:03
@kkehy
[图片]电脑软件示波器就这样,方波看着那么别扭,蓝色的是STC15f104产生的,红色的是双极性调制信号,在零点的时候同步

上个RTL电路,希望有感兴趣的朋友 一起研究

0
回复
kkehy
LV.2
5
2015-10-07 17:07
@kkehy
[图片]上个RTL电路,希望有感兴趣的朋友一起研究

今天发到这里,后面在更新

0
回复
2015-10-08 11:09
@kkehy
今天发到这里,后面在更新[图片]
哥,你这图片这幽默
0
回复
2015-10-08 13:28
@kkehy
[图片]上个RTL电路,希望有感兴趣的朋友一起研究
CPLD可以用梯形图来编辑逻辑功能,也可以用硬件描述语言来编写,常用的语言有Verilog HDL和VHDL
0
回复
kkehy
LV.2
8
2015-10-08 20:42
@tianyao9393
哥,你这图片这幽默
0
回复
kkehy
LV.2
9
2015-10-08 20:42
@tianyao9393
CPLD可以用梯形图来编辑逻辑功能,也可以用硬件描述语言来编写,常用的语言有VerilogHDL和VHDL。
程序写的差不多了
0
回复
kkehy
LV.2
10
2015-10-08 20:54
@kkehy
程序写的差不多了

继续更,

前面把CPLD输出SPWM完成后,加入了相位比较器,可以锁定外部市电,由于输出的SPWM不可调,有折腾了几天,把稳压部分搞好了,上图

由于还没有单片机,所以搞了个手动编码误差,10位并行误差输入,与内部乘法器相乘,使输出幅度发生变化

0
回复
kkehy
LV.2
11
2015-10-08 20:58
@kkehy
继续更,前面把CPLD输出SPWM完成后,加入了相位比较器,可以锁定外部市电,由于输出的SPWM不可调,有折腾了几天,把稳压部分搞好了,上图[图片]由于还没有单片机,所以搞了个手动编码误差,10位并行误差输入,与内部乘法器相乘,使输出幅度发生变化

之前经过计算得到

20MHZ输入时:50HZ

载波:20,000,000/1023=19,550.34213098729hz~=19.55Khz

输出点数:19,550.34213098729hz/50HZ=391.0068426197458

24MHZ输入时:60HZ

载波:24,000,000/1023=23,460.41055718475~=23.46Khz

输出点数: 23,460.41055718475hz/60hz=391.0068426197458

可以看到只要更换晶体就可以改变输出频率;

这是50HZ时

0
回复
kkehy
LV.2
12
2015-10-08 21:14
@kkehy
之前经过计算得到20MHZ输入时:50HZ载波:20,000,000/1023=19,550.34213098729hz~=19.55Khz输出点数:19,550.34213098729hz/50HZ=391.006842619745824MHZ输入时:60HZ载波:24,000,000/1023=23,460.41055718475~=23.46Khz输出点数: 23,460.41055718475hz/60hz=391.0068426197458可以看到只要更换晶体就可以改变输出频率;[图片]这是50HZ时

总结用CPLD做spwm的好处:

1,完全用门电路实现,速度很快,所有功能完全同时运行,实现多任务处理。

2,实现数字锁相很简单,很容易同步外部交流电(要先将交流转成50hz方波)。

3,10路并行外部误差输入,真正实现10位PWM每次步进1   。

4,由于CPLD没有ADC采样,所以用到实际中要加上单片机,单片机的功能就很简单了,只需要采样,软件滤波,然后输出10位误差。

可以看到单片机还有很多时间处理能力,比用传统软件定时输出有很多优点。

缺点也不少:

1,CPLD为逻辑门电路,所以轻微干扰都有可能是输出产生毛刺,影响输出。

2,由于没有ADC,所以单片机+CPLD成本上有所增加。

本人总结了下,希望有人用CPLD做驱动,也希望有同用这个芯片做的朋友交流。

明晚---继续更新单片机程序,

0
回复
2015-10-10 23:01
@kkehy
[图片]上个RTL电路,希望有感兴趣的朋友一起研究
这电路怎么实现SPWM调制的呢?没看明白
0
回复
kkehy
LV.2
14
2015-10-11 21:02
@皇甫仁和
这电路怎么实现SPWM调制的呢?没看明白
这两天在选单片机,昨天刚刚拍了map430开发板,准备用它做主控,程序后面会公布,全开源
0
回复
kkehy
LV.2
15
2015-10-11 21:13
@皇甫仁和
这电路怎么实现SPWM调制的呢?没看明白

nnn

0
回复
kkehy
LV.2
16
2015-10-12 20:32
@kkehy
nnn

430回来啦,没想到同城快递这么慢,成都的快递真糟糕,准备用lcd1602写个机构菜单

0
回复
2015-10-13 09:45
已经被添加到社区经典图库喽
http://www.dianyuan.com/bbs/classic/
0
回复
2015-10-13 10:50
@kkehy
总结用CPLD做spwm的好处:1,完全用门电路实现,速度很快,所有功能完全同时运行,实现多任务处理。2,实现数字锁相很简单,很容易同步外部交流电(要先将交流转成50hz方波)。3,10路并行外部误差输入,真正实现10位PWM每次步进1 。4,由于CPLD没有ADC采样,所以用到实际中要加上单片机,单片机的功能就很简单了,只需要采样,软件滤波,然后输出10位误差。可以看到单片机还有很多时间处理能力,比用传统软件定时输出有很多优点。缺点也不少:1,CPLD为逻辑门电路,所以轻微干扰都有可能是输出产生毛刺,影响输出。2,由于没有ADC,所以单片机+CPLD成本上有所增加。本人总结了下,希望有人用CPLD做驱动,也希望有同用这个芯片做的朋友交流。明晚---继续更新单片机程序,[图片]
每次你这个结束图 好有趣啊 哈
0
回复
kkehy
LV.2
19
2015-10-13 21:37
@kkehy
[图片]430回来啦,没想到同城快递这么慢,成都的快递真糟糕,准备用lcd1602写个机构菜单

继续开更,折腾了一晚上的结构菜单,程序用的是结构体链表指针,参考网友的程序,



这个是主界面




设置界面;

这个是设置逆变优先,还是市电优先

串口波特率设置











比较好玩的是设置逆变的最大功率了,当电流*电压超过设定功率就报警。


等两天加上CPLD一起联调




0
回复
pengsha
LV.4
20
2015-10-30 01:09
来看看,学习了
0
回复
2015-11-06 12:38
继续更新程序,期待着
0
回复
2015-12-15 10:42
@kkehy
[图片]430回来啦,没想到同城快递这么慢,成都的快递真糟糕,准备用lcd1602写个机构菜单
求楼主是怎么实现稳压的?
0
回复
200808liu
LV.4
23
2016-02-19 18:06
大牛
0
回复
2016-02-26 22:05
                                                             ................................
0
回复
alps
LV.4
25
2016-02-29 13:34
比较强大
0
回复
aspire_u
LV.1
26
2016-02-29 17:18
学习学习
0
回复
yueyunno1
LV.9
27
2016-02-29 17:33
0
回复
liupam
LV.5
28
2016-02-29 18:31

我也要看看下!!!!

0
回复
liu_hai_bo
LV.2
29
2016-02-29 20:25
看帖回复,支持楼主
0
回复
super123
LV.1
30
2016-03-05 13:42
看看看看
0
回复
2016-03-05 14:38
0
回复