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.

BQ34110: Data Flash writing not appearing to work

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

Hello,

I recently acquired a bq34110 along with an ev2400 adapter, and am running bqstudio (with the latest version and firmware installed) to interact. Upon reading the documentation related to the bq34110 (specifically the technical reference manual and "Using I2C Communications With the bq34110, bq35100, and bq34z100-G1 Seriers of Gas Guages"), I began to perform some I2C communications in order to practice reading and writing various fields from the board. Upon starting with the data flash memory, however, I began to ran into some issues. I am able to read data flash just fine, but I am unable to write to data flash memory, despite following the documents step-by-step. I checked to see if the board was in full access mode (which it is), and I have voltage at a stable 3V (above the 2.8V minimum for Flash Update OK Voltage). Attached is a screenshot of the logs for one of the memory addresses I have tried to write to, but to no avail.

Attempting to write to Manufacturer Info Block A06 (attempt to write 22, current value is 00)

  • Hi Moises,
    In the TRM (section 4.4), it describes the command to write to the Manufacturing Information Block. There is also an app note available that describes the I2C in more detail: www.ti.com/.../slua790.pdf.
    Let me know if this helps,
    Matt
  • Hi Matt,

    I already looked through the trm and I2C-specific documentation in regards to writing to the Manufacturing Information Block. I have attempted to follow the documentation step-by-step in order to try and get the writes to go through, but no luck. I tried again after reading your post, but still nothing. Here's the logs of that second attempt.

    (Still trying to write to block A06; write value 12, current value is 22)

  • Moises,

    I think I see the problem. You are writing '36 7d' to address 60 (MacDataLen). You have the right idea - this should be the length command, data, checksum, and length bytes. However, you need to convert the '36' to hex. Instead, write '24 7d' to address 60. 

    Otherwise, your steps are correct. Another thing to watch out for - make sure the device is unsealed. I think this is not an issue in your case because you were able to modify the value in the Data Flash window when you set the data to '22'.

    Best regards,

    Matt

  • Matt,

    So I definitely didn't notice that I had the data length in decimal. I converted it to hex, and left everything else the same, but still nothing.

    And yes, the device is in unsealed mode. I've been modifying the memory through the data memory window, as you said. Although I'm trying to rely on the I2C communications to do the modifying vs. the data mem. window.

    Screenshot of my recent attempt:

  • Moises,

    It works when I try it. Please see the screenshot below.

  • Ok, it seems to work now! Thanks for the help.

    Here's what I did (I tried two different values just to make sure):