PD受电 协议芯片 CH224A/Q使用笔记

        相比于CH224K/D, CH224Q/A支持USB PD3.2快充协议 最高支持PD3.2 140W。 支持请求PPS、EPR FIXED 、EPR AVS ,内置LDO,通过 I2C 接口可以读取协议握手状态和读取当前PD 档位额定电流。芯片内置高压 LDO,静态功耗低,集成度高,外围精简。支持4-30V输入电压

    详细可参考:CH224DS1.PDF - 南京沁恒微电子股份有限公司https://www.wch.cn/downloads/CH224DS1_PDF.html

CH224A和CH224Q的区别在于封装不同,CH224A可以替换CH224K。


一、基本原理图

1.单电阻配置和 I2C 配置参考原理图

2.I/O 电平配置参考原理图

(1) 无需和 CH224 进行交互或控制时

(2) 用3.3V/5V MCU对 CH224 进行控制时

注意:

    1.如果使用5V MCU对CH224A/Q进行电平配置,CFG1需串联2K电阻。

    2.电阻配置最低为9V,电平配置没有15V挡位,CFG2、3内置上拉。且只有在电阻配置下才可以用I2C配置。


二、CH224A替换CH224K

1.当CH224K为电阻配置

        1脚串联至VBUS的1K电阻短接或换为0Ω ;

        8脚串联至VBUS的10K短接或换为0Ω。


2.当CH224K为电平配置

        1脚串联至VBUS的1K电阻短接或换为0Ω ;

        8脚串联至VBUS的10K短接或换为0Ω ;

        9脚需要串联100K电阻至VBUS。
     

注意:

        1.CH224A的CFG2、3 内置上拉,根据电平配置选择CFG1 2 3下拉。

        2.!!!!芯片CFG1引脚的耐压只有3.8V左右,不能像CH224K一样上拉至VDD,需要上拉100K至VHV!!!!


三、CH224A/Q  I2C

         环境:CH32V307VCT6评估板,POWER-Z,CH224Q测试板,联想PD3.1 140W适配器
芯片功能寄存器表:

        编写好I2C初始化以及读写函数后开始读取CH224Q寄存器并处理

        此时为电阻配置9V,抓包并打印读取到的寄存器信息和挡位信息:

        请求EPR FIXED 28V5A挡位后,抓包并打印读取到的寄存器信息和挡位信息:

        (后文有介绍请求EPR、AVS、PPS)

        在0X60~0X8F寄存器中 SPR模式下可以读到Head+PDO+CRC 是一个完整的Source Cap数据。
         在EPR模式下可以读到EPR Source Cap中第一包Head+ExtHead+PDO和第二包PDO+CRC。
(在EPR模式中读PD电源数据寄存器时其余位不为零,但不影响解析)


四、Fixed请求

        固定电压挡位请求可直接再0x0A中写入电压档位对应值即可

void Fixed_req(u8 vol)//fixed请求
{
    switch(vol)
    {
        case 5:
            if(I2C_Read_Byte(I2C1 , (0x23<<1) , 0x0A)!=0)
                I2C_Write_Byte(I2C1,(0x23<<1),0x0a, 0);
            printf("Req_ 5V... \r\n");  break;
        case 9:
            if(I2C_Read_Byte(I2C1 , (0x23<<1) , 0x0A)!=1)
                I2C_Write_Byte(I2C1,(0x23<<1),0x0a, 1);
            printf("Req_ 9V...  \r\n");  break;
        case 12:
            if(I2C_Read_Byte(I2C1 , (0x23<<1) , 0x0A)!=2)
                I2C_Write_Byte(I2C1,(0x23<<1),0x0a, 2);
            printf("Req_12V...  \r\n");   break;
        case 15:
            if(I2C_Read_Byte(I2C1 , (0x23<<1) , 0x0A)!=3)
                I2C_Write_Byte(I2C1,(0x23<<1),0x0a, 3);
            printf("Req_15V...  \r\n");  break;
        case 20:
            if(I2C_Read_Byte(I2C1 , (0x23<<1) , 0x0A)!=4)
                I2C_Write_Byte(I2C1,(0x23<<1),0x0a, 4);
            printf("Req_20V...  \r\n"); break;
        case 28:
            if(I2C_Read_Byte(I2C1 , (0x23<<1) , 0x0A)!=5)
                I2C_Write_Byte(I2C1,(0x23<<1),0x0a, 5);
            printf("Req_28V...  \r\n");break;//注意请求进入EPR时尽量等待1S左右 再进行其他操作
        default :
            printf("Req_error...  \r\n");break;//Fixed仅可请求5V 9V 12V 15V 20V 28V

    }
}

        分别请求:5V、9V、12V、15V、20V、28V:


五、AVS请求

        AVS的请求先 在0X52写低八位再向0X51写高七位,将0X51的最高位使能位置1,最后在电压控制寄存器0x0A中写7

void AVS_req(float vol)//AVS请求
{
    u16 data=0;
    u8 AVS_DataH=0;
    u8 AVS_DataL=0;

    data=(u16)(vol*1000.0)/100;
    AVS_DataH=(u8)(((data&0xFF00)>>8)|(0x80));
    AVS_DataL=(u8)(data&0x00FF);

    I2C_Write_Byte(I2C1,(0x23<<1),0x52, AVS_DataL);
    Delay_Ms(2);

    I2C_Write_Byte(I2C1,(0x23<<1),0x51, AVS_DataH);
    Delay_Ms(2);

    if(I2C_Read_Byte(I2C1 , (0x23<<1) , 0x0A)!=7)
    {
        Delay_Ms(2);
        I2C_Write_Byte(I2C1,(0x23<<1),0x0a, 7);
        Delay_Ms(2);
        if(I2C_Read_Byte(I2C1 , (0x23<<1) , 0x0A)==7)
            printf("Req_AVS r\n");
    }
}

AVS:25V 5A 125W 请求成功


六、PPS请求

        首次申请 PPS 时先配置电压,然后将电压控制寄存器配置为 PPS 模式,后续调压直接修改 PPS 电压配置寄存器即可

void PPS_req(float vol)  //PPS请求
{
    u8 data=0;

    data=(u8)(vol*10.0);
    I2C_Write_Byte(I2C1,(0x23<<1),0x53, data);
    Delay_Ms(2);
    if(I2C_Read_Byte(I2C1 , (0x23<<1) , 0x0A)!=6)
    Delay_Ms(2);
    I2C_Write_Byte(I2C1,(0x23<<1),0x0a, 6);

    printf("PPSdata_write: %02x     Req:  %.2f V \r\n",data,(float)(data/10.0));
}

PPS:12.5V请求成功


七、模拟Emarker

        CH224A/Q模拟E-marker功能是公口方案,需要芯片的CC2对GND下拉1K,配置方式等其它功能与母口方案一致


八、A口适配器及PG

        CH224A/Q兼容多个A口协议,在source端为A口适配器条件下,电流数据等寄存器无效,最新版本CH224Q/A支持BC、AFC、FCP等A口协议

        芯片10脚PG是一个开漏脚,低电平有效,即请求电压成功PG拉低。


总结

以上是CH224Q的一些基本的应用,CH224A同样适用,测试源码放在了链接里,写的比较烂,有需要的也可以参考下,还请各位大佬们多多指点。CH32V307VCT6-CH224Q.zip · 妖媚的猪/CH32V307VCT6-CH224Q - Gitee.comhttps://gitee.com/ZhangWXgit/ch32-v307-vct6-ch224-q/blob/master/CH32V307VCT6-CH224Q.zip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妖媚的猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值