安卓4.2+A20

来源:互联网 发布:tp3.2商城项目源码 编辑:程序博客网 时间:2024/06/05 09:22

目前板子支持的模块以及配置信息

 

 

LCD:IC=st7789v。竖屏显示(240*320),lvds转RGB

TP:IC=FT6336G。竖屏240*320,双指触摸

UART:ttys567。波特率为921.6kbps

WIFI:IC=AP6255。支持2.4G以及5Gwifi

支持立体声音频输出

支持TF卡

短按按键睡眠唤醒机制

长按按键开关机机制

支持以太网USB

参考文档:

A20_LCDV1.0.pdf:lcd.pdf

http://linux-sunxi.org/Fex_Guide#lcd.5B0.2F1.5D_configuration:lcd.web

LCD:

A20的代码框架下,lcd分为几部分。分别对应lcd0以及lcd1。

关于配置信息,存放在sys_config.fex文件,关于sys_config.fex如何配置需参考lcd.pdf以及lcd.web;

主要配置

    lcd分辨率,

    lcd的framebuff大小(这个大小最好与分辨率一致),

    lcd的一些配置(hsync,vsync,ht,vt等等,这部分配置不仅要与lcd初始化代码一致,还需要符合datasheet的参考范围

    供lcd使用的几个gpio引脚,

    pwm配置等等(pwm在a20的1.2版本并没有将引脚接出)。

lcd最好使用lcd0,如果使用lcd1,即使驱动层配置完全正确,framework层也没办法正确读取底层设备配置

关于kernel驱动部分,注意lcd是否需要初始化,把初始化代码放在lcdx_panel_cfg.c文件里面;

关于framework到hal部分;

横竖屏显示问题,首先在 init.sun7i.rc里面setprop ro.sf.hwrotation 0/90,虽然屏幕旋转,但是硬件屏幕和系统显示大小始终偏移不对。

竖屏显示始终有问题的原因是:WindowManagerService.java里面有一个属性问ActivityInfo.SCREEN_ORIENTATION_XXXXX,默认是SCREEN_ORIENTATION_LANDSCAPE,我们将属性改为SCREEN_ORIENTATION_PORTRAIT解决。

systemui崩溃,因为a20的源码包是不支持240*320的资源配置文件,解决办法是从其他分辨率那边copy了一系列的资源配置文件。

TP:

代码框架一致。

关于配置信息需要注意是否有x轴旋转,或者y轴旋转;

关于kernel驱动部分,需要注意i2c的主从地址是否正确

之前坐标值有误是因为i2c是时钟频率不对,在确认i2c地址以及硬件正常的情况下,可以往这方面考虑。

关于framework到hal部分;因为底层给的属性可能会导致android层把设备认为触摸板(笔记本所带的那种触摸鼠标),所以需要写idc配置文件指定设备类型

tp部分的话基本就是getevent确认从hal层拿到的数据是否正确,来确定问题位置。

UART:

串口遇到的问题是:软件设置的波特率实际硬件没有办法满足。

这一问题的根源是:串口这边时钟使用的是24Mhz的标准默认值,我们这边的处理是将24Mhz换成了更高的PLL62,也就是PLL6的一半300Mhz。

wifi:

wifi之前都集成的没有问题。

把确认的引脚配置正确。

把相应的固件通过mk文件指明copy路径。

把相应的driver在.config里面配置清楚明了。

 

短按按键睡眠唤醒机制:

对于这个处理,之前因为一直连着usb,供电可以三部分:ac,usb,电池。

所以之前即使是ac断电了。我们还能正常唤醒是因为切换成usb供电。

我所做的处理是:走notifier机制,把axp的睡眠唤醒在android层切断,走另一个逻辑的睡眠唤醒

睡眠唤醒所做的事情就是关闭:lcd与tp

原创粉丝点击