最近,一直在负责公司所有产品的电源/充电/库仑这块,先说说库仑,它是集成在电池里面的一个芯片,用来准确的返回电池的信息的,因为一般的电池的信息是通过adc返回的数据,这样的数据不是很精确,为了做到对电池的信息的精确处理,所以公司的大多产品都用到了库仑计,底层页就是通过I2C读取寄存器的数据实现的。

1:有库仑计和一般电池的区别

有库仑计的电池,一共有6个脚,而一般的电池只有三个脚;

有库仑计的电池,读取到的数据比没库仑计的电池读取到的电池信息更精确。

先贴图:

如图中看到的,通过SCL和SDA读取6B地址处的数据,就可以精确拿到电池的信息。

通过下面的bq27541_level()读取电池的电量等级,也就是百分数,而通过bq7541_vol()读取到的即是电池的电量,其实最底层就是通过i2c_smbus_xfer实现的。

int bq27541_level(void)
{
    int ret;
    short data;
    ret = i2c_smbus_read_word_data(chip->client, bq27541CMD_SOC_LSB);
    if (ret >= 0) {
        data = (short)ret;
        //printk("level:%d\n",data);
        bq27541_debug(chip, "POWER_SUPPLY_PROP_CAPACITY = %d\n", data);
    } else {
        pr_info("get bat_info POWER_SUPPLY_PROP_CAPACITY on bq27541CMD_SOC_LSB error\n");
        return -1;
    }
    return data;
}

int bq27541_vol(void)
{
    int ret;
    short data;
    
    ret = i2c_smbus_read_word_data(chip->client, bq27541CMD_VOLT_LSB);
    if (ret >= 0) {
        data = (short)ret;
        //printk("vol:%d\n",data);
        bq27541_debug(chip, "POWER_SUPPLY_PROP_VOLTAGE_NOW = %dmV\n", data);
    } else {
        pr_info("get bat_info POWER_SUPPLY_PROP_VOLTAGE_NOW on bq27541CMD_VOLT_LSB error\n");
        return -1;
    }
    return data;
}

下面这个图,就是在备电电量低的时候,用来给备电充电的,在备电电量低的时候(会有一个中断)或者usb或者AC充电的时候,会给AUXBAT_CHGEN这个引脚一个高电平,来启动备电充电,XEINT4-AuxBATCHG_DET这个引脚是备电满标志,平时会因为上拉电阻,而呈现高电平,在充电的过程中,会保持低电平,而备电满以后,这个引脚会由低变高。在变高的同时会清除AUXBAT_CHGEN这个引脚为低电平。

android 电源/充电/库仑相关推荐

  1. Android 如何判断手机处于电源充电状态还是USB连接状态?

    IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); Intent batteryStatusIntent = ...

  2. android 电源管理 wakelock 唤醒锁机制

    Android 电源管理 - 唤醒锁全新上市 大多数人可能都遭遇过手机的电池续航时间较短带来的尴尬. 这极其令人讨厌. 没电的手机和一块水泥砖没什么差别. 一般而言,如果用户的手机电池无法持续一整天, ...

  3. 关闭Android电池温度告警框,android电源信息查看(电量、温度、电压)实例代码

    本文实例讲述了android电源信息查看方法.分享给大家供大家参考.具体如下: 1. PowerTestActivity: import android.app.Activity; import an ...

  4. Android电源管理分析

    Android电源管理 1.电源管理服务–PowerManagerService ​ PowerManagerService提供Android系统的电源管理服务,主要功能是控制系统的待机状态,控制显示 ...

  5. Android电源管理介绍

    一.电源管理基础知识 1.1电源管理的几种状态 Android kernel源码中,定义了三种电源状态,在kernel/power/suspend.c中: 对应的宏定义/include/linux/s ...

  6. android 布局dock,Android电源管理专题之获取和监测Dock状态和类型

    Android电源管理专题之获取和监测Dock状态和类型 (2013-04-07 16:36:00) 标签: android 电源管理 dock it Android 设备可以接在不同类型的 Dock ...

  7. 请按正确方法给UPS电源充电

    请按正确方法给UPS电源充电 山特UPS电源山特UPS电源的正常寿命,在室温正常条件下且正常使用时,一般密封免维护铅酸电池的浮充使用寿命3-5年.但是很多人为因素却会使UPS不间断电源的寿命大大缩短. ...

  8. android电池充电动画,Android 开机充电图标和充电动画效果

    首先驱动需要先获取到2个power supply kernel\msm-3.18\drivers\usb\phy\phy-msm-usb.c motg->usb_psy.name = " ...

  9. Android bugreport 充电日志解读

    Android bugreport 充电日志解读 一条电量日志格式如下 <12>[257235.748250] healthd: battery l=67 v=3951 t=25.0 h= ...

最新文章

  1. cnc加工中心保养表_CNC数控加工中心,硬轨的好还是线轨的好?
  2. Linux下Tomcat重新启动
  3. linux tcp重传多会导致软中断在各个核很不均匀么?
  4. S4:装饰模式 Decorator
  5. python3.7界面设计_基于selenium+Python3.7+yaml+Robot Framework的UI自动化测试框架
  6. 日本各地方与所属各县名称及其读音
  7. 不合法的媒体文件 id_注意!伦敦男孩、DKNY、Coach、地素... 这些品牌的服装,抽检不合格...
  8. HashMap之三问为什么及性能问题
  9. 搭建基于Docker社区版的Kubernetes本地集群
  10. Spring:自动接线或不自动接线
  11. C#开发命令执行驱动程序 之 控制标志的命令行参数
  12. ALSA音频工具amixer,aplay,arecord
  13. Redis主从,哨兵架构简单搭建
  14. 【Android -- 学习】学习资料汇总
  15. 多媒体技术是指运用计算机,多媒体技术的概念与应用
  16. 饥荒服务器运行时cpu的占用,饥荒联机版服务器卡顿原因分析及解决教程 服务器卡怎么办-游侠网...
  17. python 类继承
  18. php移动端可拖动可视化,可视化编辑uniapp项目DIY拖拽
  19. 深圳有多强?2928家专精特新中小企业 和 2.1万家高新技术企业!
  20. html中正确给table加边框

热门文章

  1. 光电器件市场发展现状分析表
  2. 前端代码质量-圈复杂度原理和实践
  3. 求学者如何借“东风”学好大数据开发?
  4. 华为打造狼性团队的22条军规
  5. HTML 页面禁止打印
  6. 东华复试上机备考踩坑记-17年第三题
  7. SATA硬盘性能测试软件,SATA硬盘和SSD硬盘性能测试对比
  8. PT_大数定律LLN
  9. 解决window Server 2008 R2环境下无法安装.NetFramwork4.6错误
  10. java程序性能优化(一)