OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10026|回复: 25

求助:一个stm32如何控制上万个WS2812B的思路

[复制链接]

8

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2019-12-16
在线时间
42 小时
发表于 2020-1-15 11:14:07 | 显示全部楼层 |阅读模式
1金钱
因想做动态显示32X32的汉字,每汉字就需要差不多1KB,如果要显示10个字,就要上万个灯,但STM32F的信号好像只能控制1K左右的点,在一个STM32中来控制,能不能将信号放大,让他达到能控制上万,或者用十个定时器(stm32凑来凑去,应该可以达到10个定时器),还是有其它的办法呢?用多个STM32又比较难协调,请大家指教!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2019-12-16
在线时间
42 小时
 楼主| 发表于 2020-1-15 12:02:30 | 显示全部楼层
或者能不能在512处将信号放大
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2020-1-16 02:32:40 | 显示全部楼层
你这种应该用点阵,而不是WS2812这种灯。
回复

使用道具 举报

5

主题

28

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-8-8
在线时间
15 小时
发表于 2020-1-16 10:39:04 | 显示全部楼层
前两天刚调了一个SPI+DMA的ws2812b,手上只有一个7颗led的圆盘,效果还可以,至于上万颗LED,没试过,也没条件验证
回复

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2765
金钱
2765
注册时间
2018-11-8
在线时间
438 小时
发表于 2020-1-16 17:09:08 | 显示全部楼层
正常一对多可以考虑多路开关 你这个也太多了吧 没有那种带专用控制芯片的嘛?就像点阵液晶屏不都带一个接收串口数据的控制芯片嘛
回复

使用道具 举报

33

主题

114

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2019-7-8
在线时间
176 小时
发表于 2020-1-17 09:23:10 | 显示全部楼层
babyrabbit 发表于 2020-1-16 17:09
正常一对多可以考虑多路开关 你这个也太多了吧 没有那种带专用控制芯片的嘛?就像点阵液晶屏不都带一个接收 ...

可以说一下控制芯片的型号吗,我想查一下,了解一下,谢谢了
回复

使用道具 举报

6

主题

211

帖子

0

精华

高级会员

Rank: 4

积分
833
金钱
833
注册时间
2019-12-17
在线时间
157 小时
发表于 2020-1-17 11:11:54 | 显示全部楼层
本帖最后由 y284858 于 2020-1-17 12:03 编辑
seraph15 发表于 2020-1-17 09:23
可以说一下控制芯片的型号吗,我想查一下,了解一下,谢谢了

你可以考虑使用74HC595一类的串口转并口来拓展IO控制灯
回复

使用道具 举报

6

主题

211

帖子

0

精华

高级会员

Rank: 4

积分
833
金钱
833
注册时间
2019-12-17
在线时间
157 小时
发表于 2020-1-17 11:12:37 | 显示全部楼层
本帖最后由 y284858 于 2020-1-17 11:14 编辑
seraph15 发表于 2020-1-17 09:23
可以说一下控制芯片的型号吗,我想查一下,了解一下,谢谢了

发重复了这个删掉
回复

使用道具 举报

8

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2019-12-16
在线时间
42 小时
 楼主| 发表于 2020-1-18 15:26:46 | 显示全部楼层
看来还是用点阵方便,并且节约成本,不过对于点阵,主控还是想自己做,不用商家的卡,现在大多数都是HUB75,HUB22等,网上资料比较少,我想用STM32来做主控,搜不到相关的资料
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2019-12-2
在线时间
6 小时
发表于 2020-3-5 19:59:02 | 显示全部楼层
土豆呼叫地瓜 发表于 2020-1-16 10:39
前两天刚调了一个SPI+DMA的ws2812b,手上只有一个7颗led的圆盘,效果还可以,至于上万颗LED,没试过,也没条件验 ...

能不能单独的控制某个位的灯吗?
回复

使用道具 举报

5

主题

28

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-8-8
在线时间
15 小时
发表于 2020-4-23 15:16:44 | 显示全部楼层
安于此生 发表于 2020-3-5 19:59
能不能单独的控制某个位的灯吗?

往里面填数据不就完事了?
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2020-7-9
在线时间
5 小时
发表于 2020-7-17 00:11:52 | 显示全部楼层
你这里有一个误区,你仔细看ws2812b的datasheet。stm32的引脚只是输出高低电平而已,ws2812b的协议规定,在1.25us内,高电平占4/5,就被认为是逻辑1,反之就是逻辑0。而一个LED有RGB三个灯,每个灯需要8个逻辑值(也就是0~255,控制颜色深度),一个LED需要24个逻辑值。因为这个逻辑值是规定好了的,所以点亮一个LED的时间是大致确定的,这就意味着,只要io口一直发数据,理论上可以点亮无数个灯。所以其实你可以大致算出来你点亮第几个灯所需要的时间,当第一个灯和最后一个灯被点亮的时间差超过1/30s(30HZ),人眼就可以捕捉到,所以会有肉眼可见的延迟(上万颗灯的情况下)。
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2020-7-9
在线时间
5 小时
发表于 2020-7-17 00:16:24 | 显示全部楼层
建议LED分组,每组一个io口同时输出,不要用io口供电,外接电源。就是一个io口输出一个字,不行就半个字。这是我暂时能想到的解决办法了。
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-4-10
在线时间
4 小时
发表于 2020-7-20 09:14:22 | 显示全部楼层
土豆呼叫地瓜 发表于 2020-1-16 10:39
前两天刚调了一个SPI+DMA的ws2812b,手上只有一个7颗led的圆盘,效果还可以,至于上万颗LED,没试过,也没条件验 ...

老哥,可以分享一下源码
回复

使用道具 举报

32

主题

883

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4027
金钱
4027
注册时间
2015-11-14
在线时间
544 小时
发表于 2020-7-22 23:58:56 | 显示全部楼层
DBDB 发表于 2020-7-20 09:14
老哥,可以分享一下源码

我找找我之前调的一个FFT控制灯条的代码,用的就是类似于WS2812的芯片,使用的16位模式的SPI,没4个位刚好表示一个WS2812的一个位。
大概思路如下,每次发送4位。一个自己分两次发送。
const uint16_t WS2812SendCode[]={
0x8888, 0x888E, 0x88E8, 0x88EE, 0x8E88, 0x8E8E, 0x8EE8, 0x8EEE,0xE888, 0xE88E, 0xE8E8, 0xE8EE, 0xEE88, 0xEE8E, 0xEEE8, 0xEEEE,
};
回复

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2018-6-5
在线时间
11 小时
发表于 2020-9-3 13:55:43 | 显示全部楼层
Electronic 发表于 2020-7-22 23:58
我找找我之前调的一个FFT控制灯条的代码,用的就是类似于WS2812的芯片,使用的16位模式的SPI,没4个位刚好 ...

可以说的具体点吗?大哥
最近也在研究这方面东西  谢谢
回复

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2021-1-17
在线时间
9 小时
发表于 2021-2-5 20:41:51 | 显示全部楼层
53693488 发表于 2020-9-3 13:55
可以说的具体点吗?大哥
最近也在研究这方面东西  谢谢

兄弟研究的咋样了
回复

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2021-1-8
在线时间
24 小时
发表于 2021-2-6 16:59:37 | 显示全部楼层
TLC5958这种可能符合你的要求
回复

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2021-1-17
在线时间
9 小时
发表于 2021-2-6 18:55:24 | 显示全部楼层
Nioclas1218 发表于 2021-2-6 16:59
TLC5958这种可能符合你的要求

那是啥
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4105
金钱
4105
注册时间
2018-8-14
在线时间
696 小时
发表于 2021-2-6 19:15:03 | 显示全部楼层
没用过WS2812吧, 如果说没有刷屏的考虑, 别说1万了, 就是5万都不会有问题, 只要灯与灯的距离不超过3米
回复

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2021-1-17
在线时间
9 小时
发表于 2021-2-6 19:19:07 | 显示全部楼层
edmund1234 发表于 2021-2-6 19:15
没用过WS2812吧, 如果说没有刷屏的考虑, 别说1万了, 就是5万都不会有问题, 只要灯与灯的距离不超过3米

买来的时候带了一个控制器,但是现在想用f429来控制
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4105
金钱
4105
注册时间
2018-8-14
在线时间
696 小时
发表于 2021-2-6 19:24:41 | 显示全部楼层
AugusChan 发表于 2021-2-6 19:19
买来的时候带了一个控制器,但是现在想用f429来控制

都不好意思回复你了, 我就用个破51来做, 有钱就是任性, 呵呵
回复

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2021-1-17
在线时间
9 小时
发表于 2021-2-7 07:19:56 | 显示全部楼层
edmund1234 发表于 2021-2-6 19:24
都不好意思回复你了, 我就用个破51来做, 有钱就是任性, 呵呵

因为要测试刷新率,然后想用ws2812b点阵显示图片,所以需要刷新率高的
回复

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2021-1-8
在线时间
24 小时
发表于 2021-2-18 09:11:41 | 显示全部楼层

驱动芯片 能控制64x64的RGB LED矩阵
回复

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2021-1-17
在线时间
9 小时
发表于 2021-2-18 18:39:46 | 显示全部楼层
Nioclas1218 发表于 2021-2-18 09:11
驱动芯片 能控制64x64的RGB LED矩阵

但是ws2812b不是自带驱动芯片吗
回复

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2021-1-8
在线时间
24 小时
发表于 2021-2-19 08:54:40 | 显示全部楼层
AugusChan 发表于 2021-2-18 18:39
但是ws2812b不是自带驱动芯片吗

我还以为你是只要用LED点阵显示汉字,TLC5958只要配合普通的三色RGB灯就行,具体你去官网看他的设计资料,电路图设计和代码资源都有,上万个ws2812b没做过
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-28 16:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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