冠达快充板(SOURCE)通讯协议 2025.11.07 SOURCE的ID为2,波特率230400,TTL 1.读取数据 发送: 0B 00 02 20 volh voll curh curl nc nc CRC8 //长度+nc+id+指令+2字节当前电源电压(mV)+2字节当前电源电流(mA)+2个预留字节+CRC8校验 回复: 15 00 02 20 VH VL IH IL setvh setvl setch setcl verh verl ERR NC NC NC NC NC CRC8 //长度+nc+ID+指令+2字节读取的电压(mV)+2字节读取的电流(mA)+2字节source设置电压(mV)+2字节source设置电流(mA)+2字节版本号+1字节错误码+5字节预留+CRC8校验 2.读取source的PD协议数据(当前为PD协议时有效,不需要一直读,暂未实现) 发送:05 00 02 13 2A 回复: XX 00 02 13 //长度(根据实际计算)+NC+ID+指令 00 00 VMINH VMINL VMAXH VMAXL CURH/PORH CURL/PORL NC NC NC NC NC NC //源类型(1字节,00为PDO,03为APDO) + PPS类型(1字节,源类型为3时有效,00为SPR PPS,01为EPR AVS,02为SPR AVS) + 最小电压(2字节,mV) + 最大电压(2字节,mA) + 最大电流/功率(2字节,mA/W,EPR_AVS时为功率) + 预留(6字节,当协议类型为02时有效,意义与前6字节一致) 00 00 VMINH VMINL VMAXH VMAXL CURH/PORH CURL/PORL NC NC NC NC NC NC ...... CRC8 3.设置CC线电平 发送: 06 00 02 16 00 2A //长度+nc+id+指令+电平等级(0xff为根据当前电流自动设置,否则为手动设定,设置方法待定)+CRC8校验 回复: 05 00 02 16 2A //长度+nc+id+指令+CRC8校验 4.设置支持的快充协议 (PD, FCP, AFC, SCPA中固定电压档位的最大电压和最小电压设为一样) (QC2.0,QC3.0,SCPB仅支持1档设定,其余协议支持多档设定,pd最多11档,ufcs最多3档,其余最多4档) 发送: XX 00 02 D0 //长度(根据实际计算)+NC+ID+指令 00 //协议(1字节) 00 00 VMINH VMINL VMAXH VMAXL CURH CURL NC NC NC NC NC NC //源类型(1字节,PD协议有效,00为PDO,03为APDO) +PD类型(1字节,PD协议有效,源类型为0和3时有效,当源类型为0时,0为FPDO,1为EPRPDO,当源类型为3时,00为SPR PPS,01为EPR AVS) + 最小电压(2字节,mV) + 最大电压(2字节,mV) + 最大电流(2字节,mA) + 预留(6字节) 00 00 VMINH VMINL VMAXH VMAXL CURH CURL NC NC NC NC NC NC ...... CRC8 回复: 05 00 02 D0 CRC8 协议字节含义如下: 00 无快充 01 VIFC(暂不支持) 02 FCP 22 01 02 D0 02 00 00 13 88 13 88 0B B8 00 00 00 00 00 00 00 00 23 28 23 28 0B B8 00 00 00 00 00 2A 03 SCPB 04 预留 05 预留 06 RFC(暂不支持) 07 QC3.0 14 01 02 D0 07 00 00 13 88 13 88 0B B8 00 00 00 00 00 00 2A 08 QC2.0 14 01 02 D0 08 00 00 13 88 13 88 0B B8 00 00 00 00 00 00 2A 没有 09 AFC 0A PD 0B 预留 0C UFCS 0D 预留 0E VOOC(暂不支持) 0F SCPA CRC8校验算法如下: u8 get_crc(u8 *dat,u8 k) { u8 i,res; res=0x55; for(i=0;i>=1;res|=0x80;}// else{res>>=1;} dat>>=1; } return res; }