找回密码
 立即注册
查看: 1413|回复: 12

USART1/USART2的SPI, DMA同时驱动2730个 WS2812彩灯@AI8051U,SPI

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-9-15 22:50:37 | 显示全部楼层 |阅读模式
Ai8051USBUSB 型 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
===最多同时驱动2730个三基色彩灯
===USART1/串口1的USART1-SPI, 无需反相,用DMA支持,不占CPU时间
        可以驱动第1路独立的 WS2812灯带网络
===USART2/串口2的USART2-SPI, 无需反相,用DMA支持,不占CPU时间

        可以驱动第2路独立的 WS2812灯带网络
===还有标配的独立 SPI
        可以驱动第3路独立的 WS2812灯带网络
===QSPI 也可以当一条数据线的普通 SPI
        可以驱动第4路独立的 WS2812灯带网络
AI8051U的串口1或串口2工作于SPI-DMA模式,输出控制WS2812三基色彩灯 !
使用 SPI-MOSI 输出直接驱动WS2812 三基色彩灯,
DMA传输32K SRAM 轻松驱动最多2730个灯并且不占用CPU时间

本例使用P1.5/MOSI输出信号(用户可以切换到别的脚)直接驱动WS2812
只用到MOSI驱动WS2812,但由于SPI的3个信号是捆绑在一起的
===MISO不能做它用

===SCLK如要做其他用途,可设置为高阻输入,作为输入使用
        这时要设置 SPI 的相关I/O的工作模式不自动切换,由用户设置
本例P1.6-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.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,佳.
电路预览(附件带PDF电路):
截图202409152249192823.jpg

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

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

驱动视频:








回复

使用道具 举报 送花

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

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-9-15 23:14:33 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

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

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-9-15 23:18:29 | 显示全部楼层
AI8051U 其实最多可以实现 4组独立的 SPI

1, 原始的标配 SPI
2, USART1-SPI
3, USART2-SPI

4, QSPI 的配置为1条数据线的 SPI

回复 支持 反对

使用道具 举报 送花

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

19

主题

3190

回帖

4866

积分

论坛元老

积分
4866
发表于 2024-9-16 08:55:53 来自手机 | 显示全部楼层
感觉蛮强大的,就是spi其他2个引脚,还能当IO吗

点评

不可以了  详情 回复 发表于 2024-9-16 09:08
回复 支持 反对

使用道具 举报 送花

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

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-9-16 09:08:57 | 显示全部楼层
so*** 发表于 2024-9-16 08:55
感觉蛮强大的,就是spi其他2个引脚,还能当IO吗

MISO 不可以当普通I/O
===就浪费1个I/O

SCLK可以当输入,
#SS 本来 SPI模式就可以不参与 SPI

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:452
  • 最近打卡:2025-05-01 06:20:50
已绑定手机

13

主题

1257

回帖

2971

积分

金牌会员

积分
2971
发表于 2024-9-18 15:16:33 | 显示全部楼层
楼主| 发表于 2024-8-24 18:07:23 | 只看该作者
          21cnsound 发表于 2024-8-24 16:45
          请问,哪些型号的单片机SPI是优化过、支持SPI空闲是输出低电平的?

STC32系列,STC8H系列

梁工,AI8051U现在也支持SPI空闲是输出低电平了?

点评

AI8051U的标配SPI的MOSI是空闲为高,而USART1和USART2的SPI功能MOSI再空闲时为低。  详情 回复 发表于 2024-9-18 15:19
回复 支持 反对

使用道具 举报 送花

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-9-18 15:19:35 | 显示全部楼层
21cns*** 发表于 2024-9-18 15:16
楼主| 发表于 2024-8-24 18:07:23 | 只看该作者
          21cnsound 发表于 2024-8-24 16:45
          请 ...
AI8051U的
标配SPI的MOSI是空闲为高;
USART1-SPI, MOSI在空闲时可以为低;
USART2-SPI, MOSI在空闲时可以为低;


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:452
  • 最近打卡:2025-05-01 06:20:50
已绑定手机

13

主题

1257

回帖

2971

积分

金牌会员

积分
2971
发表于 2024-9-18 17:21:57 | 显示全部楼层
梁*** 发表于 2024-9-18 15:19
AI8051U的标配SPI的MOSI是空闲为高,而USART1和USART2的SPI功能MOSI再空闲时为低。 ...

收到,回头我验证一下,多谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:452
  • 最近打卡:2025-05-01 06:20:50
已绑定手机

13

主题

1257

回帖

2971

积分

金牌会员

积分
2971
发表于 2024-9-27 21:23:06 | 显示全部楼层
21cns*** 发表于 2024-9-18 17:21
收到,回头我验证一下,多谢

已验证,完美
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-25 21:54:41
已绑定手机

0

主题

2

回帖

10

积分

新手上路

积分
10
发表于 6 天前 | 显示全部楼层
神*** 发表于 2024-9-15 23:14
现在 AI8051U 有
3组 SPI有DMA支持,
4通道 PWM有DMA支持,

看来论坛,怎么有的说AI8051U驱动2812需要反相器,有的没有?不明白

点评

不需要反向器  详情 回复 发表于 6 天前
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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