方案介绍设计思路
1. 设计思路:采用高时钟频率的MCU的内部定时器产生中断,使用计数的方式生成8位分辨率的PWM,IO口使用映射表的方式,可以在里面任意设置IO对应的DMX512数据位置,100个IO分成10组,每中断一次对一组IO进行状态更新,最终可以生成400HZ左右的8位PWM,送RGBW灯的驱动电路,进行调光。串口设置成9位数据接收,250Kbps波特率,1位停止位,通过MAX485转换芯片,接收灯光控制台送来的DMX512数据,保存在缓冲区,PWM生成程序可以从缓冲区里即时更新PWM占空比数据。
2. 主控芯片采用GD32F207ZET6,IO口超过110个,100个作为PWM输出的IO,1个串口(PD5、PD6) + IO用于DMX512信号(P4D)使用,4个IO接编码开关用于设置地址(PA8-PA11),2个IO作为操作按键(PA0,PA1),1个IO连接LED作为工作状态指示灯(PA12),上面用掉的IO从PWM映射表里去掉就好了。原理图很简单就不画了,板上IO没有全部引出,简单搭电路做了6路PWM,板上3个LED,杜邦线连接一组RGB灯测试功能。
3方案结构框图

4设计应用描述及心得总结
1. 本案例的核心在于软件PWM的生成,100路8分辨率PWM输出对于普通单片机来说还是有一定的压力,还要同时处理DMX512数据的接收,得益于GD32F207的120M运行速度,可以在短时间内处理更多的指令,将100路PWM计数变量分成10组,通过轮流的方式更新每一组IO的计数变量,同时更新IO的状态,有效的减少中断处理的数据量,缩短处理时间,本案例中实现了8位分辨率400Hz以上的PWM输出,用来控制调光灯,完全不会出现闪烁的情况。串口中断方式接收DMX512数据帧,即时保存在DMX512的缓冲区中,按DMX512数据每秒40帧的更新速度,最多在第2帧数据到来时可以把当前状态更新到所控制的灯上。
2. 本案例控制IO输出采用了数据表映射的方式,可以任意修改IO所对应DMX512数据字节,操作时读取数据表里的映射数据,直接操作GPIO控制寄存器,也有效的减少操作指令,提高了操作效率。
3. 采用高频率的单片机模拟多路PWM的方式,取代市场上现有的使用FPGA的方案,在满足性能的同时有效的降低了产品的设计复杂程度和产品成本。
5作品实物图+视频
-
控制器
+关注
关注
114文章
17638浏览量
190165 -
寄存器
+关注
关注
31文章
5588浏览量
129034 -
控制板
+关注
关注
5文章
292浏览量
32686
发布评论请先 登录
可回收箱控制板关键功能模块详细介绍
兆易创新GD32F5xx与GD32G5xx STL软件测试库获颁IEC61508功能安全认证
HMC512LP5/LP5E采用SMT封装的VCO技术手册
STM32F207VET6的flash是512KB的,为什么对0x080A0000后512KB的内存进行操作程序没有问题呢?
AN207 GD32G5x3三角函数加速器TMU的使用说明
AN030 GD32F47x&F42x与GD32F45x&F40x系列间的差异

关于GD32F207ZE的5x5 RGBW矩阵灯DMX512控制板的介绍和分析
评论