The TM4C123 devices are based around an ARM Cortex-M4F CPU, start around $4 with 128K of FLASH, and scale up to 256K of FLASH. The TM4C123 devices also have 2 CAN ports, making them a cost effective option for bridging two physically separate CAN networks. The TM4C123 family of devices is one of the best supported platforms for OpenMRN. This device family was the first MCU family to be fully supported by OpenMRN and continues to serve as a reference for all future Cortex-M3 and Cortex-M4 device support.
The default board port for the EK-TM4C123GXL development platform utilizes I/O pins PE4 for CAN RXD and PE5 for CAN TXD. An external CAN transceiver is required, and there is at least one OpenLCB community developed BoosterPack with on-board CAN transceiver and standard OpenLCB RJ-45 connectors. An alternative option to CAN, for development purposes, is to use the on-board USB device interface for connecting to a virtual CAN network running on a PC. Therefore it can also be used as a CAN-USB interface.
Note that the EK-LM4F120XL development board is an earlier version of the latest EK-TM4C123GXL. For the purposes of OpenMRN development, they are exactly the same.
The TM4C129 devices are based around an ARM Cortex-M4F CPU with 1M of FLASH and 256K of SRAM. The TM4C129 devices also have 2 CAN ports, making them a cost effective option for bridging two physically separate CAN networks. The TM4C129 family of devices is code compatible with the TM4C123 device family.
The default board port for the EK-TM4C1294XL development platform utilizes I/O pins ... for CAN RXD and ... for CAN TXD. An external CAN transceiver is required, and there is at least one OpenLCB community developed BoosterPack with on-board CAN transceiver and standard OpenLCB RJ-45 connectors. An alternative option to CAN, for development purposes, is to use the on-board USB device interface for connecting to a virtual CAN network running on a PC. Therefore it can also be used as a CAN-USB interface.
When using CAN with the EK-TM4C1294XL, be sure to install jumpers JP4 and JP5 into the correct orientation as shown below.
The STM32F0 devices are based around an ARM Cortex-M0. The STM32F072 with 128K of FLASH and 16K of SRAM is one of the most cost effective solutions supported by OpenMRN at a cost of around $2.
The default board port for the STM32F072-Discovery development board utilizes I/O pins PB9 for CAN TX, PB8 for CAN RX, PA9 for UART RXD, and PA8 for UART TXD. An external CAN transceiver is required.
Solder Bridge SB19 must be bridged with a drop of solder in order to enable the precision clock into the STM32F072.
The LPC17xx devices are based around an ARM Cortex-M3 CPU, start around $4.50 with 128K of FLASH, and scale up to 512K of FLASH.
The default board port for the LPCXpresso-LPC1769 development platform utilizes J6 pins 38 for CAN RXD, 39 for CAN TXD, 9 for UART TXD, and pin 10 for UART RXD. An external CAN transceiver is required. An alternative option to CAN, for development purposes, is to use the on-board UART interface for connecting to a virtual CAN network running on a PC.
This chip comes from the same family as the LPC1769 above. The mbed development board has built-in debugger and the debugger also has a serial port wired through.
The pinout of the CAN bus is the same as on the LPCXpresso board above (they are pin-compatible, just the mbed is a bit shorter), and can be used with the TCH technology baseboard for a transceiver and RJ45 sockets.
This board can be used out-of-the-box as a CAN-USB adapter.