0
\$\begingroup\$

I am testing a BMS design with multiple slave boards each containing one bq76PL536A connected to a common CAN bus through a ATmega32M1 MCU and a ISO1050DW isolated transceiver. The problem I am facing is that sometimes one of the bqs stops measuring the voltages and temperatures of the cells it is connected to and outputs values like 0V and ~65000 degrees (after thermistor conversion) even though I am still able to put it in sleep mode or making it turn the LED connected to its GPIO on or off (so it is not completely blown) and the only way to solve the problem is to change the chip. Do you have any clues on why it should behave this way?

For reference this is the content of the registers of one of the faulty ICs: Register address: 0 - Register content: 11000001 (DEVICE_STATUS) Register address: 1 - Register content: 0 (GPAI[0]) Register address: 2 - Register content: 0 (GPAI[1]) Register address: 3 - Register content: 0 (VCELL1[0]) Register address: 4 - Register content: 0 (VCELL1[1]) Register address: 5 - Register content: 0 (VCELL2[0]) Register address: 6 - Register content: 0 (VCELL2[1]) Register address: 7 - Register content: 0 (VCELL3[0]) Register address: 8 - Register content: 0 (VCELL3[1]) Register address: 9 - Register content: 0 (VCELL4[0]) Register address: A - Register content: 0 (VCELL4[1]) Register address: B - Register content: 0 (VCELL5[0]) Register address: C - Register content: 0 (VCELL5[1]) Register address: D - Register content: 0 (VCELL6[0]) Register address: E - Register content: 0 (VCELL6[1]) Register address: F - Register content: 0 (TEMPERATURE1[0]) Register address: 10 - Register content: 0 (TEMPERATURE1[1]) Register address: 11 - Register content: 0 (TEMPERATURE2[0]) Register address: 12 - Register content: 0 (TEMPERATURE2[1]) Register address: 13 - Register content: 0 (RSVD) Register address: 14 - Register content: 0 (RSVD) Register address: 15 - Register content: 0 (RSVD) Register address: 16 - Register content: 0 (RSVD) Register address: 17 - Register content: 0 (RSVD) Register address: 18 - Register content: 0 (RSVD) Register address: 19 - Register content: 0 (RSVD) Register address: 1A - Register content: 0 (RSVD) Register address: 1B - Register content: 0 (RSVD) Register address: 1C - Register content: 0 (RSVD) Register address: 1D - Register content: 0 (RSVD) Register address: 1E - Register content: 0 (RSVD) Register address: 1F - Register content: 0 (RSVD) Register address: 20 - Register content: 0 (ALERT_STATUS) Register address: 21 - Register content: 10 (FAULT_STATUS) Register address: 22 - Register content: 0 (COV_FAULT) Register address: 23 - Register content: 100000 (CUV_FAULT) Register address: 24 - Register content: 0 (PRESULT_A) Register address: 25 - Register content: 0 (PRESULT_B) Register address: 26 - Register content: 0 (RSVD) Register address: 27 - Register content: 0 (RSVD) Register address: 28 - Register content: 0 (RSVD) Register address: 29 - Register content: 0 (RSVD) Register address: 2A - Register content: 0 (RSVD) Register address: 2B - Register content: 0 (RSVD) Register address: 2C - Register content: 0 (RSVD) Register address: 2D - Register content: 0 (RSVD) Register address: 2E - Register content: 0 (RSVD) Register address: 2F - Register content: 0 (RSVD) Register address: 30 - Register content: 1111101 (ADC_CONTROL) Register address: 31 - Register content: 10000011 (IO_CONTROL) Register address: 32 - Register content: 0 (CB_CTRL) Register address: 33 - Register content: 0 (CB_TIME) Register address: 34 - Register content: 0 (ADC_CONVERT) Register address: 35 - Register content: 0 (RSVD) Register address: 36 - Register content: 0 (RSVD) Register address: 37 - Register content: 0 (RSVD) Register address: 38 - Register content: 0 (RSVD) Register address: 39 - Register content: 0 (RSVD) Register address: 3A - Register content: 0 (SHDW_CTRL) Register address: 3B - Register content: 10000001 (ADDRESS_CONTROL) Register address: 3C - Register content: 0 (RESET) Register address: 3D - Register content: 0 (TEST_SELECT) Register address: 3E - Register content: 0 (RSVD) Register address: 3F - Register content: 0 (E_EN) Register address: 40 - Register content: 1110000 (FUNCTION_CONFIG) Register address: 41 - Register content: 0 (IO_CONFIG) Register address: 42 - Register content: 101101 (CONFIG_COV) Register address: 43 - Register content: 1 (CONFIG_COVT) Register address: 44 - Register content: 10111 (CONFIG_CUV) Register address: 45 - Register content: 1 (CONFIG_CUVT) Register address: 46 - Register content: 1010101 (CONFIG_OT) Register address: 47 - Register content: 1 (CONFIG_OTT) Register address: 48 - Register content: 0 (USER1) Register address: 49 - Register content: 0 (USER2) Register address: 4A - Register content: 0 (USER3) Register address: 4B - Register content: 0 (USER4)

As you can see the DRDY bit (bit 0 in DEVICE_STATUS register) is set, asserting that a conversion has been completed, but all the data registers (voltages and temperatures) are null (I checked with a multimeter the voltage differences on the pins of the IC and they are correct). The only reason I can think of why it should happen is an under voltage lock-out but the UVLO bit (bit 2 in DEVICE_STATUS register) is not set so this is not the case (anyways VBAT=~22V so it should not trigger an UVLO).

\$\endgroup\$
  • \$\begingroup\$ Seems to be an input signal that is somewhat stressed from the environmental noise. (voltage or current) Can you show us your layout and do you have any CM choke Pi filters on signals? Have you verified you are not exceeding Absolute Maximum Ratings? on every pin? Also what events occur at same time as catastrophic failure. \$\endgroup\$ – Sunnyskyguy EE75 Jun 25 '18 at 20:23
  • \$\begingroup\$ Do you have individual ground planes? \$\endgroup\$ – Sunnyskyguy EE75 Jun 25 '18 at 20:39
  • \$\begingroup\$ @TonyStewartolderthandirt yes, each BMS has its own \$\endgroup\$ – sirfoga Jun 26 '18 at 7:54
  • \$\begingroup\$ Then some other fault is induced elsewhere from some condition not yet specified \$\endgroup\$ – Sunnyskyguy EE75 Jun 26 '18 at 14:07
0
\$\begingroup\$

http://e2e.ti.com/cfs-file/__key/CommunityServer-Discussions-Components-Files/180/5037.bq76PL536EVM_2D00_3-BINDER-HPA507E6-.pdf

Ignoring this advice from TI ON EMI control on PCB may cause failures. See link for details. enter image description here Input OVP and transient suppression is also included. enter image description here

\$\endgroup\$
  • \$\begingroup\$ Each BMS has its own bq76pl536a and its own ground plane, so the planes are not shared among the other chips \$\endgroup\$ – sirfoga Jun 26 '18 at 7:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.