User Tools

Site Tools


cbus:socketcan-fr

SocketCAN

Introduction

La carte interface MCP251x Pi01CAN nécessite un Raspberry Pi 2/3/4 avec PiOS 32bit ou 64bit.1)
SocketCAN est seulement disponible si le serveur Rocrail tourne sur le même Raspberry Pi que le PiCAN.
La communication avec RCAN2) est directe et binaire; Aucune conversion ni-directionnelle n'est nécessaire entre le MERG Gridconnect ASCII framing.
L'alimentation 12V continue pour les unitées CANGC* connectées peut être fourni avec un GCA-08. Voir Câble de connexion pour plus d'information.


Documentation

Interface Pi01CAN

pi01can.jpg
Les composants peuvent être laissés de côté si la connexion RocNet n'est pas nécessaire. (Juste écrire une remarque au cas où il serait commandé chez GCA.)

Configuration Raspi

config.txt

Modifier le fichier suivant en tant que super utilisateur, sudo, avec un éditeur de texte de votre choix.
/boot/config.txt

Retirer le commentaire '#' de cette ligne:
before modify

#dtparam=spi=on

après modification

dtparam=spi=on

Ajouter les lignes suivantes à la fin de ce fichier:

dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25
dtoverlay=spi-bcm2835-overlay

Redémarrage

sudo shutdown -r now

Interfaces

Modifier le fichier suivant en tant que super utilisateur, sudo, avec un éditeur de texte de votre choix.
/etc/network/interfaces

Ajouter les lignes suivantes à la fin de ce fichier: (La ligne commentée '#' est optionnelle.)

# 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

Si le Pi-CAN doit être utilisé avec MBUS, la vitesse de transmission doit être réglée à 250000.

Vérification

pi@keltenbahn:~ $ dmesg | egrep -i "can|spi" 
[    3.998382] CAN device driver interface
[    4.051102] mcp251x spi0.0 can0: MCP2515 successfully initialized.


Configuration Rocrail


  • Sélectionner le type SocketCAN
  • Régler le nom d'hôte(nom du périphérique) à can0 (Si non configuré: le can0 sera utilisé.)

Vérifier le nom du périphérique

Vérifier le nom du périphérique par l'utilisation de la commande ifconfig sur le Raspberry Pi:

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


CANService

Comme alternative au fonctionnement de Rocrail sur le Raspberry Pi, il est également possible d'utiliser le CANService.
Il se comporte comme un GC1e.

Carte CAN Alternative

Ce Shield CAN Bus AZDelivery MCP2515 à faible coût peut être utilisé comme alternative si seul le CAN est nécessaire:
mcp2515_can_bus_modul_pinout.jpg
La Configuration Logiciel du Raspberry est la même que celle du Pi01-CAN, excepté pour l'oscillateur:

oscillator=8000000

Vérifiez sur la carte la fréquence imprimée sur le cristal:
azdelivery-canshield.jpg
Cette exemple affiche 8000 kHz → 8000000 Hz
Pour les vitesses CAN au dessus de 125kHz il est recommandé de remplacer ce cristal par un type 16MHz. (oscillateur=16000000)

Câblage
Shield Rpi Numéro(s) de la broche du Rpi Remarque
VCC 5V 2, 4 Avec 3V3 il recevra, mais ne peut pas envoyer de paquets CAN.
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:

  • Cette carte n'est pas isolée. (ISO1050)
  • Il manque une connexion à la terre sur la borne à vis, et il est fortement recommandé de connecter la terre du câble CAN à la broche GND de cette carte pour éviter l'électricité statique qui pourrait détruire l'électronique.
cbus/socketcan-fr.txt · Last modified: 2021/12/20 21:06 by phil45