AlqjsswMTK手机驱动培训资料

上传人:jiups****uk12 文档编号:39266105 上传时间:2018-05-13 格式:DOC 页数:3 大小:48.50KB
返回 下载 相关 举报
AlqjsswMTK手机驱动培训资料_第1页
第1页 / 共3页
AlqjsswMTK手机驱动培训资料_第2页
第2页 / 共3页
AlqjsswMTK手机驱动培训资料_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《AlqjsswMTK手机驱动培训资料》由会员分享,可在线阅读,更多相关《AlqjsswMTK手机驱动培训资料(3页珍藏版)》请在金锄头文库上搜索。

1、七夕,古今诗人惯咏星月与悲情。吾生虽晚,世态炎凉却已看透矣。情也成空, 且作“挥手袖底风”罢。是夜,窗外风雨如晦,吾独坐陋室,听一曲尘缘, 合成诗韵一首,觉放诸古今,亦独有风韵也。乃书于纸上。毕而卧。凄然入梦。 乙酉年七月初七。-啸之记。 MTK 手机驱动培训资料手机驱动培训资料【驱动部门的主要任务驱动部门的主要任务】 驱动部门的主要任务是调试软件,让软件在硬件上顺利的跑起来。其中包括各个具体 的器件的调试以及一些和底层相关的问题,以及其他不属于 mmi 部分的问题。具体的包括: 1、LCD 的调试:的调试: 一般 LCD 厂商在提供样品的时候,都会提供给初始化代码,服务更好的还会提供进入 和

2、退出 SLEEP 的代码,如果厂商不提供的话,就只有看着文档自己写了。我们的工作一般 是调节显示效果以及和厂商沟通,还有就是把厂商给的代码整合进程序里面去。 Lcd 驱动程序相关的文件主要包括 lcd.c,lcd_sw.h 以及 lcd_sw_inc.h。 调节 LCD 的驱动程序,最先要在 lcd_sw_inc.h 中修改 lcd 的尺寸,就是 LCD_WIDTH 和 LCD_HEIGHT,如果有小屏的话还要定义下面的小屏的 lcd 的尺寸。 然后,根据硬件的设计修改 lcd_sw.h 中的宏,来确定 lcd 是使用 8 位的还是 16 位的接 口,比如使用 16 位的 lcd 接口,就定义

3、宏 MAIN_LCD_16BIT_MODE。 最后,移植厂商给的初始化代码进入到初始化函数里,还有进入和退出 Sleep 状态。进入 和退出 Sleep 状态要求重新进入 Sleep 状态后屏幕能正常的显示,退出 Sleep 状态要求 LCD 的耗电小于 0.1ma。 如果是 CSTN 的屏幕,那么还有一个对比度的参数需要设定。有 2 个对比度的值,一 个是在初始化函数中写进去的一个值,还有一个是在 nvram_user_config.c 中的结构 NVRAM_EF_CUST_HW_LEVEL_TBL_DEFAULT 中定义。2、GPIO 的设定:的设定: GPIO 就是 General pu

4、rpose IO pin 的意思,是一些能用做一般的功能控制的 IO 引脚。 MTK 芯片的引脚一般有四个功能选项,可以通过寄存器来控制各个引脚的功能,一般功能 0 就是表示这个引脚用做 GPIO。 用函数 void GPIO_ModeSetup(kal_uint16 pin, kal_uint16 conf_dada)来控制 GPIO 的功 能,pin 表示引脚号,conf_dada 控制引脚的功能。 用函数 void GPIO_InitIO(char direction, char port)控制 GPIO 的方向,port 表示引脚号, direction 表示是输入还是输出。 用函数

5、void GPO_WriteIO(char data,char port)控制 GPIO 的输出值,port 表示引脚号, data 表示输出的是高电平还是低电平。在文件 custom_equipment.c 中有一个结构 GPIO_MAP_ENTRY gpio_map_tbl,其中定 义了控制震动的 GPIO,应该根据原理图来更改第 4 项震动的 GPIO 的设定。3、信号量的控制:、信号量的控制: 信号量指的是在手机信号的强弱。通过修改 SimDetectionDef.h 中的 SIGNAL_STRENGTH_NONE 到 SIGNAL_STRENGTH_LEVEL4 的值来修改在不同信号

6、下 手机显示的信号格数。默认满格信号显示是 4 格,如果是其他的,比如 5 格的话,还要修 改程序 NetworkFunctions.c 中的函数 void NetWorkSignalLevelIndication(void *inMsg)。4、电池格数的控制:、电池格数的控制: 在 bb 中有一个 ad 转换的部件,每隔一定时间采样电池的电压,来控制电池显示的格 数。具体在什么电压显示几格在文件 nvram_user_config.c 中的结构 NVRAM_EF_CUST_HW_LEVEL_TBL_DEFAULT 中定义。计算的算法在 custom_equipment.c 中的 kal_ui

7、nt8 custom_cfg_vbat_level_regulator( kal_uint32 measure_voltage, kal_uint8 *last_level, kal_uint8 *disp_level, kal_uint8 *hit_count )中。5、lcd 背光的控制:背光的控制: 一般 lCD 的背光是通过控制 PWM1 的占空比来实现,背光的级别一般有 5 级,在每 一级别的占空比是由 custom_hw_default.c 文件中的 kal_uint32 PWM1_Level_InfoPWM_MAX_LEVEL2 来控制,控制的实现在 pwm.c 中的函数 voi

8、d PWM_level(kal_uint8 level)中。6、键盘背光的控制、键盘背光的控制 键盘的背光由 pwm2 来控制,一般很少改动。键盘的背光是否亮起来可以作为判断一 个机器是否开机的一个标志,一般板子做好后,只要 cpu 和 flash 以及 pmic 连好后就可 以正常开机了,这时 lcd 可能没显示,可是键盘灯一定会亮的。7、usb 和充电器的区分和充电器的区分: 一般在 mtk 平台下 usb 和充电器是提供一样的电源,使用同一个接口,判断是否是 usb 还是充电器是通过判断 usb 的 d+线上是否为低来判断的,因为在计算机上这根线是被拉 低的,如果插入的是 usb,这个线

9、就会被拉低,如果插入的是充电器,因为充电器没有 接这个线,所有它被手机内部的一个很大的电阻给拉高,通过检测这个线上的电压就可 以判断插入的是 usb 还是充电器,具体的判断的算法在 Bmt_main.c 文件中的 static void check_charger_or_usb(kal_uint8 sche_id)中。8、键盘的定义:、键盘的定义: 在文件 keypad_def.c 中根据原理图修改数组 const keypad_struct keypad_custom_def 就 可以了。9、音频参数的修改:、音频参数的修改: 根据硬件提供的用仪器测出来的值修改 nvram_default_

10、audio.c 中的宏定义值。10、外部中断的设定:、外部中断的设定: 在文件 eint_def.c 中修改所使用的外部中断的号,比如 USB_EINT_NO 等。11、待机电流控制、待机电流控制: 一般要求手机的待机电流小于 3ma,最小电流小于 1ma,好的情况下能做到小于 0.5ma, 关机电流小于 0.1ma。关机电流大一般是纯硬件问题,因为这时 bb 已经没有电了,软 件完全不工作。待机电流大一般是 lcd 没有进入休眠、image sensor 没有进入休眠或者 cpu 没有进入休眠。Cpu 没有进入休眠一般是一直有个程序在工作,比如一个定时器一 直工作或者一直来一个中断信号等。1

11、2、image sensor 的控制的控制: 一般选用 mtk 推荐的 image sensor 的型号,这样在 make 文件中定义了型号以后就直接 可以用了,需要注意的是 i2c 总线的定义,在 sccb.h 中定义,修改 SCCB_SERIAL_CLK_PIN 和 SCCB_SERIAL_DATA_PIN 的值到现在所用的 gpio 引脚, 如果有多个 i2c 的设备的话就得修改程序了,默认的只支持一个 i2c 设备。image sensor 的的驱动程序在 image_sensor.c 中。13、FM 芯片的控制芯片的控制: 一般选用 mtk 提供的 fm 芯片,在这样在 make 文

12、件中定义了型号以后就直接可以用了。 这里也需要注意 i2c 总线的定义。14、手机开机过程:、手机开机过程: 开机以后,手机先进入到 Boot Rom 中去执行,等待 150ms,如果在串口上接到特定的 字符串就进入到和串口通讯的过程,在这时可以执行下载程序的过程了。如果没有接到 特定的字符串,就进入到开机流程,首先执行的是 bootarm.s,然后执行 Nucleus 的系统 初始化,再执行 init.c 中的 Application_Initialize,最后初始化任务,开始执行任务, mmitask.c 中的 MMI_TASK 是最先要开始执行的任务。15、FLASH 芯片的设定:芯片的

13、设定: 根据硬件原理图,确定所使用的芯片的型号,然后到 toolsMemoryDeviceList 目录下, 找到里面的 EXCEL 文件,找到对应的 flash 的型号,在 Region 栏下修改所需要的 nvram 的空间,这个栏目下的格式一般是类似于0x10000,70x2000,8的形式,每个大括号中 的前一个表示的是块的大小,后一个表示的是块的数量。在 FLASH 的文档中有块的分布 的介绍,注意 nvram 不能跨越 bank。 然后设置 custom_MemoryDevice.h 文件中的 CS0_PART_NUMBER 为对应的 flash 型号, 要注意的是这里的 flash 的型号需要和 excel 文件中的 flash 型号完全一致。16、一点体会:、一点体会: 在调试程序的时候,要注意不要假设 BB 芯片的动作,只要不是文挡中明确说明的都 是不确定的,芯片内部还有一定的漏电的情况,没有加电的模块也是有一点电压的。【注:注: 此文档为王志原创,在此深刻表示感谢!此文档为王志原创,在此深刻表示感谢!】

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号