|
本帖最后由 harchy 于 2024-7-22 15:26 編輯
本篇介紹單片機(jī)使用硬件SPI-4方式控制RA8889驅(qū)動彩屏。
提供STC8H8K64U和STC8051U34K64的參考代碼。
【硬件部份】STC8H8K64U/STC8051U34K64 + RA8889開發(fā)板 + 7寸TFT 800x480
單片機(jī)實(shí)際不限,這里采用的STC最新、主推的型號,比如STC8H8K64U、STC8051U34K64進(jìn)行實(shí)驗(yàn)測試,您可以換用不同型號。目前測試這兩個系列,顯示速度均相當(dāng)不錯,軟件設(shè)計(jì)也是極為簡單。各篇文章下方均提供源碼供參考下載。
RA8889是一款瑞佑科技推出的高性能液晶控制芯片,單片機(jī)下指令即可,可以驅(qū)動最高1366x768等液晶屏,其內(nèi)建JEPG解碼引擎,圖形驅(qū)動引擎,因此顯示速度相當(dāng)不錯,是單片機(jī)擴(kuò)展彩屏UI的好搭檔。也有低階的型號比如RA8871M,RA8873M等,可根據(jù)實(shí)際需求選擇。RA8889功能方框圖:
RA8889方框圖_new.png (302.91 KB, 下載次數(shù): 30)
下載附件
2024-7-22 13:58 上傳
1. 實(shí)物連接圖:STC8H8K64U+RA8889開發(fā)板,使用P2口SPI接口:
STC8H8K64U_RA8889_硬件SPI實(shí)物連接圖min.jpg (415.29 KB, 下載次數(shù): 22)
下載附件
2024-7-22 13:58 上傳
2.實(shí)物連接圖:STC8051U34K64+RA8889開發(fā)板,使用P2口SPI接口:
STC8051U34K64_RA8889_硬件SPI_實(shí)物連接圖min.jpg (403.43 KB, 下載次數(shù): 30)
下載附件
2024-7-22 13:58 上傳
3.RA8889的SPI-4電路連接圖:
SPI4電路連接圖.png (43.33 KB, 下載次數(shù): 27)
下載附件
2024-7-22 13:58 上傳
4.RA8889開發(fā)板的接口說明,SPI接口主要使用到DB4(CS),DB5(SDO),DB6(SDI)和DB7(SCK):
RA8889開發(fā)板連接器接口引腳定義.png (121.38 KB, 下載次數(shù): 32)
下載附件
2024-7-22 13:58 上傳
5.單片機(jī)的引腳圖:STC8H8K64U:
STC8H8K64U引腳圖_SPI.png (61.71 KB, 下載次數(shù): 36)
下載附件
2024-7-22 13:58 上傳
6.單片機(jī)的引腳圖:STC8051U34K64:
STC8051U34K64引腳圖.png (77.49 KB, 下載次數(shù): 35)
下載附件
2024-7-22 13:59 上傳
7. STC8H8K64U與RA8889開發(fā)板詳細(xì)連接說明:
STC8H8K64U_RA8889_硬件SPI_實(shí)物連接圖_放大_logo.jpg (412.18 KB, 下載次數(shù): 29)
下載附件
2024-7-22 13:59 上傳
8. STC8051U34K64與RA8889開發(fā)板詳細(xì)連接說明:
STC8051U34K64_RA8889_硬件SPI_實(shí)物連接圖_放大_logo.jpg (1.16 MB, 下載次數(shù): 33)
下載附件
2024-7-22 13:59 上傳
【軟件部份】
9. STC8H8K64U與RA8889的連接:
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡STC8H8K64U硬件接線≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
[P2.1] GPIO ----> RA8889的復(fù)位 RA8889_RST
[P2.2] SPI_SS ----> RA8889的片選 DB[4] (XnSCS)
[P2.3] SPI_MOSI ----> RA8889的SDI DB[6] (XSSDI)
[P2.4] SPI_MISO <---- RA8889的SDO DB[5] (XSSDO)
[P2.5] SPI_SCK ----> RA8889的SCK DB[7] (XSSCL)
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
在RA8889_MCU_IF.h文件中進(jìn)行配置定義:
- /* P2.SPI-4(硬件) IO口配置*/
- sbit RA8889_RST = P2 ^ 1; // Reset RA8889 (通過IO口接到RA8889/RA8876進(jìn)行硬件復(fù)位)
- sbit SPI_SS = P2 ^ 2; // Slave Select (RA8889片選)
- sbit SPI_MISO = P2 ^ 3; // Master In Slave Out(接RA8889的SDO)
- sbit SPI_MOSI = P2 ^ 4; // Master Out Slave In(接RA8889的SDI)
- sbit SPI_SCK = P2 ^ 5; // Serial Clock
復(fù)制代碼
10. STC8051U34K64與RA8889的連接:
≡≡≡≡≡≡≡≡≡≡≡≡≡≡STC8051U34K64硬件接線≡≡≡≡≡≡≡≡≡≡≡≡≡≡
[P2.3] GPIO ----> RA8889的復(fù)位 RA8889_RST
[P2.4] SPI_SS ----> RA8889的片選 DB[4] (XnSCS)
[P2.5] SPI_MOSI ----> RA8889的SDI DB[6] (XSSDI)
[P2.6] SPI_MISO <---- RA8889的SDO DB[5] (XSSDO)
[P2.7] SPI_SCK ----> RA8889的SCK DB[7] (XSSCL)
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
在RA8889_MCU_IF.h文件中進(jìn)行配置定義:
- /* P2.SPI-4(硬件) IO口配置*/
- sbit RA8889_RST = P2 ^ 3; // Reset RA8889 (通過IO口接到RA8889/RA8876進(jìn)行硬件復(fù)位)
- sbit SPI_SS = P2 ^ 4; // Slave Select (RA8889片選)
- sbit SPI_MOSI = P2 ^ 5; // Master Out Slave In (接RA8889的SDI)
- sbit SPI_MISO = P2 ^ 6; // Master In Slave Out (接RA8889的SDO)
- sbit SPI_SCK = P2 ^ 7; // Serial Clock
復(fù)制代碼
11. STC8H8K64U配置IO口:
在main.c中配置SPI-4的IO口:
- P2M0 = 0xef; P2M1 = 0x00; //P2.4(MISO)設(shè)置為雙向口,其它為推挽模式(使用P2.SPI)
復(fù)制代碼
12. STC8051U34K64配置IO口:
在main.c中配置SPI-4的IO口:
- P2M0 = 0xbf; P2M1 = 0x00; //P2.6(MISO)設(shè)置為雙向口,其它為推挽模式(使用P2.SPI)
復(fù)制代碼
13. STC8H8K64U的SPI初始化:
在RA8889_MCU_IF.c文件中設(shè)定SPI初始化:
- * SPI-4 初始化 */
- void SPI4_Init()
- {
- SPCTL |= (1 << 7); //忽略 SS 引腳功能,使用 MSTR 確定器件是主機(jī)還是從機(jī)
- SPCTL |= (1 << 6); //使能 SPI 功能
- SPCTL &= ~(1 << 5); //先發(fā)送/接收數(shù)據(jù)的高位( MSB)
- SPCTL |= (1 << 4); //設(shè)置主機(jī)模式
- SPCTL |= (1 << 3); //SCLK 空閑時為高電平,SCLK 的前時鐘沿為下降沿,后時鐘沿為上升沿
- SPCTL |= (1 << 2); //數(shù)據(jù)在 SCLK 的前時鐘沿驅(qū)動,后時鐘沿采樣
- SPCTL = (SPCTL & ~3) | 2; //SPI 時鐘頻率選擇, 0: 4T, 1: 8T, 2: 16T, 3: 2T (時鐘頻率先調(diào)整到最慢,再依照自己的系統(tǒng)調(diào)整)
- P_SW1 = (P_SW1 & ~(3<<2)) | (1<<2); //IO口選擇P2. 0:P1.2/P5.4 P1.3 P1.4 P1.5 || 1:P2.2 P2.3 P2.4 P2.5 || 2:P5.4 P4.0 P4.1 P4.3 || 3:P3.5 P3.4 P3.3 P3.2
- SPSTAT = SPIF + WCOL; //清0 SPIF和WCOL標(biāo)志
- }
復(fù)制代碼
14. STC8051U34K64的SPI初始化:
在RA8889_MCU_IF.c文件中設(shè)定SPI初始化:
- /* SPI-4 初始化 */
- void SPI4_Init()
- {
- SPCTL |= (1 << 7); //忽略 SS 引腳功能,使用 MSTR 確定器件是主機(jī)還是從機(jī)
- SPCTL |= (1 << 6); //使能 SPI 功能
- SPCTL &= ~(1 << 5); //先發(fā)送/接收數(shù)據(jù)的高位( MSB)
- SPCTL |= (1 << 4); //設(shè)置主機(jī)模式
- SPCTL |= (1 << 3); //SCLK 空閑時為高電平,SCLK 的前時鐘沿為下降沿,后時鐘沿為上升沿
- SPCTL |= (1 << 2); //數(shù)據(jù)在 SCLK 的前時鐘沿驅(qū)動,后時鐘沿采樣
- SPCTL = (SPCTL & ~3) | 2; //SPI 時鐘頻率選擇, 0: 4T, 1: 8T, 2: 16T, 3: 2T (時鐘頻率先調(diào)整到最慢,再依照自己的系統(tǒng)調(diào)整)
- P_SW1 = (P_SW1 & ~(3<<2)) | (1<<2); //IO口選擇P2. 0:P1.4 P1.5 P1.6 P1.7 || 1:P2.4 P2.5 P2.6 P2.7 || 2:P4.0 P4.1 P4.2 P4.3 || 3:P3.5 P3.4 P3.3 P3.2
- SPSTAT = SPIF + WCOL; //清0 SPIF和WCOL標(biāo)志
- }
復(fù)制代碼
***兩種MCU的SPI硬件接口定義不同,初始化有細(xì)微差異,初始化代碼大同小異,具體請查閱規(guī)格書。
15. RA8889開發(fā)板的補(bǔ)充說明:
(1)PS[2:0]跳線,SPI-4通信方式請配置為101:
SPI4_PS101跳線.png (877.4 KB, 下載次數(shù): 27)
下載附件
2024-7-22 14:02 上傳
(2)要將RA8889_Demo文件夾內(nèi)的RA8889_Demo_F103_8080_SPI_floating_firmware.hex下載到開發(fā)板上,將開發(fā)板上的MCU與RA8889的連接引腳設(shè)定為floating模式,才可以通過外部MCU輸入控制RA8889。
【源碼下載:硬件SPI-4通信方式】
STC8H_RA8889_SPI4_HW_v1.3.7z
(14.86 MB, 下載次數(shù): 17)
2024-7-22 14:03 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
STC8051U_RA8889_SPI4_HW_v1.3.zip
(16.36 MB, 下載次數(shù): 18)
2024-7-22 15:26 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
關(guān)注我,帶你玩轉(zhuǎn)TFT彩屏!幫您輕松搞定UI界面的設(shè)計(jì)!
|
評分
-
查看全部評分
|