第一篇:MTK手机驱动总结
MTK手机驱动培训资料
1、LCD的调试:
一般LCD厂商在提供样品的时候,都会提供给初始化代码,服务更好的还会提供进入和退出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接口,就定义宏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 purpose 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表示是输入还是输出。
用函数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的值来修改在不同信号下手机显示的信号格数。默认满格信号显示是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_uint8 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_Info[PWM_MAX_LEVEL][2] 来控制,控制的实现在pwm.c中的函数void PWM_level(kal_uint8 level)中。
6、键盘背光的控制
键盘的背光由pwm2来控制,一般很少改动。键盘的背光是否亮起来可以作为判断一个机器是否开机的一个标志,一般板子做好后,只要cpu和flash以及pmic连好后就可以正常开机了,这时lcd可能没显示,可是键盘灯一定会亮的。
7、usb和充电器的区分:
一般在mtk平台下usb和充电器是提供一样的电源,使用同一个接口,判断是否是usb还是充电器是通过判断usb的d+线上是否为低来判断的,因为在计算机上这根线是被拉低的,如果插入的是usb,这个线就会被拉低,如果插入的是充电器,因为充电器没有接这个线,所有它被手机内部的一个很大的电阻给拉高,通过检测这个线上的电压就可以判断插入的是usb还是充电器,具体的判断的算法在Bmt_main.c文件中的static void check_charger_or_usb(kal_uint8 sche_id)中。
8、键盘的定义:
在文件keypad_def.c中根据原理图修改数组const keypad_structkeypad_custom_def就可以了。
9、音频参数的修改:
根据硬件提供的用仪器测出来的值修改nvram_default_audio.c中的宏定义值。
10、外部中断的设定:
在文件eint_def.c中修改所使用的外部中断的号,比如USB_EINT_NO等。
11、待机电流控制:
一般要求手机的待机电流小于3ma,最小电流小于1ma,好的情况下能做到小于0.5ma,关机电流小于0.1ma。关机电流大一般是纯硬件问题,因为这时bb已经没有电了,软件完全不工作。待机电流大一般是lcd没有进入休眠、image sensor没有进入休眠或者cpu没有进入休眠。Cpu没有进入休眠一般是一直有个程序在工作,比如一个定时器一直工作或者一直来一个中断信号等。
12、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文件中定义了型号以后就直接可以用了。这里也需要注意i2c总线的定义。
14、手机开机过程:
开机以后,手机先进入到Boot Rom中去执行,等待150ms,如果在串口上接到特定的字符串就进入到和串口通讯的过程,在这时可以执行下载程序的过程了。如果没有接到特定的字符串,就进入到开机流程,首先执行的是bootarm.s,然后执行Nucleus的系统初始化,再执行init.c中的Application_Initialize,最后初始化任务,开始执行任务,mmitask.c中的MMI_TASK是最先要开始执行的任务。
15、FLASH芯片的设定:
根据硬件原理图,确定所使用的芯片的型号,然后到toolsMemoryDeviceList目录下,找到里面的EXCEL文件,找到对应的flash的型号,在Region栏下修改所需要的nvram的空间,这个栏目下的格式一般是类似于{0x10000,7}{0x2000,8}的形式,每个大括号中的前一个表示的是块的大小,后一个表示的是块的数量。在FLASH的文档中有块的分布的介绍,注意nvram不能跨越bank。
然后设置custom_MemoryDevice.h文件中的CS0_PART_NUMBER为对应的flash型号,要注意的是这里的flash的型号需要和excel文件中的flash型号完全一致。
16、一点体会:
在调试程序的时候,要注意不要假设BB芯片的动作,只要不是文挡中明确说明的都是不确定的,芯片内部还有一定的漏电的情况,没有加电的模块也是有一点电压的。
第二篇:关于MTK手机自动关机厂家的处理办法
关于MTK手机自动关机厂家的处理办法.txt54就让昨日成流水,就让往事随风飞,今日的杯中别再盛着昨日的残痕;唯有珍惜现在,才能收获明天。关于MTK手机自动关机厂家的处理办法,希望多大家有帮助
关于手机
自动关机厂家的处理办法,希望多大家有帮助
手机自动关机,又称自动断电,又分为不定时关机、按键关机、来电关机、开机后就关机、不能维持开机、合上翻盖关机和发射关机七种,这些故障是较为烦人和难排除的故障,检修时往往无从下手,就连一些有维修经验的“高手”也感到无所适从,其实,检修时只要注意观察,抓住故障的本质,检修此故障并不困难。下面分别进行分析。
一、不定时[u][font=Verdana][color=#ff0000]自动关机[/color][/font][/u]手机不定时关机是指手机开机、入网、拨打电话均正常,但有时会突然关机。产生这种故障的主要有两种,一是由于电池与电池触片间接触不良引起;二是电源IC输出的电压不稳,供电电路存在虚焊或接触不良,造成手机保护。
二、按键关机手机只要不按键,就不会关机,一按某些键手机就
[u][font=Verdana][color=#ff0000]自动关机[/color][/font][/u],主要原因是按键下面的集成电路或元件虚焊,在按键时由于力的作用使虚焊部位脱焊,导致手机关机。维修时,只要有针对性地加强对按键下部集成电路或元件的焊接一般可解决问题。
三、来电关机来电关机就是手机能开机、入网,也能拨打电话,但手机振铃响来电时,手机就关机。这种故障看似复杂,其实十分简单,为什么来电会关机呢?无非是振铃响造成的。振铃一响又为什么会关机呢?这是因为许多振铃工作时是由电池电压BATT+直接供电的,当振铃漏电时,就会导致手机来电关机。
四、开机后关机 手机开机后关机一般有三种原因:一是手机供电电路有故障,使手机虽“勉强”满足开机的条件,但开机一会后就会关机。特别是带升压电路的手机更容易出现这种故障。我们知道,手机的电池电压很低,一般为3.6V左右,有些手机的电池电压更低,手机的很多电路却需要较高的电压,因此,一些手机均设置了升压电路。当升压电路出现故障且升压电路对手机的开关机有影响时,就有可能造成手机开机后又
[u][font=Verdana][color=#ff0000]自动关机[/color][/font][/u]的故障。二是手机供电负载电路在故障,导致手机耗电大,将供电电路电压拉低,使手机保护关机。特别是手机的发射电路最易造成手机负载过重,引起手机开机后关机故障。对于发射电路引起的开机后关机故障,一般检修的方法是:将SIM卡拆下,开机,.若不出现[u][font=Verdana][color=#ff0000]自动关机[/color][/font][/u]现象,说明[u][font=Verdana][color=#ff0000]自动关机
[/color][/font][/u]故障发生在发射电路。因为在放置SIM卡的情况下,手机搜索到运营网络,则自动发射用户信号与网络建立通信。在拆下SIM卡的情况下,手机只搜索公共网络,但是不能确定哪个是运营网络,所以不会自动开启发射机。三是软件故障。当软件不正常时,手机也可能出现开机后关机的故障。开机后[u][font=Verdana][color=#ff0000]自动关机
[/color][/font][/u]还有一些其它原因,维修时应根据现象进行具体分析。
五、不能维持开机不能维持开机,是指按住电源开关键后可开机,但松开后即
[u][font=Verdana][color=#ff0000]自动关机[/color][/font][/u],该故障是爱立信手机中较为常见的故障,判断方法是:若开机后继续按住开机键,手机开机正常,且能够正常登记上网,松键后手机便[u][font=Verdana][color=#ff0000]自动关机[/color][/font][/u]。这种故障现象一般为开机维持信号不正常引起,我们知道,只有CPU的软、硬件自检通过后,才能产生开机维持信号,不能产生持续的开机维持信号,一是CPU部分损坏引起,二是软件不正常。若按下开机键开机后,继续按住开机键,手机能开机,但不能登记上网,而是
[u][font=Verdana][color=#ff0000]自动关机[/color][/font][/u]后再开机,再
[u][font=Verdana][color=#ff0000]自动关机[/color][/font][/u]又开机„„,出现反复的关机再开机现象。其原因一是元器件虚焊或损坏,如多模转换器、字库、CPU焊接不良或损坏等。二是软件出错,更换字库、码片或重写资料即可。
六、合上翻盖关机翻盖式和折叠式手机有时会出现一种十分奇怪的故障,即打开翻盖拨打电话正常,但合上翻盖手机就关机。但打开翻盖再开机又可以开机,再合上翻盖再关机„„我们知道,手机的翻盖具有自动接听电话和自动关断电话的功能。完成这一功能的主要元件就是磁控管,即翻盖式和折叠式手机常用的干簧管或霍克元件,早期的翻盖式和折叠式手机多采用干簧管,现在新型的翻盖式和折叠式手机则多采用霍克元件。但无论怎样,其控制原理是一致的。即手机打开翻盖后,翻盖上的小磁铁远离磁控管,外磁场消失,磁控管内部电路自动断开,这个“断开”的电信号(一般为高电平)输送给CPU后,CPU便作为提机信号而接听电话(或打开背景灯);当接听完电话合上翻盖时,翻盖上的小磁铁*近磁控管,由于磁场的作用,磁控管内部电路接通,这个“接通”的电信号(一般为低电平)输送给CPU后,CPU便作为挂机信号而关断电话(或关断背景灯)。
七、发射关机手机的发射关机故障在维修过程中经常出现,主要从以下几个方面来找原因。一是电池电压过低或电池老化。对于电池电压过低引起发射关机的现象,只要换过充足的电池供电正常就可以判断出采。有一种比较容易产生误判的故障就是由于电池老化后引起发射关机,经常遇到电池显示仍然满格,但发射就关机,这种现象主要是电池老化后引起电池内阻变大,在发射时电流大,使将电池输出电压变低而造成发射关机。二是功放输出端空载后为保护功放被烧毁而关机。功放输出端有元件损坏或有虚焊现象都会使功放输出端空载。三是软件有故障造成手机发射关机。四是功率控制电路不正常造成发射关机。出现发射关机故障后应从以上几个方面找原因,其中,以功放部分故障引起最为常见
第三篇:i2c_rtc_rx8025驱动总结
ARM : at91-sam9x5ek Linux内核:linux-2.6.39 时钟芯片:rx8025 SA/NB
第一种方法:
Rx8025驱动程序在该linux内核中已经包含,路径为:drivers/rtc/rtc-rx8025.c 所以在内核中增加驱动只需要配置即可:
1.执行make ARCH=arm menuconfig 进入菜单选项,选择RTC配置,选中EPSON RX-8025SA/NB,同时一定要去掉cpu自带的时钟。
2.i2c support 需要选中I2C Hardware Bus support中GPIO-based bitbanging I2C,否则,即使rtc驱动正确,也不能使用,提示:drivers/rtc/hctosys.c: unable to open rtc device(rtc0)。问题源自,驱动配置正确,I2C驱动没有加载正确,udevd不能创建rtc0设备节点
3.在arch/arm/mach-at91/board-sam9x5ek.c中添加信息,注意此处的name名称要与驱动程序中id_table中的名称保持一致。
而在linux某些匹配机制中,设备名称是与驱动名称相一致。如果名称不能正确匹配,系统是不会执行probe函数的。
另外需要注意的是i2c地址,手册上给出的地址一般都是带有读写位的,而程序中的地址需要把最后一位的读写位去掉,取前面的7位。Rx8025的地址为0x64,相应的程序中的地址应该为0x32。否则会提示对寄存器的操作失败。
4.驱动正确配置后,生成相应的文件 /dev/i2c-0 /dev/rtc0 /sys/bus/i2c/drivers/rtc-rx8025 /sys/bus/i2c/drivers/0-0032
第四篇:解放思想创新驱动总结
“解放思想、创新驱动、转型发展”主题讨论活动总结
为积极应对煤炭市场持续疲软的不利形势,机电修造分厂根据机械总厂关于开展“解放思想、创新驱动、转型发展”主题讨论活动的活动要求,分步骤对活动进行了认真贯彻落实,使得全厂干部员工以更加解放的思想、更加坚定的信心、更加饱满的热情推动机械总厂持续发展,现将活动开展情况总结如下。
一、开展情况
(一)周密部署,合理安排,迅速把开展主题讨论活动落到实处。
(一)周密部署,合理安排,迅速把开展大讨论活动落到实处。分厂党支部高度重视,组织专门人员结合实际,制订方案,分阶段安排好各项工作。根据总厂安排部署,紧密结合机电修造分厂干部职工思想和工作实际,明确了此次活动的重要意义、指导思想和基本原则、组织领导、主要任务和工作安排,围绕八方面确定了此次主题讨论活动的主体方向和内容。
(二)营造良好氛围,加强理论学习,扎扎实实开展主题讨论活动。一是召开动员会。10月23日分厂党支部开展党员集中学习活动,传达贯彻机械总厂开展主题讨论活动精神,集中学习了集团公司董事长杨军《在集团公司下半年安全工作会议上的讲话》、《统筹施策加速煤企转型》、《在集团公司2015年经营工作会议上的讲话》;学习集团公司总经理龚乃勤《在推进经济效益型生产暨二季度经营工作会议上的讲话》、《在集团公司暨恒源股份经营分析会上的讲话》、《在恒源煤电2015年四季度工作会议上的讲话》;学习集团公司总工程师吴玉华
《在皖北煤电区队五项基础工作“去形式化”现场会上的讲话》;学习集团公司副总经理、恒源公司董事长邓西清《在恒源公司四季度工作会上的讲话》;学习总厂第一次党员大会会议精神;学习《皖北煤电集团公司关于强化年底前安全管理的若干意见》、《机械总厂关于强化年底前安全管理的若干意见》等讲话及文件精神。二是加大宣传力度。分厂支部利用宣传栏、内网、微信党建平台,座谈会等多种方式进行宣传教育,使广大职工认清形势,集思广益,积极建言,形成全厂职工参与主题讨论的生动局面。
(三)结合实际,合理安排,注重实效,用工作成效促进活动成效。分厂把主题讨论活动与安全生产工作紧密结合起来,克服工作任务重、工作繁忙的困难,坚持安排专人深入车间对讨论意见建议进行采集,做到生产讨论两不误。
二、取得的初步效果
经过积极推动,机电修造分厂主题讨论活动工作取得了初步成效,主要表现在:一是思想认识进一步提高。通过各种报告和讲话精神的学习研讨,广大党员干部进一步深化了对当前煤炭市场持续“寒冬”,集团公司坚持稳中求进的战略发展方向的认识,进一步提振了战胜危机的士气。二是行动上积极献言献策,此次讨论活动共征集意见建议24条,经过分析整理形成有效建议7条,其中一条为适应生产需求合理改变工作班次和时间经由厂委会讨论后已经在分厂内部实施,其余六条上报总厂主题讨论办公室。
经过此次讨论活动,分厂全体职工在思想上转变了观念,思想行
动统一到集团公司“战危机、保生存、谋发展”的工作部署上来;行动上确保安全生产,为年底招贤带式输送机的顺利发货而努力。
机电修造分厂 2015年12月10日
第五篇:“任务驱动”小专题总结
信息技术 “任务驱动”小专题总结
——杨红艳
自本学期确立小专题以来,从教学实效上看取得了一定的成效,有效的激发了学生的学习兴趣,调动了学习积极性。使学生很好的掌握了基础技能知识和操作性知识。
根据本学期的教学实践,现对“任务驱动”小专题总结如下:
1、调动学生学习的主动性
动机是“为了什么”,目的是“达到什么”,没有动机的活动是不存在的,我在教学过程中以任务促使学生形成动机,进而培养学生的学习兴趣。
2、满足学生的求知欲望
作为教师演示的课件,一定要在课前精心设计制作,才能达到“任务驱动”的目的。这时,教师演示讲授操作步骤,尽管“全体广播”使学生只能用视觉、听觉,不能操纵计算机,但是教室里鸦雀无声,竟没有一个人不是全神贯注盯着显示器的屏幕,这时的学生求知欲望最强,他们迫切地想知道、想学会这引人入胜的动画是怎么做出来的,也就是说,“任务驱动”创设着一种适当的情境,引起了学生的认知的冲突,使学生产生了一种悬而未决的求知欲,从而激发了学生的求知热情。
3、给予学生成就感
教学目标的实现,不仅包括教学思路、教学过程,还有教学效果。计算机学科必须动手的特点,使教师的教法不可以纸上谈兵,也使计算机的考试不适于死记硬背。“任务驱动”让学生在每一堂课上为着“任务”、为着制作一件“成品”或“半成品”去动手操作,去克服遇到的各种困难,比如,想让五环互相环套,却涂抹了圆的一部分弧;想嵌入几个漂亮的汉字,却一个字都输不上去等等,逼你提问题,去寻找解决问题的技巧。当大功告成,一种收获的喜悦、一种成就感油然而生,一节课没停手,既没感觉累也不感觉枯燥,不知不觉就下课了,要不是底
下还有课,手怎么也不愿离开那小鼠标,可再想想,难道这不说明掌握了这节课的知识?完成了“任务”。
4、开拓学生的创造力
“任务驱动”对于学生,开始是模仿,制作出与教师的“成品”一样的作品,积累了一定的基础知识,接踵而来的便是丰富多采的创造作品,这就是由“任务驱动”引发的学生的无穷的创造力。计算机学科是开放性的、知识更新极快的学科,在课堂上不可能将一个软件的所有功能都学到,也没必要这样做。计算机教师在教会学生计算机基础知识的同时,更重要的任务应该是教会学生学习方法,“任务驱动”正好给了学生这样一个机会。在一堂课上,不可能所有学生的学习进度一样,掌握快的学生在完成教师布置的任务后,又琢磨能否将自己画的图或网上下载的图片插入文档中,有的开始为迎新年制作贺卡——新的追求激励着学生去学习、去探索,去创作更美妙的“精品”。
从实施小专题的阶段过程来看,存在着一定的问题,如有的同学不积极的参与,或者在完成任务过程中缺乏创意,人云亦云。针对实施过程中的问题,给我们的应用提出了一个要求,就是在平常上课中,要多留有余地,让学生有更多的时间和机会来展示自己的作品,并在同学中进行评比,同时鼓励学生积极发表自己的见解,发展自己的设计思路,提高创新意识。