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.

CCS/BQ27510-G3: BQ27510-G3

Part Number: BQ27510-G3
Other Parts Discussed in Thread: EV2400, BQSTUDIO

Tool/software: Code Composer Studio

I am using BQ27510-G3. We will update firmware of FG through system update method. I found that there is one FG that can't be connected through I2C after system update method. I also tried to connect this FG using EV2400. But it is still fail. So I have few questions:

1,Does FG support to update using system?

2, If yes, what steps are needed to update? And is there any requirements for this process?

3,What reason will cause that FG can't be connected through I2C in update process?

4, Is there any fault log in FG to see what happens to FG?

5,If FG update unsuccessfully and can't be connected through I2C, could I update FW in system update method to make it work well again? Or could I update FW through EV2400 offline to make it work well again?

If FG update unsuccessfully and can be connected through I2C, could I update FW in system update method to make it work well again? Or could I update FW through EV2400 offline to make it work well again?

  • V01 and V03.ziphis fail is in updating V01 to V03.  I attach 01 and 03 versions.

  • Hi
    -Looking at the files, i see that length of data in some rows is more than 32 bytes. Your host might not be handling the parsing on the gauge properly. You need to break up the bytes to be less than 30 bytes on each line using bqstudio during extraction. Bqstudio has the option of breaking up each row into smaller bytes when extracting the bqfs file. Click the options button in the window for extracting the bqfs and you will see the option for limiting the number of bytes

    -Secondly, you need to look at you signals on a scope to make sure you don't have too much capacitance on your lines and that could cause a 1 to look like a 0. Make sure you are not violating any of the i2c specs.

    -Furthermore, increase the time delays in your file from 2 to perharps 200. i.e the rows with X indicates the delay. you can see that most of them are 2ms. Increase that to 200.


    to address your questions above:
    1. Yes, the gauge allows updating in system. You have to absolutely make sure that there are no other devices active on the comm lines. I would strongly recommend powering down all the other devices on the comm lines when doing an
    in system update.

    2. See one above. Also, see attached app note. r.search.yahoo.com/.../RS=MZcP39je49aqNDJZpwhMkz9KcIE-

    3. See my first points listed above. Bad i2c signals, insufficient delays, having other i2c devices active on the comm lines. etc.

    4. There is no fault log. You could sniff the comm lines using an i2c analyser to see if there was NACK at anypoint during programming.

    5. You could attempt to program the default srec using bqstudio. If you are unable to communicate with the chip, then it is possible the chip is bricked.

    I hope this helps.

    thanks
    Onyx
  • Thanks for your wonderful reply! I still have some confusion.

    1, Does FG have to be status that it can't be connected through I2C if there is any abnormal thing when FW is updating? Or might it destroy some register but it still can be found through I2C?

    2,How to extend time delay to 200? Cloud you help modify it on my V04 version(that has been attached)? And could you also help to check length of data?

    3, Does extending time delay to 200 increase updating time?

    4,Regarding SLUA801, it is for BQ27421 and it decreases how to read or write data from FG, I don't find steps of command  about how to update FG in system? Could you write this in detail?

    5,If FG is in sealed mode or not in ROM mode , does updating FW through system side directly without any step to exit sealed mode or enter ROM mode  brick this IC? Or does it only program unsuccessfully and you can recover it by reprogramming?

    6,I also attach I2C signal report. Could you help to check if it is good I2C signal and there is not too much capacitance? In our understanding, it is good.

    CalypsoAIC I2C.docx

    Thanks very much!V04.zip

  • 1. I do not understand what you mean by the "FG having to be Status".  When the FG is being updated, there should not be any communication with any other device on the comm lines occurring.

    2.

    I have captured what you need to do. See picture above. Select the limit package size to 20 as seen in the circled portion above.

    Chaning the time in the files has to be done manually by you. The portions  in the file that have X: 2 should be changed to X: 200. If you feel this time is too long, you can try 20 first to see if this provides better results.

    3. Yes, it will increase the time to update.

    4. No it does not describe just the bq27421. it describes communicating both ROM and flash gauge. This gauge is a flash gauge. It also describes the different formats file formats. 

    5. If you are able to communicate with the device you will be able to recover it by programming. You cannot program the device if you are in a sealed state. Programming will not work

  • Also, Your i2c signals look pretty good. Can you verify what is your clocking frequency?

    thanks
    Onyx
  • 1, Regarding 'have to', in another microchip application, this chip will write wrong data to register during updating fail sometime, and in other case, this chip will be bricked during updating fail. This chip has two different status during updating fail. So in my understanding, FG must be state that it can't be connected through I2C during updating fail. Is it right?

    2,OK, I will change length of column according to picture. However, should I change 'I2C time out' to 400 to achieve 200s delay time? Or what parameter should I change to modify delay time?

    3,As you said, program when it is in sealed mode will not work. However, do you know the result of this process? Does programming during sealed mode brick FG? or can it recover through re-programming?

    4,I I did some test on programming sealed FG. In bqstudio and using EV2400 to manage FG, first I downloaded dffs type of V01, sended 'reset' command, 'IT_enable' command and 'SEALED' command to seal this FG. Next I updated bqfs type of V03 through 'program' button. Finally I succeeded to update V03. Is it different from your explanation? Why? Is there any miss on my steps?

    5, Clock frequency is 100kHz.

    6, If FW is loaded to FG chip in factory. There is no command sent to seal it and then it is welded in board. Is this chip still in unsealed mode or full access mode?

    7,If FW is updated through system to chip that had been welded in board, and there is no command to seal it at the end of updating command. Is this chip still in full access or unsealed mode?

    Thanks!

  • Please help reply these questions ASAP!
    Thanks!
  • I believe you started any post with your questions and they have been addressed there.
    thanks
    Onyx