晓飛飛 发表于 2025-5-30 16:24:59

_奶咖君_ 发表于 2025-5-30 14:05
emmm 还是用SPI加DMA,,准备好数据之后,单片机还是该干啥干啥去啊。。为什么说 单片机在为WS2812推出显 ...

就算都支持SPI+DMA,但WS2812并非真正支持SPI,组织数据的过程和显示RAM的占用也比正常SPI多了N多倍,相应的刷屏速度也会很大程度的受限,所以我的观点是WS2812最多是能用SPI+DMA方式驱动,与APA102C的接口不同,WS2812用SPI+DMA驱动的效率会低很多。

_奶咖君_ 发表于 2025-5-30 17:36:59

晓飛飛 发表于 2025-5-30 16:24
就算都支持SPI+DMA,但WS2812并非真正支持SPI,组织数据的过程和显示RAM的占用也比正常SPI多了N多倍,相 ...

内存占用变大,这个没跑,本来就是用SPI来模拟的。
但是通讯的速度即便是用模拟的也是一样的,我认为刷屏的速度应该和小灯的数量相关。和用什么通讯无关。

另外你推荐的这个小灯,确实有点意思。。

还有就是上一个回复,当时少看了楼主的前提-不使用DMA,所以当时没有理解这个单片机在为WS2812推出显示数据时啥也干不了 的描述。。

BeHappy 发表于 2025-5-30 19:19:33

21cnsound 发表于 2025-5-30 09:29
建议上逻辑分析仪看一下时序,2812只要时序满足很容易驱动。
您好,用示波器观察了SCLK的输出,频率大概是6.4MHZ没问题。
但是,在观测MOSI的输出时,波形看不出来是什么东西

在保存最后一张时,示波器都死机了

21cnsound 发表于 2025-5-30 20:19:25

BeHappy 发表于 2025-5-30 19:19
您好,用示波器观察了SCLK的输出,频率大概是6.4MHZ没问题。
但是,在观测MOSI的输出时,波形看不出来是什 ...

MOSI的材料2MSa/s应该是太小了。
另外,你这示波器带宽是不是太低了?100M带宽的示波器,SCLK 50M采样波形已经到极限了。

建议还是上逻辑分析仪,看起来更轻松。吃饭的家伙还是要到位。

晓飛飛 发表于 2025-5-30 21:31:26

_奶咖君_ 发表于 2025-5-30 17:36
内存占用变大,这个没跑,本来就是用SPI来模拟的。
但是通讯的速度即便是用模拟的也是一样的,我认为刷屏 ...

用硬件SPI驱动WS2812的方法是通过发出一个byte来表达一个bit,表达24bit的数据就需要发出24个byte,而且是异步操作的,时钟快不得也慢不得,总体上传输效率比APA102C要差太多了,而且MCU的主频和SPI分频也需要做一些配合,多多少少对其它应用有一定约束,比如CAN通信、USB通信或者波特率高一点的串口通信。

BeHappy 发表于 2025-5-30 22:44:53

测量了发送0xf8作为WS2812的bit ‘1’信号,高电平持续时间符合WS2812的bit ‘1’的时间要求。但是作为bit‘1’的低电平持续时间超出0.3us,猜测可能是SPI发送完一个字节后,mcu转而处理SPI中断。如果真是这样,不得不开启DMA功能了

BeHappy 发表于 2025-5-31 09:14:29

不知道怎么肥事,开了DMA可以简单控制。只能控制第一个灯,不会向后移动

BeHappy 发表于 2025-5-31 16:14:43

这是通过串口打印出来的用于控制WS2812灯珠的XDATA数据。只能控制第一颗的颜色变化,其他灯珠控制不住 :-(,而且第一个灯珠的显示颜色也稳定不住:在指定的颜色与白色之间跳变。

BeHappy 发表于 2025-5-31 21:39:20

ercircle 发表于 2025-5-29 19:13
可以先使用Ai8051U实验箱例程“80-SPI-DMA发送-驱动WS2812彩灯”,点亮之后再按自己想法修改 ...
用该例程不做修改地点亮有8个灯珠的电子积木,现象是只有第一个灯珠在闪烁。大概在几分钟之后,开始出现流动效果。再几分钟之后,只有3个灯珠亮,其中第一个灯珠在亮灭之间交替。
后来只修改灯珠数量,重新下载,也是只亮第一个灯珠。
下载时,mcu频率设置为25.6MHz。
重新插拔一次,再上电,现象依旧

ercircle 发表于 2025-6-1 10:43:50

BeHappy 发表于 2025-5-31 21:39
用该例程不做修改地点亮有8个灯珠的电子积木,现象是只有第一个灯珠在闪烁。大概在几分钟之后,开始出现流 ...


先不用改代码的,这个例程我测过。
这个频率需要通过下载器调节,感觉是频率误差大导致的,请问使用的那款下载器?


771
页: 1 [2] 3 4
查看完整版本: 普通SPI外设能否点亮WS2812 | 可以