冠达快充板(SINK)通讯协议

2025.8.13

SINK的ID为1,波特率200K，TTL

1.读取变电压板电压
(要实时比较设置的快充指令和读回来的快充指令,若有不一样，则重设)
(注意vooc模式下数据返回会很慢)

发送：
0B 00 01 20 loadvh loadvl loadch loadcl nc nc CRC8 	//长度+nc+id+指令+负载电压(2字节,0.01V)+负载电流(2字节,mA)+2个预留字节+CRC8校验
回复：
15 00 01 20 VH VL qc_data1 qc_data2 qc_data3 qc_data4 qc_data5 qc_data6 ver_h ver_l nc nc nc nc nc nc  CRC8
//长度+nc+ID+指令+2字节电压(0.01V)+6字节快充指令+2字节版本号+6字节预留+CRC8校验


2.读取源端的PD协议数据(当前为PDO,PPS,PD3.1,AVS协议时有效)
发送：05 00 01 13 2A
回复：
XX 00 01 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字节,mV) + 最大电流/功率(2字节,mA/W) + 预留(6字节,当PPS类型为02时有效,意义与前6字节一致)
00 00 VMINH VMINL VMAXH VMAXL CURH/PORH CURL/PORL NC NC NC NC NC NC
......
CRC8



3.设置CC线
发送：
06 00 01 17 00 2A	//长度+nc+id+指令+CC(0为都选通,1为选择CC1,2为CC2,3为全断开)+CRC8校验
回复：
05 00 01 17 2A		//长度+nc+id+指令+CRC8校验


4.设置CC线电平
发送：
06 00 01 16 00 2A	//长度+nc+id+指令+电平等级(0-10,默认7)+CRC8校验
回复：
05 00 01 16 2A		//长度+nc+id+指令+CRC8校验


5.设置快充协议(VOOC,UFCS模式下切换其他模式时，需要先把V+,V-,D+,D-,CC等和变电压有关的继电器切至悬空，至少等待1s后，等能读到数据且快充指令正确，再把继电器切回)
格式：
长度+NC+ID+6字节快充数据+CRC8
发送：
1、QC2.0，电压5V/9V/12V/20V， 命令：0A 00 01 F8 5A 00 00 00 00 2A	//第5个字节为电压(0.1V)
2、QC3.0，电压3.3-20V，       命令：0A 00 01 F6 5A 00 00 00 00 2A		//第5个字节为电压(0.1V)
3、FCP，电压5V/9V/12V，       命令：0A 00 01 F2 78 00 00 00 00 2A		//第5个字节为电压(0.1V)
4、AFC，命令：0A 00 01 F9 46 00 00 00 00 2A			//第5个字节为变电压数据,详细参考AFC文档
5、SCP，命令：0A 00 01 F3 27 10 0F A0 00 2A			//5，6字节为电压(mv)，7、8字节为电流(mA)
6、VIVO ， 命令：0A 00 01 FD 27 10 00 00 00 2A		//5，6字节为电压(mv)，7、8字节为电流(mA)
7、传音/TFC，命令：0A 00 01 F7 2E E0 00 00 00/01 2A  	//5，6字节为电压(mv)，7、8字节为电流(mA),9字节为RFC/TFC选择
8、PDO手动，需要设定组号，电压和产品相关，命令：0A 00 01 FB 05 00 00 00 00 2A  			//5字节为组号
9、PDO自动，组号设为0，自动变到指定电压，命令：0A 00 01 FB 00 2E E0 00 00 2A			//5字节为组号，6，7字节为电压(mv)，8、9字节为电流(mA)
10、PPS手动，需要设定组号、电压、电流，电流0最大，  命令： 0A 00 01 FC 06 4E 20 00 00 2A	//5字节为组号，6，7字节为电压(mv)，8、9字节为电流(mA)
11、PPS自动，组号设为0，设定电压、电流，电流0最大， 命令：0A 00 01 FC 00 4E 20 00 00 2A	//5字节为组号，6，7字节为电压(mv)，8、9字节为电流(mA)
12、PD3.1,  命令：0A 00 01 E1 00 2328 07d0 2A	(组号设置和电压设置都支持)		//5字节为组号，6，7字节为电压(mv)，8、9字节为电流(mA)
13、UFCS,命令：0A 00 01 E0 00 2328 07d0 2A	(组号设置和电压设置都支持)			//5字节为组号，6，7字节为电压(mv)，8、9字节为电流(mA)
14、VOOC,电压10/11V,  命令：0A 00 01 E2 00 0000 0000 2A					//
15、AVS，命令：0A 00 01 E3 00 4e20 07d0 2A	(组号设置和电压设置都支持)			//5字节为组号，6，7字节为电压(mv)，8、9字节为电流(mA)

回复：
回复最基本的5个字节：
长度+NC+ID+指令+CRC8






CRC8校验算法如下：

u8 get_crc(u8 *dat,u8 k)
{
	u8 i,res;
	res=0x55;
	for(i=0;i<k;i++){	res=crc8(res,dat[i]);}
	return res;
}

u8 crc8(u8 res,u8 dat)
{
	u8 i,t;
	for(i=0;i<8;i++)
	{
		t=dat^res;
		if((t&0x01)==0x01){res=res^0x18;res>>=1;res|=0x80;}//
		else{res>>=1;}
		dat>>=1;
	}
	return res;
}