0
\$\begingroup\$

I work with microcontroller LPC2368.

After initialisation of the CAN interface to normal mode (not listen-only mode), I can receive all messages, but the microcontroller cannot send an acknowledge with the error code in register CAN1ICR->ERRBIT = 0X19 (Acknowledge slot).

In the same way, the microcontroller can't send a message on the CAN bus with error CAN1ICR->ERRBIT = 0x03 (Start of frame). Why can the microcontroller receive all messages, but have problems when writing on the line?

\$\endgroup\$
  • \$\begingroup\$ Very much a Baud rate mismatch issue! \$\endgroup\$ – Swanand Oct 9 '15 at 6:18
  • \$\begingroup\$ Where do you receive CAN messages from? \$\endgroup\$ – Peter Mortensen Oct 10 '15 at 12:29
  • \$\begingroup\$ The problem was in hardware \$\endgroup\$ – Sauber Oct 18 '15 at 6:48
  • \$\begingroup\$ @Sauber I have the same problem of getting Start of Frame messages . How did you fix the issue ? stackoverflow.com/questions/35006567/… \$\endgroup\$ – rockstar Jan 26 '16 at 6:56
  • \$\begingroup\$ @Swanand How should i debug this problem ? \$\endgroup\$ – rockstar Jan 26 '16 at 6:57
1
\$\begingroup\$

After initialisation of the CAN interface to normal mode (not listen-only mode), I can receive all messages, but the microcontroller cannot send an acknowledge with the error code in register CAN1ICR->ERRBIT = 0X19 (Acknowledge slot).

Referring the user manual, this error status is triggered as a result of errors occurring when other nodes on the bus dont ACK that they received a message successfully. This can be due to, variable baud rates among the nodes or simply using just 1 node on the bus and sending a message. Make sure all nodes are configured to have the same Baud rate and a minimum of 2 nodes are connected to the bus.

Additionally, to can also perform an bus loopback using only 1 node by enabling Self Test Mode(no need of ACK to declare that a message has been sent successfully) and Self reception request(Reflect TX differential data into the Rx buffer) and check if the transmitted data is correct.

In the same way, the microcontroller can't send a message on the CAN bus with error CAN1ICR->ERRBIT = 0x03 (Start of frame)

This can be checked by probing to see if the start of frame TTL Tx signal appears as a differential signal on the bus. Check the transceiver functionality as well.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.