【求助】高通字库GT5SL24K4W(HS)的驱动问题
描述:单片机通过SPI向GT5SL24K4W(HS)发送指令和地址后,GT5SL24K4W(HS)没反应(未应答?)电路连接:
用逻辑分析仪抓的波形:(通道3是SCLK,通道2是MOSI,通道一是MISO)
如上图,发的指令码是0x03,地址乱填的(现在找不到地址表)
程序中设置了所有IO口为准双向,CS一直拉低
希望有大佬能帮我分析下哪出了问题,感激不尽,谢谢{:4_201:}
这是调用部分
写指令、读取函数定义:(写的很乱,请见谅)
#include <STC8H.H>
#include <intrins.h>
#include "GT5SL24K4W.h"
#include "sys.h"
sbit GT_CLK = P0^0;
sbit GT_MOSI= P0^1;
sbit GT_MISO= P0^2;
sbit GT_CS= P0^3;
void ISPI_Init(void){
P0SR=0xFC; //1111 1100
//P0M0=0x04; //0000 0100
//P0M1=0x04; //0000 0100
//GT_CLK=0;
GT_CS=0;
}
void ISPI_GT(unsigned char n1,unsigned char n2,unsigned char n3){
unsigned char i=0,ReadMode=0x03;
GT_CS=0;
for(i=0;i<8;i++){
GT_CLK=0;
if(ReadMode&0x80)
GT_MOSI=1;
else
GT_MOSI=0;
_nop_();
GT_CLK=1;
ReadMode<<=1;
}
for(i=0;i<8;i++){
GT_CLK=0;
if(n1&0x80)
GT_MOSI=1;
else
GT_MOSI=0;
_nop_();
GT_CLK=1;
n1<<=1;
}
for(i=0;i<8;i++){
GT_CLK=0;
if(n2&0x80)
GT_MOSI=1;
else
GT_MOSI=0;
_nop_();
GT_CLK=1;
n2<<=1;
}
for(i=0;i<8;i++){
GT_CLK=0;
if(n3&0x80)
GT_MOSI=1;
else
GT_MOSI=0;
_nop_();
GT_CLK=1;
n3<<=1;
}
}
unsigned char ISPI_GTREAD(void){
unsigned char i=0,n=0;
for(i=0;i<8;i++){
GT_CLK=0;
n<<=1;
if(GT_MISO)
++n;
_nop_();
GT_CLK=1;
}
return n;
}
MOSI和CLK推挽 DebugLab 发表于 2024-10-3 23:25
MOSI和CLK推挽
谢谢,试过了,波形还是一样的,芯片仍无应答{:dizzy:} gqzjl 发表于 2024-10-4 07:44
谢谢,试过了,波形还是一样的,芯片仍无应答
没有任何反应,检查一下硬件连接还有字库是不是坏了 看不出问题,可以用其他spi设备检测spi是否正常,如果正常有可能硬件问题 DebugLab 发表于 2024-10-4 10:51
没有任何反应,检查一下硬件连接还有字库是不是坏了
好的,我换个芯片试试 DebugLab 发表于 2024-10-4 10:51
没有任何反应,检查一下硬件连接还有字库是不是坏了
谢谢!芯片有反应了{:lol:} DebugLab 发表于 2024-10-4 10:51
没有任何反应,检查一下硬件连接还有字库是不是坏了
还想请教您一个问题,GT5SL24K4W这个芯片中文字符的地址如何计算?
数据手册里好像没给地址表 gqzjl 发表于 2024-10-4 13:12
还想请教您一个问题,GT5SL24K4W这个芯片中文字符的地址如何计算?
数据手册里好像没给地址表 ...
GB18030
页:
[1]
2