标题: STC8H8K64U硬件SPI无法点亮ST7789屏幕 [打印本页]

作者: 高低都不调    时间: 2024-11-19 16:14
标题: STC8H8K64U硬件SPI无法点亮ST7789屏幕
求助研究了几天了实在是无法点亮屏幕

STC8硬件spi驱动ST7789屏幕.zip

183.16 KB, 下载次数: 0


作者: 高低都不调    时间: 2024-11-19 17:27
已经解决了
作者: STC庄伟    时间: 2024-11-20 14:16
DMA-SPI-MOSI 输出直接驱动 WS2812 三基色彩灯@8H/32G系列, CPU休息
SPI方案, 不加外部反相器:
只用到MOSI驱动WS2812,但由于SPI的3个信号是捆绑在一起的
===MISO不能做它用
本例使用P1.3-MOSI输出驱动信号,用户可以切换到别的脚。
===将 MISO 不做其他用途;
===将 MISO管脚 先设置为对外输出0;
===MOSI 发送完成后,对外停止时输出的是 MISO 读到的状态, 0 !
===SCLK如要做其他用途,可设置为高阻输入,作为输入使用
        这 SPI 留了这么个绝活 支持 WS2812B !!!

本例驱动60个灯,接成环状。SPI发送720字节,DMA分3块发送,一块240字节,
SPI-DMA自动传送不占CPU时间,SPI-DMA 总耗时2.08mS,
===但由于使用DMA中断处理,所以发送占CPU时间只有几uS。
===实际几乎 不占 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方案:
只用到MOSI驱动WS2812,但由于SPI的3个信号是捆绑在一起的,MISO 不能做它用。本例使用P1.3-MOSI输出驱动信号,用户可以切换到别的脚。
===将 MISO 不做其他用途;
===将 MISO管脚 先设置为对外输出0;
===MOSI 发送完成后,对外停止时输出的是 MISO 读到的状态, 0 ,这 STC-R&D 留了这么个绝活支持 WS2812B !!!

用SPI传输, 速度3.0~3.5MHz,以3.2MHz为最佳, MSB先发, 每个字节高4位和低4位分别对应一个WS2812位数据, 1000为数据0, 1110为数据1, 有DMA就使用DMA传输, 没有DMA就直接SPI发送.
MOSI数据位       D7 D6 D5 D4    D3 D2 D1 D0
MOSI数据          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。最佳。本例使用。
主频24.0MHz, SPI分频8 = 3.0MHz。本例可用。
主频12.8MHz, SPI分频4 = 3.2MHz。最佳。用户要改下主频定义和SPI为4分频。
主频12.0MHz, SPI分频4 = 3.0MHz。用户要改下主频定义,SPI为4分频。

开源程序  
下面为跑马灯效果视频:



作者: by64214    时间: 2024-11-20 15:34
怎么解决的 分享一下
作者: 达达别    时间: 2025-4-1 23:14
高低都不调 发表于 2024-11-19 17:27
已经解决了

楼主怎么解决的呀?你上一个帖子我有回复
求帮忙,。。我也在整硬件SPI驱动7789
作者: keemee    时间: 2025-4-4 04:51
STC庄伟 发表于 2024-11-20 14:16
DMA-SPI-MOSI 输出直接驱动 WS2812 三基色彩灯@8H/32G系列, CPU休息
SPI方案, 不加外部反相器:
只用到MOS ...

60个灯,是要做表盘
作者: baocong2019    时间: 2025-8-26 16:16
高低都不调 发表于 2024-11-19 17:27
已经解决了

什么问题 解决了?说一下呗
作者: man1234567    时间: 2025-8-28 10:24
论坛是个分享的地方,分享问题分享解决问题的过程互帮互助共同成长。
楼主同一问题连发数贴,问题解决后对网友求解却从不理会。
强烈鄙视这种自私自利的行为




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1