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.

Is any method for bq27510 as In Circuit/System Programming after it assembled without EV2300/EVM.

Other Parts Discussed in Thread: BQEVSW, BQ27510, BQ27500

Hi, Charles Herder,

1) Please confirm that we must to use an EV2300 or a BQ27510-EVM at least, even if we just need to make the BAT_GD pin effective for temperature out of range this time before our applied EVM arrived?

2)  May I ask you help to generate a "golden image" without any calibration and battery learning stage after step "3F" since your colleague local FAE have only bq27500 in hand right now. If yes, I will send you all the infomation step 1A to 3F.

3) We are designing a two cell 2S1P application with dual bq24123 there, I can also the part of schematic to you.

4) We wrote a I2C program in Target Linux system which can read Chip ID, Temperature, Current, Voltage, Unseal/Sealed/FA Status and seems all Flash Data can be read and write (since we just change the bits about BAT_FN/BAT_GD), So the questions are

A.May we do some in circuit/system debug without golden image or firmware.

B.Is there any method to programming a golden image or firmware in target linux system with modify our I2C program as considering about the bq27510 like a special flash MCU?

5) Prepare for mass production and future upgrade, the questions:

A. Is there any thing to do before bq27510 assembled onto PCB or we can use some method like In Circuit/System Programming after it assembled without EV2300/EVM.  

B. How to re-flash and upgrade both firmware and golden image for the bq27510 after it assembled onto PCB with only host side (OMAP/Linux) I2C connection.

 

Yours

Charles

  • Charles,

    1) You do not the the EVM or EV2300 to change the data flash settings or program an image.  However, in order to perform a learning cycle on your battery, you need an EV2300 and the evaluation software.  The software is available on the product web page.

    3) For a 2S solution, you need to use the configuration in application note: http://www.ti.com/litv/slua496.  This app note was originally written for the 2750x, but works for the 510.

    4) The part will function in the default manner unless you program an image.  "Default" means: assume 1000mAH battery, default usage of BAT_GD/BAT_LO (not using a charger), default chemistry information, etc.  Although the unit will respond and perform without malfunctioning, it will report an erroneous state of charge, time to empty, etc.  We highly recommend that you produce a customized image before production.

    Any I2C master can program our gauge.  We have an application note describing how to implement this process on a generic platform here: http://www.ti.com/litv/pdf/slua449d.

    5) You can perform all of the programming necessary without the EV2300/EVM.  The only step  you need these tools for is for generating the golden image.  Once you have the image, you can use any tool to program the gauge following the above Application note. 

    Complete firmware upgrades must be performed with the EV2300/EVSW.  However, Data Flash upgrades can be performed on the fly by the host processor.  Generally, most customers don't worry about completely upgrading our gauge's firmware in the field, as it is too much trouble once the product has been released.

    Let me know if this helps,

    Charles

     

  • Hi Charles Herder,

    I want to program my bq57210 with DFI file from I2C master, do I need to implement the 3 pages of workflow described in slua449d ?

    Don't you have some C source samples for that ?

    I don't find correspondances between the workflow and bq57210-g1 datasheet, for exemple workflow speaks about "ROM mode" or "I2C address=0x16" instead of 0xAA...

    Thanks in advance for any help.

    Sylvain

  • SLUA449d is the correct application note to follow.  We don't have any example code available currently. 

    The differences you are seeing are due to the fact that the gauge has a ROM mode and firmware mode.  The datasheet assumes that the firmware is running and describes that interface. Sending the ROM mode command 'quits' the firmware and the device enters ROM mode. When this happens, the command set changes, and the device changes addresses from 0x55 to 0x16.

    The interface described in ROM mode is completely different, and is described in a limited sense in SLUA449d. 

    Let me know if this helps,

    Charles

  • Thanks for the reply. In fact, writing data 0x0f00 at command 0x00 is a sort of special Control() command with an undocumented 0x0f00 subcommand in SLUS927 point of view ?

    Sylvain

  • That is basically true.  Just be careful of byte ordering.  Command 0x0F00 will be written as follows:

    W 0xAA 0x00 0x00 0x0F

     

  • Hi,

    Going to ROM mode is ok. I have pb to exit ROM mode. I send W 0x16 0x00 0x0f, W 0x16 0x64 0x0f, W 0x16 0x65 0x00 as explained.

    The address of the gauge is alway 0x16 after that, it should be back to 0xAA, isn't it ?

    The Reset, IT enable, Sealed cmd must be send on 0xAA address as far as I anderstand.

    Thanks for help

  • Hi Charles Herder,

    Do you have any suggestion for my pb ? I'm actually blocked on that, I can't even use the bq easy software as the I2C address is locked on 0x16.

    Regards

  • If you use the bqEVSW and go to the I2C Pro screen then you can read/write to any I2C address.  Just change it from "aa" to "16" at the top where it says "I2C Address".  Then you can try writing those commands manually using the "Read/Write I2C Byte" area.

  • Hi,

    Yes, I know, but my pb is now to put the gauge back in FW mode for battery usage. How can I do that ?

    If you read my previous posts, sending  W 0x16 0x00 0x0f, W 0x16 0x64 0x0f, W 0x16 0x65 0x00 (see SLUA449d) fails to restore FW mode wityh address "aa".

    Thanks for help

  • The command you are sending should work, so the next thing to check is the following:

    If the device does not return to firmware mode, then you should still be able to communicate with address 0x16.  If this is true, then after you issue the above command, then read one byte from register 0x66:

    R 0x16 0x66 (byte from gauge)

    This byte is zero if there is no error detected.  Otherwise, let us know what error code is there.

    Thanks,

    Charles

  • After the W 0x16 0x00  0x0F, W 0x16 0x64  0x0F, W 0x16 0x65  0x00, the gauge doesn't communicate at all, it need  a power off to start again in 0x16 address.

    So R 0x16 0x66 gives a communication error. (After power up, R 0x16 0x66 gives 0x00.)

    I can see that the problem is on one specific gauge component, doing these operations with an other one works fine, entering and exiting ROM mode without pb. Can my first bq27510 component have a firmware bug or something that could explain this behaviour ?

    Thanks

  • Hi,

    I have a similar situation, the gauge is in FW mode à powerup

    The R 0x16 0x66 returns 0x02, what can you say of that ?

    Regards

  • Sylvain,

     

    My suggestion is to re-program the flash. if you have golden image then use it. other wise use the default one from the TI web.

     

    Ming

  • I also have a similar situation. After programming the device and executing the ROM exit routine, the device remains in ROM mode, communicating at address 0x16. Reading register 0x66 after ROM exit gives 0. I've tried reprogramming with the .bqfs file bundled with FlashStream.exe and get the same results. Any idea how to proceed?

     

    Thanks

    jim

  • Jim,

    The Flashstream bundle contains an example for the bq27500.  It will not work on a bq27510 and so your IC stays in ROM mode.  Please create a bq27510 dffs/bqfs file using Flashstream and a bq27510 SENC file (and DFI file if you have a golden one) and re-try.