找回密码
 立即注册
查看: 1160|回复: 5

WS2812彩灯@32G12K128,最多同时驱动682个,DMA支持USART1-SPI或USART2-SPI驱动

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-9-16 15:55:22 | 显示全部楼层 |阅读模式
WS2812三基色彩灯@32G12K128USB
===最多同时驱动682个三基色彩灯,更多的灯可以分多次传输
===USART1/串口1的USART1-SPI, 无需反相,用DMA支持,不占CPU时间
        可以驱动第1路独立的 WS2812灯带网络
===USART2/串口2的USART2-SPI, 无需反相,用DMA支持,不占CPU时间

        可以驱动第2路独立的 WS2812灯带网络
===还有标配的独立 SPI
        可以驱动第3路独立的 WS2812灯带网络

STC32G12K128的串口1或串口2工作于SPI-DMA模式,输出控制WS2812三基色彩灯 !
使用 SPI-MOSI 输出直接驱动WS2812 三基色彩灯,
DMA传输8K SRAM 轻松驱动最多682个灯并且不占用CPU时间
本例使用P1.3/MOSI输出信号(用户可以切换到别的脚)直接驱动WS2812
只用到MOSI驱动WS2812,但由于SPI的3个信号是捆绑在一起的
===MISO不能做它用。

===SCLK如要做其他用途,可设置为高阻输入,作为输入使用
本例P1.4-MISO被SPI占用,不能做他用。  
SPI 留了这么个绝活 支持 WS2812B !!!

本例驱动24个灯,接成环状。
SPI发送288字节,DMA启动后自动发送完所有的数据(本例发送时间810us),不占CPU时间。

每个灯3个字节,分别对应绿、红、蓝则,MSB先发.
800KHz码率,
数据0(1/4占空比): H=0.3125us  L=0.9375us,
数据1(3/4占空比): H=0.9375us  L=0.3125us,
RESET>=50us.
高电平时间要精确控制在要求的范围内,
低电平时间不需要精确控制, 大于要求的最小值并小于RES的50us即可.

WS2812S的标准时序如下:
TH+TL = 1.25us±150ns, RES>50us
T0H = 0.25us±150ns = 0.10us - 0.40us
T0L = 1.00us±150ns = 0.85us - 1.15us
T1H = 1.00us±150ns = 0.85us - 1.15us
T1L = 0.25us±150ns = 0.10us - 0.40us
两个位数据之间的间隔要小于RES的50us.

SPI方案:

本例使用USART1-SPI模式的P1.3-MOSI输出驱动信号直接驱动WS2812。
由于使用SPI主机模式,则P1.4、P1.5被SPI占用,不能做他用。

用SPI传输, 速度3.0~3.5MHz,以3.2MHz为最佳, MSB先发, 每个字节高4位和低4位分别对应一个位数据, 1000为数据0, 1110为数据1.
SPI数据位       D7 D6 D5 D4    D3 D2 D1 D0
SPI数据          1   0   0    0      1   1    1   0
                   WS2812数据0    WS2812数据1
SPI数据高半字节对应的WS2812数据0-->0x80, 数据1-->0xe0,
SPI数据低半字节对应的WS2812数据0-->0x08, 数据1-->0x0e,
主频25.6MHz, SPI分频8 = 3.2MHz. 最佳.

电路预览(附件带PDF电路):

截图202409161554198874.jpg

13-UART1-SPI-DMA发送-直接驱动WS2812彩灯.rar (270.47 KB, 下载次数: 151)

14-UART2-SPI-DMA发送-直接驱动WS2812彩灯.rar (270.43 KB, 下载次数: 121)





回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:419
  • 最近打卡:2025-05-01 07:24:50

4

主题

511

回帖

1991

积分

金牌会员

积分
1991
发表于 2024-9-17 08:53:02 | 显示全部楼层
完整的例子,好,有空,练练
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:202
  • 最近打卡:2025-04-29 08:30:00

0

主题

47

回帖

304

积分

中级会员

积分
304
发表于 2024-10-17 14:23:13 | 显示全部楼层
dma果然牛逼啦
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-01-03 02:01:29

1

主题

17

回帖

93

积分

注册会员

积分
93
发表于 2024-10-17 14:32:11 | 显示全部楼层
dma好东西
无人之岛
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-04-30 10:01:53

0

主题

93

回帖

753

积分

高级会员

积分
753
发表于 2024-11-27 10:01:12 | 显示全部楼层
又学一招,以前用软件模拟驱动,占用太多MCU时间了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-04-30 09:34:03
已绑定手机

11

主题

44

回帖

299

积分

中级会员

积分
299
发表于 2025-2-3 00:47:51 来自手机 | 显示全部楼层
厉害了
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 19:28 , Processed in 0.124324 second(s), 91 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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