当前位置: 首页 > news >正文

MTK调试-电池识别

1、调试流程步骤

1.1 流程讲解:(示例:MT6589平台)

电池识别的简介:本文的电池识别是采用一个外部芯片(bq2022a),可以读取电池内部烧录的识别码,将读出的识别码和我们设定的识别码进行对比,如果相同则允许充电,否则不允许充电,但是可以正常放电使用。
不允许充电的现象:开机状态,充电电流为0;关机状态,显示一张禁止充电的图标。

1.2 驱动调试:(示例:93007项目)

1)bq2022a的驱动源码位置:
\mediatek\platform\mt6589\kernel\drivers\power\bq2022a-batid.c
\mediatek\platform\mt6589\kernel\drivers\power\bq2022a-batid.h
2)项目宏控配置:
\wingcust\{$project}\base\config\ProjectConfig.mk
设置WT_BQ2022A_BAT_ID_SUPPORT = yes
\wingcust\{$project}\base\config\autoconfig\kconfig
设置CONFIG_BQ2022A_BAT_ID=y
3)其他配置:
DCT配置中需要设置对应的BAT_ON的管脚为GPIO模式:
#define GPIO_BQ_BSQ_PIN  GPIO175
#define GPIO_BQ_BSQ_PIN_M_GPIO  GPIO_MODE_00
#define GPIO_BQ_BSQ_PIN_M_EINT  GPIO_MODE_02
且需要在DCT的POWER设置中设置MSDC2的电压为2.8V
#define MSDC_POWER_MC2  MSDC_VIO28_MC2
上面的设置OK后功能则起作用。
4)要想在其他地方使用该功能,只需要调用接口bq2022a_read_bat_id()就行。

1.3 功能验证

1)关机状态下:
安上电池,将手机连接USB线或者充电器,等一会儿,如果手机进入正常充电状态,则表示识别正常,如果弹出禁止充电的图标,则表示当前电池不是我们项目的电池。
2)开机状态下:
安上电池开机,连接USB线,打开adb调试功能,adb 进入手机,输入命令:cat  /sys/class/power_supply/battery/batt_id
如果显示1,识别出是我们的标准电池;如果显示0,识别出是非法电池

2、功能扩展

电池器件由电池封装厂和电芯组装而成,不同的电芯有不同的ZCV曲线,因此需要配置不同的fuel_gauge参数,通过识别码就能识别出不同的电池封装厂和电芯组装电池模组,从而调用不同的fuel_gauge参数。
1)电池模组识别设计思路:
共读取9个识别码数据,前面的8位识别码仍然不变,进行判断对比,设定第9位为电池模组编号,不做比较,与0x0F相与生成1~F的数据,保存在新的变量bat_module_id中。
2)功能扩展使用:
封装bat_module_id成函数bq2022a_read_bat_module_id(),在mt6320_fuel_gauge.c文件的以下函数:fgauge_get_saddles()  、  fgauge_get_saddles_r_table()、 fgauge_get_profile()、 fgauge_get_profile_r_table()中调用bq2022a_read_bat_module_id(),再增加调用对应电池的ZCV参数即可。以后新增加一个模组电池,需要在上面4个函数的位置增加该电池的参数数组。
3)功能验证:
模组识别已经加入到了工厂模式和*#66*#工厂模式中。
工厂模式:进入工厂模式 ---> 硬件设备信息 ---> Battery 会显示对应模组厂的编号和模组厂信息。
工厂模式:进入*#66*# ---> 关键器件查询 ---> Bttery 会显示对应模组厂的编号和模组厂信息。
以上模式中如果识别不到模组,则会显示“error”

http://www.dtcms.com/a/418649.html

相关文章:

  • 网站目标网页制作下载图片代码
  • 钱站网站如何建设手机移动网站
  • Vue调用浏览器打印
  • 捷讯官网 网站建设网站到期只续域名不续空间能打开吗
  • CS231n学习笔记1-4: Image Features
  • DragonBalls_One009*
  • extern关键字
  • 捷为科技亮相新能源汽车产业对接会,数智化平台赋能汽车行业高质量发展
  • ChatBI 学习
  • 百度网站推广咨询建筑网人才
  • 桂林网站建设服务网站定制牛七科技
  • WebRTC 发送端 SSRC 生成流程总结
  • 客户标签自动管理:标签自动化运营,画像持久保鲜
  • 云原生架构与GitOps技术栈介绍
  • 智能外呼产品架构组成
  • 【深度学习新浪潮】如何提升agent的专业性?
  • AI排名查询工具如何助力GEO优化?生成引擎优化中的关键词竞争力分析
  • 福州有网站建设的公司网站都需要什么类别
  • Nginx 反向代理与负载均衡核心内容总结
  • JavaWeb 课堂笔记 —— 20 SpringBootWeb案例 配置文件
  • 算法练习题
  • 9.数组介绍和静态初始化
  • 无重复字符的最长子串_优选算法(C++)滑动窗口
  • 提升雾化片性能,关键是精密测量盲孔尺寸
  • Flannel工作原理-Flannel故障案例-镜像拉取策略-secret对接harbor及ServiceAccount实战
  • GitLab高危漏洞可致实例崩溃(CVE-2025-10858 和 CVE-2025-8014)
  • 中铁建设投资集团有限公司网站自己公司怎样做免费的网站
  • 安卓13_ROM修改定制化-----修改rom 实现支持原生安装器 破除厂商定制限制
  • android 字符串工具类(兼容 Android 16+ / API 16,无报错版)
  • 9.28 深度学习10