SK Pang electronics RSP-PICAN FD DUO ISO Isolated CAN-Bus Board User Guide

June 3, 2024
SK Pang electronics

SK Pang electronics RSP-PICAN FD DUO ISO Isolated CAN-Bus Board

Introduction

This PiCAN FD Duo Isolated board provides two-channel CAN-Bus FD capability for the Raspberry Pi. It uses the Microchip MCP2518FD CAN controller with Analog Devices ADM3055 Isolated CAN transceiver. Connection are made via 4 way plug-in screw terminal. The two channels are independently isolated. The improved CAN FD extends the length of the data section to up to 64 bytes per frame and a data rate of up to 8 Mbps. Easy to install SocketCAN driver. Programming can be done in C or Python.
Features

  • Microchip MCP2518FD CAN Controller
  • Analog Devices ADM3055 Isolated CAN transceiver
  • Reinforced galvanic isolation
  • Arbitration Bit Rate upto 1Mbps
  • Data Bit Rate up to 8Mbps
  • CAN FD Controller modes
  • Mixed CAN2.0B and CANFD mode
  • CAN2.0B mode
  • Conforms to ISO11898-1:2015
  • High-speed SPI Interface
  • CAN connection via 4way plug-in screw terminal
  • 120Ω terminator ready
  • LED indicator
  • Four fixing holes, comply with Pi Hat standard
  • SocketCAN driver appears as can0 and can1 to the application
  • Interrupt RX on GPIO25 and 05

Hardware Installation

Before installing the board make sure the Raspberry is switched off. Carefully align the 40way connector on top of the Pi. Use spacer and screw (optional items) to secure the board.

Plug-in Screw Terminals
The CAN connections are made via the 4way plug-in screw terminals.

SK-Pang-electronics-RSP-PICAN FD-DUO-ISO-Isolated-CAN-Bus-Board-
fig2

J1 Function
1 CAN_L
2 CAN_H
3 GND
4 n/c
J2 Function
--- ---
1 CAN_L
2 CAN_H
3 GND
4 n/c

120W Terminator
There is a 120W fitted to the board. To use the terminator solder a 2way header pin to  JP1 and JP2 then insert a jumper.
LED
There is a red LED fitted to each channel. This is connected to GPIO04 and GPIO26.

Software Installation

It is best to start with a brand new Raspbian image. Download the latest from:
https://www.raspberrypi.org/downloads/raspbian/
After first-time boot up, do an update and upgrade first.

  • sudo apt-get update
  • sudo apt-get upgrade
  • sudo reboot
  • sudo nano /boot/config.txt

Add these lines to the end of file:

  • dtparam=spi=on
  • dtoverlay=mcp251xfd,spi0-0,interrupt=25
  • dtoverlay=mcp251xfd,spi0-1,interrupt=05

Reboot Pi:

  • sudo reboot

Installing CAN Utils
Install the CAN utils by:

  • sudo apt-get install can-utils

Bring Up the Interface
You can now bring the CAN interface up with CAN 2.0B at 500kbps:

  • sudo /sbin/ip link set can0 up type can bitrate 500000

or CAN FD at 500kpbs / 2Mbps. Use copy and paste to a terminal.

  • sudo /sbin/ip link set can0 up type can bitrate 500000 dbitrate 2000000 fd on sample-point .7 dsample-point .7

Connect the PiCAN FD Duo ISO to your CAN network via plug-in screw terminal. To send a CAN 2.0 message use :

  • cansend can0 7DF#0201050000000000

This will send a CAN ID of 7DF. Data 02 01 05 – coolant temperature request. To send a CAN FD message with BRS use :

  • cansend can0 7df##15555555555555555

To send a CAN FD message with no BRS use :

  • cansend can0 7df##05555555555555555

Connect the PiCAN to a CAN-bus network and monitor traffic by using the command:

  • can dump can0

You should see something like this:SK-Pang-electronics-RSP-PICAN FD-DUO-ISO-
Isolated-CAN-Bus-Board-fig3

To use the other CAN channel replace can0 with can1.

Python Installation and Use

Ensure the driver for PiCAN FD is installed and working correctly first.
Clone the pythonCan repository by:
git clone https://github.com/hardbyte/python-cancdpython-can
sudo python3 setup.py install
Check there is no error been displayed.
Bring up the can0 interface:
sudo /sbin/ip link set can0 up type can bitrate 500000 bitrate 2000000 fd on sample-point .7 sample-point .7
Now start python3 and try the transmit with CAN FD and BRS set.

  • python3
  • import can
  • bus = can.interface.Bus(channel=’can0′, bustype=’socketcan’,fd = True)
  • msg = can.Message(arbitration_id=0x7de,extended_id=False,is_fd = True, bitrate_switch = True,data=[0,0,0,0,0,0x1e,0x21,0xfe, 0x80, 0, 0,1,0])
  • bus.send(msg)

To received messages and display on screen type in:
notifier = can.Notifier(bus, [can.Printer()])

SK-Pang-electronics-RSP-PICAN FD-DUO-ISO-Isolated-CAN-Bus-Board-
fig5

Documentation for python-can can be found at :
https://python-can.readthedocs.io/en/stable/index.html
More expamles in github:
https://github.com/skpang/PiCAN-FD-Python-examples

SK Pang Electronics Ltd Ó 2022
www.skpang.co.uk

References

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

Related Manuals