目录
一、充电系统框图
之前一直对充电的调试有了解,这次经过一个案子,对最新的充电技术和方案有所了解。现记录一下。
充电框图
几个关键的概念:
1.PD的输出电流,电压, 他的对象是 充电IC,PD Out ===>> Charge IN
2.充电IC 的input 输入电流, input 输入电压,解决充电的能量源头问题
输入电流限制,输入电压限制,保护充电芯片
3.充电IC对电池的输出电流,输出电压,包含 预充电,恒流,恒压充
二、充电相关原理
整个过程分两个阶段,所协商的电压和电流也各不相同;所以在代码的时候,需要注意。
三、代码跟踪的过程
3-1、DTS配置及修改
Dsti修改电流电压
sink-pdos =
<PDO_FIXED(5000, 2000, PDO_FIXED_USB_COMM)
PDO_FIXED(9000, 2000, PDO_FIXED_USB_COMM)>;
//PDO_FIXED(12000, 2000, PDO_FIXED_USB_COMM)>;
source-pdos =
<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos是指我们做sink(耗电方,即外接充电器)时候的充电能力,一般包括电压和电流。
source-pods是指我们做充电方对外充电的时候支持的pd充电能力,这个5000和1000是代表5v-1a。
3-2、源代码分析
充电IC保护电流和电压
初始化充电电流
pd 和充电IC之间的关联代码:
static int husb311_probe(struct i2c_client *client,
chip->tcpci = tcpci_register_port(chip->dev, &chip->data);
tcpci->port = tcpm_register_port(tcpci->dev, &tcpci->tcpc);
err = devm_tcpm_psy_register(port);
port->psy = devm_power_supply_register(port->dev, &port->psy_desc,
&psy_cfg);
解决patch下载