TI中文支持网
TI专业的中文技术问题搜集分享网站

我在使用BQ76940的过程中,能够正常打开CHG_ON,DSG_ON,但是,我清除CC_Ready 标志的时候,CHG_ON,DSG_ON被断开

各位工程师!

我在使用BQ76940的过程中,能够正常打开CHG_ON,DSG_ON,但是,我清除CC_Ready 标志的时候,CHG_ON,DSG_ON被断开。我的具体步骤和读写寄存器如下:

   result = I2CReadBlockWithCRC(BQMAXIMO, SYS_CTRL2, &bqMaximoSYS_STATConfig, 1);  //获取SYS_CTRL2的值,回读bqMaximoSYS_STATConfig=0x03
   result = I2CReadBlockWithCRC(BQMAXIMO, SYS_STAT, &bqMaximoSYS_STATConfig, 1);    //获取SYS_STAT的值,回读bqMaximoSYS_STATConfig=0x80
   result = I2CWriteBlockWithCRC(BQMAXIMO, SYS_STAT, &bqMaximoSYS_STATWrite, 1);      //清除CC_READY,写入bqMaximoSYS_STATWrite=0x80,写入后,CHG_ON,DSG_ON被断开。
   result = I2CReadBlockWithCRC(BQMAXIMO, SYS_STAT, &bqMaximoSYS_STATConfig, 1);    //获取SYS_STAT的值,回读bqMaximoSYS_STATConfig=0x10
   result = I2CReadBlockWithCRC(BQMAXIMO, SYS_CTRL2, &bqMaximoSYS_STATConfig, 1);  //获取SYS_CTRL2的值,回读bqMaximoSYS_STATConfig=0x00 

  我不明白,我只是清除了CC_Ready 标志,为什么会引起我的CHG_ON和DSG_ON被断开,这样,我就采集不了电流,并且也没办法让系统正常运行。同时,我的ALERT pin也一是高电平。该引脚,我是用了一个910K电阻下拉到地。下面给出我读取电流的一小段代码。请各位工程师给予指导。谢谢。

float fShuntCurrent;
double CCReadings = 0;      //uv
int UpdateCurrent(void)
{
 int result = 0;
 unsigned char *pRawADCData = NULL;
 s16 iTemp = 0;
 u8 isCCReadyFlag = 0;
 
 isCCReadyFlag = IsCCReady();
 
 if( isCCReadyFlag )
 {
  result = I2CReadBlockWithCRC(BQMAXIMO,0x32,&(Registers.CC.CCByte.CC_HI),2);
  pRawADCData = &Registers.CC.CCByte.CC_HI;
  iTemp = (s16)((*pRawADCData << 8) + *(pRawADCData + 1));
  CCReadings = iTemp * CCADCLSB;                  //uV
  fShuntCurrent = VoltageToCurrent(CCReadings);   //mA
 } 
 SetOneShotMode();
 result = HandleSYS_STAT_CC_READY();
}
WU LANBIN:

使用BQ76940的时候,CHG_ON,DSG_ON打开,电压只有3.3V?我通过控制,能够正常开断CHG_ON和DSG_ON,电压值为0-3.3V。请问,这是为什么?不是应该是0-12V吗?请指教。

haibing xu:

回复 WU LANBIN:

您是如何解决的啊 ?

赞(0)
未经允许不得转载:TI中文支持网 » 我在使用BQ76940的过程中,能够正常打开CHG_ON,DSG_ON,但是,我清除CC_Ready 标志的时候,CHG_ON,DSG_ON被断开
分享到: 更多 (0)