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.

BQ76942: 8 cell battery monitor with host-controlled balancing only

Part Number: BQ76942
Other Parts Discussed in Thread: ISO1640, ISO1641

Hello,

I'm working on 8 cell battery monitor with host control balancing cell support only and I would like to ask you to check my configurations, additionaly I also have some questions.

Here is a schematic: 1348.8cellBQ76942monitor.pdf

Please take a note that according to the schematic, an ISO1640 I2C Isolator is used instead of ISO1641, because ISO1641 doesn't support clock-stretching I2C devices like BQ76942 is. On schematic, a BQ7694202 is shown, but I'm using a "basic" BQ76942.

Additional application requirements:
- device should never go in to sleep or shutdown mode (I would like to completly omit wake-up switch on TS2 pin),
- REG1 must provide 3.3 V, second regulator is not needed,
- I2C address must be configured to 0x48 (7-bit addressing),
- Alert pin must be used as GPO pin,
- thermistor will be used on TS1 pin,
- all protections disabled,
- balancing cell only host-controlled.

To meet desired requirements I configured device in a next way:
1) Settings:Configuration:Power Config -> 0x2882 [in compare to default value (2982) a SLEEP mode is disabled]
2) Settings:Configuration:REG12 Config -> 0x0D [REG1 Enabled, 3.3 V, REG2 Disabled]
3) Settings:Configuration:REG0 Config -> 0x01 [Pre-regulator is enabled].
Is it not clear for me if I need pre-regulator enabled in my example or not? In TRM is written that: This must be enabled if the regulator output is used and REGIN is not supplied externally.
What does this mean that REGIN is not supplied externally?
4) Settings:Configuration:I2C Address -> 0x90 [This is the same as 0x48 in 7 bit addressing]
5) Settings:Configuration:ALERT Pin Config -> 0x29 [Alert pin as GPO, Active high, output high drive uses REG1]
6) Settings:Configuration:TS1 Config -> 0x0B [Thermistor enabled, Thermistor temperature measurements but not used for protections, 18k model enabled]
7) Power:Shutdown:Shutdown Stack Voltage -> 0 [Shutdown stack voltage = 0 mV]
8) Settings:FET:Chg Pump Control -> 0x00 [Charge pump for FETs disabled because FETs are not used]
9) Settings:FET:FET Options -> 0x05 [FET_CTRL_EN bit cleared, because FETs are not used]
10) Settings:Configuration:Vcell Mode -> b1001111111 or 0x27F [As shown on schematic, pins VC9, VC8 and VC7 are connected together]
11) Settings:Protection:Enabled Protections A -> 0x00 [Cell undervoltage/overvoltage, overcurrent and short-circuit protections disabled]
12) Settings:Protection:Enabled Protections B and Settings:Protection:Enabled Protections C -> 0x00 [Both are disabled by default already]
13) Settings:Cell Balancing Config:Cell Balance Max Cells -> 8 [Maximum 8 cells, however host-controlled balancing, the host may specify more cells than this and the
limit is ignored]
14) Settings:Cell Balancing Config:Balancing Configuration -> 0x00 [CB_CHG and CB_RLX bits already cleared by default for automatic balancing in relax conditons or while charging]

Additional questions:
1) How does the host-controlled balancing cells work exactly?
If I understand correctly, host-controlled balancing is started by 0x0083 CB_ACTIVE_CELLS() command and stopped by 0x0000 command. However, I would like to undestand if host-controlled balanding is somehow limited by BQ76942...I mean - does the host-controlled balancing stop automatically when voltage of any cell reach lower limit or when delta between cells reach desired value? Or must be balancing control (when to start it, when to stop it) completly controlled by host and Settings:Cell Balancing Config:Cell Balance Interval value which to be resend by the host before timer expires to continue with balancing.
2) For BQ76942, by default (according to the table 9-1 in TRM), an I2C Fast mode is configured?
If I understand right, this means that IC expected bus speeds more than 100 kHz. However, I didn't see this notation in TRM before and I already use IC with this setting on 100 kHz clock speed. Everything works perfect. Do I need to change COMM TYPE SETTINGS to 0x07 for using with bus speed of 100 kHz or can I leave it on default (0x00) I2C Fast mode since everything works okay on 100 kHz, even with I2C Fast setting?
3) How many times can I change an individual settings in OTP?
In BQ769x2 Calibration and OTP Programming Guide (Rev. A) document is written that: the device supports up to 8 different signature values, so there is a maximum number of 8 OTP partial writes.
What are partial writes? If I write firstly Settings:Configuration:I2C Address -> 0x90 to OTP and then Settings:Configuration:TS1 Config -> 0x0B, is this considered as two partial writes?
What about if I firstly configured I2C address to 0x90 and then to 0x60? Is this also considered as two partial writes?
4) What is the most effective way to disable all Permanent fails?

Do you sugggest to configure any other registers to achieve application's desired requirements?

Many thanks,
Kind regards,
Dejan.

  • ...Hello Dejan,

    Is it not clear for me if I need pre-regulator enabled in my example or not? In TRM is written that: This must be enabled if the regulator output is used and REGIN is not supplied externally.

    Correct. Based on your schematic, you do require the pre-regulator to be enabled. This pre-regulator controls the Q1 BJT, which steps-down the voltage from the top-of-stack down to a voltage that can supply the LDO's through REGIN. REGIN is essentially the input supply for the LDO's.

    1) How does the host-controlled balancing cells work exactly?
    If I understand correctly, host-controlled balancing is started by 0x0083 CB_ACTIVE_CELLS() command and stopped by 0x0000 command. However, I would like to undestand if host-controlled balanding is somehow limited by BQ76942...I mean - does the host-controlled balancing stop automatically when voltage of any cell reach lower limit or when delta between cells reach desired value? Or must be balancing control (when to start it, when to stop it) completly controlled by host and Settings:Cell Balancing Config:Cell Balance Interval value which to be resend by the host before timer expires to continue with balancing.

    You are correct. Balancing will not be limited by the BQ76942. So all of the balancing decisions need to be done by the host (When host-controlled balancing is used). It will balance until the time set by Settings:Cell Balancing Config:Cell Balance Interval passes. Sending a new command resets this timer. This is explained in Section 10.1 Cell Balancing Operation of the Technical Reference Manual (TRM).

    Host-controlled balancing is also explained in Section 4 Considerations for a Host-Balancing Algorithm of our Cell Balancing With BQ769x2 Battery Monitors application note.

    2) For BQ76942, by default (according to the table 9-1 in TRM), an I2C Fast mode is configured?
    If I understand right, this means that IC expected bus speeds more than 100 kHz. However, I didn't see this notation in TRM before and I already use IC with this setting on 100 kHz clock speed. Everything works perfect. Do I need to change COMM TYPE SETTINGS to 0x07 for using with bus speed of 100 kHz or can I leave it on default (0x00) I2C Fast mode since everything works okay on 100 kHz, even with I2C Fast setting?

    I believe leaving your communication speeds at 100-kHz should be no problem with the I2C Fast Mode.

    3) How many times can I change an individual settings in OTP?
    In BQ769x2 Calibration and OTP Programming Guide (Rev. A) document is written that: the device supports up to 8 different signature values, so there is a maximum number of 8 OTP partial writes.
    What are partial writes? If I write firstly Settings:Configuration:I2C Address -> 0x90 to OTP and then Settings:Configuration:TS1 Config -> 0x0B, is this considered as two partial writes?
    What about if I firstly configured I2C address to 0x90 and then to 0x60? Is this also considered as two partial writes?

    Yes correct. Each register write is considered a partial OTP write. So OTP'ing Settings:Configuration:I2C Address to 0x90 and then 0x0B, is the same number of partial rewrites as changing it from 0x90 to 0x60, both are two partial writes.

    4) What is the most effective way to disable all Permanent fails?

    To disable them in the registers. By default most are already disabled. For more detail read Section 5.3 Secondary Protections of the TRM.

    This is a very complex part, so I'd recommend to read the TRM to see what settings you'd like to change for your application.

    Hope this helped Slight smile.

    Best Regards,

    Luis Hernandez Salomon

  • Hello Luis,

    thanks for clarification. It helps a lot.

    I wrote settings mentioned in my first post in OTP and everything works as expected, except a REG1 voltage is not 3.3 V, but nearly to 3.6 V. Register REG1 is configured as 0x0D which should select a 3.3 V by datasheet.

    Is this something normal?

    Many thanks, Kind regards, Dejan.

  • Hello Dejan,

    No problem!

    Is this with a load? The datasheet specifications does indicate that 3.3-V is the typical value, but it could reach as high as 3.6-V (likely under no load). So that is still within datasheet specifications.

    Best Regards,

    Luis Hernandez Salomon