BeHappy 发表于 7 天前

调试WS2812,灯珠闪亮,太难过了!

问题描述:

用3.2MHz的HSSPI控制WS2818.
从1*8颗WS2818灯珠开始,到4*4,再到8*8灯珠调试,总是遇到第一轮循环时,第一颗灯珠亮绿色,亮度还很高,十分刺眼。
再不想办法解决的话,我的眼啊......
然而,让程序至少循环2次,从第二次开始,就不会出现第一颗灯珠刺眼的情况。
试了,8051U的例程80,也有这个现象。

已尝试下列解决办法:
一、
先把所有的灯珠关掉(具体来讲,把用作WS2812显示数据开辟的XDATA段字节,全赋为0x88),然后延迟10ms;接着再发送想要显示的其他数据。
没有用!即便是再发送关闭所有WS2812代码的时候,只要开始控制WS2812,第一颗灯珠总是会闪绿色,几天下来眼睛疼!

感谢先:-)

ercircle 发表于 7 天前


MCU和灯带怎么连接的,建议上传原理图看看,这个例程倒是测过的。

例程包\80-SPI-DMA发送-驱动WS2812彩灯 是点12个灯噢,修改数量后按25600000UL 频率下载:


BeHappy 发表于 7 天前

ercircle 发表于 2025-6-9 21:35
MCU和灯带怎么连接的,建议上传原理图看看,这个例程倒是测过的。

例程包\80-SPI-DMA发送-驱动WS2812彩灯 ...

试了例程80,用了第一组SPI(已设置SPI_Config(0,0))
下面是,重新下载时,第一颗灯珠,闪绿色的视频:

ercircle 发表于 7 天前

BeHappy 发表于 2025-6-9 21:48
试了例程80,用了第一组SPI(已设置SPI_Config(0,0))
下面是,重新下载时,第一颗灯珠,闪绿色的视频:
...
不修改例程直接25.6MHz下载是什么效果?

21cnsound 发表于 7 天前

用逻辑分析仪抓一下第一颗2812输入、输出的时序就很容易发现问题所在了。初步猜测是你输出的时序问题。

BeHappy 发表于 7 天前

ercircle 发表于 2025-6-9 21:53
不修改例程直接25.6MHz下载是什么效果?

你好,如果使用25.6MHz的频率,这个8*8的WS2812点阵板会卡住,停在下载前的显示状态。

BeHappy 发表于 7 天前

21cnsound 发表于 2025-6-9 21:57
用逻辑分析仪抓一下第一颗2812输入、输出的时序就很容易发现问题所在了。初步猜测是你输出的时序问题。 ...

好主意。明天有时间试下 :-)

ercircle 发表于 7 天前

BeHappy 发表于 2025-6-9 21:57
你好,如果使用25.6MHz的频率,这个8*8的WS2812点阵板会卡住,停在下载前的显示状态。 ...

是不是提示下载失败了,这个频率要用串口下载器调节下载才能成功。
另外和上次一样可以换线试下。长了短了貌似都有影响
还可以把线,绕成双绞线试下有一定抗干扰作用~

BeHappy 发表于 7 天前

ercircle 发表于 2025-6-9 22:05
是不是提示下载失败了,这个频率要用串口下载器调节下载才能成功。
另外和上次一样可以换线试下。长了短 ...
没有下载失败,用的是8H2K08Umcu作为下载器。
线材方面,用的是专门手工制作的,规格为22AWG的5cm长硅胶软线。

cnos 发表于 6 天前

这个SPI驱动2812感觉有点鸡肋,CPU解放了似乎又没完全解放,还多占内存。
还是手动码代码模拟IO驱动等AI8052的单总线硬件接口吧。
页: [1] 2
查看完整版本: 调试WS2812,灯珠闪亮,太难过了!