全志melis系统 - 8080接口CPU屏调试

一、准备工作

  • 全志melis OS针对8080的显示驱动代码(全志或代理商提供)
  • 显示屏规格书SPEC(供应商提供)
  • 显示屏驱动IC的Datasheet(供应商提供或度娘)
  • 显示屏驱动IC的初始化代码(供应商提供或度娘)

二、点屏步骤

  • Step1 确认屏资料
  • Step2 确认硬件
  • Step3 配置软件
  • Step4 调整效果

三、核验资料

1. 查看屏规格书确认其为8080接口的CPU屏

图1【图1】

2.查看驱动IC型号
  • 图2
    【图2】

    在这里插入图片描述
    【图3】

四、确认硬件

1、8080接口18位、16位、8位接线方式
  • F系列芯片支持4条信号线和24条数据线,不同接口、不同位数的屏严格按照下图接线。
  • 4条信号线会根据软件的配置输出相应的时序信号。
    在这里插入图片描述
    【图4】
2、屏背光是否点亮

必须保证屏的背光已经亮的条件下,再开始调屏;否则无法查看到屏显示的内容显示。

3、屏的供电是否正常
4、屏的上电后是否有复位信号
  1. 硬件复位(阻容复位)。需要确保复位信号与屏供电的时序差,保证屏已经正常供电后,才执行复位
  2. 软件复位。通过IO口模拟复位信号;一般在初始化前进行,复位后增加至少50ms的延时后,再开始写初始化。

五、代码配置

以16位CPU屏为例

1、配置文件sys_config.fex

根据【图4】的CPU16bit 65K管脚定义在[lcd_para]配置相应的数据脚。
在这里插入图片描述

2、CPU屏参数配置lcd_panel_cfg.c
基础参数参数说明补充说明
lcd_x屏幕宽度*必配
lcd_y屏幕高度*必配
lcd_dclk_freqDot Clock时钟频率影响刷新率(*必配)
lcd_pwm_freq背光控制pwm脉冲频率(选配)
lcd_srgb正常不需要改动(选配)
lcd_swapR和B颜色对调红蓝颜色反时可配置(选配)
屏接口配置参数说明补充
lcd_if(*必配)0RGB接口屏
18080接口MCU(CPU)屏
2TTL
3LVDS接口部分芯片需加转换IC
数据线位数配置参数说明补充
lcd_cpu_if(*必配)018位256K
416位mode3
59位
68位256K
78位65K
时钟信号相位说明补充
lcd_io_cfg0(选配)0x0000 0000Normal phase offset
0x1000 00001/3 phase offset
0x2000 00002/3 phase offset

CPU屏必须配置的参数
在这里插入图片描述
【图5】

3、写初始化
系统接口说明示例
LCD_CPU_WR_INDEX写命令LCD_CPU_WR_INDEX(0, 0x36)
LCD_CPU_WR_DATA写数据LCD_CPU_WR_DATA(0, 0x48)
LCD_CPU_WR写一组命令+数据LCD_CPU_WR(0, 0x36, 0x48)

void GC9305_Initial()
{
	LCD_CPU_WR_INDEX(0, 0xFE);
	LCD_CPU_WR_INDEX(0, 0xEF);
	LCD_CPU_WR_INDEX(0, 0x36);
	LCD_CPU_WR_DATA(0, 0x08);	//0x28, 0x48
	
	//...
	//省略部分代码
	//...
	
	LCD_CPU_WR_INDEX(0, 0x11);
	delayms(120);	
	LCD_CPU_WR_INDEX(0, 0x29);
	delayms(50);	
	LCD_CPU_WR_INDEX(0, 0x2C);

}

static void  LCD_open_cmd(__u32 sel)
{
	LCD_CPU_AUTO_FLUSH(0,0);

	//初始化函数封装
	GC9305_Initial();
          
	LCD_CPU_AUTO_FLUSH(0,1);      
}

void  Lcd_cpuisr_proc(void)
{
	LCD_CPU_WR_INDEX(0, 0x2B);
	LCD_CPU_WR_DATA(0, 0x00);
	LCD_CPU_WR_DATA(0, 0x00);
	LCD_CPU_WR_DATA(0, 0x00);
	LCD_CPU_WR_DATA(0, 0xef); 	//239	
	
	LCD_CPU_WR_INDEX(0, 0x2A);
	LCD_CPU_WR_DATA(0, 0x00);
	LCD_CPU_WR_DATA(0, 0x00);
	LCD_CPU_WR_DATA(0, 0x01);
	LCD_CPU_WR_DATA(0, 0x3f); 	//319	

	LCD_CPU_WR_INDEX(0, 0x2C);
}

六、常见问题

显示白屏

说明屏没有工作,初始化没有写进去。

  • 确认初始化是否正确
  • 初始化结束后有没有写驱动IC的Data Write指令,如:0x2c、0x22等具体见驱动IC的Datasheet
  • 屏是否损坏,换屏验证
  • 板子是否正常, 换板验证
  • 检查供电、硬件接线
显示彩点

说明初始化已经写成功,驱动IC正常工作

  • 检查系统是否开始给显示屏送数据
  • 检查初始化的显示窗口区域是否设置正确
显示不满屏
  • 检查初始化的显示窗口区域寄存器的配置是否正常;如本例中的0x2a、0x2b的值是否与基础参数中lcd_x、lcd_y保持一致
  • 检查Memory Access Control寄存器(本例为0x36h)配置正确
横竖屏旋转
  • 通过Memory Access Control寄存器的MV位可配置显示方向
  • 旋转后窗口区域寄存器大小设置需要对调
    如:竖屏时
    LCD_CPU_WR_INDEX(0, 0x2A);
    LCD_CPU_WR_DATA(0, 0x00);			// x start
    LCD_CPU_WR_DATA(0, 0x00);			// 0
    LCD_CPU_WR_DATA(0, 0x00);			// x end
    LCD_CPU_WR_DATA(0, 0xef); 			// 239	
    
    LCD_CPU_WR_INDEX(0, 0x2B);
    LCD_CPU_WR_DATA(0, 0x00);			// y start
    LCD_CPU_WR_DATA(0, 0x00);			// 0
    LCD_CPU_WR_DATA(0, 0x01);			//y end
    LCD_CPU_WR_DATA(0, 0x3f); 	//319	
    旋转后:
    LCD_CPU_WR_INDEX(0, 0x2A);
    LCD_CPU_WR_DATA(0, 0x00);			// x start
    LCD_CPU_WR_DATA(0, 0x00);			// 0
    LCD_CPU_WR_DATA(0, 0x01);			// x end
    LCD_CPU_WR_DATA(0, 0x3f); 			// 319	
    
    LCD_CPU_WR_INDEX(0, 0x2B);
    LCD_CPU_WR_DATA(0, 0x00);			// y start
    LCD_CPU_WR_DATA(0, 0x00);			// 0
    LCD_CPU_WR_DATA(0, 0x00);			// y end
    LCD_CPU_WR_DATA(0, 0xef); 			// 239	
    
左右、上下镜像
  • 通过Memory Access Control寄存器的MX、MY位可配置镜像方向
图像边沿显示黑点或像素点闪动
  • 一般是lcd_cpu_if数据位数与硬件数据线接线的位数不匹配造成数据传输时丢数据或数据错乱造成
画面偏色
  • 如白色的图片显示偏红或其他颜色,需要检查sys_config.fex中数据线的配置是否与【图4】相同
显示发白
  • 可尝试调节vcom电压寄存器,可通过调节两个相对极端的值的范围观察现象的往哪个方向好转或恶化后,再进行微调
显示有水纹
  • 可尝试调节VGH和VGL电压寄存器,可通过调节两个相对极端的值的范围观察现象的往哪个方向好转或恶化后,再进行微调
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值