Other Parts Discussed in Thread: EV2400
Hi,
We had been trying to read the SafetyStatus() of the AltManufacturerAccess(). We had connected our battery pack with fuel gauge to EV2400 and issued the following commands in the Battery Management Studio (BMS):
We have a custom MCU board and we were bale to properly read values from the Standard I2C commands and we were able to read the Chemical ID from the AltManufacturerAccess(). Following the methods in reading the Chem ID, we decided to read the SafetyStatus() to see if the fuel gauge encountered any error (overtemperature, charging timeout, etc).
The following were the sequence of commands we issued via I2C:
- We wrote Data = 0x2100 (little endian) to register 3E.
- We then wrote Data = 0x5100 (little Endian of SafetyStatus())
- We then read 36 bytes from register 0x3E.
- The first 2 bytes of the read data is for MAC verification of SafetyStatus
- The 3rd to 6th bytes are the 32-bit value of SafetyStatus().
Our commands sent in the BMS has the correct MAC verification for SafetyStatus(). Using the sequence listed above, we issued the same set of commands using our custom MCU board and we also used the same fuel gauge we used for the BMS.
We issued the same commands, 0x2100 to register 0x3E followed by writing data 0x5100 to 0x3E. We were expecting the read data to start with 0x5100 as shown in the BMS screenshot above however, using our custom MCU board, we received 0xC611 as the MAC Verification.
This is the same sequence we used for reading the Chem ID except for the Chem ID we used 0x0600 (little endian) as the MAC command instead of 0x5100. Our Chem ID had the correct MAC Verification response but we just kept on receiving the wrong MAC verification for the SafetyStatus().
Can anyone verify if our write command sequence is correct?
Thanks,
Kat