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.

MCF8316A: I2C address NACK after a few reads with motor off

Part Number: MCF8316A

We're currently trying to implement I2C communication between a NXP S12ZVL and the MCF8316A.

Following hardware is being used:
- DEVKIT-ZVL128
- MCF8316AEVM

The ZVL128 Devkit has been modified to allow I2C-Communication via the J0/J1 pins (resistors to the CAN transceiver removed).

The issue is as follows:
I'm trying to read one register in 32bit-mode every 100ms (currently just for testing the implementation).
The read is successful for the first four times, then on the fifth time, when the master sends the address byte, the slave NACKs it.
Consecutive read attempts always result in a NACK at the address byte.

The motor is not running (speed set by potentiometer 0), I also tried with setting DRVOFF.
I already tried changing the time between reads, but it is always the fifth read where it starts failing.
The 100µs wait time between bytes is implemented.

According to the Errata thread, #8 mentions that I cannot read registers while the motor is running, how is this with writing registers?
We intend to control the devices "live" over I2C. If that's also causing troubles we will have to change our hardware design to include the according control pins.

The related question mentions a "B version" of this chip that fixes some of the issues related to I2C. Is it already available? How would I recognize one of these?

  • I checked over all our code again and it turned out that we have set the DLEN value wrong (64 bit instead 32 bit), so the communication locked up after 4 communication attempts.
    Setting this to the correct value fixed this issue.

    I'm still interested in the "B version" of the chip, and how to recognize it if it is already out in the wild.