找回密码
 立即注册
楼主: BeHappy

普通SPI外设能否点亮WS2812 | 可以

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:451
  • 最近打卡:2025-06-08 09:05:54
已绑定手机

36

主题

2203

回帖

2577

积分

荣誉版主

积分
2577
发表于 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驱动的效率会低很多。
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:457
  • 最近打卡:2025-06-07 16:17:21

33

主题

2434

回帖

5122

积分

论坛元老

积分
5122
发表于 2025-5-30 17:36:59 | 显示全部楼层
晓*** 发表于 2025-5-30 16:24
就算都支持SPI+DMA,但WS2812并非真正支持SPI,组织数据的过程和显示RAM的占用也比正常SPI多了N多倍,相 ...

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

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

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

点评

用硬件SPI驱动WS2812的方法是通过发出一个byte来表达一个bit,表达24bit的数据就需要发出24个byte,而且是异步操作的,时钟快不得也慢不得,总体上传输效率比APA102C要差太多了,而且MCU的主频和SPI分频也需要做一些  详情 回复 发表于 2025-5-30 21:31
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:210
  • 最近打卡:2025-06-08 11:20:08

49

主题

157

回帖

1710

积分

金牌会员

积分
1710
发表于 2025-5-30 19:19:33 | 显示全部楼层
21cns*** 发表于 2025-5-30 09:29
建议上逻辑分析仪看一下时序,2812只要时序满足很容易驱动。

您好,用示波器观察了SCLK的输出,频率大概是6.4MHZ没问题。
但是,在观测MOSI的输出时,波形看不出来是什么东西

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

SCLK输出的波形

SCLK输出的波形

MOSI针脚的输出波形

MOSI针脚的输出波形
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:490
  • 最近打卡:2025-06-08 08:33:27
已绑定手机

14

主题

1307

回帖

3256

积分

论坛元老

积分
3256
发表于 2025-5-30 20:19:25 | 显示全部楼层
BeHa*** 发表于 2025-5-30 19:19
您好,用示波器观察了SCLK的输出,频率大概是6.4MHZ没问题。
但是,在观测MOSI的输出时,波形看不出来是什 ...

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:451
  • 最近打卡:2025-06-08 09:05:54
已绑定手机

36

主题

2203

回帖

2577

积分

荣誉版主

积分
2577
发表于 2025-5-30 21:31:26 | 显示全部楼层
_奶*** 发表于 2025-5-30 17:36
内存占用变大,这个没跑,本来就是用SPI来模拟的。
但是通讯的速度即便是用模拟的也是一样的,我认为刷屏 ...

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:210
  • 最近打卡:2025-06-08 11:20:08

49

主题

157

回帖

1710

积分

金牌会员

积分
1710
发表于 2025-5-30 22:44:53 | 显示全部楼层
测量了发送0xf8作为WS2812的bit ‘1’信号,高电平持续时间符合WS2812的bit ‘1’的时间要求。但是作为bit‘1’的低电平持续时间超出0.3us,猜测可能是SPI发送完一个字节后,mcu转而处理SPI中断。如果真是这样,不得不开启DMA功能了

SDS00001.jpg
SDS00002.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:210
  • 最近打卡:2025-06-08 11:20:08

49

主题

157

回帖

1710

积分

金牌会员

积分
1710
发表于 2025-5-31 09:14:29 | 显示全部楼层
不知道怎么肥事,开了DMA可以简单控制。只能控制第一个灯,不会向后移动
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:210
  • 最近打卡:2025-06-08 11:20:08

49

主题

157

回帖

1710

积分

金牌会员

积分
1710
发表于 2025-5-31 16:14:43 | 显示全部楼层
这是通过串口打印出来的用于控制WS2812灯珠的XDATA数据。只能控制第一颗的颜色变化,其他灯珠控制不住 :-(,而且第一个灯珠的显示颜色也稳定不住:在指定的颜色与白色之间跳变。

24 * 8个字节用于控制8颗WS2812灯珠

24 * 8个字节用于控制8颗WS2812灯珠
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:210
  • 最近打卡:2025-06-08 11:20:08

49

主题

157

回帖

1710

积分

金牌会员

积分
1710
发表于 2025-5-31 21:39:20 | 显示全部楼层
erci*** 发表于 2025-5-29 19:13
可以先使用Ai8051U实验箱例程“80-SPI-DMA发送-驱动WS2812彩灯”,点亮之后再按自己想法修改 ...

用该例程不做修改地点亮有8个灯珠的电子积木,现象是只有第一个灯珠在闪烁。大概在几分钟之后,开始出现流动效果。再几分钟之后,只有3个灯珠亮,其中第一个灯珠在亮灭之间交替。
后来只修改灯珠数量,重新下载,也是只亮第一个灯珠。
下载时,mcu频率设置为25.6MHz。
重新插拔一次,再上电,现象依旧

点评

先不用改代码的,这个例程我测过。 这个频率需要通过下载器调节,感觉是频率误差大导致的,请问使用的那款下载器? [attachimg]102207[/attachimg] [apoyl_aliyunvideo]771[/apoyl_aliyunvideo]  详情 回复 发表于 7 天前
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:200
  • 最近打卡:2025-06-08 12:55:19
已绑定手机

62

主题

1772

回帖

3930

积分

荣誉版主

无情的代码机器

积分
3930
发表于 7 天前 | 显示全部楼层
BeHa*** 发表于 2025-5-31 21:39
用该例程不做修改地点亮有8个灯珠的电子积木,现象是只有第一个灯珠在闪烁。大概在几分钟之后,开始出现流 ...


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

截图202506011043366605.jpg

三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-8 14:45 , Processed in 0.473321 second(s), 120 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表