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:
The Base Board requires that the +5V is supplied through the USB-to-UART main power source port in addition to the debug port.