Electronic – Running a CAN sample project on LPCXpresso LPC11C24

canlpcxpressonxp

The LPC11C24 has a on-chip CAN transceiver and a section of ROM with CAN driver software. I am trying to run the can_onchip sample project on the LPCXpresso board. The CAN-High and CAN-Low lines are connected to an MCP2551 (because you need at least two nodes to test a CAN bus). I don't see any change on the CAN-High and CAN-Low lines and the CAN error callback function is called with error code 0x82, which is a BIT_0 error, meaning the bus is always in the HIGH state and it could not be pulled LOW/dominant. This makes me think there is a problem with the on-chip transceiver because any CAN node should be able to pull the bus LOW for a dominant bit.

The linker files used are the CAN version provided that reserve the ROM memory mapping for the CAN driver. The init and callback functions are being called, so I am relatively certain the drivers are working correctly.

Are there any other settings that need to be used to enable the on-chip transceiver?

Best Answer

The LPC11C24 requires an additional 5V supply to operate the on-chip CAN transceiver. When powering the LPCXpresso board through the USB debug port only, the transceiver does not receive the full 5V. The +5VIN pin only reads 1.3V, so the transceiver does not operate correctly. I have found 2 ways to resolve this:

  1. Use an external 5V regulated supply, connected through the +5VIN pin.
  2. Connect the LPCXpresso to the Embedded Artists LPCXpresso Base Board.

The Base Board requires that the +5V is supplied through the USB-to-UART main power source port in addition to the debug port.