bq76920 通讯正常,确定没有短路状态.没有故障,要打开DSG,却打不开.DSG一置1后,SYS_STAT的SCD位马上置位,但实际上电路没短路.
如果断点进入Discharge()一步一步跑,又没有问题,可以正常打开DSG.打印Discharge success
但是不断点run,一样会操作打开DSG,打印Discharge success ,但是却一直报SCD.然后DSG马上就被关了.
IO_GET(PORTA_PIN0)是用来检测,开预放电后 R60 右边管脚有没有被拉低的.
没被拉低说明pack+ 跟pack-端有短路.
下图是预放电电路.
u8 Discharge(void)
{
MU_DER_HIGH; //开预放电
DelayMs(5);
if(IO_GET(PORTA_PIN0)) //检测是否有短路
{
OperateDSG(1);
MU_DER_LOW; //关预放电通道
printf("\n\r\n\r\ Discharge success \n\r");
return 0;
}
else //短路
{
MU_DER_LOW;
printf("\n\r\n\r\ Discharge fail \n\r");
}
}
Star Xu:
电路建议您参考评估板的电路确认一下您的电路是否有问题。
user5145495:
回复 Star Xu:
最开始还是可以开的,后面不知道怎么就不行了