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.

BQ78350-R1: CRC Calculation on ManufactureAccess

Part Number: BQ78350-R1
Other Parts Discussed in Thread: BQSTUDIO

Hi,

I'm in the middle of implementing bq78350-r1 communication via SMBUS.

So far everything is working, but one thing I can't figure out with CRC:

When I do a normal read for instance SoC, I do receive from bq78350-r1 a CRC, which I can also calculate. For example:

Read SoC (0x0d) leads to following response: 64 00 92

0x92 is the CRC received from bq78350-r1

So if we calculate the CRC with the following data like described in www.ti.com/.../slua475.pdf:

0x16 (slaveID) 0x0d (memAddr) 0x17 (slaveID) 0x64 (data) 0x00 (data) the result is: 0x92

It can be checked also here: www.sunshine2k.de/.../crc_js.html

But If I execute a read command with manufacture Access, e.g. for the Manufacturing Status (0x0057), I receive the following data: 0x2 0x10 0x00 0x84

0x84 is the CRC received from bq78350-r1

The received data is correct, I checked it with bqstudio, so I don't think it is a hardware communication problem here.

No matter how I try to calculate CRC from that, I never get the CRC, which I receive from the chip.

I would guess it's the same logic for crc data packet like:

0x16 (slaveID) 0x44 (memAddrBlockAccess) 0x17 (slaveID) 0x2 0x10 0x00 

But that matches not the received CRC. Can you please help me which bytes are taken into account in CRC calculation on a ManufactureAccess Read?

Thanks in advance

Paul

I also tried to insert the