找回密码
 立即注册
查看: 4144|回复: 26

PWM-DMA 驱动 WS2812彩灯@Ai8051U,最多1365个灯同时, 32K SRAM

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-9-18 21:26:06 | 显示全部楼层 |阅读模式
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三基色彩灯@Ai8051UUSB
===最多同时驱动1365个三基色彩灯
===PWMA直接驱动, 用DMA支持,不占CPU时间
        可以驱动4路独立的 WS2812灯带网络
Ai8051U的PWMA-DMA模式,DMA支持,控制WS2812三基色彩灯 !
32K SRAMDMA传输 轻松驱动最多1365个灯并且不占用CPU时间
本例使用PWMA-P1.0输出信号直接驱动WS2812,只占用1个I/O口
巧妙使用PWMA-DMA 支持 WS2812B !!!

本例驱动24个灯,接成环状。
SPI发送288字节,DMA启动后自动发送完所有的数据(本例发送时间720us),
===不占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即可.

DMA发送时间@40MHz,

发送字节=24*24+1=577,  DMA发送时间720us,
32K xdata最多一次驱动1365个灯.

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.

PWMA方案:
本例使用PWMA-P1.0输出直接驱动WS2812。
用DMA传输, 一个周期传输一个bit数据, 一个周期为1.25us,

数据0的占空比为1/4,数据1的占空比为3/4。
本例使用40MHz时钟,周期50T=1.25us,

数据1占空比为37T,数据0占空比为12T。

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

截图202409182124488955.jpg

程序源码, 20240927 更新:
AI8051U-PWMA-DMA-直接驱动WS2812彩灯.rar (256.8 KB, 下载次数: 406)

驱动效果视频:



回复

使用道具 举报 送花

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

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-9-27 17:31:35 | 显示全部楼层
现在 AI8051U 有
3组 SPI有DMA支持,
4通道 PWM有DMA支持,
可以轻松支持 7个WS2812灯条
===10月 出 AI8051U-QFN48/6mm*6mm


如果只是学习现在还是用

AI8051U入门比较好,
现在我们对这个支持力度大


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看II
  • 打卡总天数:25
  • 最近打卡:2024-09-24 08:48:14

1

主题

84

回帖

273

积分

中级会员

积分
273
发表于 2024-9-19 09:30:56 | 显示全部楼层
感谢分享
回复

使用道具 举报 送花

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

19

主题

3190

回帖

4866

积分

论坛元老

积分
4866
发表于 2024-9-19 10:15:58 来自手机 | 显示全部楼层
1365个总耗时大概多少

点评

单个灯就是1.25us * 24,1365个灯就是40950us,也就是40.95ms  详情 回复 发表于 2024-9-19 11:01
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-9-19 11:01:31 | 显示全部楼层
so*** 发表于 2024-9-19 10:15
1365个总耗时大概多少

单个灯就是1.25us * 24,1365个灯就是40950us,也就是40.95ms
回复 支持 1 反对 0

使用道具 举报 送花

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

0

主题

47

回帖

304

积分

中级会员

积分
304
发表于 2024-9-27 09:01:16 | 显示全部楼层
厉害,我的哥~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:127
  • 最近打卡:2025-05-01 09:39:07

0

主题

11

回帖

708

积分

高级会员

积分
708
发表于 2024-9-27 13:03:33 | 显示全部楼层
梁工,STC8G1K08A  SOP8芯片,P3.0,P3.1用作通讯了,p3.2用于ADC,p5.4,P5.5没有使用,在硬件资源方面满足驱动WS2812LED灯吗,想实现的功能是AD的大小控制灯亮的数量多少。{:5_300:}

点评

STC8G1K08A没有DMA,内存也较小,任务简单就直接IO模拟时序吧,简单明了,比如立体声音响的左右声道电平显示,我曾经用STC8G1K08A控制左右声道各72个灯(144个灯的灯条截成2段)。  详情 回复 发表于 2024-9-27 16:11
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:301
  • 最近打卡:2025-05-01 08:32:20
已绑定手机

16

主题

304

回帖

1185

积分

金牌会员

积分
1185
发表于 2024-9-27 14:44:49 | 显示全部楼层
AI8051U, 灯光控制板, DMA-PWM直接驱动WS2812
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=10860
(出处: 国芯技术交流网站)

a6471e437b40a4c184213d3118052587.mp4

10.29 MB, 下载次数: 159

专注LED灯控,25年LED从业经验,因为专注所以专业,欢迎大家沟通交流!
回复 支持 反对

使用道具 举报 送花

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-9-27 16:11:23 | 显示全部楼层
mash*** 发表于 2024-9-27 13:03
梁工,STC8G1K08A  SOP8芯片,P3.0,P3.1用作通讯了,p3.2用于ADC,p5.4,P5.5没有使用,在硬件资源方面满足 ...

STC8G1K08A没有DMA,内存也较小,
任务简单就直接IO模拟时序吧,简单明了,
比如立体声音响的左右声道电平显示,
我曾经用STC8G1K08A-SOP8 控制左右声道各72个灯(144个灯的灯条截成2段)。
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:127
  • 最近打卡:2025-05-01 09:39:07

0

主题

11

回帖

708

积分

高级会员

积分
708
发表于 2024-9-27 17:02:45 | 显示全部楼层
梁*** 发表于 2024-9-27 16:11
STC8G1K08A没有DMA,内存也较小,任务简单就直接IO模拟时序吧,简单明了,比如立体声音响的左右声道电平 ...

感谢!
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 19:25 , Processed in 0.141906 second(s), 119 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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