方案介绍设计思路
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作品实物图+视频
物联网全栈教程-从云端到设备(三)
手把手教你DIY太阳能无线充电器
漫谈广域网边缘技术面临的挑战和解决方案
实现逆势增长!长电科技第三季度营收达247.8亿元
雷克萨斯CT 200h全方位测评
关于GD32F207ZE的5x5 RGBW矩阵灯DMX512控制板的介绍和分析
RT6204应用原理图及设计指南
中兴成第二家携手英特尔的国产厂商 发力智能终端
解决自动驾驶的三个核心问题
谷歌表示已经从Play商店中删除了30种应用
预计:2021年第一季度全球智能手机出货量将达到3.4亿部
小米美图官宣小仙女 采用后置浴霸式三摄
如何打造中国IC产业发展的EDA供应链
如何将遗留系统扩展到人工智能和物联网时代
印度再次禁止43款移动应用程序,包含阿里卖家、千牛、全球速卖通等
中国司法网首次网上拍卖三台波音747,顺丰豪掷3.2亿收编两架
科大讯飞如何缓解人工智能困境
华为为什么这么强?
新加坡电子人才选拔会将于上海举行
华为麒麟970上10nm制成,台积电又来组CP