找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1885|回復(fù): 5
收起左側(cè)

STC8H8K64U硬件SPI無(wú)法點(diǎn)亮ST7789屏幕

[復(fù)制鏈接]
ID:190152 發(fā)表于 2024-11-19 16:14 | 顯示全部樓層 |閱讀模式
100黑幣
求助研究了幾天了實(shí)在是無(wú)法點(diǎn)亮屏幕

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

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

回復(fù)

使用道具 舉報(bào)

ID:190152 發(fā)表于 2024-11-19 17:27 | 顯示全部樓層
已經(jīng)解決了
回復(fù)

使用道具 舉報(bào)

ID:961114 發(fā)表于 2024-11-20 14:16 | 顯示全部樓層
DMA-SPI-MOSI 輸出直接驅(qū)動(dòng) WS2812 三基色彩燈@8H/32G系列, CPU休息
SPI方案, 不加外部反相器:
只用到MOSI驅(qū)動(dòng)WS2812,但由于SPI的3個(gè)信號(hào)是捆綁在一起的
===MISO不能做它用
本例使用P1.3-MOSI輸出驅(qū)動(dòng)信號(hào),用戶可以切換到別的腳。
===將 MISO 不做其他用途;
===將 MISO管腳 先設(shè)置為對(duì)外輸出0;
===MOSI 發(fā)送完成后,對(duì)外停止時(shí)輸出的是 MISO 讀到的狀態(tài), 0 !
===SCLK如要做其他用途,可設(shè)置為高阻輸入,作為輸入使用
        這 SPI 留了這么個(gè)絕活 支持 WS2812B �。�!

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

每個(gè)燈3個(gè)字節(jié),分別對(duì)應(yīng)綠、紅、藍(lán)色,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.
高電平時(shí)間要精確控制在要求的范圍內(nèi), 低電平時(shí)間不需要精確控制, 大于要求的最小值并小于RES的50us即可.

WS2812S的標(biāo)準(zhǔn)時(shí)序如下:
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
兩個(gè)位數(shù)據(jù)之間的間隔要小于RES的50us.

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

用SPI傳輸, 速度3.0~3.5MHz,以3.2MHz為最佳, MSB先發(fā), 每個(gè)字節(jié)高4位和低4位分別對(duì)應(yīng)一個(gè)WS2812位數(shù)據(jù), 1000為數(shù)據(jù)0, 1110為數(shù)據(jù)1, 有DMA就使用DMA傳輸, 沒(méi)有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é)對(duì)應(yīng)的WS2812數(shù)據(jù)0-->0x80, 數(shù)據(jù)1-->0xE0,
SPI數(shù)據(jù)低半字節(jié)對(duì)應(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分頻。

開源程序  
下面為跑馬燈效果視頻:
1.png
2.jpg
回復(fù)

使用道具 舉報(bào)

ID:44037 發(fā)表于 2024-11-20 15:34 | 顯示全部樓層
怎么解決的 分享一下
回復(fù)

使用道具 舉報(bào)

ID:292903 發(fā)表于 2025-4-1 23:14 | 顯示全部樓層

樓主怎么解決的呀?你上一個(gè)帖子我有回復(fù)
求幫忙,。。我也在整硬件SPI驅(qū)動(dòng)7789
回復(fù)

使用道具 舉報(bào)

ID:1110477 發(fā)表于 2025-4-4 04:51 | 顯示全部樓層
STC莊偉 發(fā)表于 2024-11-20 14:16
DMA-SPI-MOSI 輸出直接驅(qū)動(dòng) WS2812 三基色彩燈@8H/32G系列, CPU休息
SPI方案, 不加外部反相器:
只用到MOS ...

60個(gè)燈,是要做表盤
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表