Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

How to Use CAN BUS Splitter: Examples, Pinouts, and Specs

Image of CAN BUS SplitterDesign with CAN BUS Splitter in Cirkit Designer

Introduction

The CAN BUS Splitter by CubePilot (Manufacturer Part ID: CAN BUS Splitter) is a versatile device designed to divide a single Controller Area Network (CAN) bus signal into multiple outputs. This allows multiple devices to communicate seamlessly on the same CAN bus without interference. It is an essential component for expanding CAN bus networks in applications such as robotics, automotive systems, UAVs, and industrial automation.

Explore Projects Built with CAN BUS Splitter

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Arduino UNO WiFi CAN Bus Interface with Sensor/Actuator Module: A project utilizing CAN BUS Splitter in a practical application
Arduino UNO WiFi CAN Bus Interface with Sensor/Actuator Module

This circuit features two Arduino UNO R4 WiFi microcontrollers interfaced with NS-LS2 light sensors and CAN_SN65HVD230 CAN bus transceivers. The Arduinos are configured to read light intensity data from the NS-LS2 sensors and communicate with each other over a CAN network, likely for a distributed sensing application. Power distribution is managed with 3.3V and 5V connections to the respective components, and the ground connections are shared across the devices to complete the circuit.

Open Project in Cirkit Designer

Common Applications and Use Cases

Technical Specifications

The following table outlines the key technical details of the CubePilot CAN BUS Splitter:

Parameter Specification
Manufacturer CubePilot
Part ID CAN BUS Splitter
Input Voltage Range 4.5V to 5.5V
Maximum Current 1A (shared across all outputs)
Number of Outputs 4 CAN bus outputs
Connector Type JST-GH 4-pin connectors
Communication Protocol CAN 2.0
Operating Temperature -40°C to 85°C
Dimensions 30mm x 20mm x 10mm
Weight 5g

Pin Configuration and Descriptions

The CAN BUS Splitter uses JST-GH 4-pin connectors for both input and output. The pin configuration is as follows:

Pin Number Pin Name Description
1 VCC Power supply input (4.5V to 5.5V)
2 GND Ground
3 CAN_H CAN bus high signal
4 CAN_L CAN bus low signal

Usage Instructions

How to Use the CAN BUS Splitter in a Circuit

  1. Power Supply:

    • Connect a regulated 5V power supply to the VCC and GND pins of the input connector.
    • Ensure the power supply can provide sufficient current for all connected devices.
  2. CAN Bus Input:

    • Connect the CAN_H and CAN_L lines from the main CAN bus to the corresponding pins on the input connector.
  3. CAN Bus Outputs:

    • Connect the CAN_H and CAN_L lines of each peripheral device to the corresponding pins on the output connectors.
    • Ensure that all devices on the CAN bus have unique IDs to avoid conflicts.
  4. Termination Resistors:

    • The CAN bus requires termination resistors (typically 120Ω) at both ends of the bus.
    • The CAN BUS Splitter does not include termination resistors, so ensure they are added externally if needed.

Important Considerations and Best Practices

Example: Connecting to an Arduino UNO

While the CAN BUS Splitter itself does not directly interface with an Arduino UNO, it can be used in conjunction with a CAN transceiver module (e.g., MCP2515). Below is an example Arduino sketch for sending data over the CAN bus:

#include <SPI.h>
#include <mcp2515.h> // Include the MCP2515 CAN library

struct can_frame canMsg; // Define a CAN frame structure
MCP2515 mcp2515(10);     // Initialize MCP2515 with CS pin 10

void setup() {
  Serial.begin(9600);
  // Initialize MCP2515 and set CAN speed to 500 kbps
  if (mcp2515.begin(MCP_ANY, CAN_500KBPS, MCP_8MHZ) == CAN_OK) {
    Serial.println("CAN BUS Initialized Successfully!");
  } else {
    Serial.println("Error Initializing CAN BUS!");
    while (1); // Halt if initialization fails
  }
  mcp2515.setMode(MCP_NORMAL); // Set MCP2515 to normal mode

  // Prepare a CAN message
  canMsg.can_id = 0x100; // Set CAN ID
  canMsg.can_dlc = 2;    // Set data length (2 bytes)
  canMsg.data[0] = 0x55; // First byte of data
  canMsg.data[1] = 0xAA; // Second byte of data
}

void loop() {
  // Send the CAN message
  if (mcp2515.sendMessage(&canMsg) == CAN_OK) {
    Serial.println("Message Sent Successfully!");
  } else {
    Serial.println("Error Sending Message!");
  }
  delay(1000); // Wait 1 second before sending the next message
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. No Communication Between Devices:

    • Cause: Missing or incorrect termination resistors.
    • Solution: Ensure 120Ω termination resistors are installed at both ends of the CAN bus.
  2. Signal Interference or Noise:

    • Cause: Unshielded cables or long cable runs.
    • Solution: Use shielded twisted-pair cables and minimize cable lengths.
  3. Power Supply Issues:

    • Cause: Insufficient power supply or voltage drop.
    • Solution: Use a stable 5V power supply capable of providing sufficient current.
  4. Devices Not Responding:

    • Cause: Conflicting CAN IDs or incompatible protocols.
    • Solution: Verify that all devices have unique CAN IDs and support the CAN 2.0 protocol.

FAQs

Q: Can I use the CAN BUS Splitter with devices that use different CAN speeds?
A: No, all devices on the CAN bus must operate at the same baud rate for proper communication.

Q: Does the CAN BUS Splitter provide power to connected devices?
A: No, the splitter only distributes the CAN signals. Connected devices must be powered separately.

Q: Can I daisy-chain multiple CAN BUS Splitters?
A: Yes, you can daisy-chain splitters to expand the network, but ensure proper termination and avoid exceeding the maximum bus length.

Q: Is the CAN BUS Splitter compatible with CAN FD?
A: No, the splitter is designed for the CAN 2.0 protocol and does not support CAN FD.