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.

BQ34Z100-G1: Failing checksum with BQ-studio-generated commands in ROM mode.

Part Number: BQ34Z100-G1
Other Parts Discussed in Thread: BQSTUDIO, EV2400

;--------------------------------------------------------
;Verify Existing Firmware Version
;--------------------------------------------------------
W: AA 00 01 00
C: AA 00 00 01
W: AA 00 02 00
C: AA 00 16 00
;--------------------------------------------------------
;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
W: 16 00 03 00 00
W: 16 64 03 00
X: 20
C: 16 66 00
W: 16 00 02 00 00 00 EA FF 33 B1 FA 33 6C FB 33 95 FE 33 AD FE 33 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F 16 00 3F 58 CB 33 C3 00 08 11 00 00 00 00 00 FF AA 0E FB A7 0E FF A6 0E FF A1 0E FF A0 0E FE A3 0E 61 A2 0E DE FF 3A 65 FF 3A E2 FF 33 FF AF 0E
W: 16 64 1A 37
X: 2
C: 16 66 00
W: 16 00 02 01 00 00 01 4F 03 3F 11 0C D9 FF 30 E0 FF 35 2F 10 0C E0 FF 35 FF FF 23 FF DF 0B D8 FF 33 E3 AF 04 E2 BF 04 CF FF 36 E2 A0 04 E3 A1 04 00 C7 02 01 C6 02 E5 AF 04 E3 BF 01 E4 AF 04 E2 BF 01 FF AC 0E E1 1C 04 88 FF 31 E2 A0 04 E3 A1 04 02 AB 18 7F 2B 0E FF 1B 0E BD FF 32 FC FA 0E FB AF 0C 02 2B 18
W: 16 64 A6 2D
X: 2
C: 16 66 00
W: 16 00 05
W: 16 64 05 00
X: 170
C: 16 66 00
C: 16 04 30 38 7B EA
W: 16 00 0C 00 00 00 83 DE
W: 16 64 6D 01
X: 200
C: 16 66 00
W: 16 00 0A 00 00 00 7F 22 C4 F8 93 38 D6 5A FA 6F 00 00 00 00 92 E0 51 F6 C9 F4 14 52 09 21 32 6D 00 00 00 00 D0 7E
W: 16 64 BE 0C
X: 2
C: 16 66 00
W: 16 00 0A 01 00 00 17 DF 00 00 17 F3 00 00 3A 36 FD 91 00 25 30 01 00 EF 05 11 05 01 00 00 10 01 00 3C 00 50 3C 00
W: 16 64 43 06
X: 2
C: 16 66 00
W: 16 00 0A 02 00 00 64 3C 00 20 06 2C 00 00 00 05 78 FE D5 FB 95 00 02 00 14 03 E8 01 00 01 F4 00 1E 00 3C 0E 10 00
W: 16 64 4D 07
X: 2
C: 16 66 00
W: 16 00 0A 03 00 00 0A 46 05 32 01 0F 01 F4 00 64 46 50 0A 0E D8 0E 99 01 90 00 64 19 00 01 00 14 00 01 00 14 03 23
W: 16 64 88 05
X: 2
C: 16 66 00
W: 16 00 0A 04 00 00 07 08 25 5A 32 0F 64 60 00 A0 03 E8 00 C8 28 01 F4 00 00 00 00 00 00 00 00 00 00 43 80 04 00 00
W: 16 64 D8 05
X: 2
C: 16 66 00
W: 16 00 0A 05 00 00 0F 00 2A 04 0A 7D 00 00 01 0A FE 76 E7 54 00 28 03 E8 61 03 05 8A 05 72 05 51 05 44 05 33 05 26
W: 16 64 0C 07
X: 2
C: 16 66 00
W: 16 00 0A 06 00 00 05 1E 05 18 05 13 05 0F 05 0C 05 08 05 05 05 03 05 00 04 FD 04 FB 04 F9 04 FA 04 F7 04 F1 04 EE
W: 16 64 8E 07
X: 2
C: 16 66 00
W: 16 00 0A 07 00 00 04 ED 04 EB 04 E8 04 E3 04 DE 04 DE 04 DB 04 D5 04 D1 04 CF 04 C9 04 C0 04 B4 04 A9 04 98 04 7D
W: 16 64 FB 0C
X: 2
C: 16 66 00
W: 16 00 0A 08 00 00 04 61 03 94 FF B1 FE A2 04 DB 02 AC 04 23 04 B3 04 2E 05 13 05 5B 05 03 04 32 04 20 04 BA 04 BB
W: 16 64 52 09
X: 2
C: 16 66 00
W: 16 00 0A 09 00 00 04 DC 05 1C 05 1A 05 3D 03 8A 03 5F 04 34 03 FD 02 D8 01 E4 01 8A 00 A3 00 55 FF E9 00 CF 02 1C
W: 16 64 B3 09
X: 2
C: 16 66 00
W: 16 00 0A 0A 00 00 02 9D 02 6A 02 B6 03 A8 05 BB 06 D3 0A 6D 0D 37 0C A7 FB 97 00 1A 00 03 FF D4 FF D9 FF F6 00 02
W: 16 64 DA 0C
X: 2
C: 16 66 00
W: 16 00 0A 0B 00 00 00 32 00 12 FF F4 FF E3 FF B5 FF 68 00 05 FE E0 FD CA FF 22 FF 27 FF 4F FF 61 FF 4D FF 34 FE F3
W: 16 64 58 14
X: 2
C: 16 66 00
W: 16 00 0A 0C 00 00 FF 24 FF 16 FF 20 FF 0C FF 1E FF 09 FE FA FF 33 00 00 01 C2 00 32 FF CE 02 26 64 7B 1F BE 77 60
W: 16 64 44 0F
X: 2
C: 16 66 00
W: 16 00 0A 0D 00 00 7E 00 00 00 00 64 00 19 00 64 28 63 5F 64 62 00 64 00 1E 00 B4 00 64 00 F0 00 FA 11 10 10 68 49
W: 16 64 8C 07
X: 2
C: 16 66 00
W: 16 00 0A 0E 00 00 D9 AF 37 00 00 00 0A 00 14 00 00 04 B0 00 0A 05 00 32 01 C2 14 14 00 00 3C 00 4B 03 E8 00 3C 3C
W: 16 64 BF 05
X: 2
C: 16 66 00
W: 16 00 0A 0F 00 00 01 90 36 72 04 14 FF FF FF FF 01 23 45 67 89 AB CD EF FE DC BA 98 76 54 32 10 04 01 2C 00 C8 00
W: 16 64 57 0E
X: 2
C: 16 66 00
W: 16 00 0A 10 00 00 00 00 00 00 A0 00 AF 00 00 0A 64 01 00 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
W: 16 64 14 02
X: 2
C: 16 66 00
W: 16 00 0A 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 26 02 01 F4
W: 16 64 3A 01
X: 2
C: 16 66 00
W: 16 00 0A 12 00 00 02 58 02 02 26 0E 00 01 00 01 00 01 00 01 00 01 00 01 0D 00 D4 3F 99 0A 55 52 0E 10 4E 72 00 01
W: 16 64 FD 03
X: 2
C: 16 66 00
W: 16 00 0A 13 00 00 02 58 02 02 26 0E 00 01 00 01 00 01 00 01 00 01 00 01 0D 00 D4 3F 99 0A 55 52 0E 10 4E 72 00 01
W: 16 64 FE 03
X: 2
C: 16 66 00
W: 16 00 0A 14 00 00 30 30 2D 47 31 0B 54 65 78 61 73 20 49 6E 73 74 2E 04 4E 69 4D 48 00 96 00 AF 00 4B 00 64 03 E8
W: 16 64 4E 09
X: 2
C: 16 66 00
W: 16 00 0A 15 00 00 02 04 B0 05 78 02 05 78 64 01 03 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
W: 16 64 3E 02
X: 2
C: 16 66 00
W: 16 00 0A 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
W: 16 64 0C 14
X: 2
C: 16 66 00
W: 16 00 0A 17 00 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
W: 16 64 01 20
X: 2
C: 16 66 00
W: 16 00 0A 18 00 00 FF 55 00 69 00 64 00 71 00 8F 00 62 00 61 00 6C 00 59 00 56 00 55 00 57 00 5A 00 6E 02 87 05 DC
W: 16 64 FF 07
X: 2
C: 16 66 00
W: 16 00 0A 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
W: 16 64 23 00
X: 2
C: 16 66 00
W: 16 00 0A 1A 00 00 FF FF 00 69 00 64 00 71 00 8F 00 62 00 61 00 6C 00 59 00 56 00 55 00 57 00 5A 00 6E 02 87 05 DC
W: 16 64 AB 08
X: 2
C: 16 66 00
W: 16 00 0A 1B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
W: 16 64 25 00
X: 2
C: 16 66 00
W: 16 00 0A 1C 00 00 02 58 02 02 26 0E 00 01 00 01 00 01 00 01 00 01 00 01 0D 00 D4 3F 99 0A 55 52 0E 10 4E 72 00 01
W: 16 64 07 04
X: 2
C: 16 66 00
W: 16 00 0A 1D 00 00 00 02 03 84 64 06 2C 4A 10 FE 70 05 14 05 78 04 B0 0A 32 1E 00 0A 28 37 01 0B 62 71 33 34 7A 31
W: 16 64 0C 07
X: 2
C: 16 66 00
W: 16 00 0A 1E 00 00 FF FF FF FF 00 00 02 62 FF FF FD 9C FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
W: 16 64 0B 1C
X: 2
C: 16 66 00
W: 16 00 0A 1F 00 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
W: 16 64 09 20
X: 2
C: 16 66 00
W: 16 00 08
W: 16 64 08 00
X: 2
C: 16 66 00
C: 16 04 2B 40
W: 16 00 05
W: 16 64 05 00
X: 170
C: 16 66 00
C: 16 04 30 38 7B EA
W: 16 00 01 00 00 05 54 54 15
W: 16 64 C3 00
X: 20
C: 16 66 00
W: 16 00 05
W: 16 64 05 00
X: 170
C: 16 66 00
C: 16 04 85 8C 50 EA
;--------------------------------------------------------
;Execute Flash Code
;--------------------------------------------------------
W: 16 00 0F
W: 16 64 0F 00
X: 4000

Hello, 

I'm seeing a problem where I try to execute the attached commands. On the suggestions of other users of this part I extend all timeouts by a factor of 10 or to a minimum of 200ms.

When I get to line 179 of the attached file, instead of reading 0x30, 0x38, 0x7b, 0xea from address 0x16, offset 0x04, I read 0xb5, 0x44, 0x6a, 0xd4. 

Can anyone point to documentation of what these values might be, or suggest why the device is not behaving as expected? I think the previous command that is successful is validating a checksum, so I'm completely lost at this point. 

I'm using an STM32F407 with the HAL i2c interface, provided an abstraction layer for reads/compares that writes or compares one byte at a time, incrementing the offset by 1. I would expect a bug in that interface to surface much before all the way down on line 179.

All other writes/compares are successful until this point. 

TIA,

Matthew

  • Hi Matthew,

    How fast are the commands being sent? The X: command indicates the minimum time to wait before sending the next command.

    Please set timeouts to at least 180 ms and utilize the delays in the the file stream output.

    Sincerely,
    Bryan Kahler
  • I have implemented the X command as a wait as specified. As I said, for every X command in the filestream file I have increased delays to at least 200ms or to 10x the value specified, whichever is longer. I see this behavior WITH those waits.

  • I'd like to amend my statement to reflect that I fail actually the first time I run the below operation in the file, not the second time.
    C: 16 04 30 38 7B EA
  • Hi Matthew,

    Could you please instrument this with a logic analyzer?

    Trying to reproduce on this end.

    Sincerely,
    Bryan Kahler

  • I can do that but I can't seem to find a reliable ground nearby that I can scope, so I'm picking up a good bit of intermittent noise. I'm also having some driver issues with my logic analyzer on ubuntu. 

    What cases would the device NAK writes? 

  • The logic analyzer is saying that the device is NAKing reads. I'm not sure if that's important. Here's the decoded capture with a representative screenshot. I have the entire dataset for this as a CSV if you'd like it, but it's 1.8GB. 

    Time [s], Analyzer Name, Decoded Protocol Result
    2.306539800000000,I2C,Setup Write to ['22'] + ACK
    2.306629800000000,I2C,'0' + ACK
    2.306760040000000,I2C,'3' + ACK
    2.306872480000000,I2C,'0' + ACK
    2.306983920000000,I2C,'0' + ACK
    2.370706840000000,I2C,Setup Write to ['22'] + ACK
    2.370796840000000,I2C,d + ACK
    2.370927600000000,I2C,'3' + ACK
    2.371033320000000,I2C,'0' + ACK
    2.484996880000000,I2C,Setup Write to ['22'] + ACK
    2.485086880000000,I2C,f + ACK
    2.485235480000000,I2C,Setup Read to ['23'] + ACK
    2.485371800000000,I2C,'0' + NAK
    2.549293240000000,I2C,Setup Write to ['22'] + ACK
    2.549383200000000,I2C,'0' + ACK
    2.549515040000000,I2C,'2' + ACK
    2.549629360000000,I2C,'0' + ACK
    2.549740880000000,I2C,'0' + ACK
    2.549852400000000,I2C,'0' + ACK
    2.549963880000000,I2C,'234' + ACK
    2.550075360000000,I2C,'255' + ACK
    2.550186840000000,I2C,3 + ACK
    2.550298240000000,I2C,'177' + ACK
    2.614571960000000,I2C,Setup Write to ['22'] + ACK
    2.614661960000000,I2C,'8' + ACK
    2.614793280000000,I2C,'250' + ACK
    2.614903840000000,I2C,3 + ACK
    2.615015240000000,I2C,l + ACK
    2.615126680000000,I2C,'251' + ACK
    2.615238160000000,I2C,3 + ACK
    2.615349560000000,I2C,'149' + ACK
    2.615461040000000,I2C,'254' + ACK
    2.615572520000000,I2C,3 + ACK
    2.680193440000000,I2C,Setup Write to ['22'] + ACK
    2.680283440000000,I2C,'16' + ACK
    2.680414720000000,I2C,'173' + ACK
    2.680527120000000,I2C,'254' + ACK
    2.680638600000000,I2C,3 + ACK
    2.680750040000000,I2C,'255' + ACK
    2.680861520000000,I2C,'255' + ACK
    2.680972920000000,I2C,? + ACK
    2.681084400000000,I2C,'255' + ACK
    2.681195880000000,I2C,'255' + ACK
    2.745204560000000,I2C,Setup Write to ['22'] + ACK
    2.745294560000000,I2C,'24' + ACK
    2.745425760000000,I2C,? + ACK
    2.745537360000000,I2C,'255' + ACK
    2.745647920000000,I2C,'255' + ACK
    2.745758520000000,I2C,? + ACK
    2.745869120000000,I2C,'255' + ACK
    2.745979720000000,I2C,'255' + ACK
    2.746090240000000,I2C,? + ACK
    2.746200840000000,I2C,'255' + ACK
    2.810020960000000,I2C,Setup Write to ['22'] + ACK
    2.810110960000000,I2C,' ' + ACK
    2.810242320000000,I2C,'255' + ACK
    2.810353920000000,I2C,? + ACK
    2.810466440000000,I2C,'255' + ACK
    2.810579000000000,I2C,'255' + ACK
    2.810691560000000,I2C,? + ACK
    2.810804120000000,I2C,'255' + ACK
    2.810916680000000,I2C,'255' + ACK
    2.811029240000000,I2C,? + ACK
    2.875025880000000,I2C,Setup Write to ['22'] + ACK
    2.875115920000000,I2C,( + ACK
    2.875247080000000,I2C,'255' + ACK
    2.875357680000000,I2C,'255' + ACK
    2.875469120000000,I2C,? + ACK
    2.875580640000000,I2C,'255' + ACK
    2.875692200000000,I2C,'255' + ACK
    2.875803680000000,I2C,? + ACK
    2.875915200000000,I2C,'255' + ACK
    2.876026720000000,I2C,'255' + ACK
    2.940019920000000,I2C,Setup Write to ['22'] + ACK
    2.940109920000000,I2C,0 + ACK
    2.940241080000000,I2C,? + ACK
    2.940351640000000,I2C,'255' + ACK
    2.940463160000000,I2C,'255' + ACK
    2.940574600000000,I2C,? + ACK
    2.940686120000000,I2C,'22' + ACK
    2.940797680000000,I2C,'0' + ACK
    2.940909120000000,I2C,? + ACK
    2.941020640000000,I2C,X + ACK
    3.005076680000000,I2C,Setup Write to ['22'] + ACK
    3.005166680000000,I2C,8 + ACK
    3.005297560000000,I2C,'203' + ACK
    3.005408120000000,I2C,3 + ACK
    3.005519600000000,I2C,'195' + ACK
    3.005631120000000,I2C,'0' + ACK
    3.005742560000000,I2C,'8' + ACK
    3.005854080000000,I2C,'17' + ACK
    3.005965520000000,I2C,'0' + ACK
    3.006077000000000,I2C,'0' + ACK
    3.069884480000000,I2C,Setup Write to ['22'] + ACK
    3.069974480000000,I2C,@ + ACK
    3.070106640000000,I2C,'0' + ACK
    3.070217240000000,I2C,'0' + ACK
    3.070328720000000,I2C,'0' + ACK
    3.070440120000000,I2C,'255' + ACK
    3.070551640000000,I2C,'170' + ACK
    3.070663200000000,I2C,'14' + ACK
    3.070774600000000,I2C,'251' + ACK
    3.070886120000000,I2C,'167' + ACK
    3.135094960000000,I2C,Setup Write to ['22'] + ACK
    3.135184960000000,I2C,H + ACK
    3.135316080000000,I2C,'14' + ACK
    3.135426600000000,I2C,'255' + ACK
    3.135538000000000,I2C,'166' + ACK
    3.135649560000000,I2C,'14' + ACK
    3.135761080000000,I2C,'255' + ACK
    3.135872600000000,I2C,'161' + ACK
    3.135984160000000,I2C,'14' + ACK
    3.136095640000000,I2C,'255' + ACK
    3.199846320000000,I2C,Setup Write to ['22'] + ACK
    3.199936320000000,I2C,P + ACK
    3.200068040000000,I2C,'160' + ACK
    3.200178600000000,I2C,'14' + ACK
    3.200290120000000,I2C,'254' + ACK
    3.200401640000000,I2C,'163' + ACK
    3.200513080000000,I2C,'14' + ACK
    3.200624680000000,I2C,a + ACK
    3.200736200000000,I2C,'162' + ACK
    3.200847760000000,I2C,'14' + ACK
    3.264658480000000,I2C,Setup Write to ['22'] + ACK
    3.264748480000000,I2C,X + ACK
    3.264879440000000,I2C,'222' + ACK
    3.264990000000000,I2C,'255' + ACK
    3.265101640000000,I2C,: + ACK
    3.265213200000000,I2C,e + ACK
    3.265324720000000,I2C,'255' + ACK
    3.265436280000000,I2C,: + ACK
    3.265547800000000,I2C,'226' + ACK
    3.265659280000000,I2C,'255' + ACK
    3.329969760000000,I2C,Setup Write to ['22'] + ACK
    3.330059760000000,I2C,` + ACK
    3.330190760000000,I2C,3 + ACK
    3.330301280000000,I2C,'255' + ACK
    3.330412840000000,I2C,'175' + ACK
    3.330524360000000,I2C,'14' + ACK
    3.394244760000000,I2C,Setup Write to ['22'] + ACK
    3.394334760000000,I2C,d + ACK
    3.394464880000000,I2C,'26' + ACK
    3.394569760000000,I2C,7 + ACK
    5.510688000000000,I2C,Setup Write to ['22'] + ACK
    5.510778000000000,I2C,f + ACK
    5.510926080000000,I2C,Setup Read to ['23'] + ACK
    5.511062400000000,I2C,'0' + NAK
    5.575502160000000,I2C,Setup Write to ['22'] + ACK
    5.575592160000000,I2C,'0' + ACK
    5.575723680000000,I2C,'2' + ACK
    5.575836160000000,I2C,'1' + ACK
    5.575947680000000,I2C,'0' + ACK
    5.576059160000000,I2C,'0' + ACK
    5.576170640000000,I2C,'1' + ACK
    5.576282160000000,I2C,O + ACK
    5.576393640000000,I2C,'3' + ACK
    5.576505040000000,I2C,? + ACK
    5.640600360000000,I2C,Setup Write to ['22'] + ACK
    5.640690360000000,I2C,'8' + ACK
    5.640822600000000,I2C,'17' + ACK
    5.640934960000000,I2C,'12' + ACK
    5.641046480000000,I2C,'217' + ACK
    5.641158000000000,I2C,'255' + ACK
    5.641269440000000,I2C,0 + ACK
    5.641381000000000,I2C,'224' + ACK
    5.641492520000000,I2C,'255' + ACK
    5.641604000000000,I2C,5 + ACK
    5.705423040000000,I2C,Setup Write to ['22'] + ACK
    5.705513080000000,I2C,'16' + ACK
    5.705644040000000,I2C,/ + ACK
    5.705754560000000,I2C,'16' + ACK
    5.705866080000000,I2C,'12' + ACK
    5.705977520000000,I2C,'224' + ACK
    5.706088960000000,I2C,'255' + ACK
    5.706200440000000,I2C,5 + ACK
    5.706311960000000,I2C,'255' + ACK
    5.706423480000000,I2C,'255' + ACK
    5.770577600000000,I2C,Setup Write to ['22'] + ACK
    5.770667640000000,I2C,'24' + ACK
    5.770799920000000,I2C,# + ACK
    5.770911560000000,I2C,'255' + ACK
    5.771024040000000,I2C,'223' + ACK
    5.771136560000000,I2C,'11' + ACK
    5.771249160000000,I2C,'216' + ACK
    5.771361680000000,I2C,'255' + ACK
    5.771474280000000,I2C,3 + ACK
    5.771586840000000,I2C,'227' + ACK
    5.835580320000000,I2C,Setup Write to ['22'] + ACK
    5.835670320000000,I2C,' ' + ACK
    5.835800840000000,I2C,'175' + ACK
    5.835911320000000,I2C,'4' + ACK
    5.836022800000000,I2C,'226' + ACK
    5.836134320000000,I2C,'191' + ACK
    5.836245880000000,I2C,'4' + ACK
    5.836357320000000,I2C,'207' + ACK
    5.836468920000000,I2C,'255' + ACK
    5.836580360000000,I2C,6 + ACK
    5.901059520000000,I2C,Setup Write to ['22'] + ACK
    5.901149520000000,I2C,( + ACK
    5.901280480000000,I2C,'226' + ACK
    5.901392840000000,I2C,'160' + ACK
    5.901504360000000,I2C,'4' + ACK
    5.901615840000000,I2C,'227' + ACK
    5.901727280000000,I2C,'161' + ACK
    5.901838760000000,I2C,'4' + ACK
    5.901950280000000,I2C,'0' + ACK
    5.902061720000000,I2C,'199' + ACK
    5.966231080000000,I2C,Setup Write to ['22'] + ACK
    5.966321080000000,I2C,0 + ACK
    5.966451440000000,I2C,'2' + ACK
    5.966562000000000,I2C,'1' + ACK
    5.966673440000000,I2C,'198' + ACK
    5.966785040000000,I2C,'2' + ACK
    5.966896480000000,I2C,'229' + ACK
    5.967008040000000,I2C,'175' + ACK
    5.967119480000000,I2C,'4' + ACK
    5.967230920000000,I2C,'227' + ACK
    6.031359320000000,I2C,Setup Write to ['22'] + ACK
    6.031449320000000,I2C,8 + ACK
    6.031580920000000,I2C,'191' + ACK
    6.031691520000000,I2C,'1' + ACK
    6.031802960000000,I2C,'228' + ACK
    6.031914480000000,I2C,'175' + ACK
    6.032025960000000,I2C,'4' + ACK
    6.032137520000000,I2C,'226' + ACK
    6.032248960000000,I2C,'191' + ACK
    6.032360440000000,I2C,'1' + ACK
    6.096509400000000,I2C,Setup Write to ['22'] + ACK
    6.096599400000000,I2C,@ + ACK
    6.096730240000000,I2C,'255' + ACK
    6.096840720000000,I2C,'172' + ACK
    6.096952160000000,I2C,'14' + ACK
    6.097063640000000,I2C,'225' + ACK
    6.097175120000000,I2C,'28' + ACK
    6.097286520000000,I2C,'4' + ACK
    6.097398000000000,I2C,'136' + ACK
    6.097509480000000,I2C,'255' + ACK
    6.161410160000000,I2C,Setup Write to ['22'] + ACK
    6.161500160000000,I2C,H + ACK
    6.161631920000000,I2C,1 + ACK
    6.161743480000000,I2C,'226' + ACK
    6.161856040000000,I2C,'160' + ACK
    6.161968640000000,I2C,'4' + ACK
    6.162081080000000,I2C,'227' + ACK
    6.162193600000000,I2C,'161' + ACK
    6.162306080000000,I2C,'4' + ACK
    6.162418600000000,I2C,'2' + ACK
    6.226334920000000,I2C,Setup Write to ['22'] + ACK
    6.226424960000000,I2C,P + ACK
    6.226555280000000,I2C,'171' + ACK
    6.226665880000000,I2C,'24' + ACK
    6.226777360000000,I2C,'127' + ACK
    6.226888800000000,I2C,+ + ACK
    6.227000360000000,I2C,'14' + ACK
    6.227111840000000,I2C,'255' + ACK
    6.227223320000000,I2C,'27' + ACK
    6.227334800000000,I2C,'14' + ACK
    6.291101320000000,I2C,Setup Write to ['22'] + ACK
    6.291191320000000,I2C,X + ACK
    6.291322960000000,I2C,'189' + ACK
    6.291435400000000,I2C,'255' + ACK
    6.291546840000000,I2C,2 + ACK
    6.291658280000000,I2C,'252' + ACK
    6.291769840000000,I2C,'250' + ACK
    6.291881360000000,I2C,'14' + ACK
    6.291992760000000,I2C,'251' + ACK
    6.292104280000000,I2C,'175' + ACK
    6.355873440000000,I2C,Setup Write to ['22'] + ACK
    6.355963400000000,I2C,` + ACK
    6.356094440000000,I2C,'12' + ACK
    6.356204960000000,I2C,'2' + ACK
    6.356316440000000,I2C,+ + ACK
    6.356427920000000,I2C,'24' + ACK
    6.420305480000000,I2C,Setup Write to ['22'] + ACK
    6.420395480000000,I2C,d + ACK
    6.420527080000000,I2C,'166' + ACK
    6.420632800000000,I2C,- + ACK
    8.535332680000000,I2C,Setup Write to ['22'] + ACK
    8.535422680000000,I2C,f + ACK
    8.535570600000000,I2C,Setup Read to ['23'] + ACK
    8.535706920000001,I2C,'0' + NAK
    8.599473840000000,I2C,Setup Write to ['22'] + ACK
    8.599563840000000,I2C,'0' + ACK
    8.599695600000000,I2C,'5' + ACK
    8.664242000000000,I2C,Setup Write to ['22'] + ACK
    8.664332040000000,I2C,d + ACK
    8.664462920000000,I2C,'5' + ACK
    8.664567720000001,I2C,'0' + ACK
    9.779332480000001,I2C,Setup Write to ['22'] + ACK
    9.779422479999999,I2C,f + ACK
    9.779571160000000,I2C,Setup Read to ['23'] + ACK
    9.779709120000000,I2C,'0' + NAK
    9.844013840000001,I2C,Setup Write to ['22'] + ACK
    9.844103840000001,I2C,'4' + ACK
    9.844251200000000,I2C,Setup Read to ['23'] + ACK
    9.844387520000000,I2C,'181' + NAK
    9.845121320000001,I2C,Setup Write to ['22'] + ACK
    9.845211320000001,I2C,'5' + ACK
    9.845359159999999,I2C,Setup Read to ['23'] + ACK
    9.845495520000000,I2C,D + NAK
    9.846230159999999,I2C,Setup Write to ['22'] + ACK
    9.846320159999999,I2C,'6' + ACK
    9.846467440000000,I2C,Setup Read to ['23'] + ACK
    9.846603800000000,I2C,j + NAK
    9.847337400000001,I2C,Setup Write to ['22'] + ACK
    9.847427440000001,I2C,'7' + ACK
    9.847575800000000,I2C,Setup Read to ['23'] + ACK
    9.847712200000000,I2C,'212' + NAK
    

  • Hi Matthew,

    It looks like the device is clock stretching and the host mcu is not handling it properly. As I can't share third party links, please use a search engine with the terms"stm hal i2c clock stretch fail"

    Sincerely,
    Bryan Kahler
  • Bryan,

    I'm trying to find helpful information on that topic, but everything seems to be discussions of exceeding the i2c specification with a debugger, getting the clock and data pins backwards, or disabling stretching.

    I'm convinced I don't have these specific issues. I'm not using the MspInit function, but am using an analog to interface with the HAL with what I believe is a correct implementation for pin configuration. We also talk to a bno055 which uses clock stretching with the same peripheral functions, though that is using a DMA engine for transactions as opposed to our processor. 

    Thanks,

    Matthew

  • Hi Matthew,

    Please hook up the device to an EV2400 and your system. Also hook up a logic analyzer. Launch bqStudio and perform the same task in bqStudio while capturing the traffic with the logic analyzer. The expectation here is that the EV2400 and bqStudio will handle the transaction.

    Please do the same with your device and the STM part and compare the two logs to determine the difference in how the command was handled by the STM device and the EV2400.

    Sincerely,
    Bryan Kahler