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.

BQ27410 writing to Design Capacity register

Other Parts Discussed in Thread: BQ27410-G1, BQ27421-G1, BQ27510, BQ27520-G4

Hello,

I am trying to modify the Design Capacity  register over using the I2C pro screen with the EVM software. For some reason this does not work. Any ideas?

Thanks,

David

  • Are you trying to edit the Design Capacity parameter through directly writing to the Design Capacity register? The bq27410 (as with lots of other TI gauges) cannot be updated in this manner; you will need to use the Data Flash commands to edit that information in the fuel gauge, either by using the Data Flash screen in the evaluation software, or by manually using the Data Flash programming commands in the I2C Pro screen.

  • I am trying to change the Design Capacity parameter by using the Data FLash programming commands in the I2C Pro screen.

  • Hello,

    Here is a better description of what is going on. I am following some instructions on the BQ27421 technical reference guide in chapter 3 adapted for the part I am using, BQ27410.

    Here is a quick synopsis:

    • Made sure device was unsealed with 0x04143672 followed by 0xFFFFFFFF to 0x00.  Confirmed by reading Control Status register and seeing FAS and SS are "green"
    • Read the Design Capacity bytes at 0x3c/0x3d.  I get 0x6829, which is really 2968, which is really 10600 decimal, which is correct and what is actually really written to that register right now.
    • There is no SET_CFGUPDATE subcommand, so I did nothing there
    • Wrote 0x61 to 0x00
    • Wrote 0x30 to 0x3E, since the subclass ID for Design Capacity is 48d
    • Wrote 0x00 to 0x3F, since the Design Capacity is in the first 32-byte data block
    • Read the Checksum from 0x60.  Checksum = A9.
    • Read both Design Capacity bytes starting at 0x13 (offset is 19).  I get FF and 0C.  Not 29 and 68.
    • Stop trying because I can't even read the registers using this method, let alone write them

    So, I’m just not quite sure what I’m missing here, but every attempt to get to these two registers fails me. I’m sure I’m just missing something in the documentation, but I can’t sort out what it is.

    Thanks for your help.

    David

  • I haven't done much in terms of directly editing the Data Flash outside of the evaluation software, so unfortunately I can't really provide assistance in that regard, sorry.

    That said, the bq27410-G1 is based on a different platform than the bq27421-G1 (the '421 is RAM and ROM based with no user-editable non-volatile memory); the '410 shares more in common with other Flash-based gauges like the bq27510.

    Also, come to think of it, have you read the application notes for the '410 like SLUA595 and SLUA596? I've taken a quick look through those notes, and they may have some information that can help you out.

  • The attached file might be useful for helping you to calculate the checksum.  The dataflash update doesn't actually occur until you write the correct checksum.

    5127.DataFlash_write.xls

    Also, the example instructions on page 28 in the bq27520-G4 Technical Reference Manual might be more applicable in your case. 

    One final suggestion is to snoop the I2C bus and log the transactions that happen when you use the Data Flash tab to directly edit the Design Capacity.  That might give you something to compare to your sequence.