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.

BQ79606A-Q1: acquisition time and other questions

Part Number: BQ79606A-Q1

Dear TI Experts,

I have a few problems about BQ79606 need your help:

1.How much time will the AFE take to measure 6 six cell voltages? Conversion time + reading back cell voltage registers,  Is their any difference between  Singread and allread?

2.If their are stacks, as far as I am concerned, the total time is " one BQ79606 multiply the number of stacks  "? Am I right?

3.How to judge the whether the initialization  is OK for BQ79606,read register 0x01? If their are many stacks, must I read register 0x01 one by one?

4.Which demo should I  use to read the voltage? and what's the difference?

   for (i = 4; i < 15; i = i + 2) {

                  cellsample = ((bFrame[i] << 8) | bFrame[i + 1]) ^ 0xFFFE;
                  cellVoltage[nDev_ID][(i-4)/2] = (float) (0xFFFF - cellsample) * ADC_CONST;
         }
        
        
         for (i = 0; i < 6; i++) {
         cellsample = ((bFrame[i*2+4] << 8) | bFrame[i*2 + 5]);
         if(bFrame[i]&0x80){
         cellsample= cellsample&0x7FFF-32768;
         }
5.How can I know whether the data collected by BQ79606 is correct?
6.If the BQ79606 EVM is not configed right, eg: Stack and Base switch is not right,must I restart MCU? 
 

Singread allread

  • Hi Qianqian,

    I have provided answers to your questions below, let me know if these are sufficient:

    1. Timing for ADC measurements (all assuming 1M baudrate):
      1. After enabling the cell level shifters (in the CELL_ADC_CTRL register), there is an initial wait of 5ms required.
      2. Once this wait is complete, the CELL_ADC_GO bit is set in the CONTROL2 register. To send this command, it will take either
        1. SINGLE DEVICE: 74.1us (7 bytes * 10.3us each byte + 2us CRC check) command frame -OR-
        2. BROADCAST/STACK WRITE: 63.8us (6 bytes * 10.3us each byte + 2us CRC check) worth of command frame, plus 3us of re-clocking delay per device
      3. Once the command has reached the top of stack, 901us is required for the full ADC conversion time with DR=256. With lower DR values, if you are okay with lower accuracy, you can decrease this time to as low as 218us.
      4. Finally, the read-back of the data once this ADC conversion completes takes the following amount of time:
        1. SINGLE DEVICE: 74.1us command (7 bytes * 10.3us each byte + 2us CRC check) + 185.4us response [(6 cells * 2 bytes + 6 header&crc bytes)*10.3us]  -OR-
        2. BROADCAST/STACK: 63.8us command (6 bytes * 10.3us each byte + 2us CRC check) + n*187.4us response [(6 cells * 2 bytes + 6 header&crc bytes)*10.3us] where n is the number of devices
    2. The total time for stacks also must include a re-clocking delay of 3us per device. Also, there is one less byte in the command frame for Stack/Broadcast commands, so you save about 10.3us, but gain the re-clocking delays.
    3. The quickest way to see if the auto-addressing worked is to check the DEVADD_USR register for each device. It may also be beneficial to do both a broadcast read of the stack, and individual reads to make sure the communications are fully working.
    4. Both of these are funcitonally identical, but the bottom one has an additional check on the data. I would recommend using the top one, as in my opinion, it is clearer in how it is parsing the response frame (starting at the 4th byte and moving down the response frame).
    5. To ensure the data collected is correct, compare the cell voltage measurements returned to a multi-meter across the cells. If not correct, please ensure correct configuration of the device.
    6. If the stack/base devices are incorrectly swapped, you must send a wake pulse to restart the stack, and then re-auto-address correctly, otherwise communications may not act as expected.

    Let me know if this answers your questions!

    [If I was able to assist you with your issue, please press This resolved my issue. Thanks!]

    Regards,

    Vince Toledo

  • Hello Vince

    Thank you very much for your help~

    About question5,I'd like to know if BQ79606 has the way to know the read value is correct, or effective~  such as the  read value has a  valid bit

    Another question,If there is a problem with the stacked lines, how do I know the location of the problem? Is there an example code  to switch the diretions of the ring daisy chain?

  • Hello TI Experts

    Looking forward to your reply,thank you very much~~

  • Hi Qianqian,

    I apologize for the delay!

    To answer your question about the verification of the read value, we have a built in CRC check for the data sent to the device. If the CRC bytes in the communication are not matching the data being sent with it, then the device will flag an error. This would happen if even a single bit in the communication was incorrect.

    As for the stack line fix, you can detect the location of the line break by doing individual reads up the stack, and when a device does not respond, that is the device that has been disconnected.

    Lastly, there is an example procedure for switching directions in the "BQ79606A-Q1 Software Design Reference" guide, in section 7, titled "Reverse Device Addressing and Communications."

    Let me know if you have any other questions!

    Regards,

    Vince Toledo

    [If I was able to assist you with your issue, please press This resolved my issue. Thanks!]