最近学习了CPLD,以前都是在淘宝买驱动板做来玩玩,这次自己写个小程序,由于没有示波器,在网上找了个软件,将就着用
找了半天没有24M晶体,最后在下载器里找到了,于是焊跟线当时钟了
之前经过计算得到
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时
总结用CPLD做spwm的好处:
1,完全用门电路实现,速度很快,所有功能完全同时运行,实现多任务处理。
2,实现数字锁相很简单,很容易同步外部交流电(要先将交流转成50hz方波)。
3,10路并行外部误差输入,真正实现10位PWM每次步进1 。
4,由于CPLD没有ADC采样,所以用到实际中要加上单片机,单片机的功能就很简单了,只需要采样,软件滤波,然后输出10位误差。
可以看到单片机还有很多时间处理能力,比用传统软件定时输出有很多优点。
缺点也不少:
1,CPLD为逻辑门电路,所以轻微干扰都有可能是输出产生毛刺,影响输出。
2,由于没有ADC,所以单片机+CPLD成本上有所增加。
本人总结了下,希望有人用CPLD做驱动,也希望有同用这个芯片做的朋友交流。
明晚---继续更新单片机程序,