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.

MCF8316AEVM: start-up sequence and subsequent NAK crash

Part Number: MCF8316AEVM
Other Parts Discussed in Thread: MCF8316A

Hi Ti team,

We have finally got our motor to rotate using the SMT32 disco board (I2C). But when we try to stop it (set 0 I2C Duty), it starts sending NAK.

Below is the crash sequence for the above issue (its pretty much an output from the Logic Analyzer with our comments included)

Any help in resolving this issue is greatly appreciated.

Thanks,

Kamesh

Initialize registers.
write to 0x60 ack data: 0x50 0x04 0xBC 0x8C 0x6C 0x5C 0xF8 0x2D
write to 0x60 ack data: 0x50 0x04 0xBA 0x6A 0x4A 0xA4 0xFD 0xEF
write to 0x60 ack data: 0x50 0x07 0x34 0x00 0x00 0x00 0x00 0x28
write to 0x60 ack data: 0x50 0x07 0x36 0x00 0x00 0x00 0x00 0xEC
write to 0x60 ack data: 0x50 0x07 0x26 0x00 0x00 0x00 0x00 0xDE
write to 0x60 ack data: 0x50 0x07 0x24 0x00 0x00 0x00 0x00 0x1A
write to 0x60 ack data: 0x50 0x05 0x22 0x00 0x00 0x00 0x00 0x03
write to 0x60 ack data: 0x50 0x05 0x46 0x20 0x27 0x33 0x03 0x74
write to 0x60 ack data: 0x50 0x05 0x38 0x00 0x00 0x00 0x00 0xEC
write to 0x60 ack data: 0x50 0x06 0x72 0x5E 0x14 0x00 0x00 0xB3
write to 0x60 ack data: 0x50 0x06 0xDE 0x78 0xA5 0x33 0x04 0x37
write to 0x60 ack data: 0x50 0x04 0x44 0x00 0x00 0x01 0x00 0xD8
write to 0x60 ack data: 0x50 0x04 0x42 0x00 0x00 0x09 0x00 0x3B
write to 0x60 ack data: 0x50 0x04 0x40 0x00 0x00 0xF6 0xFF 0xDB
write to 0x60 ack data: 0x40 0x02 0x0E 0x00 0x00 0xFD
write to 0x60 ack data: 0x40 0x06 0x68 0x03 0x00 0x22
write to 0x60 ack data: 0x40 0x06 0x9A 0x0B 0x00 0x30
write to 0x60 ack data: 0x50 0x04 0x10 0x23 0x1D 0x00 0x00 0x7F
write to 0x60 ack data: 0x50 0x04 0xD8 0xCE 0x24 0xE7 0xFF 0xA3
write to 0x60 ack data: 0x50 0x04 0xD6 0xBA 0x90 0xF0 0x00 0x15
write to 0x60 ack data: 0x50 0x04 0xD4 0xDC 0xC8 0x14 0x00 0x92
write to 0x60 ack data: 0x50 0x04 0xD2 0x00 0x00 0x20 0x00 0x8D
write to 0x60 ack data: 0x50 0x04 0xE8 0x46 0x5C 0x1C 0x00 0x32
write to 0x60 ack data: 0x50 0x04 0xE6 0x47 0x74 0xF8 0xFF 0x80
write to 0x60 ack data: 0x50 0x04 0xE4 0x1E 0x36 0xF4 0xFF 0xB2
write to 0x60 ack data: 0x50 0x04 0xE2 0x9C 0xC3 0xDB 0xFF 0x25
write to 0x60 ack data: 0x50 0x05 0xF0 0x3E 0x74 0xE6 0xFF 0xC5
write to 0x60 ack data: 0x50 0x05 0xEE 0x00 0x00 0x00 0x00 0xCA
write to 0x60 ack data: 0x50 0x04 0x82 0xAE 0x61 0x20 0x00 0xE2
write to 0x60 ack data: 0x50 0x04 0x80 0x00 0x00 0x00 0x00 0x1D
write to 0x60 ack data: 0x50 0x04 0x7E 0xAE 0x62 0x02 0x00 0x44
write to 0x60 ack data: 0x40 0x04 0x68 0x03 0x00 0x0E
write to 0x60 ack data: 0x40 0x04 0x78 0x02 0x00 0xB9
write to 0x60 ack data: 0x50 0x04 0x7A 0x00 0x40 0x9E 0x01 0x7F
write to 0x60 ack data: 0x50 0x05 0xC8 0x00 0x00 0x00 0x00 0xE5
write to 0x60 ack data: 0x50 0x00 0xF2 0x00 0x00 0x00 0x00 0xE3
write to 0x60 ack data: 0x50 0x00 0xF0 0x45 0xF0 0x01 0x00 0x8B
write to 0x60 ack data: 0x50 0x00 0xEE 0x00 0x00 0x00 0x00 0x47
write to 0x60 ack data: 0x50 0x00 0xEC 0x00 0x00 0x00 0x80 0x0A
write to 0x60 ack data: 0x50 0x00 0xEA 0x00 0x00 0x00 0x00 0xC8
write to 0x60 ack data: 0x50 0x00 0xE8 0x00 0x00 0x00 0x0A 0x3A
write to 0x60 ack data: 0x50 0x00 0xE6 0x00 0x00 0x00 0x00 0x5E
write to 0x60 ack data: 0x50 0x00 0xE4 0x00 0x00 0x31 0x0D 0x55
write to 0x60 ack data: 0x50 0x00 0xE2 0x00 0x00 0x00 0x00 0xD1
write to 0x60 ack data: 0x50 0x00 0xE0 0x00 0x00 0x00 0x00 0x15
write to 0x60 ack data: 0x50 0x00 0xA2 0xA7 0x01 0x00 0x00 0xEF
write to 0x60 ack data: 0x50 0x00 0xA0 0xFD 0x10 0xB3 0x04 0xEE
write to 0x60 ack data: 0x50 0x00 0xAE 0x00 0x00 0x20 0x00 0x21
write to 0x60 ack data: 0x50 0x00 0xAC 0x00 0x01 0x40 0x1C 0x2F
write to 0x60 ack data: 0x50 0x00 0xAA 0x00 0x00 0x00 0x40 0xC7
write to 0x60 ack data: 0x50 0x00 0xAE 0x00 0x30 0x00 0x00 0x6E
write to 0x60 ack data: 0x50 0x00 0xA6 0x00 0x00 0x00 0x18 0xDE
write to 0x60 ack data: 0x50 0x00 0xA4 0x80 0xE4 0xD0 0x2D 0x7F
write to 0x60 ack data: 0x50 0x00 0x92 0x00 0x80 0xC0 0x64 0x92
write to 0x60 ack data: 0x50 0x00 0xA6 0x00 0x00 0x00 0x18 0xDE
write to 0x60 ack data: 0x50 0x00 0x90 0x0E 0x82 0xE8 0x17 0x1C
write to 0x60 ack data: 0x50 0x00 0x9E 0x00 0x00 0x00 0x00 0xD9
write to 0x60 ack data: 0x50 0x00 0x9C 0x00 0x00 0x00 0x00 0x1D
write to 0x60 ack data: 0x50 0x00 0x9A 0x00 0x00 0x00 0x00 0x56
write to 0x60 ack data: 0x50 0x00 0x98 0x00 0x00 0x00 0x00 0x92
write to 0x60 ack data: 0x50 0x00 0x96 0x00 0x00 0x00 0x00 0xC0
write to 0x60 ack data: 0x50 0x00 0x94 0x00 0x00 0x00 0x00 0x04
write to 0x60 ack data: 0x50 0x00 0x8E 0xC6 0x49 0x00 0x0A 0xBF
write to 0x60 ack data: 0x50 0x00 0x8C 0x00 0x00 0x80 0x1C 0xCD
write to 0x60 ack data: 0x50 0x00 0x8A 0x22 0xD9 0xAD 0x1A 0x24
write to 0x60 ack data: 0x50 0x00 0x88 0xB0 0x01 0x35 0x15 0x80
write to 0x60 ack data: 0x50 0x00 0x86 0x04 0x60 0x86 0x13 0xDE
write to 0x60 ack data: 0x50 0x00 0x84 0xD4 0x07 0x60 0x0B 0x71
write to 0x60 ack data: 0x50 0x00 0x82 0x64 0xF0 0x3A 0x28 0xBF
write to 0x60 ack data: 0x50 0x00 0x80 0x20 0x8C 0x63 0x44 0x97

Read pin_config.
write to 0x60 ack data: 0xD0 0x00 0xA4
read to 0x60 ack data: 0x80 0xE4 0xD0 0x2D 0x16

Set BRAKE_INPUT_ON in pin_config.
write to 0x60 ack data: 0x50 0x00 0xA4 0x82 0xE4 0xD0 0x2D 0x53

Zero out DIGITAL_SPEED_CTRL in algo_debug1
write to 0x60 ack data: 0x50 0x00 0xEC 0x00 0x00 0x00 0x80 0x0A

Set CLR_FLT and CLR_FLT_RETRY_COUNT in algo_debug1
write to 0x60 ack data: 0x50 0x00 0xEA 0x00 0x00 0x00 0xB0 0xD1

Reset CLR_FLT and CLR_FLT_RETRY_COUNT in algo_debug1
write to 0x60 ack data: 0x50 0x00 0xEA 0x00 0x00 0x00 0x80 0x41

Read pin_config.
write to 0x60 ack data: 0xD0 0x00 0xA4
read to 0x60 ack data: 0x82 0xE4 0xD0 0x2D 0x3A

Reset BRAKE_INPUT_ON in pin_config.
write to 0x60 ack data: 0x50 0x00 0xA4 0x84 0xE4 0xD0 0x2D 0x27

Set DIGITAL_SPEED_CTLR ~50&.
write to 0x60 ack data: 0x50 0x00 0xEC 0x00 0x00 0x00 0xD9 0x82

Start polling gate_drive_fault, controller_drive_fault and
algorithm_state looking either for a fault or
MOTOR_CLOSED_LOOP_ALIGNED
write to 0x60 ack data: 0xD0 0x00 0xE0
read to 0x60 ack data: 0x00 0x00 0x00 0x00 0xE9
write to 0x60 ack data: 0xD0 0x00 0xE2
read to 0x60 ack data: 0x00 0x00 0x00 0x00 0xBB
write to 0x60 ack data: 0xC0 0x02 0x0E
read to 0x60 ack data: 0x06 0x00
write to 0x60 ack data: 0xD0 0x00 0xE0
read to 0x60 ack data: 0x06 0x00 0x89 0x00 0x00
write to 0x60 ack data: 0xD0 0x00 0xE2
read to 0x60 ack data: 0x00 0x00 0x00 0x00 0xE9
write to 0x60 ack data: 0xC0 0x02 0x0E
read to 0x60 ack data: 0x00 0x00
write to 0x60 ack data: 0xD0 0x00 0xE0
read to 0x60 ack data: 0x00 0x00 0x00 0x00 0xBB
write to 0x60 ack data: 0xD0 0x00 0xE2
read to 0x60 ack data: 0x06 0x00 0x89 0x00 0x00
write to 0x60 ack data: 0xC0 0x02 0x0E
read to 0x60 ack data: 0x00 0x00
write to 0x60 ack data: 0xD0 0x00 0xE0
read to 0x60 ack data: 0x00 0x00 0x00 0x00 0xE9
write to 0x60 ack data: 0xD0 0x00 0xE2
read to 0x60 ack data: 0x00 0x00 0x00 0x00 0xBB

MOTOR_CLOSED_LOOP_ALIGNED found on this read.
write to 0x60 ack data: 0xC0 0x02 0x0E
read to 0x60 ack data: 0x09 0x00

Wait 1s then try to read algorithm_state (or any register).
write to 0x60 nak
write to 0x60 nak
write to 0x60 nak
write to 0x60 nak
write to 0x60 nak
write to 0x60 nak
write to 0x60 nak
write to 0x60 nak
write to 0x60 nak
write to 0x60 nak