找回密码
 立即注册
查看: 2268|回复: 10

SPI-DMA 驱动 WS2812三基色彩灯@Ai8051U,最多同时驱动2730个,不占CPU时间

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-9-13 18:06:45 | 显示全部楼层 |阅读模式
Ai8051USB,USB 型 1T 8051,支持32位和8位指令集
管脚兼容天王级别的:  89C52RC,  12C5A60S2
要兼容 8位8051指令集,  可以用 Keil C51/IAR/SDCC 编译器
===就相当于更强大的 8H8K64U
兼容 32位8051指令集可以用 Keil C251 编译器,双核兼容设计
===就相当于更强大的 32G12K128, 32G8K64
34K SRAM(2K edata, 32K xdata), 64K Flash

TFPU@120MHz, 硬件浮点/硬件三角函数 运算器
DMA支持PWM, DMA支持外设直接到外设, P2P
120MHz-PWM支持硬件移相,16位PWM; 真12位ADC
USB, 4组串口,12位ADC, 轨到轨比较器
QSPI, SPI, I2S, I2C,  TFT-i8080/M6800 接口
PDIP40,LQFP44,LQFP48

CPU32@42MHz
=============================================
WS2812三基色彩灯@Ai8051U
===最多同时驱动2730个三基色彩灯
===SPI-DMA 输出直接驱动@Ai8051U,不占CPU时间
Ai8051U SPI DMA输出控制WS2812三基色彩灯程序,32K SRAM
使用 SPI-MOSI 直接WS2812 三基色彩灯, 不需要反向器
DMA传输,32K SRAM轻松驱动最多2730个灯:
本例使用P1.5/MOSI输出驱动信号(用户可以切换到别的脚驱动WS2812
只用到 SPI-MOSI 驱动WS2812,但由于SPI的3个信号是捆绑在一起的
===SPI-MISO 不能做它用
===SPI-SCLK 如要做其他用途,可设置为高阻输入,作为输入使用
        这时要设置 SPI 的相关I/O的工作模式不自动切换,由用户设置
===SPI-#SS 本来就 不是 SPI 的 必须部分,可正常当 I/O 使用
本例P1.6-SPI-MISO被SPI占用/只能空置不接,不能做他用。
SPI 留了这么个绝活 支持 WS2812B !!!

本例驱动32个灯,接成环状。
SPI发送384字节,DMA启动后自动发送完所有的数据,不占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方案:

本例使用SPI模式的P1.5-MOSI输出驱动信号直接驱动WS2812。
由于使用SPI主机模式,则P1.6、P1.7被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. 最佳.

2024/9/21 更新程序

电路预览(附件带PDF电路):
QQ浏览器截图20240921122529.png

AI8051U-SPI-DMA发送-直接驱动WS2812彩灯.rar (300.63 KB, 下载次数: 260)














点评

应该已有手段不需要反向器了  发表于 2024-9-21 10:09
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-9-20 22:52:41 | 显示全部楼层
现在 AI8051U 有
3组 SPI有DMA支持,
4通道 PWM有DMA支持,
可以轻松支持 7个WS2812灯条

点评

已经全部更新说明、程序、视频,不需要反相器。  详情 回复 发表于 2024-9-21 12:28
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:477
  • 最近打卡:2025-05-01 18:48:32
已绑定手机

6

主题

92

回帖

938

积分

高级会员

积分
938
发表于 2024-9-14 09:59:01 | 显示全部楼层
梁工您好,冒昧问下。
这种灯不是800KHz的传输率吗?
每颗灯需要1.25x24bit uS,想不闪烁不是得20ms刷新周期吗?
那不是应该20ms/(1.25x24us)=666颗灯左右吗?
你这为何能到2730?

点评

这种灯都是自己PWM驱动的,如果你不刷新,就不改变颜色,大部分条状景观灯都会刷新比较慢,这样会有流动效果(流水灯、跑马灯),20ms刷新率是视频级刷新了,大部分应用是不需要这么快的。  详情 回复 发表于 2024-9-14 10:39
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-9-14 10:39:21 | 显示全部楼层
qizhi*** 发表于 2024-9-14 09:59
梁工您好,冒昧问下。
这种灯不是800KHz的传输率吗?
每颗灯需要1.25x24bit uS,想不闪烁不是得20ms刷新周 ...

这种灯都是自己PWM驱动的,如果你不刷新,就不改变颜色,
大部分条状景观灯都会刷新比较慢,这样会有流动效果(流水灯、跑马灯),
20ms刷新率是视频级刷新了,大部分应用是不需要这么快的,
比如1秒流动10个灯,那就是100ms刷新率,

而2730个灯刷新时间为82ms。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:477
  • 最近打卡:2025-05-01 18:48:32
已绑定手机

6

主题

92

回帖

938

积分

高级会员

积分
938
发表于 2024-9-14 11:05:15 | 显示全部楼层
哦!好的,谢谢回复,十分感谢。那就是了。
我看卖这个控制器的一般写500点左右,有的写2000多,可能也这意思。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-9-21 12:28:03 | 显示全部楼层
神*** 发表于 2024-9-20 22:52
【将MISO设为高阻,开通下拉电阻,SPI DMA用MOSI直接驱动WS2812彩灯,正常了!不用反相器】

? AI8051U ? D ...

已经全部更新说明、程序、视频,不需要反相器
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:4
  • 最近打卡:2024-12-05 23:05:49

0

主题

10

回帖

96

积分

注册会员

积分
96
发表于 2024-9-29 21:06:06 | 显示全部楼层
我的板子试了一下,发现最后一个灯蓝色微亮,
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:198
  • 最近打卡:2025-05-01 00:16:05
已绑定手机

24

主题

345

回帖

1629

积分

金牌会员

积分
1629
发表于 2024-11-4 10:24:46 | 显示全部楼层
梁*** 发表于 2024-9-14 10:39
这种灯都是自己PWM驱动的,如果你不刷新,就不改变颜色,
大部分条状景观灯都会刷新比较慢,这样会有流动 ...

感谢梁工,我也学到了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2025-04-29 13:02:20
已绑定手机

0

主题

130

回帖

174

积分

注册会员

积分
174
发表于 2024-11-11 22:57:19 来自手机 | 显示全部楼层
点灯大师
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 19:37 , Processed in 0.285371 second(s), 117 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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