Microchip MCP2515 CAN bus shields
Zephyr supports a couple of different shields carrying the Microchip MCP2515 Stand-Alone CAN Controller with SPI Interface.
DFRobot CAN BUS Shield V2.0
Overview
The DFRobot CAN BUS shield supports the Microchip MCP2515 stand-alone CAN controller and JTA1050 high speed CAN transceiver. The shield has an Arduino Uno R3 compatible hardware interface.
Hardware
MCP2515
Stand-Alone CAN 2.0B Controller
Up to 1Mb/s baud rate
Standard and extended data and remote frames
3x Tx Buffers
2x Rx Buffers
6x 29-bit Filters
2x 29-bit Masks
Interrupt output
One shot mode
High speed SPI interface (10 MHz)
TJA1050
Fully compatible with the “ISO 11898” standard
High speed (up to 1 Mbaud)
Connectivity
Industrial standard DB9 terminal (CAN)
Screw terminals (CAN)
Integrated MicroSD socket for data storage (SPI)
Arduino Uno R3 compatible (SPI)
Name |
Function |
Usage |
---|---|---|
A0 |
None |
|
A1 |
None |
|
A2 |
None |
|
A3 |
None |
|
A4 |
None |
|
A5 |
None |
|
D0 |
RX |
Ext. header only |
D1 |
TX |
Ext. header only |
D2 |
GPIO_ACTIVE_LOW |
MCP2515 - INT |
D3 |
None |
|
D4 |
SPI-CS |
MicroSD |
D5 |
None |
|
D6 |
None |
|
D7 |
None |
|
D8 |
None |
|
D9 |
None |
|
D10 |
SPI-CS |
MCP2515 |
D11 |
SPI-MOSI |
MCP2515 / MicroSD |
D12 |
SPI-MISO |
MCP2515 / MicroSD |
D13 |
SPI-CLK |
MCP2515 / MicroSD |
D14 |
I2C-SDA |
Ext. header only |
D15 |
I2C_SCL |
Ext. header only |
Power Supply
3.3V ~ 5V
Components
Power switch
Power LED
RX0BF LED
RX1BF LED
For more information about the DFRobot CAN-BUS V2.0 shield:
Keyestudio CAN-BUS Shield (KS0411)
Overview
The Keyestudio CAN BUS shield supports the Microchip MCP2515 stand-alone CAN controller and MCP2551 high speed CAN transceiver. The shield has an Arduino Uno R3 compatible hardware interface.
Hardware
MCP2515
Stand-Alone CAN 2.0B Controller
Up to 1Mb/s baud rate
Standard and extended data and remote frames
3x Tx Buffers
2x Rx Buffers
6x 29-bit Filters
2x 29-bit Masks
Interrupt output
One shot mode
High speed SPI interface (10 MHz)
MCP2551
Fully compatible with the “ISO 11898” standard
High speed (up to 1 Mbaud)
Connectivity
Industrial standard DB9 terminal (CAN)
Pin headers (CAN)
Integrated MicroSD socket for data storage (SPI)
Arduino Uno R3 compatible (SPI)
Name |
Function |
Usage |
---|---|---|
A0 |
None |
|
A1 |
None |
|
A2 |
None |
|
A3 |
None |
|
A4 |
None |
|
A5 |
None |
|
D0 |
RX |
Ext. header only |
D1 |
TX |
Ext. header only |
D2 |
None |
|
D3 |
None |
|
D4 |
None |
|
D5 |
None |
|
D6 |
None |
|
D7 |
None |
|
D8 |
GPIO_ACTIVE_LOW |
MCP2515 - INT |
D9 |
SPI-CS |
MicroSD |
D10 |
SPI-CS |
MCP2515 |
D11 |
SPI-MOSI |
MCP2515 / MicroSD |
D12 |
SPI-MISO |
MCP2515 / MicroSD |
D13 |
SPI-CLK |
MCP2515 / MicroSD |
D14 |
I2C-SDA |
Ext. header only |
D15 |
I2C_SCL |
Ext. header only |
Power Supply
5.0VDC
For more information about the Keyestudio CAN-BUS shield:
Adafruit PiCowbell CAN Bus Shield for Pico
Overview
The Adafruit PiCowbell CAN Bus Shield uses the Microchip MCP2515 controller with an TJA1051/3 transceiver. This shield is built for the Raspberry Pi Pico and uses the SPI interface. It also contains a Qwiic connector to add support for a sensor.
Hardware
MCP2515
Stand-Alone CAN 2.0B Controller
Up to 1Mb/s baud rate
Standard and extended data and remote frames
3x Tx Buffers
2x Rx Buffers
6x 29-bit Filters
2x 29-bit Masks
Interrupt output
One shot mode
High speed SPI interface (10 MHz)
TJA1051
Fully compatible with the “ISO 11898-2:2016”, “SAE J2284-1” & “SAE J2284-5” standards
Supports CAN FD
Fast data rates (up to 5 Mbit/s)
Connectivity
Terminal Block - 3-pin 3.5mm (CAN)
Raspberry Pi Pico compatible (SPI)
Name |
Function |
Usage |
---|---|---|
GP0 |
None |
|
GP1 |
None |
|
GP2 |
None |
|
GP3 |
None |
|
GP4 |
None |
|
GP5 |
None |
|
GP6 |
None |
|
GP7 |
None |
|
GP8 |
None |
|
GP9 |
None |
|
GP10 |
None |
|
GP11 |
None |
|
GP12 |
None |
|
GP13 |
None |
|
GP14 |
None |
|
GP15 |
None |
|
GP16 |
SPI-MISO |
MCP2515 |
GP17 |
None |
|
GP18 |
SPI-SCK |
MCP2515 |
GP19 |
SPI-MOSI |
MCP2515 |
GP20 |
SPI-CS |
MCP2515 |
GP21 |
GPIO_ACTIVE_LOW |
MCP2515 - INT |
GP22 |
None |
|
GP23 |
None |
|
GP24 |
None |
|
GP25 |
None |
|
GP26 |
None |
|
GP27 |
None |
|
GP28 |
None |
Power Supply
3.3V ~ 5V
For more information about the Adafruit PiCowbell CAN Bus shield:
Programming
Set -DSHIELD=dfrobot_can_bus_v2_0
or -DSHIELD=keyestudio_can_bus_ks0411
or -DSHIELD=adafruit_can_picowbell
when you invoke west build
or cmake
in your Zephyr application. For
example:
Using west:
# From the root of the zephyr repository
west build -b nrf52dk/nrf52832 samples/drivers/can/counter -- -DSHIELD=dfrobot_can_bus_v2_0
west flash
Using CMake and ninja:
# From the root of the zephyr repository
# Use cmake to configure a Ninja-based buildsystem:
cmake -Bbuild -GNinja -DBOARD=nrf52dk/nrf52832 -DSHIELD=dfrobot_can_bus_v2_0 samples/drivers/can/counter
# Now run the build tool on the generated build system:
ninja -Cbuild
ninja -Cbuild flash
Using west:
# From the root of the zephyr repository
west build -b nrf52840dk/nrf52840 samples/drivers/can/counter -- -DSHIELD=keyestudio_can_bus_ks0411
west flash
Using CMake and ninja:
# From the root of the zephyr repository
# Use cmake to configure a Ninja-based buildsystem:
cmake -Bbuild -GNinja -DBOARD=nrf52840dk/nrf52840 -DSHIELD=keyestudio_can_bus_ks0411 samples/drivers/can/counter
# Now run the build tool on the generated build system:
ninja -Cbuild
ninja -Cbuild flash
Using west:
# From the root of the zephyr repository
west build -b rpi_pico samples/drivers/can/counter -- -DSHIELD=adafruit_can_picowbell
Using CMake and ninja:
# From the root of the zephyr repository
# Use cmake to configure a Ninja-based buildsystem:
cmake -Bbuild -GNinja -DBOARD=rpi_pico -DSHIELD=adafruit_can_picowbell samples/drivers/can/counter
# Now run the build tool on the generated build system:
ninja -Cbuild