PD充电调试问题解析(一)
之前一直对充电的调试有了解,这次经过一个案子,对最新的充电技术和方案有所了解。现记录一下。
充电框图
几个关键的概念:
1.PD的输出电流,电压, 他的对象是 充电IC,PD Out ===>> Charge IN
2.充电IC 的input 输入电流, input 输入电压,解决充电的能量源头问题
输入电流限制,输入电压限制,保护充电芯片
3.充电IC对电池的输出电流,输出电压,包含 预充电,恒流,恒压充
充电原理图:
整个过程分两个阶段,所协商的电压和电流也各不相同;所以在代码的时候,需要注意。
代码跟踪的过程:
充电IC保护电流和电压
初始化充电电流
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。
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下载
一、原理图介绍
二、驱动代码解析及dts配置
Dts 配置
1.就按照文档里面Type-C USB 3.1/DP 全功能 DTS 配置章节配置成一样的,可以参考这个里面:rk3588s-evb1-lp4x.dtsi
2.husb311的配置可以参考这个里面:rk3588-toybrick-x0.dtsi
sink-pdos是指我们做sink(耗电方,即外接充电器)时候的充电能力,一般包括电压和电流。
source-pods是指我们做充电方对外充电的时候支持的pd充电能力,这个5000和1000是代表5v-1a。
这个充电能力是要根据实际电路支持才能写的,比如有些设计支持9v-2a,要电路支持9v才能配置上去,要不然pd充电器会切换到9v就可能把板子烧了。这个可以找硬件看,或者找芯片手册来配置对应的。
下面的port@0和port@1一个是用来正反面切换用的,一个是dp功能的。如果是完整功能的typec接口是都要配置的。和usbdp_phy0里面port的两个相对应。
usb_con: connector {
compatible = "usb-c-connector";
label = "USB-C";
data-role = "dual";
power-role = "dual";
try-power-role = "sink";
op-sink-microwatt = <1000000>;
sink-pdos =
<PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
source-pdos =
<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
altmodes {
#address-cells = <1>;
#size-cells = <0>;
三、充电常识及常见测试设备
————————————————
版权声明:本文为CSDN博主「junwua」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/junwua/article/details/126705956
pd充电功率问题patch-Android文档类资源-CSDN文库
————————————————
版权声明:本文为CSDN博主「junwua」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/junwua/article/details/126381554