打印

DMX512 STM32捕获

[复制链接]
468|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
roucun|  楼主 | 2018-7-10 17:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过STM32F417配置串口和定时器捕获DMX512信号,设计思路:设置串口开启帧错误中断,接收中断。定时器为捕获中断。
思路:当接收到BREAK信号时,由于停止位为0,串口发生帧错误中断,认为一帧数据开始,然后开启定时器捕获MAB的下降沿,
捕获到下降沿则认为数据有效,串口开始接收数据。


连接方式:DMX传输是485总线,将485转换为串口用的是MAX13487,然后通过串口转485 LOOP到下一个设备上。
DMX波特率为250Kbps,有1个起始位,8个数据位,2个停止位。

这里要讲的不是如何写代码,而是遇到的有趣的问题:

1.假设BREAK=88us,则两个字节的时间一直为低电平,这样串口采到的第一个字节停止位低电平,则进入帧错误中断,
由于第二个字节也一直为低电平,则串口不认为是一个字节,也不会继续进入帧错误中断。(不知理解的对不对,请各位大神指教)
2.经过MAX13487后,串口转485信号在固定的频率下出现衰减,如图一,在500Kbps,750Kbps出现衰减,或是信号失真。
级联越多台设备,出现的衰减就越严重。如原来的1.31us高电平,经过3台设备级联后,衰减成10ns以下。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

421

主题

446

帖子

0

粉丝