RK3399充电管理

platform:RK3399
OS:Android 7.1

1. 概述

本文档简要介绍基于RK3399实现充电管理相关部分,主要包括Typec充电和uboot关机充电两大部分。主要实现普通充电、PD充电、关机充电、电量上报、过放及低电保护等功能。

2. Typec正常充电

typec充电需要fusb302+bq25700+cw2015配合使用才可以正常使用各项功能.驱动已经调试和验证过,所以调试难度不大,只要保证硬件正常,供电和通信正常,一般都能跑起来。这一部分所要做的是按照需求或问题进行适当的调整驱动即可。

2.1 fusb302 驱动移植

Fusb302是可编程的USB Type-C控制器,支持识别各种USB 设备和对应的状态;且支持最高100W的PD协议。

驱动目录:kernel/drivers/mfd/fusb302.c

驱动不需要修改,主要是 配置dts。

fusb0: fusb30x@22 {
compatible = "fairchild,fusb302";
reg = <0x22>;
pinctrl-names = "default";
pinctrl-0 = <&fusb0_int>;
int-n-gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;                  //中断引脚
vbus-5v-gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>;              //vbus引脚
charge-dev = <&bq25700>;                                 //使用的充电IC
//discharge-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
support-uboot-charge = <1>;                         //支持uboot关机充电
port-num = <0>;                        //使用的usb控制器,关机充电时需要
status = "okay";
        };

添加dts之后一般驱动就可以正常工作了。如果驱动无法正常工作,主要从硬件方面来分析:

在这里插入图片描述

  1. 参考原理图和数据手册,检查fusb302各个电源是否供电正常。

  2. 重点检查中断引脚INT_N和两个CC脚插入和拔出Tpyec时电压状态是否正常

    a) 插入Type-C 两个CC脚电压分别为0.4V/0V,哪个CC脚电压为0.4V和插入方向有关。

    b) 插入充电器 两个CC脚电压分别为1.6V/0V,哪个CC脚电压为1.6V和插入方向有关。

    c) 未插入Typec时 CC脚在0.8V~1.1V之间跳变

  3. 主板到充电板的连接线问题,导致信号质量差

  4. Fusb302物料问题

2.2 bq25700 驱动移植

Bq25700是升降压充电管理IC,支持3.5V~24V的输入电压,4.48V~20.8V的输出电压。还支持PD充电和OTG功能。

驱动目录:kernel/drivers/power/bq25700_charger.c

Bq25700的驱动也几乎不

  • 6
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值