標題: STC8H8K64U硬件SPI無法點亮ST7789屏幕 [打印本頁]

作者: 高低都不調(diào)    時間: 2024-11-19 16:14
標題: STC8H8K64U硬件SPI無法點亮ST7789屏幕
求助研究了幾天了實在是無法點亮屏幕

STC8硬件spi驅(qū)動ST7789屏幕.zip

183.16 KB, 下載次數(shù): 0


作者: 高低都不調(diào)    時間: 2024-11-19 17:27
已經(jīng)解決了
作者: STC莊偉    時間: 2024-11-20 14:16
DMA-SPI-MOSI 輸出直接驅(qū)動 WS2812 三基色彩燈@8H/32G系列, CPU休息
SPI方案, 不加外部反相器:
只用到MOSI驅(qū)動WS2812,但由于SPI的3個信號是捆綁在一起的
===MISO不能做它用
本例使用P1.3-MOSI輸出驅(qū)動信號,用戶可以切換到別的腳。
===將 MISO 不做其他用途;
===將 MISO管腳 先設(shè)置為對外輸出0;
===MOSI 發(fā)送完成后,對外停止時輸出的是 MISO 讀到的狀態(tài), 0 !
===SCLK如要做其他用途,可設(shè)置為高阻輸入,作為輸入使用
        這 SPI 留了這么個絕活 支持 WS2812B 。!

本例驅(qū)動60個燈,接成環(huán)狀。SPI發(fā)送720字節(jié),DMA分3塊發(fā)送,一塊240字節(jié),
SPI-DMA自動傳送不占CPU時間,SPI-DMA 總耗時2.08mS,
===但由于使用DMA中斷處理,所以發(fā)送占CPU時間只有幾uS。
===實際幾乎 不占 CPU 時間

每個燈3個字節(jié),分別對應(yīng)綠、紅、藍色,MSB先發(fā).
800KHz碼率, 數(shù)據(jù)0(1/4占空比): H=0.3125us  L=0.9375us, 數(shù)據(jù)1(3/4占空比): H=0.9375us  L=0.3125us, RESET>=50us.
高電平時間要精確控制在要求的范圍內(nèi), 低電平時間不需要精確控制, 大于要求的最小值并小于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
兩個位數(shù)據(jù)之間的間隔要小于RES的50us.

SPI方案:
只用到MOSI驅(qū)動WS2812,但由于SPI的3個信號是捆綁在一起的,MISO 不能做它用。本例使用P1.3-MOSI輸出驅(qū)動信號,用戶可以切換到別的腳。
===將 MISO 不做其他用途;
===將 MISO管腳 先設(shè)置為對外輸出0;
===MOSI 發(fā)送完成后,對外停止時輸出的是 MISO 讀到的狀態(tài), 0 ,這 STC-R&D 留了這么個絕活支持 WS2812B 。。

用SPI傳輸, 速度3.0~3.5MHz,以3.2MHz為最佳, MSB先發(fā), 每個字節(jié)高4位和低4位分別對應(yīng)一個WS2812位數(shù)據(jù), 1000為數(shù)據(jù)0, 1110為數(shù)據(jù)1, 有DMA就使用DMA傳輸, 沒有DMA就直接SPI發(fā)送.
MOSI數(shù)據(jù)位       D7 D6 D5 D4    D3 D2 D1 D0
MOSI數(shù)據(jù)          1    0   0   0      1   1   1   0
                     WS2812數(shù)據(jù)0    WS2812數(shù)據(jù)1
SPI數(shù)據(jù)高半字節(jié)對應(yīng)的WS2812數(shù)據(jù)0-->0x80, 數(shù)據(jù)1-->0xE0,
SPI數(shù)據(jù)低半字節(jié)對應(yīng)的WS2812數(shù)據(jù)0-->0x08, 數(shù)據(jù)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
高低都不調(diào) 發(fā)表于 2024-11-19 17:27
已經(jīng)解決了

樓主怎么解決的呀?你上一個帖子我有回復
求幫忙,。。我也在整硬件SPI驅(qū)動7789
作者: keemee    時間: 2025-4-4 04:51
STC莊偉 發(fā)表于 2024-11-20 14:16
DMA-SPI-MOSI 輸出直接驅(qū)動 WS2812 三基色彩燈@8H/32G系列, CPU休息
SPI方案, 不加外部反相器:
只用到MOS ...

60個燈,是要做表盤




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1