CH32V307 DMA+PWM控制彩灯,脉冲数异常

1655886859210358.jpg

1655886859147999.jpg

1655886859103385.png


目前在使用V307的TIM8 控制WS2812,上面分别是异常时用逻辑分析仪抓取的波形,DMA中断处理,和彩灯发送使能。这个方法在ST的单片机和CH32F103验证过,是可行的;但是在V307上面出现时不时的PWM方波少一个或者多一个的问题;怀疑是关停TIM的时间不对,尝试过加延时,提高DMA中断优先级,在中断中判断比较标志位,都不行。希望技术支持给些帮助。项目到了小批量阶段


image.png

多发送一组为0的数据,依然会出现一个100ns的脉冲


您好,建议你可在中断函数中加一个if条件语句试一下,当获取到传输完成标志时再进行函数中的处理。具体问题可通过电话或邮件沟通看一下(025-52635289,lzs@wch.cn)。


WS2812不是该用SPI来做么?

PWM感觉会很坑啊,PWM有个相位问题的。


这个问题加了延时判断也是没有解决,导致全局的WS2812全局的灯光会出现闪烁的情况;感觉像是PWM会突然出现波形异常的情况


您好,CH32V307和CH32F103 的主频不一样,可以检查一下是否跟PWM周期、自动重装载值的以及DMA缓冲区的大小配置有关,你可以将CH32V307的主频改成和CH32F103一致看一下。若方便,可将工程代码发到我的邮箱(lzs@wch.cn)看一下。


只有登录才能回复,可以选择微信账号登录