LAOXU
发表于 2023-12-30 09:31:21
祁绪电子 发表于 2023-3-27 22:00
STC-SPI 最大的设计失败,就是MOSI 空闲 不能配置成低电平
同感 !!!
WS2812 多级串联, 当数据量超出 DMA 缓冲区长度时, 就不能直接 使用了, 必须外加一级反相器, 才能可靠的分多次传送.
社区闲人
发表于 2023-12-30 10:32:01
原来一直使用软件模拟SPI通信,IO口随便设置,速率100K---4MHZ, 一次通信可传输16BIT/24BIT/32BIT,很方便。
后来STC出来DMA-SPI,才用上硬件SPI。也是觉得限制多多。
LAOXU
发表于 2024-1-1 14:59:25
社区闲人 发表于 2023-12-30 10:32
原来一直使用软件模拟SPI通信,IO口随便设置,速率100K---4MHZ, 一次通信可传输16BIT/24BIT/32BIT,很方便 ...
很正常, 软件灵活, 速度慢, 占程序开消.
由于受硬件的几种工作模式限制 , 硬件非常死板, 但程序开消少.
神农鼎
发表于 2024-1-1 17:04:09
帮评估下这位新人,提出的方案有无实际价值
DMA_SPI驱动WS2812B全彩LED的简单应用 - DMA: 支持4组串口,3组SPI,I2C,TFT-i8080/M6800,ADC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
电子DIY小家
发表于 2024-1-1 23:09:58
神农鼎 发表于 2024-1-1 17:04
帮评估下这位新人,提出的方案有无实际价值
{:shocked:}STC32G的SPI+DMA驱动ws2812的应该好早就贴出来了的,本来就不需要反相器
神农鼎
发表于 2024-1-2 07:28:06
电子DIY小家 发表于 2024-1-1 23:09
STC32G的SPI+DMA驱动ws2812的应该好早就贴出来了的,本来就不需要反相器
冲哥帮在那个帖子加上不需要加反向器的特别提醒,免得新人被误导
并将链接贴到本贴后面,方便大家参考,省掉那个不应该加的反向器
//硬件SPI模拟WS2811时序(用SPI的8位数据模拟WS281x的一位数据)
//_____
// | |____| 11110000high level
//__
// | |_______| 11000000low level
神农鼎
发表于 2024-1-2 07:51:57
也是我们【荣誉版主圈】的自己人发的贴
SPI-DMA, 驱动全彩LED,无需反相,灯带数量只受xdata大小限制@STC32F12K54 - DMA: 支持4组串口,3组SPI,I2C,TFT-i8080/M6800,ADC - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
小坤
发表于 2024-1-8 08:36:24
神农鼎 发表于 2024-1-2 07:51
也是我们【荣誉版主圈】的自己人发的贴
实测 不需要加反向器就可以正常驱动WS2812
神农鼎
发表于 2024-1-8 08:55:38
不需要加反向器,说明 STC 的 SPI 和 冲哥一样威武
===本坛荣誉版主冲哥早就给出了 硬件 SPI 驱动 WS2812B 的成熟方案
===我是 2024/1/8 才来本贴学习后,恍然大悟,必须在 本坛 认真学习
www.STCAIMCU.com, 有了大家的奉献,威武啊
神农鼎
发表于 2024-1-9 08:43:38
SPI方案:
只用到MOSI驱动WS2812,但由于SPI的3个信号是捆绑在一起的,MISO、SCLK不能做它用。本例使用P1.3-MOSI输出驱动信号,用户可以切换到别的脚。
===将 MISO 不做其他用途;
===将 MISO管脚 先设置为对外输出0;
===MOSI 发送完成后,对外停止时输出的是 MISO 读到的状态, 0 ,这 STC-R&D 留了这么个绝活支持 WS2812B !!!