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.

BQ27750: bqStudio 'Golden Image File' corrupts my gauge

Part Number: BQ27750

Hi there

I created a 'flash filestream' file with all default parameters of a brand new bq27750 from an EVM.

My goal is to reset all defaults of the bq27750 I have soldered into my actual HW (that is not possible to connect to bqStudio).

The flashstream commands ('W', 'C', 'X') are easy enough to implement, and so this seems like a good way forward.

However, the flashstream file output by bqStudio corrupts my device. I know what you are thinking : "he didn't implement the commands correctly".

I am certain they are correct given their descriptions here : http://www.ti.com/lit/an/slua801/slua801.pdf.

That and the fact that, after programming, some of the parameters are correct defaults (i.e. most of ADVANCED CHARGING ALGORITHM block are correct excluding 'termination' config), and some not (PROTECTIONS block are mostly now garbage) tells me the stream handling is good, but the stream is not.

So then, how to move forward?  I have a corrupt device. SREC...???

I know how to read SREC files, but the ROM commands of the bq27750 are top secret.

I can glean some ROM commands from the flashsteam file, but not all.

bqStudio has an SREC to Flashstream conversion function (yes, its hidden, but somehow the function appeared for me at a certain point, so I used it).

I convert the 'bq27750_v0_04_build12.srec' file to a bq.fs file, and I can see with ROM commands '0F' which correlate with the SREC data.

The precursor to these commands however, are a bunch of further ROM commands, and executing them doesn't get past the fourth line : 'W: 16 09 02 00' ... the bus just times out.

So it would appear that bqStudio strikes again.

My question : how can I un-corrupt my device? My preferred method would be to execute the SREC file, but naturally I would need to use the ROM mode for this.

Here is the ROM code that is generated by bqStudio. Maybe someone can 'fix' it so that I can execute it.

W: AA 3E 33 00
X: 1000
W: 16 09 00 00
W: 16 0A CC 00
W: 16 09 02 00 -> where it stops
W: 16 0A 00 00
W: 16 00 00 00
W: 16 1A DE 83
W: 16 06 00 00
X: 250
W: 16 00 80 00
W: 16 1A DE 83
W: 16 06 80 00
X: 250
W: 16 09 00 00
W: 16 0A CC 00
W: 16 09 02 00
W: 16 0A B8 00
W: 16 00 80 01
W: 16 1A DE 83
W: 16 06 80 01
X: 250
W: 16 09 00 00
W: 16 0A CC 00
W: 16 09 02 00
W: 16 0A 00 00
W: 16 11 DE 83
X: 400
W: 16 07 DE 83
X: 250

-----

Best regards,

Eugene

  • Hello Eugene,

     if you can communicate with the device, chances are you should be able to program the default srec which you can get from the product folder of thee device. Program the srec  using bqstudio. If you are unable to program it, then you will need to replace your chip.

    Can you confirm what adapter you are using for programming? EV2300 or EV2400? What firmware version is on the adapter which you are using? if you are using the ev2300 and you have version 3.1c, that is likley the cause of the corruption. update to 3.1m or 3.1r.  If you are programming using your host and the device is getting corrrupted, here is what i suggest you do:

    Extract the flashstream file using bqstudio, then make sure you are able to program the flash stream back on the device using bqstudio. If everything works fine and then the device gets corrupted when using your tool, then it means something is wrong with your programming sequence and has to be troubleshot.

    Hope this helps.

    thanks

    Onyx

  • Hello Onyx

    I used the EV2400 to create the flashstream file.
    I can not use bqstudio to program my device, but I can use bqStudio to program the EVM.
    That seems to work.

    Here are TI instructions from ' www.ti.com/.../slua801.pdf'

    ------------------------------------------------------------------------------------------------------------------------------------------

    Every flash stream type is a text file and shares the same syntax, as follows:
    • Comments – start with a semicolon → ;This is an example of a comment.
    • Write command – W: [device address] [command] [data][data]…[data]
    Example: Write 0x02 to command 0x3E and write 0x00 to command 0x3F for a gauge with device
    address 0xAA
    W: AA 3E 02 00
    • Compare command – C: [device address] [command] [data][data]…[data]
    Example: Compare the contents from a gauge with device address 0xAA, starting at command 0x3E
    with byte sequence 0x02, 0x00, 0x02, 0x20, 0x00, 0x03
    C: AA 3E 02 00 02 20 00 03
    If the byte sequence matches, continue, otherwise stop (error).
    • Delay command – X: [delay in milliseconds]
    Example: Wait 10 ms
    X: 10

    -----------------------------------------------------------------------------------------------------------------------------------------------

    Whats not there (what am I missing)? One thing I can think of (i.e. that is not explained in the bq27750 technical reference) is sending checksums to 0x60 after every write. I tried that but that doesn't work. Another thing might be endianness? BUT I would suspect that the idea behind this scheme is that whatever is in the file is simply loaded and sent without fiddling with endians (as data boundaries within are not defined, so that would be a disaster). What I have verified is that data going out on the wire matches that in the file.

    Thanks for your time.

    Regards,
    Eugene
  • hello Eugene,

    If you are able to program the EVM with the flashstream file extracted using bqstudio and the board is functional, then something is definitely wrong with your programming sequence. Can you attach the flash stream file which you are trying to program. One thing is have seen with customers is that if the have commands in the flash stream file with long bytes, eg 32 bytes, the run into problems programming that file on their device using their tool although bqstudio would successfully program that same file. What i would suggest your do is check your file and if you see you have long bytes after a command, use bqstudio to break up the the command into smaller groups of commands. To do that, go to golden image plug in, and then before extracting the file click options, then limit pack size and the reduce it to less than 10.

    if that still doesn't help, i would suggest getting an i2c bus sniffer and sniff the evm comm lines to see how bqstudio is writing the commands to the gauge and then do likewise.

    Also, see attached sample code in c that parses the flash stream file on a similar device device.

    4846.FlashStream028_bundle (3).zip

    thanks

    Onyx

  • Hi Onyx

    Attached the file bqStudio creates. 'Big' ROM commands are 21 bytes (including address)...so maybe borderline? Here are the options I have (no 'limit pack size' unfortunately). I am running bqStudio 1.3.80.

    Thanks for the zip file, I will take a look (but am pretty confident the data on the wire is good -> its as in the file)...

    Regards,

    Eugene

    ;--------------------------------------------------------
    ;Verify Existing Firmware Version
    ;--------------------------------------------------------
    W: AA 3E 02 00
    C: AA 3E 02 00 17 50 00 04
    ;--------------------------------------------------------
    ;Unseal device
    ;--------------------------------------------------------
    W: AA 00 14 04
    W: AA 00 72 36
    W: AA 00 FF FF
    W: AA 00 FF FF
    X: 1000
    ;--------------------------------------------------------
    ;Go To ROM Mode
    ;--------------------------------------------------------
    W: AA 00 00 0F
    X: 1000
    ;--------------------------------------------------------
    ;Data Block
    ;--------------------------------------------------------
    W: 16 11 DE 83
    X: 200
    W: 16 0F 12 00 40 9B 2F DE BF 00 00 14 B1 53 40 AE DB 70 49 00 00
    X: 2
    W: 16 0F 12 10 40 40 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 20 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 30 40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 40 40 20 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
    X: 2
    W: 16 0F 12 50 40 70 71 72 73 74 75 76 77 7A 78 79 30 31 32 33 34
    X: 2
    W: 16 0F 12 60 40 35 00 00 4C 3A 00 00 21 00 01 00 11 54 65 78 61
    X: 2
    W: 16 0F 12 70 40 73 20 49 6E 73 74 72 75 6D 65 6E 74 73 00 00 00
    X: 2
    W: 16 0F 12 80 40 07 62 71 32 37 37 35 30 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 90 40 00 00 00 00 00 04 4C 49 4F 4E 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 A0 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 B0 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 C0 40 07 1C 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 D0 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 E0 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 F0 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 00 41 55 FF 9F 00 3A 00 41 00 4F 00 5A 00 3F 00 4C 00
    X: 2
    W: 16 0F 12 10 41 52 00 52 00 57 00 57 00 65 00 76 00 BF 00 1A 01
    X: 2
    W: 16 0F 12 20 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 30 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 40 41 FF FF 9F 00 3A 00 41 00 4F 00 5A 00 3F 00 4C 00
    X: 2
    W: 16 0F 12 50 41 52 00 52 00 57 00 57 00 65 00 76 00 BF 00 1A 01
    X: 2
    W: 16 0F 12 60 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 70 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 80 41 5A 00 00 00 00 00 90 01 90 01 00 00 04 5E 10 04
    X: 2
    W: 16 0F 12 90 41 00 0C FE 40 FF 00 00 C8 00 E8 03 0C FE 40 FF 00
    X: 2
    W: 16 0F 12 A0 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 B0 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 C0 41 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 D0 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 E0 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 F0 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 00 42 19 14 1D 0D 83 FF 1B 15 00 02 00 04 00 00 00 00
    X: 2
    W: 16 0F 12 10 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 20 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 30 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 40 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 50 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 60 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 70 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 80 42 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 90 42 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 A0 42 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 B0 42 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 C0 42 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 D0 42 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 E0 42 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 F0 42 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 00 43 38 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 10 43 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 20 43 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 30 43 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 40 43 91 D0 58 18 00 00 58 18 86 D4 C6 4A C2 B4 2B 6E
    X: 2
    W: 16 0F 12 50 43 7C 03 48 01 A3 FD 75 F6 58 12 B7 2D B7 2D 00 00
    X: 2
    W: 16 0F 12 60 43 00 00 86 D4 C6 4A C2 B4 2B 6E 7C 03 48 01 A3 FD
    X: 2
    W: 16 0F 12 70 43 75 F6 58 12 B7 2D B7 2D 00 00 00 00 EF 40 40 40
    X: 2
    W: 16 0F 12 80 43 40 0A 0A 40 40 40 03 09 04 00 01 58 02 00 00 00
    X: 2
    W: 16 0F 12 90 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 A0 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 B0 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 C0 43 42 31 2A 11 08 11 E7 10 C6 10 A7 10 87 10 68 10
    X: 2
    W: 16 0F 12 D0 43 4A 10 2D 10 0E 10 F4 0F DB 0F BB 0F 9E 0F 88 0F
    X: 2
    W: 16 0F 12 E0 43 71 0F 5F 0F 47 0F 26 0F 16 0F 02 0F F6 0E EB 0E
    X: 2
    W: 16 0F 12 F0 43 E0 0E D7 0E D0 0E C9 0E C7 0E C2 0E C1 0E B7 0E
    X: 2
    W: 16 0F 12 00 44 A6 0E 94 0E 7D 0E 72 0E 6B 0E 65 0E 2A 0E 88 0D
    X: 2
    W: 16 0F 12 10 44 88 0B DD 0E A2 0E C6 FC 88 FD FD FD C1 FE 95 FE
    X: 2
    W: 16 0F 12 20 44 E2 FE 31 FF 3B FF 08 FF C7 FF 9D FF 2A FF 2F 01
    X: 2
    W: 16 0F 12 30 44 6B 02 0A 03 2A 03 28 03 95 02 9E 03 14 01 B2 00
    X: 2
    W: 16 0F 12 40 44 12 00 72 FF E2 FF B4 FF 61 FF 3F FF 60 FD 6C FC
    X: 2
    W: 16 0F 12 50 44 63 FA 4F F9 B7 FA DB FA 0B F8 92 F8 F8 FA A0 FA
    X: 2
    W: 16 0F 12 60 44 E1 00 F4 FA 19 F7 2F FF 31 FF 2C FF 33 FF 50 FF
    X: 2
    W: 16 0F 12 70 44 2D FF 46 FF FD FE 00 FF FA FE 29 FF 04 FF 2A FF
    X: 2
    W: 16 0F 12 80 44 1B FF 68 FF 4F FE 5B FE 74 FE A4 FE 9F FE 67 FE
    X: 2
    W: 16 0F 12 90 44 64 FE 3E FE 30 FE 2D FE 13 FE 02 FE E4 FD F9 FD
    X: 2
    W: 16 0F 12 A0 44 F6 FC 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 B0 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 C0 44 F4 01 1E 3C 00 10 0E 0A 00 46 05 0F 05 0F 20 03
    X: 2
    W: 16 0F 12 D0 44 02 0F 04 04 76 FE E8 F2 00 00 64 00 50 46 50 46
    X: 2
    W: 16 0F 12 E0 44 0A 90 01 64 00 28 00 19 DC 5C 60 19 00 01 00 14
    X: 2
    W: 16 0F 12 F0 44 00 05 00 14 00 23 03 08 07 25 5A 0F 1E 60 05 82
    X: 2
    W: 16 0F 12 00 45 B8 0B 02 C8 00 F0 0A 28 32 00 32 00 20 1C 32 FA
    X: 2
    W: 16 0F 12 10 45 00 00 00 FF 7F E8 03 0A 00 50 46 64 00 80 43 90
    X: 2
    W: 16 0F 12 20 45 01 0A C8 00 88 13 96 00 32 00 00 00 32 FF FF FF
    X: 2
    W: 16 0F 12 30 45 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 40 45 40 08 00 00 B0 F0 0A FC 08 0A B8 0B 0F 00 00 32
    X: 2
    W: 16 0F 12 50 45 00 C2 01 05 14 00 0A 14 0C FE 32 A0 05 D4 0C 0A
    X: 2
    W: 16 0F 12 60 45 01 01 0F 90 01 94 00 74 0E 5A 0A 8C 0C 8C B8 0B
    X: 2
    W: 16 0F 12 70 45 1C 0C 00 05 30 11 CC 10 64 5F 80 0C E4 0C 06 08
    X: 2
    W: 16 0F 12 80 45 30 11 CC 10 64 5F FE 55 FE 01 1B 00 01 01 00 00
    X: 2
    W: 16 0F 12 90 45 00 00 00 00 00 00 E8 03 96 00 64 00 14 64 34 21
    X: 2
    W: 16 0F 12 A0 45 0A F4 01 D0 07 00 00 0A 14 19 2D 37 01 68 10 50
    X: 2
    W: 16 0F 12 B0 45 00 50 00 50 00 68 10 50 00 50 00 50 00 68 10 50
    X: 2
    W: 16 0F 12 C0 45 00 50 00 50 00 68 10 50 00 50 00 50 00 58 00 2C
    X: 2
    W: 16 0F 12 D0 45 00 C4 09 54 0B 10 0E A0 0F 00 04 00 19 00 64 00
    X: 2
    W: 16 0F 12 E0 45 28 02 18 00 03 70 F4 77 77 E7 64 98 08 FA 3C 00
    X: 2
    W: 16 0F 12 F0 45 4B 00 28 00 3C 3C 00 57 35 14 0C B8 0B 02 80 0C
    X: 2
    W: 16 0F 12 00 46 9A 10 9A 10 9A 10 9A 10 02 36 10 36 10 36 10 36
    X: 2
    W: 16 0F 12 10 46 10 28 23 06 38 FF 05 90 E8 06 C8 00 05 05 05 05
    X: 2
    W: 16 0F 12 20 46 26 02 02 F4 01 58 02 02 26 02 00 00 02 32 00 00
    X: 2
    W: 16 0F 12 30 46 00 02 32 00 D0 07 08 07 08 07 02 00 C4 09 D0 07
    X: 2
    W: 16 0F 12 40 46 F0 D2 02 00 00 00 00 00 94 11 05 05 00 05 FB FF
    X: 2
    W: 16 0F 12 50 46 05 0A FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 60 46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 70 46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 80 46 03 00 90 46 44 46 56 01 16 00 AE 46 F7 45 4E 01
    X: 2
    W: 16 0F 12 90 46 01 13 51 02 48 46 4A 46 5E 01 11 12 4D 02 4E 46
    X: 2
    W: 16 0F 12 A0 46 50 46 5F 01 10 13 4D 02 4B 46 4D 46 60 01 00 12
    X: 2
    W: 16 0F 12 B0 46 51 02 FB 45 FD 45 61 01 00 83 51 02 FE 45 00 00
    X: 2
    W: 16 0F 12 C0 46 00 00 8D 13 6E 01 25 46 27 46 62 01 8D 82 6E 01
    X: 2
    W: 16 0F 12 D0 46 28 46 00 00 00 00 8C 13 6E 01 20 46 22 46 63 01
    X: 2
    W: 16 0F 12 E0 46 8C 82 6E 01 23 46 00 00 00 00 41 13 51 02 33 2A
    X: 2
    W: 16 0F 12 F0 46 08 46 64 01 41 82 51 02 3F 2A 00 00 00 00 02 13
    X: 2
    W: 16 0F 12 00 47 4D 02 11 46 13 46 65 01 02 92 4D 02 14 46 16 46
    X: 2
    W: 16 0F 12 10 47 66 01 04 12 4D 02 17 46 19 46 67 01 04 93 4D 02
    X: 2
    W: 16 0F 12 20 47 1A 46 1C 46 68 01 06 6E 2D 00 08 00 00 00 00 00
    X: 2
    W: 16 0F 12 30 47 08 6E 2D 00 04 00 00 00 00 00 0A 6E 2D 00 03 00
    X: 2
    W: 16 0F 12 40 47 00 00 00 00 06 91 00 00 00 00 1D 46 69 01 08 91
    X: 2
    W: 16 0F 12 50 47 00 00 00 00 1E 46 6A 01 0A 91 00 00 00 00 1F 46
    X: 2
    W: 16 0F 12 60 47 6B 01 9A 12 6E 01 2A 46 2C 46 6C 01 9A 83 6E 01
    X: 2
    W: 16 0F 12 70 47 2D 46 00 00 00 00 9B 12 6E 01 2F 46 31 46 6D 01
    X: 2
    W: 16 0F 12 80 47 9B 83 6E 01 32 46 00 00 00 00 FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 90 47 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 A0 47 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 B0 47 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 C0 47 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 D0 47 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 E0 47 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 F0 47 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 00 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 10 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 20 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 30 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 40 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 50 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 60 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 70 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 80 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 90 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 A0 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 B0 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 C0 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 D0 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 E0 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 F0 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 00 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 10 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 20 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 30 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 40 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 50 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 60 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 70 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 80 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 90 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 A0 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 B0 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 C0 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 D0 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 E0 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 F0 49 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 00 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 10 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 20 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 30 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 40 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 50 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 60 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 70 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 80 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 90 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 A0 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 B0 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 C0 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 D0 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 E0 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 F0 4A FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 00 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 10 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 20 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 30 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 40 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 50 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 60 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 70 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 80 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 90 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 A0 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 B0 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 C0 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 D0 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 E0 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 F0 4B FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 00 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 10 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 20 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 30 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 40 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 50 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 60 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 70 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 80 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 90 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 A0 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 B0 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 C0 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 D0 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 E0 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 F0 4C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 00 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 10 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 20 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 30 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 40 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 50 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 60 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 70 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 80 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 90 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 A0 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 B0 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 C0 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 D0 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 E0 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 F0 4D FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 00 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 10 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 20 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 30 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 40 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 50 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 60 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 70 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 80 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 90 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 A0 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 B0 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 C0 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 D0 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 E0 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 F0 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 00 4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 10 4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 20 4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 30 4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 40 4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 50 4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 60 4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 70 4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 80 4F 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 90 4F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 A0 4F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 B0 4F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    X: 2
    W: 16 0F 12 C0 4F FF FF FF FF 39 00 00 00 C5 FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 D0 4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 E0 4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    W: 16 0F 12 F0 4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
    X: 2
    C: 16 14 31 9D
    ;--------------------------------------------------------
    ;Execute Flash Code
    ;--------------------------------------------------------
    W: 16 08 11
    X: 4000
    

  • Hi Onyx

    All source code is password protected. So can't see much :)

    regards,
    Eugene
  • Hi Eugene,

    There should be a text file in the folder containing the password. Try ti or bms. One of them should work

    thanks

    Onyx

  • Hi Eugune,
    Can you increase all the delay times in your flashstream file from 2ms to about 200ms so we see if that helps?

    thanks
    Onyx
  • Hi Onyx

    Did that (increased delays to 200ms), no difference.

    I wrote a python script to convert the flashstream file i sent you to one with shorter ROM write commands : it currently sends 16 bytes per 'W:' command, I changed it to 8 bytes, and naturally updated the addresses accordingly (i.e. format is :  [I2C Addr][CMD][Length][Addr LSB][Addr MSB][Data 0]...[Data15], with 200ms delay) -> No difference (memory that I am reading thereafter stays the same whether I use this 'shorter' file, or the file generated by bqStudio).

    I had a look at the flash programmer 'main. You guys do exactly what I do

    - parse the files

    - convert the string to bytes

    - shift the I2C addr to be 7 bit (i.e. remove I2C read or write bit)

    - put  that all on the wire

    I took your code (for writing via ROM) and executed it after mine (but just to reconstruct the byte arrays) to compare as a kind of inline unit-test, and, exactly the same...result -> no difference. The incorrect parameters remain incorrect, and the correct ones remain correct, and nothing changes...

    I also can not see how the I2C write/read routines on my microcontroller could be the problem -> they are the same routines used whether I use this flash file stream or whether I do dataflash programming directly, and have been verified to work with the EVM (i.e. when I plug my dev board into my EVM and read/write I see the same as I do if I do it in bqStudio.

    Anyhow. Thanks again for your time.

    Regards,

    Eugene

  • Hi Eugene,
    Are you saying you are able to communicate with the EVM using your dev board just like if you are using bqstudio? Could it be your own board has a hardware design flaw preventing the you from programming it with your host? pls clarify.

    thanks
    Onyx
  • Hi Onyx

    Not saying that.

    I have 4 ways of working at the moment (i.e. sanity check).

    1) bqStudio + EVM(1) via EV2300 -> this setup was faulty (had a webex with Eric and he saw this immediately) and he kindly sent me a new EVM and EV2400. Something about the EV2300.

    2) bqStidio + EVM(2) via EV2400 (kindly sent by Eric)

    3) Atmel SAMD21 Xplained Pro development board -> I was successfully able to communicate with EVM(1) 'like using bqStudio' by switching buses (but for some reason this no longer works with the new EVM sent to me). I run the same firmware here as on my actual device -> hence I say the i2c read/write has been verified to work by visually inspecting flash memory values I can see in bqStudio (and vice versa), when I last had it connected to the EVM in 1). So the base routines I use to do filestream programming are the same base routines I use to program the dataflash memory using the protocol described in sluubi6.pdf.

    4) My actual (prototype) device. Runs the same FW as in 3. I am trying to 'fix' this device. But not because I really care to fix it per se, more because when we do get chemID's from the batteries we sent you, and we do perform battery calibration, I would like to ease the process of adjusting our production devices by using a golden image and a flash-stream. I guess if this never really works, I could simply just program it by writing to the registers directly.

    Interesting to note : since installing the EV2400, I can no longer get 1) to work.

    I hope that explains it?

    Regards,

    Eugene

  • PS: regarding 4) -> there is no way to connect bqstudio to the gauge there, its only accessible via the microcontroller.
  • Hi Eugene,
    I would recommend continuing to work with Eric on this as given you already have an open Chanel of communication.


    thanks
    Onyx