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.

BQ40z50 SREC Programming

Other Parts Discussed in Thread: BQ40Z50, BQSTUDIO, BQ40Z50-R1

I'm writing a program for our battery production which, among other things, will load an SREC file into a BQ40z50 device.

I have logged the transactions from BQStudio when programming an SREC but there is no datasheet for the ROM mode commands so apart from entering ROM mode, checking ROM mode and loading the SREC, I don't know what it's doing (and therefore whether I need to do that in my program).

What are the essential commands I need to load and run an SREC file?

Thanks

PS: these are the commands I have found:

Write Transaction Set ROM Mode 44 02 00 0F 41
Write Transaction Check ROM Mode 0D
Read Transaction x9002 = ROM 02 90 E0*
Write Transaction Check ROM MOde 0D
Read Transaction x9002 = ROM 02 90 E0*
Write Transaction 09 00 00 29
Write Transaction 0A 00 00 94
Write Transaction 09 02 00 03
Write Transaction 0A 00 00 94
Write Transaction 00 00 00 13
Write Transaction 1A DE 83 DA
Write Transaction 06 00 00 6E
Write Transaction 00 80 00 A5
Write Transaction 1A DE 83 DA
Write Transaction 06 80 00 D8
Write Transaction 09 00 00 29
Write Transaction 0A 08 00 3C
Write Transaction 09 02 00 03
Write Transaction 0A B8 00 73
Write Transaction 00 80 01 A2
Write Transaction 1A DE 83 DA
Write Transaction 06 80 01 DF
Write Transaction 09 00 00 29
Write Transaction 0A 00 00 94
Write Transaction 09 02 00 03
Write Transaction 0A 00 00 94
Write Transaction 11 DE 83 36
Write Transaction 07 DE 83 E9
Write Transaction Write data (x0F), size (x22), addr (x0040) 0F 22 00 40 7F 2F FF C0 AE BE 25 90 3F 40 CB F4 59 49 00 00 40 00 00 00 09 E2 D9 00 00 FF FF FF FF FF FF FF 44

... + more starting with 0F (from the srec file - are these the DF values?)

Write Transaction 14
Read Transaction 53 69 D9*
Write Transaction 05 22 00 00 19 00 0D 00 10 00 13 00 16 00 9B 45 9F 9B 56 9E 9B BF 9E 9B 6B 9E 9B 09 9F FC 60 20 00 0A F6 08 C1

... + more starting with 05 (from the srec file - are these lines the actual firmware and therefore not required?)

Write Transaction 12
Read Transaction 95 D5 03*
Write Transaction 00 20 00 BD
Write Transaction 1A DE 83 DA
Write Transaction 05 22 20 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Write Transaction 00 20 00 BD
Write Transaction 1A DE 83 DA
Write Transaction 13
Read Transaction 26 EB DF*
Write Transaction 00 40 00 48
Write Transaction 1A DE 83 DA
Write Transaction 05 22 40 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Write Transaction 00 40 00 48
Write Transaction 1A DE 83 DA
Write Transaction 13
Read Transaction 26 EB DF*
Write Transaction 00 60 00 E6
Write Transaction 1A DE 83 DA
Write Transaction 05 22 60 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Write Transaction 00 60 00 E6
Write Transaction 1A DE 83 DA
Write Transaction 13
Read Transaction 26 EB DF*
Write Transaction 00 00 00 13
Write Transaction 1A DE 83 DA
Write Transaction 05 22 00 00 FF FF 95 D5 FF FF 19 10 00 45 00 01 06 00 24 00 03 85 02 0A 00 00 FF FF 00 00 90 00 03 10 00 40
Write Transaction 1A DE 83 DA
Write Transaction 00 00 00 13
Write Transaction 00 00 00 13
Write Transaction 1A DE 83 DA
Write Transaction 13
Read Transaction D9 2D 54*
Write Transaction 00 80 00 A5
Write Transaction 1A DE 83 DA
Write Transaction 05 22 80 00 01 23 45 67 89 AB CD EF FE DC BA 98 76 54 32 10 14 04 72 36 FF FF FF FF FF FF FF FF FF FF FF FF
Write Transaction 00 80 00 A5
Write Transaction 1A DE 83 DA
Write Transaction 13
Read Transaction 77 BB 71*
Write Transaction 00 A0 00 0B
Write Transaction 1A DE 83 DA
Write Transaction 05 22 A0 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Write Transaction 00 A0 00 0B
Write Transaction 1A DE 83 DA
Write Transaction 13
Read Transaction 26 EB DF*
Write Transaction 00 C0 00 FE
Write Transaction 1A DE 83 DA
Write Transaction 05 22 C0 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Write Transaction 00 C0 00 FE
Write Transaction 1A DE 83 DA
Write Transaction 13
Read Transaction 26 EB DF*
Write Transaction 00 E0 00 50
Write Transaction 1A DE 83 DA
Write Transaction 05 22 E0 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Write Transaction 00 E0 00 50
Write Transaction 1A DE 83 DA
Write Transaction 13
Read Transaction 26 EB DF*
Write Transaction 14
Read Transaction 53 69 D9*
Write Transaction 00 00 00 13
Write Transaction 1A DE 83 DA
Write Transaction 05 04 00 00 54 54
Write Transaction 00 00 00 13
Write Transaction 1A DE 83 DA
Write Transaction 3
Read Transaction 20 54 54 95 D5 FF FF 19 10 00 45 00 01 06 00 24 00 03 85 02 0A 00 00 FF FF 00 00 90 00 03 10 00 40 7C*
Write Transaction 09 00 00 29
Write Transaction 0A 00 00 94
Write Transaction 09 02 00 03
Write Transaction 0A 00 00 94
Write Transaction 08 11

No idea what these last sections are doing?

  • Hello David,

    did you get any reply on this issue?
    I have the same task: during an end-of-line test the complete SREC file should be flashed and not only the data flash.

    As far as I understand the DF values are no big thing. These values can be written with the WriteBlock command in the address range 0x4000 to 0x5FFF.
    But how could the other part of the SREC been written?

    Regards
    Marco
  • No, I didn't. I asked a similar question here

    Unless I'm missing something, it seems that no-one wants to share the information, or even say whether that's the case.

    From my point of view, in order to sell our device I need to be sure that the firmware that's pre-programmed into the device is the same version as the firmware in my device at the time of testing. I can't really allow for it to be upgraded without re-visiting my validation. The simplest way to achieve that is to provide our manufacturer with the tools to program in the SREC with our DF values during assembly. The way I'm now forced to do it is simply to check the firmware version and load our DF if it's Ok. This is fine for now, but come the day when TI ship devices with new firmware, it'll create a real headache. We have a custom jig which will program and test all the devices associated with the product in one go so having to downgrade TI's firmware will mean twice the effort while we use another jig/process.

    Regards,

  • Hi Marco,

    We're working on material to go over programming an SREC.  

    Best,

    Justin

  • Hi Justin, 

    Any update on the material for programming a SREC? 

    I am looking at designing a program/ test station and I need to automate the programming of the golden image as well as calibration. 

    Thanks, 


    Chris

  • Hi Justin, 

    Any update on the material for programming a SREC? 

  • Hi Sammy,

    Please don't use this old post. You should create a new post if you have questions on SREC...

    www.ti.com/.../slua734a.pdf
  • Hi Damian,

    I'm sorry but I have to reject that answer as it doesn't answer the question. The document you linked to discusses DF programming, not SREC programming.

    Your colleague, Justin, said "We're working on material to go over programming an SREC" and so far no-one has provided that material.

    This may be an old post, but the question still stands (as do SO many others that don't get answered!)
  • Hi David,

    S-records is a Motorola standard, not TI. You can search web for details on s-record and you can develop you code to parse data and write it to the gauge. What I reference above is what TI provides for programming bq40z50-R1 devices in production.