_奶咖君_ 发表于 2025-5-30 14:05:00

晓飛飛 发表于 2025-5-29 21:42
强烈建议考虑一下APA102C的方案,采用同步双信号驱动,直接兼容SPI总线,虽然成本比WS2812高,但可以把MCU ...

emmm 还是用SPI加DMA,,准备好数据之后,单片机还是该干啥干啥去啊。。为什么说 单片机在为WS2812推出显示数据时啥也干不了 ?

BeHappy 发表于 2025-5-30 15:43:37

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

我想应该是SPI-DMA在发送给数据时,等待SPI-DMA中断这个行为阻塞了程序。
SPI+DMA方式传送数据,相比于非SPI-DMA方式,时间的节省体现在:原本需要发生并处理n次SPI中断,而SPI+DMA方式仅需要处理一次SPI-DMA中断

_奶咖君_ 发表于 2025-5-30 15:52:48

BeHappy 发表于 2025-5-30 15:43
我想应该是SPI-DMA在发送给数据时,等待SPI-DMA中断这个行为阻塞了程序。
SPI+DMA方式传送数据,相比于非 ...

为什么要等待中断?{:yiwen:}顶多是发送数据之前查询一下发送完成标志。。

不过我又看了一眼问题,,楼主说的是不用DMA传送。那层主说的确实是有道理的。

晓飛飛 发表于 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可以简单控制。只能控制第一个灯,不会向后移动
页: 1 [2] 3 4
查看完整版本: 普通SPI外设能否点亮WS2812 | 可以