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.

BQ28Z610EVM-532: 1 cell configuration using external MCU

Part Number: BQ28Z610EVM-532
Other Parts Discussed in Thread: BQ28Z610

Hello,

I am trying to configure the BQ28Z610 through I2C using an external MCU. 

I used this example to write a code that writes in the flash memory at the address 0x469B to write the value 0x10 (such that the BQ will be configured for 1 cell): https://e2e.ti.com/support/power-management/f/196/t/632332?BQ28Z610-I-can-t-write-Data-Flash but there is no change in the configuration. Also I saw in the technical guide that MACData(),  MACDataChecksum() and 0x61 MACDataLength() are read only, so how can I write in those registers? 

Can someone help me with an example specific to this configuration change, it would help a lot.

Thank you!

  • Hi Florin,

    You do need to write the checksum and the length.

    1. Write to 0x3E ( AltManufacturingAccess) the MAC address (little endian) followed by the data to write ( Note: Minimum data is 1 and maximum is 32 )
    2. Write to 0x60 ( MacDataChecksum ) the checksum calculated as per below
    3. Write to 0x61 ( MacDataLength ) the total number of bytes written including the MAC address, data bytes, checksum, and MACDataLength itself
    4. Read back from MAC address to verify (Write address to read to 0x3E and read back desired number of bytes)

    For example, to write [0x1, 0x2, 0x3, 0x4] to MAC address 0x4700 :

    [ Start (W) ] 0x3E 0x00 0x47 0x01 0x02 0x03 0x04 [ Stop ]

    [ Start (W) ] 0x60 0xAE 0x08 [ Stop ]

    [ Start (W) ] 0x3E 0x00 0x47 [ Start (R) ] ( read number of bytes ) [ Stop ]

    Checksum Calculation:

    Checksum = 0xFF - LSB( ADDR1 + ADDR2 + D1 + D2... + Dn )

    Best regards,

    Matt