MCU通过SPI连接RA8889等芯片故障怎么解决?
【硬件检查】
一、确定硬件连接是否正确,并确认连接通断,见下图:
二、确定控制芯片(RA8889等)相关电压是否正常?VCC=3.3V, LDO=1.2V,如果电压不正常则检查输入连接,以及是否虚焊;另外要确保VCC电压干净,注意是否有外部干扰造成纹波过大。然后再确认晶振信号是否起振?如果不振,则确认是否有并联1M欧电阻?或者可以换一颗晶振测试。
【软件检查】
三、检查初始化:userdef.h中宏定义是否正确。如果正确,则可以单步运行。如果单步运行时在与RA8889通信时卡住,则说明通信不正常,这时候先检查引脚配置,若没有问题,再测试读写寄存器是否正常,方法如下:unsigned char temp;
//寄存器写入
LCD_CmdWrite(0xAD);
LCD_DataWrite(0x11);
//寄存器读回
LCD_CmdWrite(0xAD);
temp = LCD_DataRead();//判断是否正常方法
if(temp==0x11)
{
//可通过点亮LED作为指示
}四、确定可正常读写RA8889等的寄存器之后,才进行初始化的检查。请先单步运行,看看是具体在哪里卡住,逐一排查。参考代码已打包在这个函数:
RA8889_Initial(); 或者 RA8876_Initial(); 等。
由于SPI接口采用模拟IO口通信,为何使用模拟IO口?因为兼容性较好。如果用户想采用MCU的硬件SPI接口也可以,但需要验证。理论上RA8889的SPI可以达到最高50MHz的通信速度。
需要注意的是通信延时函数需要注意变更为用户自己的函数,否则SPI时序可能错误造成通信异常。
基本上以几步确认完之后初始化就可以跑通了,说明SPI通信已正常。如果液晶屏参数配置正确,初始化后可以看到彩虹条显示1秒后关闭:
在初始化函数最后面的代码,如下:
Color_Bar_ON();
delay_seconds(1);
Color_Bar_OFF();
分享到:
相关热词搜索:RA8889 RA8876 RA8873 RA8871 SPI
上一篇:第一页
下一篇:RA8889配套上位机使用简介
>>延伸阅读:1