This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BQ25883: BQ25883 programming, BQ25883EVM autonomous charging current?

Part Number: BQ25883
Other Parts Discussed in Thread: EV2400

Hi,

I am using BQ25883 to charge 2 LiFePO4's in series, I programmed the registers which I think necessary, as following

   #define BQ25883ID (0b00011000)

   void BQ25883_init(void) {
      uint8_t v;

      v = i2c_read1ByteRegister(0x6B, 0x25) & 0b01111000;
      if(v != BQ25883ID) {
         while(1) ;
      }

      v = i2c_read1ByteRegister(0x6B, 0x05) & (~(BIT4 | BIT5));                                                    // disable WD timer, WATCHDOG[1:0]=='00'
      i2c_write1ByteRegister(0x6B, 0x05, v);

      v = i2c_read1ByteRegister(0x6B, 0x06) & (~(BIT2 | BIT3)) | BIT1;                                         // recharge threshold offset==300mV (200mv+100mV offset), precharge to fast-charge threshold as 5.6V, charger disabled
      i2c_write1ByteRegister(0x6B, 0x06, v);

      v = i2c_read1ByteRegister(0x6B, 0x07) & (~(BIT0 | BIT1 | BIT2 | BIT3));                              // Minimum System Voltage as 6.0V (SYS_MIN[3:0]=='0000'))
      i2c_write1ByteRegister(0x6B, 0x07, v);

      v = i2c_read1ByteRegister(0x6B, 0x01) &(~(BIT0 | BIT1 | BIT3 | BIT5)) | (BIT2 | BIT4);        // fast charge current as 1A (ICHG[5:0]='010100')
      i2c_write1ByteRegister(0x6B, 0x01, v);

                                                                                                                                                       // termination current and precharge current as default of 150mA, no registers mod is needed

      i2c_write1ByteRegister(0x6B, 0x00, 0b00101000);                                                                 // Battery Charge voltage as 7.2V, VREG[7:0] = '00101000'

      v = i2c_read1ByteRegister(0x6B, 0x06) | BIT3;                                                                       // enable charge again
      i2c_write1ByteRegister(0x6B, 0x06, v);
   }

I verified the I2C interface is working on board, and the code executes beyond this BQ25883_init().

However, the charging current remains ~300mA after BQ25883_init(),  the micro is one without any debug facility, so I didn't verify which charging stage it is in. I checked BQ25883 in autonomous mode (I don't have an EV2400), the charging current is also ~300mA.

I must missed something simple. Can you help here?

Thank you very much

Don