跳过正文

LRADC按键无效问题分析

·31 字·
Huang JY
作者
Huang JY
记录全志 SoC、驱动开发、显示调试与智能硬件项目实践
目录

1. 环境
#

  • 平台:A133
  • 系统环境:Android 11

2. 问题描述
#

image-20260728170207708

按键按下不无效

3. 结果
#

3.1 原因分析
#

常态电压为1.8V,音量加按键按下为0V,音量减按键按下为1.2V,实测LRADC按键音量减按键不生效。

设备树配置配置:

image-20260728170510111
可知已经配置成对应电压了,按键依旧不生效。

查看A133芯片手册:

image-20260728170755212
可以知道A133 lradc最大检测电压为1.35V,理应是可以识别1.2V电压的。

发现是驱动默认将LRADC_CTRL寄存器的[4:5]设置成10:

image-20260728171951587
10代表最大可识别电压为1.139V,按键按下的1.2V电压超出识别范围,所以按键不生效。

3.2 解决方法
#

修改驱动(sunxi-keyboard.c):

原先函数:

image-20260728171619688

参考修改:

image-20260728172215541

将LRADC_CTRL寄存器的[4:5]设置为00,即可识别1.2V电压。