针对MTK平台下-LCD调试步骤以及常见的一些问题

合集下载

mtk平台软件调试方法与技巧

mtk平台软件调试方法与技巧

mtk 模拟器调试前篇文章介绍了手机调试的TRACE技巧,MTK手机调试是比较简单的,除了打TRACE,找ASSERT,分析DUMP外,剩下的就是经验了,有经验的人看到现象就能猜到问题出在什么地方,简单看一下TRACE只是为了确认自己的猜测.初涉此道的朋友往往需要时间,慢慢积累经验.要达到熟练,就需要有空的时候多读多研究代码.熟练的掌握了代码,解决问题就会熟能生巧.MTK的模拟器调试说没技巧也是对的,说有技巧也不错.因为模拟器的技术与其说是MTK经验,不如说是VC经验.由于模拟器能在没有样机的情况做大量的UI方面的开发,同时模拟器具有快捷,所见即所改等优点,因此,受到很多开发老手的青睐.熟练掌握模拟器使用技巧,对于提高工作效率,节省资源具有很积极的意义.工欲善其事,必先利其器.欲了解模拟器调试,就要先了解VC使用.VC调试过程中经常使用的快捷键如下:vc++断点的使用:按F9(设置断点),F5调试,F10单步调试,shift+F5退出调试F10单语句执行,F11单指令执行,Ctrl+F10执行至光标处;F9按行设置/取消断点, Alt+F9可按行,按数据或按消息设置断点;调试时,按Alt+3打开跟踪窗口,Alt+4打开变量窗口,Alt+5打开寄存器窗口,Alt+6打开内存窗口,Alt+7打开堆栈窗口,Alt+8打开汇编指令窗口;1.只要你有源代码,拥有一个模拟器是一件很容易的事.当然,有些情况下,这对于初入MTK的人来说,也是困难的,特别是在一些代码管理不善,公司人员众多,员工流动频繁的公司,你永远想象不出他们的代码会有多糟.不过一般情况下,我到一个新公司,都会试着去使用他们的代码编译得到模拟器,不管他们的代码多么糟,我总能快速的编出模拟器来.只要三个步骤: a.在编译模拟器前请关掉所有SP的宏,这是很重要的,很多SP都不提供在模拟器下运行的库,所以一个项目SP越多,在模拟器下,他无法识别的函数也会越多b.在编译过程中遇到错误,可以把所有与显示无关的代码全部使用#ifdef WIN32宏括起来,把所有不认识的类型使用typedef int xxx;重定义.把一些不能识别的宏定义使用WIN32括起来重定义一下c.在生成MODIS时,会遇到大量不认识的函数,如果少于50个,全部建成void xxx(){}类型的空函数.如果多于一百个,尝试查找这些函数的来源,如果是相关SP的,就再次补充关掉相关SP.当然如果你不怕麻烦,也可以把这一百个函数建成空函数.一般来说,把所有第三方功能和与MTK无关的功能关掉的话,不能识别的函数一般不会超过十个.经过这样三步,一般情况下你都能得一个差不多可以使用的模拟器.有了模拟器,你就可以进行下面的工作了.如果你仍然无法获得模拟器,建议咨询你的项目领导,如果你的领导也无法解决,说明这个软件组是一个组员变动很快,或者说缺乏条理性的部门,当然也有可能这个部门的程序员都是一些MTK的顶尖层高手,他们的程序从来不需要调试.总之这是会让人疯狂的部门.2.如果你顺利到到一个模拟器,那么就可以开始调试了.首先说一下断点,VC中的断点分三大类,一类是本地断点,一类是数据断点(也称之为条件断点,有人称之为高级断点),还是一类是消息断点;这三类断点分别对应于快捷键"ALT+F9"打开的对话框中三个选项卡.由于消息断点是用于跟踪WIN的消息,所以在MTK中用不着.在模拟器中一般我们只使用本地断点与数据断点.本地断点和数据断点在BUG调试中举足轻重,熠熠生辉。

LCD_调试总结

LCD_调试总结

LCD 调试总结1. 常见问题总结:LCD的调试中,延时特别重要,一定要确定延长的时间足够,特别是更改电压寄存器后面的延时。

记得有一次屏幕出现抖动的现象,一直查不出原因,厂家从日本派了2次来人,都没解决;最后,把所有的时序测试出来,发现延时不足,影响延时的一个函数传递参数错了。

1.初始化前需要一个延时(大概为10ms),使Reset稳定;2.如果出现花屏现象,很大的可能是总线速度问题;3.如果屏幕闪动比较明显,可以通过调整电压来稳定,一般调节的电压为VRL、VRH、VDV 和VCM;这些电压也可以用来调节亮暗(对比度);4.调节对比度时,也可以通过调节Gamma值来实现,要调节的对象为:PRP、PRN、VRP、VRN等;5.注意数据是8位、16位时,写命令和数据的函数注意要变化;6.如果调试时发现LCD的亮度有问题,首先检查(考虑)提供给LCD的电流是否一致,再考虑调节电压。

7.开机花屏问题,最简单的处理方式就是在INIT结束的地方增加一个刷黑屏的功能。

也可以在睡眠函数里加延时函数;8. 如果随机出现白屏问题,一个可能是静电问题,把LCD拿到头发上擦几下,如果很容易出现白屏那肯定就是静电问题了。

另外一个在有Backend IC的情况下,也有可能bypass 没处理好。

9.还碰到过一个问题,写PLL的寄存器写了2次,屏幕就抖动的很厉害。

这个问题应该跟LCD内部实现有关了,并不是每个都会。

10.横向抖动,看不清画面,修改ENTRY MODE11.如果字体反了,修改drive output control ,GS,SS;12.如果图像刷新上面的字体跑到下面等,区域刷新没处理好;13.如果图像分开显示,起始点不在原点,多半是全屏刷新起始点寄存器没有设好;14.DMA刷新方式,每次刷新为一行,只能一次刷一整行,不然会出错,减少了循环计算时间,提高了LCD的刷新速度,也就减少了响应时间;15.PWM的频率对于LCD的背光来说,一般做法是通过升压芯片来提供对电压的支持。

MTK平台软件开发调试工具使用说明

MTK平台软件开发调试工具使用说明

MTK平台软件开发调试工具使用说明
MTK平台软件开发调试工具
使用说明
仅提示工具的基本操作流程
2014年08月
目录
一、体验准备 (3)
二、FlashTool软件下载 (4)
三、sscom32串口调试 (6)
四、Meta设备数据编辑 (7)
五、Catcher系统日志 (8)
一、体验准备
软件发布一般包括下面三个部分:
软件下载工具如下:
使用串口或者USB下载均需提前安装驱动,本文仅针对串口进行说明,先安装PL2303_Prolific_DriverInstaller_v1417.exe
二、FlashTool软件下载
设备关机后,通过串口线连接计算机,启动FlashT ool准备下载,界面如下:
软件下载进度如下:
3、说明
软件小改动,为方便调试,一般选择下载;若软件前后版本差异大,需要格式化升级,然后重新写入IMEI串号、配置参数。

三、sscom32串口调试
四、Meta设备数据编辑
在关机状态下操作设备内的参数,先关机连接计算机:
设备与Meta连接成功后界面如下:
五、Catcher系统日志
Catcher工具一般是在设备运行异常,需要分析软件bug时使用,该工具与前面串口调试工具冲突。

软件运行日志信息默认以设备UART1输出到串口,使用catcher之前,可以手动使用Meta修改日志输出模式,将信息输出到Catcher,也可使用指令自动完成。

按如下步骤将日志默认的串口输出改为catcher输出:
配置完成后不能再使用串口工具,按如下方法加载dataBase启动catcher:
配置端口:
查看日志信息:。

LCD常见问题及处理结果

LCD常见问题及处理结果

LCD 常见问题及处理结果在调试过程中,有时候会出现LCD 显示不良,需要解决这一问题,以具体情况做进一步分析。

LCD 常遇问题:1. LCD 黑屏,无背光;2. LCD 黑屏,有背光;3. LCD 白屏;4. LCD 显示花屏,屏幕上有多余的颜色存在;5. LCD 灰屏,比白屏灰一点。

分析方法:1. LCD 黑屏,无背光LCD 背光LED 是独立供电,当出现无背光黑屏,判断为LCD 背光电源没有供电或电源接住不良原因造成的。

2. LCD 黑屏,有背光;查看LCD 的drive IC 的供电是否正常,如果供电正常,黑屏应该由软件控制到了;确定是软件控制后,还可以肯定LCD 与MPU328IC 之间的连接正常。

3. LCD 白屏;LCD 白屏,说明已经有背光供电,检查LCD drive IC 的供电是否正常,不正常需要修复,drive IC 供电正常后还是白屏,就怀疑LCD 与MPU328IC 之间的连接有开路、短路存在,拆掉排阻就很好检查LCD 与328的反相阻值,反相阻值一般约为600欧姆左右,也有可能是软件控制它显示白屏;如果drive IC 长期供电就不会出现白屏,原因是软件控制drive IC 的时间太晚,软件配置未成功。

4. LCD 显示花屏,屏幕上有多余的颜色存在; 首先要确保摄像头连接正常,一般为LCD 与328之间的Data 没有连接好,出现的有开路、短路。

5. LCD 灰屏,比白屏灰一点。

为部分Data 连接正常,有2根以上的Data 没有连接好,需要仔细检查。

王银刚 2008-7-26PDF 文件使用 "pdfFactory Pro" 试用版本创建w A ne ro fE l e ct r on icT e c h n ol og yC o .,L td。

LCD调试+key经验

LCD调试+key经验

LCD调试+key经验一:LCD文件位于custom\drv\LCD以华立维的一款240X320的屏为例介绍如何添加LCD驱动gprs.makLCD_MODULE = HUALIWEI_SSD1289_LCMMAIN_LCD_SIZE = 240X320OptionCOM_DEFS_FOR_HUALIWEI_SSD1289_LCM = HUALIWEI_SSD1289_LCM SSD1289 COLOR_LCD TFT_MAINLCD QVGA_MAINLCD在custom\drv\LCD添加HUALIWEI_SSD1289_LCM文件夹,下面有5个文件。

文件名同MTK系统自带的(lcd.c lcd_hw.h lcd_sw.h lcd_sw_inc.h lcd_sw_rnd.h)。

HUALIWEI--------------屏的厂家SSD1289-----------------屏的驱动芯片LCM----------------------屏240X320-----------------屏的分辨率COLOR_LCD----------彩色TFT_MAINLCD-------屏的类型,对应的还有CSTN,OLED。

目前主要是TFTQVGA_MAINLCD----屏的分辨率做了上述修改以后,编译时,lcd驱动就对应HUALIWEI_SSD1289_LCM文件夹里的驱动。

文件夹里的5个文件,通常lcd_hw.h, lcd_sw_rnd不需要修改。

lcd_sw_inc.h只是定义屏的分辨率。

如下:#ifdef __MMI_MAINLCD_128X128__#define LCD_WIDTH 128#define LCD_HEIGHT 128#elif (defined(__MMI_MAINLCD_128X160__))#define LCD_WIDTH 128#define LCD_HEIGHT 160#elif (defined(__MMI_MAINLCD_176X220__))#define LCD_WIDTH 176#define LCD_HEIGHT 220#elif (defined(__MMI_MAINLCD_240X320__))#define LCD_WIDTH 240#define LCD_HEIGHT 320#endif#define UI_DEVICE_WIDTH LCD_WIDTH#define UI_DEVICE_HEIGHT LCD_HEIGHT修改比较多的是lcd.c和lcd_sw.h。

LCD调试问题

LCD调试问题

LCD显示器的基本原理就是通过给不同的液晶单元供电, 控制其光线的通过与否,从而达到显示的目的。
OFF
ON
+
+
<电压未认可时>
<电压认可时>
遮光
光通过
<方向不一致>
<方向一致>
LCD的驱动控制归于对每个液晶单元的通断电的控制, 每个液晶单元都对应着一个电极,对其通电,便可使光 线通过,也有为了省电的需要不通电时光线通过,通电 时光线不通过。
.fb_copyarea
= cfb_copyarea,//定义在cfbcopyarea.c
.fb_imageblit
= cfb_imageblit,//定义在cfbimgblt.c
.fb_blank = pxafb_blank,
.fb_mmap
= pxafb_mmap,
#ifdef CONFIG_FB_PXA_MINILCD
/* This is the parent */
struct device *dev;
/* This is the fb device */
int class_flag;
/* private sysfs flags */
#ifdef CONFIG_FB_TILEBLITTING
struct fb_tile_ops *tileops; /* Tile Blitting */
static void disp_dump_lcm_parameters(LCM_PARAMS *lcm_params) { }
BOOL DISP_SelectDevice(const char* lcm_name) { }

mtk平台LCD驱动调试

mtk平台LCD驱动调试

TAG:一.常见LCD接口规范介绍,二.MTK LCD驱动相关的主要文件路径三.怎样在MTK平台新建一个LCD驱动四.驱动程序(rm68120.c)主要任务实现五.主要调试经验总结一.常见LCD接口规范介绍,目前主流的LCD接口主要分为三种,DBI, DPI, DSI。

其中DBI又分为parallel DBI 和serial DBI。

DPI 与DBI的主要区别,简单说来就是:DPI接口的LCD,从AP端接收的数据已经解析成RGB的,只要直接显示就行了,刷新的频率也由AP控制;DBI接口的LCD, 从AP端接收的数据还要经过自己的处理,并自己控制刷新的频率。

而DSI采用的是目前较新的MIPI接口,MIPI接口的传输速度会快很多,主要用在一些分辨率较高的LCD上,目前在我们的平台上还未使用过,不做过多的介绍parallel DBI(B型DBI)的命令和数据都在数据总线D[17:0]上传输。

CSX为低时数据有效。

WRX 线控制D[17:0]为写时序,RDX控制D[17:0]为读时序。

D/CX指示D[17:0]上传输的是命令还是数据。

注:mt6575使用LP A0线作为D/CX线,LPCE线作为CSX线,LWRB线作为WRX线,LRDB线作为RDX线。

serial DBI(C型DBI)的命令和数据都在SPI接口上传输。

所以传输的速度较慢,一般用在分辨率较低的LCD上,在feature phone上用的较多,在smart phone上基本上已经淘汰DPI的命令在SPI上传输,数据(RGB data)在D[23:0]上传输。

其信号的控制方式也和DBI有很大的区别,在数据线上传输的是直接可以显示color data(RGB data),需要自己的4条控制线:DPICK_PIN(时钟) 、DPIDE_PIN(数据有效位)、DPIVSYNC(场同步)、DPIHSYNC(行同步) 。

二.与LCD驱动相关的主要文件路径\mediatek\platform\mt6575\uboot\mt6575_disp_drv.c\mediatek\platform\mt6575\uboot\mt6575_disp_drv_dpi.c\mediatek\platform\mt6575\uboot \mt6575_disp_drv_dbi.c\mediatek\platform\mt6575\uboot \mt6575_dpi_drv.c\mediatek\platform\mt6575\uboot \mt6575_dsi_drv.c\mediatek\platform\mt6575\uboot \mt6575_lcd_drv.c\mediatek\source\kernel\drivers\video\mtkfb.c\mediatek\source\kernel\drivers\video\disp_drv.c\mediatek\source\kernel\drivers\video\disp_drv_dpi.c\mediatek\source\kernel\drivers\video\disp_drv_dbi.c\mediatek\platform\mt6575\kernel\drivers\video\lcd_drv.c\mediatek\platform\mt6575\kernel\drivers\video\dpi_drv.c\mediatek\platform\mt6575\kernel\drivers\video\dsi_drv.c\mediatek\custom\common\kernel\lcm\LCM_NAME\LCM_NAME.c\mediatek\custom\common\uboot\lcm\LCM_NAME\LCM_NAME.c三.怎样新建一个LCD驱动LCD模组主要包括LCD显示屏和驱动IC,我们需要控制的是就是这个驱动IC。

mtk平台,相关问题的总结

mtk平台,相关问题的总结

mtk平台,相关问题总结下面是我在mtk平台,遇到的一些问题,我将其保存,大家可以看看有的可能很简单,大家不要见笑啊~~~~~~~编译前请将..\custom\common\nvram_lid_statistics.h文件和tst文件夹的属性、plutommi\Customer\Customize下的GCML.txt改为可读写。

Release 版本的时候,MMI/MiscFramework/MiscFrameworkSrc/UCS2.c不能删除,因为,resgen 要用倒ucs2.c1:深路经覆盖浅路径文件2:只有ADD_APPLICATION_MENUITEM,ADD_APPLICATION_MENUITEM2两种添加菜单方式3:添加菜单的时候一定要,指定子菜单的个数4:CmsWapMmsAdp.h文件中,如果是26项目,不要打开28开关#define SUPPORT_MTK_6226#if 0#ifdef SUPPORT_MTK_6228#define CMS_SURPPORT_PNG_BMP#endif#endif5:Res_SAT.c中,如果用移软的库,要将#ifndef CMS_NEW_APPADD_APPLICATION_MENUITEM((SERVICES_WAP_MENU_ID,MAIN_MENU_SERVI CES_MENUID,0,SHOW,NONMOVEABLE|SHORTCUTABLE,DISP_LIST,SERVICES_WAP_STRING_ID,SERVICES_WAP_IMAGE_ID)); #endif注释掉6:DataAccountDef.h中添加#include "custom_mmi_default_value.h"用来防止#ifdef MAX_GPRS_USER_NAME_LEN#define MAX_GPRS_USERNAME MAX_GPRS_USER_NAME_LEN-1 #else#define MAX_GPRS_USERNAME 15#endif#ifdef MAX_GPRS_PASSWORD_LEN#define MAX_GPRS_USERPASSWD MAX_GPRS_PASSWORD_LEN-1 #else#define MAX_GPRS_USERPASSWD 15#endif的偏差7:头文件打不开,很可能在make中的相应文件里,没有加这个路径如:plutommi.inc文件中没有包含相应路径8: user agent profile 在文件cmswapmmsadp.c9:mtk 28, 在mms_send_message函数中,要将MMS_SetMaxSize(gconfig.sendsize, gconfig.retrievesize);放在MMS_Init();之后,否则,发彩信会重启10:mms_init_global_param此函数中设置了mms的相关参数,还有mms_init_pre_setting_file_chinamobile改为gconfigtemp.gprs_mode =4[2 wap]wap里的wap_init_pre_setting_file_chinamobile函数帐号改为gWapTemp.gprs_mode =14//WAP_SERVICE_CHINAMOBILE+GSM_NET_ACCOUNT;11:cmswapmmsadp.h中有wap,mms相关设置12:将开关#if defined(CMS_NEW_APP) || defined(MMS_SUPPORT)#define __MMI_STATUS_ICON_MMS__#endif打开,否则来彩信的时候没有未读图标13:收发彩信的时候,底下的白色部分修改mmi_mms_show_send_receive_status函数中的UI_fill_rectangle(0,MMS_PROGRESS_INDICATOR_HEIGHT,UI_device_width-1, 10,UI_color(255,255,255));14:我们发了新版本给贵方,如果需要打trace请在手机上开启trace,方法:1:Idle->输入*#34364#,选择第2项设备,--〉7项,set uart->1项TST Config-〉uart port选择uart1完成,重启15:gif重复播放,gif图像消失的解决方式(1)在播放前添加gdi_image_gif_reset();16:Idle 来短信进入了短信inbox,没有进合一接口#if defined(CMS_NEW_APP)&&defined(SUPPORT_SMSMMS_COMBINE)extern void mmi_mms_entry_inbox(void);#endifvoid mmi_msg_exit_inbox_list_dummy(void){memset(&currHistory, 0, sizeof(currHistory));#if defined(CMS_NEW_APP)&&defined(SUPPORT_SMSMMS_COMBINE) currHistory.scrnID = SCR_ID_MMS_INBOX;#elsecurrHistory.scrnID = SCR_ID_MSG_INBOX_LIST;#endifSetMessagesCurrScrnID(0);g_msg_cntx.MessagesScrnIdToDelHistoryNodes = SCR_ID_MSG_INBOX_LIST;g_msg_cntx.MessagesScrnIdDelUptoHistoryNodes = SCR_ID_MSG_INBOX_LIST;#if defined(CMS_NEW_APP)&&defined(SUPPORT_SMSMMS_COMBINE)currHistory.entryFuncPtr = mmi_mms_entry_inbox;#elsecurrHistory.entryFuncPtr = mmi_msg_entry_inbox_list;#endif17:filter.txt文件用于模拟器的编译,此文件中定义的开关,都将被模拟器过滤掉,所以如果第三方release的软件不能支持模拟器就要将其在模拟器上过滤掉18:MTK23:我们模拟器在开机无法正常启动时,可以将\MTK23_07AW0736MP\modis\WIN32FS\DRIVE_C\NVRAM\NVD_DATA\下的数据文件全部清除,在从新启动模拟器,一般都可以成功启动。

基于MTK-LCD-TE现象相关问题总结

基于MTK-LCD-TE现象相关问题总结

基于MTK-LCD-TE现象相关问题总结每周问题总结---LCD TE1、切屏原因:BB写图像数据的速率和LCD刷屏的速率不一致引起(后者快于前者引起)。

LCD的BW 可以达到5MHz,但是外部SRAM却不行。

刷屏率是指LCM刷新的速度,这个值一般在LCM的初始化Code中会设定好,对于ILI9486的这个LCD驱动设定寄存器0xB1来设定刷屏率(刷屏频率太低会导致出现横纹,一般都在60Hz以上,同样的太高的话也会导致出现横纹,故只有找到一个合适的值才能保证既不出现横条纹也要减少TE现象)。

Fig.1 BB-LCMBB写速度和CS:这两个PIN对于每一个LCM都具备,两者工作的频率是一致的。

BB每写一帧数据会有一个片选信号,同时对应一个WR的写有效信号。

BB写频率的变化是由工作状态决定的,比如摄像时,拍摄动态物体的写速度就快于拍摄静态物体的显示写速度。

FMARK引脚:FMARK用来与BB同步,当F发出一个信号时,BB才发出一帧数据,这样可以保证两边同步。

要使能FMARK就要保证BB与LCM的引脚连接正确,其次LCM的初始化要使能LCD的F功能,保证LCM 周期性发信号给BB,同时使能BB的F引脚,保证BB每接到一个F信号才写一帧数据。

LCM的FMARK有两个参数可以配置:一是刷多少次屏输出一次FMARK信号,不一定每刷一帧发出一个信号;二是FMARK的位置参数,可以让FMARK迟滞几条线输出,目的是让BB晚点写数据到GRAM,避免TE。

FMARK周期与CS周期:究其出现TE的根本原因,是两边速度不一致导致,是LCM的刷新速度要快于BB的速度。

只要保证CS的周期在两个TE周期之间即可,也就是CS的写频率不能低于TE读频率的1/2,因为TE出现就是因为读写有交叉。

通常是写GRAM的速度(WR)小于LCD刷屏速度,只要刷屏的位置不超过写GRAM的位置就不会有切屏现象。

比如CS比两个TE周期小一点,要刷两帧数据,首先第一帧刷屏开始了,表示读GRAM 开始,它的速度比较快,读的是老旧数据;接着BB开始写GRAM数据,由于写的速度比较慢,大概写到GRAM一半时第一帧已经刷完。

MTK_LCM调试入门

MTK_LCM调试入门

MTK_LCM调试⼊门LCM调试⼊门⼀.概述调试⼀款LCM,也就是我们平常所说的调屏是我们做驱动的的⼀项最基本的⼯作任务。

LCM是通常由屏⼚已经封装好的⼀个模组,即我们见到的屏。

它⼀般由⼏部分组成:1.玻璃。

也就是我们看到的显⽰图像的部分,是LCM⾥最重要的器件。

它内部含有液晶,电极等。

2.IC。

也就是我们通常说的显⽰芯⽚。

它是控制让玻璃能显⽰图像的器件,我们调屏其实就是让该显⽰芯⽚与我们的BB能配合起来⼯作。

3.外围器件。

包括PCB板,在PCB板上的电容电阻,背光等。

⼆.调屏前的注意事项在真正调屏之前,我们⼀般要做⼀些前期准备⼯作,这将有助于我们今后调屏时少⾛弯路。

先看原理图,确认该屏的信号控制线连接是否正确,看数据线连的是⼏位的,8位、16位、18位的数据传输⽅式是不⼀样的,程序中由不同的宏来控制。

⼤致看⼀下IC的spec,看⼀下⾥⾯的寄存器设置⽅式;寄存器中控制各个功能的分布情况,⽐如控制电压的,控制位置的,控制效果的等等;还要看看它的时序是否和我们的BB配合。

三.MTK接⼝定义在我们的MTK平台⾥,它的接⼝函数都由⼀个结构来封装。

该结构在⽂件lcd_if.h⾥:typedef struct{void (* Init)(kal_uint32 background, void **buf_addr); void (* PWRON)(kal_bool on);void (* BrightLevel)(kal_uint8 level);void (* SCREENON)(kal_bool on);void (* BlockWrite)(kal_uint16 startx,kal_uint16 starty,kal_uint16 endx,kal_uint16 endy);void (* GetSize)(kal_uint16 *out_LCD_width,kal_uint16 *out_LCD_height);void (* SleepIn)(void);void (* SleepOut)(void);void (* PartialOn) (kal_uint16 start_page,kal_uint16 end_page);void (* PartialOff) (void);kal_uint8 (*partial_display_align) (void);/*Engineering mode*/kal_uint8 (* get_param_number)(lcd_func_type type); void (* set_bias)(kal_uint8 *bias);void (* set_contrast)(kal_uint8 *contrast);void (* set_linerate)(kal_uint8 *linerate);void (* set_temp_compensate)(kal_uint8 *compensate);#ifdef __LCD_ESD_RECOVERY__kal_bool (* esd_check)(void);#endif}LCD_Funcs;在lcd.c⽂件内有相应的LCD_Funcs实例:LCD_Funcs LCD_func_HX8306A = {LCD_Init_HX8306A,LCD_PWRON_HX8306A,LCD_SetContrast_HX8306A,LCD_ON_HX8306A,LCD_BlockWrite_HX8306A,LCD_Size_HX8306A,LCD_EnterSleep_HX8306A,LCD_ExitSleep_HX8306A,LCD_Partial_On_HX8306A,LCD_Partial_Off_HX8306A,LCD_Partial_line_HX8306A,/*Engineering mode*/LCD_GetParm_HX8306A,LCD_SetBias_HX8306A,LCD_Contrast_HX8306A,LCD_LineRate_HX8306A,LCD_Temp_Compensate_HX8306A};在lcd.c中实现了该结构的各个成员。

LCD移植的那些坑-关于LCD屏幕配置有一些常见的问题

LCD移植的那些坑-关于LCD屏幕配置有一些常见的问题

LCD移植的那些坑-关于LCD屏幕配置有⼀些常见的问题在使⽤我们的开发板过程中,关于LCD屏幕配置有⼀些常见的问题问题1,如何修改开机默认的屏幕尺⼨?全平台都可以通过uboot的选择菜单来选择默认的显⽰,对应配置⽅式可以参阅对应平台的应⽤⼿册。

i.MX6DL/i.MX6Q系列uboot已开源,可以通过直接修改uboot源码⽂件include/configs/mx6sabre_common.h(参考linux4.1.15内核版本)如果是客户⾃⼰移植屏幕,可能需要修改uboot源码arch/arm/i.MX-common/video.c⽂件。

修改默认的屏幕配置 setenv("pannel", "SEIKO-WXGA");(参考linux4.1.15内核版本)问题2,如何⾃⼰移植LCD屏幕?可以参考i.MX6x平台应⽤笔记中【8.0⼨LCD屏移植笔记.pdf】⼀章。

lvds屏幕可参考【飞凌嵌⼊式LVDS屏幕移植应⽤笔记 .pdf】问题3,移植LCD屏幕,uboot显⽰logo不正常?参考i.MX6Q linux4.1.15内核版本,在uboot源码board/freescale/mx6sabresd/mx6sabresd.c⽂件内默认的LCD 800x480的配置如下。

在移植屏幕可以参考此结构体添加新屏幕的参数,参考【问题1】解决办法选择uboot默认屏幕。

lvds屏可以直接修改下图中的设置参数。

问题4,uboot显⽰正常,kernel起来后显⽰不正常?这个可以通过 cat /proc/cmdline命令来查看uboot传递给内核的参数是不是正确。

再参考【问题1】⽅法修改。

(参考i.MX6Q启动参数)到内核驱动⽂件drivers/video/fbdev/mxc/mxc_LCDif.c中微调对应的LCD屏幕配置参数.lvds对应的内核驱动⽂件在drivers/video/fbdev/mxc/ldb.c.在linux4.1.15内核版本在可能要在设备树修改默认的fb0输出以及LCD的配置.问题5,LCD移植屏幕不亮?LCD移植屏幕不亮的原因有很多,⼤部分的LCD屏幕背光为pwm控制,可以搜索linuxBacklight部分,这⾥不做太多阐述。

MTK平台驱动调试笔记

MTK平台驱动调试笔记

分类:LINUX一、【一】调试串口的设置驱动的调式过程经常需要通过trace工具看log的,trace前需要修改手机串口,有以下三种方法设置串口1 通过手机进入工程模式设置2 修改代码,修改Nvram_user_config.c中的NVRAM_EF_PORT_SETTING_DEFAULT[]3.通过META工具修改在连上meta:左上角选中NVRAM Editor,在跳出的对话框里选择other LID,再选择NVRAM_EF_PORT_SETTING_LID,接下来read from nvram,对话框右边就会出现串口的设置情况,对调tst_port_ps(输入0)和ps_port(输入99)的值,二【【二】关于gpio口Gpio的初始化在文件gpio_drv.c里,可以用MTK提供的工具配置也可以用代码在程序里直接操作,二者的选择要看有没有定义宏__CUST_NEW__工具初始化时要注意配置codegen.dws,该文件里配置的只是对gpio口的初始化,并不是所有的gpio口都要设置成工作时的模式,尤其是当作时钟和蓝牙部分的gpiio口,初始化时就设置成工作模式的话会造成电机电流过大的。

代码初始化时DRV_WriteReg()、DRV_Reg对gpio口寄存器操作,分别定义gpio口的模式,和方向(0:输入;1:输出),对单个gpio口操作用到以下函数(以gpio25为例):GPIO_ModeSetup(25, 0);设置GPIO25为模式0GPIO_InitIO(1,25);初始化GPIO25方向为输出GPIO_WriteIO(0, 25 );设值GPIO25输入低电平0三、【三】键盘设置1)键盘定义Keypad_def.c如果定义CUST_NEW,工具中的键盘定义对应在改文件里的KEYPAD_MAPPING(keypad_drv.h);2)硬件键盘定义与软件mmi键盘的对应nKeyPadMap[](Keybrd.c)3)工程模式键盘测试函数EntryFMKeypadTest()修改键盘测试时界面显示的键的名称1. 做好上面的第一第二两步2. FactoryModeSrc.c开始部分定义添加的键所要显示的名称,值,分别应用到keypad_layout[](确定要显示的位置),keypad_value[]3.在EntryFMKeypadTest()函数中的数组IdleScreenDigits[]里添加要显示的键4)如果要设置一个键不管在什么界面下都起作用的话(如手电筒开关或则其他需求)就需要在键盘的事件响应函数static voidKeyEventHandler(KEYBRD_MESSAGE *eventKey)里设置,根据键值条用相应的响应函数,不过该函数及时在锁屏状态下也会执行的,需要根据需要添加条件语句四、关于LCDlcm背光驱动分为两种控制方式:1. pwm这个是通过调占空比来调节亮度的持续信号;2. PFM这个是通过脉冲的个数来控制LCM背光亮度。

MTK平台LCD驱动过程详解

MTK平台LCD驱动过程详解

MTK平台LCD驱动过程详解
首先,MTK平台LCD驱动的基本任务是将图像数据转换为可显示的信号,并通过LCD控制器将信号传输到液晶显示器上。

这个过程主要包括以下几个步骤:
1.初始化:在驱动LCD之前,需要对LCD控制器进行初始化设置。

这些设置包括选择LCD接口类型、设置像素时钟频率、配置数据线数目、设置显示像素点数等。

初始化完成后,LCD控制器就可以根据这些设置来控制LCD的操作。

2.数据处理:接下来,驱动程序需要将图像数据转换为LCD可以接受的格式。

这个过程可以包括调整图像数据的位深度、颜色格式、调整图像的分辨率等。

转换完成后,图像数据就可以传输到LCD控制器。

3.数据传输:在传输数据之前,驱动程序需要根据像素时钟频率和数据线数目等参数,计算出每一行数据需要的传输时间。

然后,通过LCD控制器将图像数据按行传输到LCD上。

传输完成后,LCD控制器会自动将数据驱动到液晶显示器的每一个像素点上。

4.功能控制:在数据传输的同时,驱动程序还需要控制LCD的各种功能,如背光控制、电源管理、色彩校正等。

这些功能控制可以通过编程接口进行设置。

5.刷新显示:一旦将图像数据传输到液晶显示器上,驱动程序可以根据需要定期刷新显示图像。

刷新可以通过设置刷新频率、调整显示内容等方式进行。

总的来说,MTK平台LCD驱动的过程可以分为初始化、数据处理、数据传输、功能控制和刷新显示等几个步骤。

通过这些步骤,驱动程序可以
将图像数据转换并传输到液晶显示器上,实现图像的显示功能。

这些步骤需要通过编程接口和LCD控制器进行交互,以完成LCD驱动的过程。

MTK平台及各芯片故障判断及维修方法

MTK平台及各芯片故障判断及维修方法

MTK平台及各芯片故障判断及维修方法MTK平台及各芯片功能简介MTK芯片是全球排名前十名的专业IC设计公司——台湾联发科技公司生产。

它的主要特点:一是低成本,对于竟争激烈的手机市场是最好的选择;二是芯片具有音乐和视频功能,满足了MP3和MP4的需求;三是芯片集成度高,功能较多技术性能好,迎合了市场的需要。

MTK平台发展及各芯片功能介绍!1、MT6205、MT6217、MT6218、MT6219、MT6226、MT6227、MT6228均为基带芯片,所以芯片均采用ARM7的核;2、 MT6305、MT6305B为电源管理芯片;3、 MT6129为射频芯片,转换射频信号;RF3146(7×7mm)、RF3146D(双频)、RF3166(6×6mm)为RFMD(美国RF微器件公司在有设五个设计中心,专用射频集成电路(RFIC)供应商RF Micro Devices, Inc. 公司(Nasdaq 股市代号:RFMD))的功放;MT6205为最早的方案,只有GSM的基本功能,不支持GPRS、WAP、MP3等功能。

MT6218为在MT6205基础上增加GPRS、WAP、MP3功能(MT6217为MT6218的cost down方案,与MT6128 PIN TO PIN (就是说每个pin脚定义都是与AKM和TI芯片一样的,能够贴AKM 或TI芯片的PCB上,不做任何改动就可贴他们的芯片),只是软件不同而已,另外MT6217支持16bit数据。

MT6219为MT6218上增加内置AIT的1.3M camera(照相摄像)处理IC,增加MP4功能。

8bit数据。

MT6226为MT6219 cost down(降低成本)产品,内置30万camera(摄相头)处理IC,支持GPRS、WAP、MP3、MP4等,内部配置比MT6219优化及改善,比如配蓝牙是可用很便宜的芯片CSR的BC03模块USD3即可支持数据传输(如听立体声MP3等)功能。

针对MTK平台下-LCD调试步骤以及常见的一些问题

针对MTK平台下-LCD调试步骤以及常见的一些问题
LCD_SEND_DMA_CMD(2);\
}\
#define LCD_DataWrite_S6D04H0(_data) \
{\
SET_LCD_CMD_PARAMETER(0,LCD_DATA,((_data & 0xFF00)>>7));\
SET_LCD_CMD_PARAMETER(1,LCD_DATA,((_data & 0xFF)<<1));\
另外,写LCD驱动程序时还要先确定LCD的接口数据线是多少位的,LCD驱动IC的寄存器又是多少位的,从而选择正确的命令、数据语句来写代码。定义这些语句是的在lcd_sw.h文件中,分别有8位、9位、16位、18位等这几种,另外还分有DMA和非DMA两种方式(DMA方式简单,速度快,通过MTK的寄存器进行操作,但灵活性差。非DMA方式,直接对地址操作,灵活性好,但速度会有影响。目前,一般都是用DMA方式)。数据线的位数一般常用的是8位和16位,一般对于16位接口的数据线,不管驱动IC的寄存器是8位的还是16位的,数据只需进行一次传送就可以了;而对于8位接口的数据线,若驱动IC的寄存器是8位的则数据进行一次传送就可以了,若驱动IC的寄存器是16位的则数据就需要进行两次传送,先传高8位再传低8位。
LCD_ON_S6D04H0,
LCD_BlockWrite_S6D04H0,
LCD_Size_S6D04H0,
LCD_EnterSleep_S6D04H0,
LCD_ExitSleep_S6D04H0,
LCD_Partial_On_S6D04H0,
LCD_Partial_Off_S6D04H0,
LCD_Partial_line_S6D04H0,
/*Engineering mode*/

MTK之LCD移植详解

MTK之LCD移植详解

详解LCD移植1.Make文件设置设置LCDLCD_MODULE = BROADMOBI68_09B_LCM //这个名字可以自己取,但是//这个名字要和\custom\drv\LCD\下的文件夹一致。

//一般可以不用改。

到时直接修改这个文件夹下的代码就行了。

# Based on the LCM solutions (even multiple LCM modules for this project)# SHOULD BE ONE OF THE FOLLOWINGS, based on the LCM # MTKLCM - Mono, 102x64# MTKLCM_COLOR - Color, 120x160, for MT6218_MW001 or MT6205_CEVB# ORDNANCELCM - Mono, 112x64# KLMLCM - Color, 128x128# INFOLCM - Color, 128x128# TOPPOLY_LCM - Color, 128x160, forMT6218B_EVB# SONY_LCMMAIN_LCD_SIZE = 320X480 //查LCD datasheet可以查到分辨率。

# To distinguish the main lcd size.# We can use it to copy the matching resources, such themecomponents.h, Fontres.c, L_xxx.h, etc, to PLUTO_MMI folderSUB_LCD_SIZE = NONE# NONE, 48X64BW, 64X96, 96X64BW, 96X64, 128X128 COM_DEFS_FOR_BROADMOBI68_09B_LCM = BROADMOBI68_09B_LCM TFT_MAINLCD //如果//上面的LCD_MOULE设置改了,这个就要跟着该。

MTK驱动调试经验

MTK驱动调试经验

MTK6735M项目F100驱动调试报告一配置EMMC按照硬件的选择配置新的flash,因为第一版都是按照MTK认证列表使用,所有一般如果不行有两个可能:1配置不正确,需要确定alps\bootable\bootloader\preloader\tools\emigen\MT6735下的flash 配置文件的时序是否正确,修改配置文件alps\bootable\bootloader\preloader\custom\f100\inc的文件custom_MemoryDevice.h2需要硬件配合查看是否EMMC元器件未能贴好,造成不能烧录二调试LCD调试步骤:1确定LCD的连接方式;1确定dws配置正确;2确定电源是否正确;3确定配置参数的读写方式类型,包括:LCM_setting_table模式读写:struct LCM_setting_table{unsigned cmd;unsigned char count;unsigned char para_list[64];};LCM_setting_table_V3模式读写:typedef struct{unsigned char id;unsigned char cmd;unsigned char count;unsigned char para_list[128];}LCM_setting_table_V3;4确定开关机的时序和读取初始化参数的方法;5确定DSI的配置是否正确,此配置函数为static void lcm_get_params(LCM_PARAMS*params)6如果做屏兼容,需要配置.compare_id=lcm_compare_id,此项为读取LCD ID进行判断;调试碰到问题:1参数的读写方式不正确,造成屏花屏,换一种读写方式正确;2suspend时未能写正确,在待机时出现kernel crash,需要特别注意;3未能配置lcm_compare_id,造成做屏兼容时未能自动识别;4TE的配置需要特别注意,此引脚MTK的补丁默认TE中断不开;三调试TPTP连接的接口为I2C模式调试步骤:1确定dws配置正确;2确定中断,电源正确;3确定I2C读写正确;4确定报点没有断点,TP没有坏点;5配置虚拟按键时注意键值范围;调试碰到问题:调试的TP为GT9157,出现很奇怪的问题,就是I2C的初始化读写没有报错,但是读写数据就是不成功,最后查找到问题为:I2C加了下拉的防静电电阻,造成实际上的下拉,但是根据规格书配置要求,必须要做上拉处理,否则容易出现读写不正常,所有此处造成I2C没有正常工作;三调试sensor system调试步骤:一accelerometer1确定dws配置正确;2确定中断,电源正确;3确定I2C读写正确;4确定好旋转的方向;调试碰到的问题:调试accelerometer出现没有报点,然后换了驱动就可以了,判断为原驱动内的读取x.y.z的方式不对;二alsps1确定dws配置正确;2确定中断,电源正确;3确定I2C读写正确;4确定好旋转的方向;调试碰到的问题:调试光感出现距离不对的问题,调试距离判断参数,成功;四调试camera调试步骤:1确定主副摄像头的型号,在配置文件配置好,添加好驱动代码;(注意:需要配置alps\device\huaying\f100里的ProjectConfig.mk,此文件为主要配置文件,配置alps\kernel-3.10\arch\arm64\configs里的f100_debug_defconfig)2确定dws配置正确;3确定摄像头的开关机的时序,按照摄像头的规格书来配置;4根据硬件配置好MCLK;5确定好是否支持AF,闪光灯功能;五调试Audio调试步骤:1按照驱动开发资料进行驱动配置,确定好是内置功放还是外置功放;2配置好音频功放的输入时序,按照喇叭的功率进行配置,外置功放配置路径为alps\kernel-3.10\sound\soc\mediatek\mt_soc_audio_v3\mt_soc_codec_63xx.c3按照硬件配置mic为单/双;六调试HEADSET调试步骤:按照驱动开发资料配置即可。

LCD驱动调试中部分常见问题的分析及解决办法

LCD驱动调试中部分常见问题的分析及解决办法

LCD驱动调试中部分常见问题的分析及解决办法LCD点不亮——无法正确完成初始化:LCD点不亮问题的原因有很多,但出现这个问题后,首先应该判断LCD是否正确完成初始化。

最简单的判断方法就是测量LCM的FPC 上的电容两端电压。

(具体的值可以和模组供应商沟通)如果经过上一步,检测出没有正确完成初始化,接下来首先和模组、IC一起确认初始化代码是否有问题。

确认好代码以后还是点不亮,说明是模组无法进行初始化,而不是初始化出错。

重新理一遍流程:上电->初始化。

上电这个步骤一般不会有问题,如果没有遵循正确的上电时序和RESET的流程的话也比较好排查。

那么还能存在哪些问题呢?在上电成功以后,BB会通过LCD串行总线发送LCD的初始化数据,如果这个环节出现问题,那肯定初始化不能成功。

在这个过程中能出现问题的就只有SPI的通讯控制这一块了,(通常LCD的通讯接口有CPU和串行总线接口等,手机中较常用的就是串行总线接口,串行总线接口又以SPI接口居多),其实造成SPI通讯不符合LCD模组驱动芯片的要求的原因也是多种多样的:1、虽然都是SPI接口,但是,不同的LCD模组,在控制信号的要求上往往都会有细小的不同,有时候,CPU的SPI接口甚至都无法产生LCD模组所要求的特定波形时序。

有些LCD模组可能还会有特定的势能信号来控制SPI接口工作与否。

2、多数LCD驱动芯片其实都是具有读取寄存器和ID号的功能的,但是很多模组在封装的时候往往没有吧芯片的SPI接口的SDO信号线引出来。

导致无法通过读取寄存器和ID的方式来判断SPI总线上的通信协议是否正确。

那么,如果确定了是SPI通讯控制不满足要求的话,就可以通过修改SPI的读写控制来适配LCD模组IC的要求。

如果CPU所提供SPI接口实在没有办法配置到完全和LCD模组要求的时序波形相同,可以采用CPIO口模拟SPI信号的方式来初始化LCD。

最后,如果模组能够将SDO引出就尽量引出,不仅方便调试,而且可以很方便的做不同IC的LCD自适应的兼容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
,LCD_IOCTRL_S6D04H0
};
void LCD_FunConfig(void)
{
MainLCD = &LCD_func_S6D04H0;
#ifdef DUAL_LCD
SubLCD =
#endif
}
LCD的初始化程序就是在LCD_Init_S6D04H0();这个函数里面写,如下所示:
void LCD_Init_S6D04H0(kal_uint32 bkground, void **buf_addr)
/*Engineering mode*/
LCD_GetParm_S6D04H0,
LCD_SetBias_S6D04H0,
LCD_Contrast_S6D04H0,
LCD_LineRate_S6D04H0,
LCD_Temp_Compensate_S6D04H0
#ifdef LCM_ROTATE_SUPPORT

…//中间这一部分是LCD的初始化代码,一般LCD厂会提供。
{
kal_uint16 i,j;
for(i=0;i<LCD_WIDTH;i++)
{
for(j=0;j<LCD_HEIGHT;j++)
{
LCD_DataWrite_CMD(0x0000);
}
}
}//这部分是给屏刷一满屏单色
}
为了验证LCD的初始化程序是否正确我们可以通过把LCD_BlockWrite_S6D04H0();LCD_EnterSleep_S6D04H0();LCD_ExitSleep_S6D04H0();这几个函数RETURN掉,再通过刷一屏单色来看,通过修改上面红色部分的参数就可刷出不同颜色出来,0X0000刷出来的是黑色,0X00FF是蓝色。一般来说如果刷出整屏单色那初始化就是正确的,否则初始化代码就不对的。
另外,写LCD驱动程序时还要先确定LCD的接口数据线是多少位的,LCD驱动IC的寄存器又是多少位的,从而选择正确的命令、数据语句来写代码。定义这些语句是的在lcd_sw.h文件中,分别有8位、9位、16位、18位等这几种,另外还分有DMA和非DMA两种方式(DMA方式简单,速度快,通过MTK的寄存器进行操作,但灵活性差。非DMA方式,直接对地址操作,灵活性好,但速度会有影响。目前,一般都是用DMA方式)。数据线的位数一般常用的是8位和16位,一般对于16位接口的数据线,不管驱动IC的寄存器是8位的还是16位的,数据只需进行一次传送就可以了;而对于8位接口的数据线,若驱动IC的寄存器是8位的则数据进行一次传送就可以了,若驱动IC的寄存器是16位的则数据就需要进行两次传送,先传高8位再传低8位。
图1
图2
针对MTK平台来说,核对规格书LCD的分辨率为了点屏时在**_GPRS.MAK文件中MAIN_LCD_SIZE = 176X220这个宏来配置相对应的分辨率;
2、写LCD的背光驱动程序,点亮LCD的背光灯。
在LCD模组的构成中,LCD的背光灯是LCD的一个重要组成部分,如果LCD的背光灯不点亮那么就算把LCD的驱动写好了也是无法正常看到LCD显示的。LCD背光灯的驱动程序是根据硬件所用LCD背光灯驱动IC的工作方式来写的,不同的背光驱动IC有不同的工作方式,写好驱动程序驱动背光驱动IC工作从而把LCD的背光灯点亮。在MTK平台中,LCD背灯驱动函数在uem_gpio.c文件custom_cfg_gpio_set_level();中写。LCD背光灯的驱动程序的编写要看背光驱动IC的资料了解背光驱动IC的工作方式,一般背光驱动IC的工作方式有PWM控制方式、脉冲控制方式、编码控制方式等。
{
SET_LCD_CTRL_RESET_PIN;
LCD_Delay(0x4000);
CLEAR_LCD_CTRL_RESET_PIN;
LCD_Delay(0x4000);
SET_LCD_CTRL_RESET_PIN;
LCD_Delay(0x40000);//以上这一部分是RESET LCD,必需的

LCD_ON_S6D04H0,
LCD_BlockWrite_S6D04H0,
LCD_Size_S6D04H0,
LCD_EnterSleep_S6D04H0,
LCD_ExitSleep_S6D04H0,
LCD_Partial_On_S6D04H0,
LCD_Partial_Off_S6D04H0,
LCD_Partial_line_S6D04H0,
如下在lcd_sw.h文件中的一些定义:
#ifdefLCD_CMD_DMA_MODE//DMA方式
#defineLCD_SEND_DMA_CMD(n) \
3、写LCD的初始化程序。
MTK平台LCD驱动程序调试修改最多的就是在lcd.c和lcd_sw.h这两个文件,所涉及的要关程序如下:
LCD_S6D04H0,
LCD_PWRON_S6D04H0,
LCD_SetContrast_S6D04H0,
,LCD_Set_Scan_Direction_S6D04H0
#endif
#ifdef LQT_SUPPORT/*Do not remove LQT code segment*/
,LCD_gamma_test
,LCD_flicker_test
#endif
,0 // NULL function for SetFrmMarker Function.
一、LCD调试步骤(针对MTK平台):
1、核对LCD模组的PIN脚定义与手机LCD接口PIN定义是否一致
当我们拿到一个项目的新屏调试时,首先要拿到LCD模组的规格书和LCD IC的规格书,再去核对规格书上LCD模组的PIN脚定义与我们手机原理图上的LCD PIN脚定义是否相符,若不符就不用再往下做了。(在这里我顺便提一下:器件、IC以及一些模块的规格书和电路原理图等资料对驱动工程师来说是很重要的,如果这些资料都不全或者没有,那么驱动工程师要去完成一个驱动程序的编写是很困难的,甚至几乎是无从下手的。)LCD模组的规格书我们可以从中得到LCD的像素点阵(即分辩率)大小、驱动IC型号、LCD的PIN脚定义等这些对我们有用的信息,如下图1、图2所示
相关文档
最新文档