文章导引:
(1)51单片机(STC8051U34K64)_RA8889_SPI4参考代码(v1.3)
(2)51单片机STC8H8K64U通过RA8889/RA8876如何控制彩屏_I2C源码下载
(3)51单片机(STC8H8K64U/STC8051U34K64)_RA8889_8080参考代码(v1.3)
(4)51单片机(STC8H8K64U/STC8051U34K64)_RA8889_HW_SPI4参考代码(v1.3) 硬件SPI方式驱动大屏显示
单片机实际不限,这里采用的STC最新、主推的型号,比如STC8H8K64U、STC8051U34K64进行实验测试,您可以换用不同型号。目前测试这两个系列,显示速度均相当不错,软件设计也是极为简单。各篇文章下方均提供源码供参考下载。
RA8889是一款瑞佑科技推出的高性能液晶控制芯片,单片机下指令即可,可以驱动最高1366x768等液晶屏,其内建JEPG/AVI解码引擎,图形驱动引擎,因此显示速度相当不错,是单片机扩展彩屏UI的好搭档。也有低阶的型号比如RA8871M,RA8873M等,可根据实际需求选择。
![RA8889方框图_new.png](//file1.elecfans.com/web2/M00/FC/F1/wKgZomaXM0CAUvJhAAS7pd4EQPg615.png)
本例介绍如何使用硬件SPI-4通信 ,硬件SPI会比软件模拟SPI速度快不少,有兴趣的话可以阅读本篇了解。下方开始做介绍。
【硬件部份】STC8H8K64U/STC8051U34K64 + RA8889开发板 + 7寸TFT 800x480
一、STC这两款单片机均提供多组硬件SPI接口,本范例采用P2口的硬件SPI接口:
(1)如果主控MCU是 STC8H8K64U,SPI接口见下图红框:
![STC8H8K64U引脚图.png](//file1.elecfans.com/web2/M00/FD/DA/wKgaomaXM0CAUN8jAAD22qqtYpM644.png)
实物连接图,请看下图接线标识:
![](//file1.elecfans.com/web2/M00/FC/F1/wKgZomaXM0CAdNOfAAZwvMOHzDA214.jpg)
(2)如果主控MCU是 STC8051U34K64,SPI接口见下图红框:
![](//file1.elecfans.com/web2/M00/FC/F1/wKgZomaXM0CACUyOAAE19ZMy_CY981.png)
实物连接图,请看下图接线标识:
![](//file1.elecfans.com/web2/M00/FC/F1/wKgZomaXM0KANJuuABKScbLjcDE559.jpg)
二、单片机与RA8889的引脚接线图:
注意MCU的输入SDI(即MISO)必须接RA8889的输出DB[5] SDO;MCU的输出SDO(MOSI)必须接RA8889的输入DB[6] SDI
![](//file1.elecfans.com/web2/M00/EC/5E/wKgaomZeY3WAcEsdAACtVtUa80I075.png)
【软件部份】
一、IO口配置:
(1)STC8H8K64U使用P2.4 MISO作为输入:
P2M0 = 0xef; P2M1 = 0x00; //P2.4(MISO)设置为双向口,其它为推挽模式(使用P2.SPI)
(2)STC8051U34K64使用P2.6 MISO作为输入:
P2M0 = 0xbf; P2M1 = 0x00; //P2.6(MISO)设置为双向口,其它为推挽模式(使用P2.SPI)
二、SPI通信函数在RA8889_MCU_IF.c和头文件RA8889_MCU_IF.h这两份文件,这里进行重点说明:
(1)在初始化函数SPI4_Init()中,SPI时钟频率的选择,先选择低速16T,待通信成功之后可将速度调快:
SPCTL = (SPCTL & ~3) | 2; //SPI 时钟频率选择, 0: 4T, 1: 8T, 2: 16T, 3: 2T (时钟频率先调整到最慢,再依照自己的系统调整)
(2)SPI接口选择,设定P_SW1,根据硬件接线选择对应的通信组:
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
其它部份与软件模拟SPI相同,请参考“文章导引”相关文章。
【硬件SPI和IO口软件模拟SPI通信比较】**
初步测试信息提供参考:
- 接口配置二者相同;
- 时钟速度上,硬件SPI会比软件模拟SPI速度要快不少,但软件模拟对于不同MCU比较友好,容易调试;
- 该代码在面包上跳接线,单片机和RA8889通信时钟最快可达11MHz左右,频率越快越容易受干扰,RA8889的SPI最高可以接受到50MHz,因此要根据实际硬件环境进行调试;
- RA8889控制TFT彩屏,只要简单的指令即可对UI进行变化,在没有大量数据传输的情况下使用硬件SPI和软件模拟SPI的速度差别不大。
【源码下载】
请至官方论坛获取。