CH223是一款USB PD快充协议受电芯片,支持USB PD 2.0/3.0快充协议,带有一路两线IIC从机接口, 可用于PD相关的数据获取、电压档位修改等功能,并带有两个可控高压开漏输出引脚,以及一个FB引脚 支持增量开环电流调节模式,可用于DC-DC或者外置电压调节器。 CH223集成度高,外围精简,可广泛应用于无线充电设备,移动电源,锂电池家电及工具等众多场景。
以上都是抄的手册(手动狗头)
近段时间使用CH223遇到了一些坑,记录一下:
1.CH223是一个PD受电芯片,MCU可通过IIC与223通信获取源端电压电流挡位、改变请求电压。据手册描述,IIC从机地址为0x22或0x23(奇偶双地址),开始理解成了读地址和写地址分别为0x22和0x23(冒汗)。后发现,从机地址是0x22或0x23,即不包含读写位。实际通信如下图:
2.CH223 16脚为中断脚,默认为高电平,当产生特定中断时,电平为低,IIC读取0xB4后恢复高电平,并且 寄存器数据将自动清空。开始以为上电为高电平,充电器接入拉低。后发现默认上电就有复位中断,是低电平,我还以为是MCU上拉异常了。
3.手册只说了:CH223建立PD连接后NDO数据保存在0x84~0x9F,每四个字节为一个完整的NDO。不知道具体存储格式。
通过串口输出和逻辑分析仪实际抓包可知,存储的是SourceCap原始数据。可由下表解析。
解析步骤:
原始数据为:2C 91 01 0a
转换顺序为:0a 01 91 2C
对照表可知:
B31...30 为 0a 高两位 00 是FIX挡位(11是PPS)
B29-B20和电压电流没关系,不用管。
B19...10 为 01 91 的高10位 0110 0100 0x64 10进制位100 100*50mV=5V
B9...0 为 91 2C 的低10位 01 0010 1100 0x12C 10进制位300 300*10mA=3A