找回密码
 立即注册
楼主: 吽吽吽

DMA_SPI 驱动 WS2812B 全彩LED 的简单应用 | 梁工是说不用加反向器 ?

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2023-9-28 00:54:39 | 显示全部楼层
ch*** 发表于 2023-9-27 20:27
梁工你误解我的意思了,这个不是spi传输快慢的问题,dma+spi速度确实很快,但是要驱动WS2812不是光有速度 ...

我不知道你是否实际驱动过2812.
2812传输信号时,会检测高电平的时间,T1H = 1.00uS±150nS,T0H = 0.25uS±150nS。
低电平时间小于50us就不会复位,正常传输。
我不知道你担心的是什么。

点评

梁工你是说: 【DMA-SPI, WS2812B】 程序控制的好,实际没必要加反向器 ?  详情 回复 发表于 2024-1-1 17:24
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2023-12-06 15:33:02

20

主题

110

回帖

771

积分

荣誉版主

积分
771
发表于 2023-9-28 09:39:15 | 显示全部楼层
本帖最后由 chen 于 2023-9-28 10:00 编辑
梁*** 发表于 2023-9-28 00:54
我不知道你是否实际驱动过2812.
2812传输信号时,会检测高电平的时间,T1H = 1.00us±150ns,T0H = 0.25u ...

看下楼主的波形,正常情况下两个字节之间是高电平。。。要是低电平楼主也就不用反相了。还有个奇怪的地方,我用的是P23作为MOSI口。实测当把MISO设置为低电平时,间隔MOSI就为最后一个位平了,不知道是个啥原理

点评

两个字节之间高电平是不行的,必须是低电平。  详情 回复 发表于 2023-9-28 13:12
回复 支持 反对

使用道具 举报 送花

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2023-9-28 13:12:43 | 显示全部楼层
ch*** 发表于 2023-9-28 09:39
看下楼主的波形,正常情况下两个字节之间是高电平。。。要是低电平楼主也就不用反相了。还有个奇怪的地方 ...

两个字节之间高电平是不行的,必须是低电平。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2023-11-20 18:31:17 | 显示全部楼层
2812不同厂家不同批次还有各种兼容型号,有GRB还有RGB,乱七八糟的,最好的办法是根据某一厂家某一型号某一批次的单独调试,先用差不多的时序点一个灯,正常点亮了再发多个灯的数据,测这个灯的输出,因为它肯定不会自相矛盾,可以级连的,这是最准确的方法,根据这个灯的输出调时序,兼容性最好最稳定的方法是用nop看示波器调,串口SPI都不靠谱,2812单总线时序很特殊,我试验了多款2812,发现时序各不相同,兼容性最好的时序是:
逻辑0:300~400ns高电平+1300~1400ns低电平
逻辑1:900~1000ns高电平+1300~1400ns低电平


mmexport1652030520668.jpg
7ae01c9613f809a6.png



DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-01 04:31:49

24

主题

515

回帖

986

积分

荣誉版主

积分
986
发表于 2023-12-3 12:39:34 | 显示全部楼层
用IO口模拟就好了。
回复 支持 反对

使用道具 举报 送花

0

主题

11

回帖

98

积分

注册会员

积分
98
发表于 2024-1-1 02:00:04 来自手机 | 显示全部楼层
请教大神,stc32的dma不是已经从stc8h的传输256字节升级为65536字节了吗?还是只能控制10个ws2812?

点评

目前的问题是, 如直接输出, 只能在每次 DMA 传输 (STC8 最大 256B, STC32 最大 64K), 控制刷新在此数据范围内的 WS2812, 之后必须复位 WS2812(否则下次传输出错), 再次启动 DMA 传输 . 如果 是 STC8 (256B), 最多  详情 回复 发表于 2024-1-1 06:08
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-1-1 06:08:09 | 显示全部楼层
本帖最后由 LAOXU 于 2024-1-1 15:02 编辑
大*** 发表于 2024-1-1 02:00
请教大神,stc32的dma不是已经从stc8h的传输256字节升级为65536字节了吗?还是只能控制10个ws2812? ...

目前的问题是, 如直接输出, 只能在每次 DMA 传输 (STC8 最大 256B, STC32 最大 64K), 控制刷新在此数据范围内的 WS2812, 之后必须复位 WS2812(否则下次传输出错), 再次启动  DMA 传输 .

如果 是 STC8 (256B), 最多 一次 控制 10个(或20个, 半字节控制) WS2812,
如果 是 STC32 (64K), 最多 一次 控制 2560个(或5120个, 半字节控制) WS2812,
注:  实际上 STC32 片内只有 几K 内存, 如不外扩 RAM 的话, 最多 一次 控制 也就 几百个 WS2812,

当然, 如果输出加反相器, 则依靠 多次 DMA 传输(级联), 可控制 N 倍的 上述数量  WS2812,
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-04-30 10:57:37

17

主题

533

回帖

1326

积分

金牌会员

积分
1326
发表于 2024-1-1 06:26:45 | 显示全部楼层
ch*** 发表于 2023-9-27 20:27
梁工你误解我的意思了,这个不是spi传输快慢的问题,dma+spi速度确实很快,但是要驱动WS2812不是光有速度 ...

是的 控制好时序 单单 io翻转就可以点亮
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

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

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-1-1 17:24:53 | 显示全部楼层
梁*** 发表于 2023-9-28 00:54
我不知道你是否实际驱动过2812.
2812传输信号时,会检测高电平的时间,T1H = 1.00uS±150nS,T0H = 0.25uS ...

梁工你是说:
DMA-SPI, WS2812B】 程序控制的好,实际没必要加反向器 ?

如这样,节后帮给个演示程序,方便大家测试,你手头没 WS2812B,
给个演示程序就行了,大家自己测试后,在这讨论
回复 支持 反对

使用道具 举报 送花

0

主题

11

回帖

98

积分

注册会员

积分
98
发表于 2024-1-1 22:03:23 | 显示全部楼层
LAO*** 发表于 2024-1-1 06:08
目前的问题是, 如直接输出, 只能在每次 DMA 传输 (STC8 最大 256B, STC32 最大 64K), 控制刷新在此数据范 ...

加反相器的同时,是不是也要关掉其它中断呀?不然其它中断进来就超过2812协议的完成时间了。

点评

只要保证任何中断执行时间都不要查过50us,就没有问题。  详情 回复 发表于 2024-1-2 15:55
不加反相器, 由于每次 DMA 传输完, 下次启动 DMA 传输 之间(切换时), SPI 输出起码会有 数十 个(或更大)以上 的高电平停顿, 假如下次 DMA 传输 的第一个 BIT 是 0, SPI 发送时, 加上这点开始前的高电平停顿, WS2812  详情 回复 发表于 2024-1-2 00:26
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 04:23 , Processed in 0.182932 second(s), 124 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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