1、android 键盘调试
在调试的IIC的过程中遇到了很多问题,例如 总是等待总线,结果证明是设计原理有问题,lm8333的设备地址与eeprom at24c04的地址冲突,还有是调试板启动的时候 负载过重 从nandflash启动的时候一直提示 是烧写文件系统还是内核镜像的哪些项。
2、android 电量计 充电IC 调试
有了厂商的demo板,调试的是由于我们的电池的电量低于1.9V,demo板的电量计IC rt9420不能正常的工作,花了一会才找出原因,经测试 demo板的工作电压小于1.9V是 rt9420芯片级不能工作了,当测得的VCell = 4.2V 时 soc=100% ,VCell = 3.5V 时,当soc=5% ,VCell = 4.2V 时 soc=100% ,当VCell = 3.2V 时 soc=0% 。使用rich talk提供的软件测试时 每次都要复位 点击 POR。
充电IC驱动的设计思路(pm2301)
添加IIC设备,probe 函数中 初始化,申请dcic中断, 当有 dcic插入时,执行中断 将IC充电加入工作队列,充电使能,10S之后检测电池的状态,没充满一直循环执行(10s之后检测电池的状态),电池充满时 在执行中断,(dcic脚有电平变化),在检测电池的状态,没有变化 充满,充电结束。
rt9420 检测到充满时 上报系统充满, rt9420的驱动也可以调用充电IC的驱动的函数,使用 EXPORT_SYMBOL() ,extern关键字。
int pm2301_get_status(void)
{
#ifndef PM2301_REPORT_STATUS_BY_IRQ
pm2301_charger_status(g_chip);
#endif
return g_pm2301_status;
}
EXPORT_SYMBOL(pm2301_get_status);//将pm2301_get_status导出给其他的模块使用。
3、超高频模块调试
超高频是串口模块 直接使用串口就可以,但是我们的产品在调试的过程中,刚好串口那个口不稳定,调试用了两天才找出这个原因。
4、指纹模块调试
指纹模块也是串口 ,但是我们的产品的串口不够用,采用的是USB转串口,USB转串口调试的时候也是一直不通,最初是USB转串口的驱动没有添加,在芯片代理的支持下,成功的在我们的内核中添加了这款芯片的PID, 内核可以识别USB转串口了,但是依然打不开设备/dev/ttyUSB0,经过两天的尝试,终于找到了方法: 在内核启动的时候给芯片上电,然后断电,在上电,这样,就可以打开设备/dev/ttyUSB0了。Usb转串口芯片中也有程序。
5、USB下载线 的 两根线(差分线)必须连在一起或交叉起来。
6、键盘LM8333调试,按键的值上报了之后,在文本中可以显示,但是,如果长按某个按键,会弹出选项如按下4 ,会弹出复选框 1/2 1/3 1/4 1/8,原因 因为和系统有冲突,可以换其他的键,有些键没有冲突,长按的时候依次一直重复显示