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.

BQ78350-R1: Updating Firmware with Host Controller

Part Number: BQ78350-R1
Other Parts Discussed in Thread: EV2400, BQ76940, BQ78350, BQ76930

Tool/software:

Dear TI Team, 

We would like to add option to update firmware of gauge IC's of our products by using host MCU via OTA . According to my experience firmware update to gauge IC can be done over SMBUS with Bq Studio and EV2400 Tool. We have following questions to implement this feature to our products with the use of our host MCU. 

  • Our MCU is powered via BQ76940 AFE, which communicates with Bq78350R1 IC via I2C protocol. Is there any power distruption expected during gauge firmware update?
  • Which steps should we follow to update Bq78350R1’to R2? Which SMBUS commands are used for this steps?
  • Is there any document exists for Bq78350 firmware update? 
  • Is there any SDK available for updating firmware of Bq78350 ?
  • Which data format is used for updating firmware of Bq78350 IC over SMBUS ?
    • If possible we want to use ".bin" file format for our MCU for faster and easier solution. Could you provide .bin files for R2 ve R1 gauges?

  • How will Bq78350 behave when a faulty firmware is sent over SMBUS?  Is there any rollback mechanism, dual boot feature or bootloader to mitigate locking gauge IC after a failed firmware update? 
  • Will all of the previously programmed calibration and gauge configuration data lost after successful Bq78350 firmware update?
    • If these values are reset , Which steps should we apply to reprogram these values into Bq78350 IC?
  • Finally, Is there any differance between Bq78350R1 and R2 firmware  regarding firmware update , gauge configuration set and calibration parameter set steps and commands?

Thank you for your interest. 

  • Hi Dominik, Kİpp,

    this is related the topic we discussed at the e-mail called "Vestel Bq78350r1-a & Bq76930 communication failure hk. "

    would be glad to get your support.

  • They can use the source code from the attached example and translate this to their own HW.

    7853.BQ78350_Python_Srec_Loader.zip

  • Dear Mr. Hartl 

    Thanks for sharing the SDK. I have implemented c code at the host MCU and successfully updated the gauge FW. SDK helped me to answer most of my existing questions during development process. However I still have questions about following topics: 

    • How will Bq78350 behave when a faulty firmware is sent over SMBUS?  Is there any rollback mechanism, dual boot feature or bootloader to mitigate locking gauge IC after a failed firmware update? 
    • I cannot make gauge IC to work after gauge codeflash read operation with faulty firmware without applying HW reset by bq78350 reset pin. Is there a way to replicate same functionality with a smbus command? 
    • Does bootloader have a autoshutdown or sleep mechanism and a way to prevent battery output and input besides the companion IC protections? 

      Thank you for your interest. 
  • The gauge will stay in ROM mode if you program an invalid firmware (because part of this process is to write an integrity word and several check-sums). You can then re-start the process.

    What do you mean with "gauge codeflash read operation"?

    No. You will have to write a valid bq78350 FW to enable low power modes. These are not implemented in the bootloader (ROM mode).

  • Dear Mr. Hartl, 

    By Gauge codeflash read operation I meant "Read Srec from device" option at bq studio software

  • You can issue the following commands with I2C writes:

    I2C address: 0x16, I2C command: 0x00, I2C Write data = 0x0F
    I2C address: 0x16, I2C command: 0x64, I2C Write data = 0x0F, 0x00

    If the FW that is stored in the gauge is valid then the gauge will reboot.