User Tools

Site Tools


cbus:socketcan-en

Differences

This shows you the differences between two versions of the page.


cbus:socketcan-en [2024/04/12 07:42] (current) – created - external edit 127.0.0.1
Line 1: Line 1:
 +====== SocketCAN ======
 +[[:english|{{ :rocrail-logo-35.png}}]]
 +[[:cbus:overview-en|{{ icons:uk.png}}]][[:cbus:overview-de|{{ icons:de.png}}]][[:cbus:overview-fr|{{ icons:fr.png}}]]
 +[[:english|Content]] -> [[:hardware-en|Hardware]] -> [[:hardware-en#gca-cbus|CANBUS]]
 +  * [[:cbus:overview-en|CAN-GC Overview]]
 +  * [[:cbus:overview-en#bus_termination|CAN Bus termination]]
 +
 + \\
 +
 +//[[https://en.wikipedia.org/wiki/SocketCAN|"SocketCAN is a set of open source CAN drivers and a networking stack contributed by Volkswagen Research to the Linux kernel."]]// \\
 +
 + \\
 +=====Introduction=====
 +The __**[[:rocnet:pi01can-en|Pi01CAN]]**__ MCP251x Interface board needs a Raspberry Pi 2/3/4 with [[https://www.raspberrypi.org/downloads/|PiOS 32bit or 64bit]].((https://www.raspberrypi.org/forums/viewtopic.php?f=117&t=275370))\\
 +SocketCAN is only available if the Rocrail server runs on the same Raspberry Pi with the PiCAN on it.\\
 +The communication with RCAN((Supports also CBUS)) is direct and binary; No bidirectional conversion needed between the MERG Gridconnect ASCII framing.\\
 +The 12VDC power supply for the connected CANGC* units can be provided wit a __**[[:gca08-en|GCA-08]]**__. See __**[[:cbus:overview-en#connection_cable|Cable connections]]**__ for more information.\\ 
 +
 + 
 + \\
 +
 +=====Documentation=====
 +  * https://en.wikipedia.org/wiki/SocketCAN (EN)
 +  * https://de.wikipedia.org/wiki/SocketCAN (DE)
 +
 + \\
 +
 +===== Pi01CAN Interface =====
 +  * **[[:rocnet:pi01can-en|PiCAN-01]]**
 +
 +[[:rocnet:pi01can-en|{{:rocnet:pi01can.jpg?400}}]]\\
 +//The I2C parts can be left out If the RocNet connection is not needed. (Just write a remark in case its ordered at GCA.)//\\
 + \\
 +=====Raspi Setup===== 
 +
 +====config.txt====
 +Modify the following file as super user, sudo, with a text editor of your choice.\\
 +**/boot/config.txt**
 +
 +Remove the comment '#' from this line:\\
 +//before modify//
 +<code>
 +#dtparam=spi=on
 +</code>
 +//after modify//
 +<code>
 +dtparam=spi=on
 +</code>
 +
 +Add the following lines to the end of this file:
 +<code>
 +dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25
 +dtoverlay=spi-bcm2835-overlay
 +</code>
 +====Reboot====
 +<code>
 +sudo shutdown -r now
 +</code>
 +
 +====interfaces====
 +Modify the following file as super user, sudo, with a text editor of your choice.\\
 +**/etc/network/interfaces**\\
 +
 +Add the following lines to the end of this file: (The comment line '#' is optional.)
 +<code>
 +# CAN Interface
 +auto can0
 +iface can0 inet manual
 +        pre-up /sbin/ip link set $IFACE type can bitrate 125000 restart-ms 100
 +        up /sbin/ifconfig $IFACE up
 +        down /sbin/ifconfig $IFACE down
 +</code>
 +//If the Pi-CAN should be used with MBUS, the bitrate must be set to 250000.//\\
 +
 +:!: **Note:** On newer PiOS versions add a file named /etc/network/interfaces.d/can0 with the content from above.\\
 +====Check====
 +<code>
 +dmesg | egrep -i "can|spi" 
 +[    3.998382] CAN device driver interface
 +[    4.051102] mcp251x spi0.0 can0: MCP2515 successfully initialized.
 +</code>
 + \\
 +
 +===== Rocrail Setup =====
 +{{:cbus:rcan-setup-en.png}}\\
 +  * Select type SocketCAN
 +  * Set Hostname(device name) to **can0** (If not set: can0 will be used.)
 +
 +====Check the device name====
 +Check the device name by using the command **ifconfig** on the Raspberry Pi:
 +<code>
 +pi@keltenbahn:~ $ ifconfig
 +can0: flags=193<UP,RUNNING,NOARP>  mtu 16
 +        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 10  (UNSPEC)
 +        RX packets 0  bytes 0 (0.0 B)
 +        RX errors 0  dropped 0  overruns 0  frame 0
 +        TX packets 0  bytes 0 (0.0 B)
 +        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 +</code>
 +
 + \\
 +
 +===== CANService =====
 +As alternative to running Rocrail on the Raspberry Pi, it is also possible to use the __**[[:mbus:canservice-en|CANService]]**__.\\
 +It behaves like a GC1e.\\
 +
 + \\
 +===== Alternative CAN Board =====
 +This low-cost //[[https://www.az-delivery.de/en/products/mcp2515-can-bus-modul|AZDelivery MCP2515 CAN Bus Shield]]// can be used as alternative if only CAN is needed:\\
 +{{:cbus:mcp2515_can_bus_modul_pinout.jpg?400}}\\
 +The Raspberry __[[#raspi_setup|Software Setup]]__ is the same as for the Pi01-CAN, except for the oscillator:
 +<code>
 +oscillator=8000000
 +</code>
 +Check the board which frequency the crystal has printed on it:\\
 +{{:cbus:azdelivery-canshield.jpg?200}}\\
 +This example shows 8000 kHz -> 8000000 Hz\\
 +For CAN speeds above 125kHz it is recommended to replace this crystal with a [[https://www.reichelt.de/standardquarz-grundton-16-mhz-iqd-lfxtal003240-p245409.html?search=16+mhz|16MHz type]]. (oscillator=16000000)\\
 +\\
 +|< >|
 +|  Wiring  ||||
 +^ Shield ^ Rpi ^ Rpi Pin number(s) ^ Remark ^
 +| VCC | 5V |  2, 4  | With 3V3 it will receive, but cannot send CAN packets. |
 +| GND | Masse (Ground) |  6, 9, 20, 25, 30, 34, 39  |
 +| CS | GPIO 8 (CE0) |  24  |
 +| SO | GPIO 9 (MISO) |  21  |
 +| SI | GPIO 10 (MOSI) |  19  |
 +| SCK | GPIO 11 (SCLK) |  23  |
 +| INT | GPIO 25 |  22  |
 +
 +**Notes:**
 +  * This board is __not isolated__. (ISO1050)
 +  * A ground connection on the screw terminal is missing, and it is __strongly recommended to connect the ground__ of the CAN cable to the GND pin of this board to avoid static voltage which could destroy the electronics.
 +
 +