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 Microship MCP2515 stand-alone CAN controller and JTA1050 high speed CAN transceiver. The shield has an Arduino Uno R3 compatible hardware interface.

DFRobot_CAN_BUS_V2_0_SHIELD

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 Microship MCP2515 stand-alone CAN controller and MCP2551 high speed CAN transceiver. The shield has an Arduino Uno R3 compatible hardware interface.

Keyestudio CAN-BUS Shield (KS0411)

Fig. 202 Keyestudio CAN-BUS Shield (KS0411) (Credit: Keyestudio)

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:

Programming

Set -DSHIELD=dfrobot_can_bus_v2_0 or -DSHIELD=keyestudio_can_bus_ks0411 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 -- -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 -B build -GNinja -DBOARD=nrf52dk_nrf52832 -DSHIELD=dfrobot_can_bus_v2_0 samples/drivers/can

# Now run ninja on the generated build system:
ninja -C build
ninja -C build flash

Using west:

# From the root of the zephyr repository
west build -b nrf52840dk_nrf52840 samples/drivers/can -- -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 -B build -GNinja -DBOARD=nrf52840dk_nrf52840 -DSHIELD=keyestudio_can_bus_ks0411 samples/drivers/can

# Now run ninja on the generated build system:
ninja -C build
ninja -C build flash