seeed studio E00469

Seeed Studio CAN-BUS Shield V1.2 User Manual

Model: E00469

1. Introduction

The Seeed Studio CAN-BUS Shield V1.2 is an expansion board designed to provide CAN (Controller Area Network) capabilities to Arduino and Seeeduino microcontrollers. This shield allows your microcontroller to communicate with other CAN-enabled devices, making it suitable for automotive applications, industrial automation, and other projects requiring robust, real-time communication.

It integrates the MCP2515 CAN controller and MCP2551 CAN transceiver, offering a reliable and efficient solution for CAN communication. The shield is compatible with Arduino UNO (ATmega328), Arduino Mega (ATmega1280/2560), and Arduino Leonardo (ATmega32U4).

Seeed Studio CAN-BUS Shield V1.2 top view

Figure 1: Top view of the Seeed Studio CAN-BUS Shield V1.2. This image displays the main components including the DB9 connector, CAN controller, and various headers, along with key specifications like voltage (4.8~5.2V), size (68*53mm), and net weight (50g).

2. Features

3. Specifications

ParameterValue
Model NumberE00469
CAN ControllerMCP2515
CAN TransceiverMCP2551
Operating Voltage4.8V - 5.2V
Dimensions68mm x 53mm (approx. 2.68 x 2.09 inches)
Net Weight50g (approx. 1.76 ounces)
ConnectivityCAN bus, SPI, I2C, UART
Compatible MicrocontrollersArduino UNO, Mega, Leonardo; Seeeduino

4. Hardware Overview

The CAN-BUS Shield V1.2 features several key components and connectors for its functionality. Understanding these components is crucial for proper setup and operation.

Labeled diagram of CAN-BUS Shield components

Figure 2: Labeled diagram of the CAN-BUS Shield V1.2 components.

  1. DB9 Connector: Standard 9-pin D-sub connector for CAN bus connection.
  2. Terminator Resistor Jumper (J1): Used to enable or disable the 120Ω termination resistor. Set to ON for bus termination, OFF otherwise.
  3. Power LED: Indicates when the shield is powered on.
  4. CANH/CANL Terminal Block (J10): Alternative connection point for CAN_H and CAN_L signals.
  5. Arduino Compatible Headers: Standard headers for connecting to Arduino/Seeeduino boards.
  6. UART Grove Connector: For connecting Grove modules with UART interface.
  7. I2C Grove Connector: For connecting Grove modules with I2C interface.
  8. SPI Interface Pins (JP3): Pins for SPI communication (VCC, MISO, MOSI, CSK, GND, AST). Located on the bottom side of the board.
  9. MCP2551 CAN Transceiver (U1): Converts the digital signals from the MCP2515 to the differential signals required for the CAN bus.
  10. MCP2515 CAN Controller (U2): Handles the CAN protocol, including message transmission and reception.
Bottom view of CAN-BUS Shield showing JP3

Figure 3: Bottom view of the CAN-BUS Shield V1.2, highlighting the JP3 SPI interface pins.

5. Pinout and Connections

Understanding the pin assignments is essential for correct integration and communication. The shield utilizes SPI for communication with the microcontroller and provides various connection options for the CAN bus.

Detailed pinmap of CAN-BUS Shield

Figure 4: Detailed pinmap of the CAN-BUS Shield V1.2, showing connections to the Arduino headers and internal pin assignments.

5.1. SPI Communication Pins

The CAN-BUS Shield communicates with the Arduino via the SPI interface. The default Chip Select (CS) pin is D9. Ensure your software configuration matches this pin. Some newer versions or libraries might default to D10, so verify if you encounter communication issues.

5.2. CAN Bus Connections (DB9 and Terminal Block)

The CAN bus can be connected via the DB9 connector or the screw terminal block (J10). The standard pinout for the DB9 connector is crucial for proper communication, especially in automotive applications (OBD-II).

OBD-II connector wiring diagram for CAN-BUS Shield

Figure 5: OBD-II connector wiring diagram. This illustrates how to connect the CAN-BUS Shield to an OBD-II port, showing connections for GND, CAN_H, CAN_L, and V_OBD.

DB9 Pinout (Common for OBD-II):

Note: Some DB9 connectors may have non-standard pinouts. Always verify the pin assignments of your specific CAN device to ensure correct wiring. The screw terminal block (J10) provides direct access to CAN_H and CAN_L for custom wiring.

6. Setup

6.1. Physical Connection to Arduino/Seeeduino

  1. Align the CAN-BUS Shield with the headers on your Arduino or Seeeduino board.
  2. Carefully press the shield onto the microcontroller board, ensuring all pins are correctly seated.
  3. Important Note for Arduino UNO: Due to the physical layout, the shield may come into contact with the USB connector or DC power jack on some Arduino UNO boards. If this occurs, it can cause short circuits or prevent proper seating. Consider using longer pin headers or a small spacer to elevate the shield slightly if necessary. Do not force the shield if it clashes with components.
  4. Important Note for Arduino Mega: This version of the shield is designed to work with Arduino Mega without needing to bend or clip any pins. Ensure proper alignment.

6.2. CAN Bus Termination

The CAN bus requires termination resistors at both ends of the bus to prevent signal reflections. The CAN-BUS Shield includes a selectable 120Ω terminator resistor.

6.3. Software Setup

  1. Download and install the appropriate CAN-BUS library for Arduino (e.g., the Seeed Studio CAN-BUS library). This can typically be found in the Arduino IDE's Library Manager or on the Seeed Studio website.
  2. Include the library in your Arduino sketch.
  3. Initialize the CAN controller in your code, specifying the SPI Chip Select (CS) pin (default D9) and the desired CAN bus speed.

7. Operating Instructions

Once the shield is physically connected and the software library is installed, you can begin sending and receiving CAN messages.

7.1. Sending CAN Messages

To send a CAN message, you will typically use functions provided by the CAN-BUS library. These functions allow you to specify the CAN ID (standard or extended), the data length, and the data bytes to be transmitted.

7.2. Receiving CAN Messages

The shield can receive CAN messages and store them in its internal buffers. You can configure filters to only receive messages with specific CAN IDs.

8. Maintenance

The CAN-BUS Shield is a robust electronic component that requires minimal maintenance. Follow these guidelines to ensure its longevity and reliable operation:

9. Troubleshooting

If you encounter issues with your CAN-BUS Shield, consider the following troubleshooting steps:

10. Warranty and Support

For specific warranty information and technical support, please refer to the official Seeed Studio website or contact their customer service directly. Detailed documentation, example code, and community forums are often available on the manufacturer's product page to assist with advanced usage and troubleshooting.

Online Resources: