🛠 Bus CAN : exploiter les deux contrôleurs DCAN avec can-utils

BeagleBone Black (TI Sitara AM3358) · avance · Schéma : IMG-beaglebone-black-avance-3-bus-can-dcan-candump.svg — deux BeagleBone Black reliées par un bus CAN différentiel (CAN_H, CAN_L, résistance de terminaison 120 Ω de chaque côté), transceivers SN65HVD230 sur les broches P8_17/P8_18.

Objetivos

El AM335x incorpora DOS controladores CAN (DCAN) — un argumento industrial masivo frente a las tarjetas de consumo general. Vas a exponer el CAN0 en los pines P8_17/P8_18 (los pines MCASP0 multiplexados como DCAN mediante el overlay comunitario KCP-0001), configurar la interfaz con ip link e intercambiar tramas con can-utils entre dos nodos.

Material

Código completo

sudo apt install can-utils device-tree-compiler

# Exposer CAN0 sur P8_17/P8_18 :
# - ancienne image : overlay KCP-0001 via le capemanager
echo cape_can | sudo tee /sys/devices/platform/bone_capemanager/slots
# - image récente : l'overlay est embarqué (KCP-0001) ou chargé via configfs
ls /sys/class/net/          # can0 doit apparaître

# Configurer l'interface (impérativement interface DOWN pour changer le débit)
sudo ip link set can0 down
sudo ip link set can0 type can bitrate 500000
sudo ip link set can0 up
ip -details link show can0

# Émettre / écouter
candump can0 &
cansend can0 123#DEADBEEF

# Test seul sur une carte : activer le loopback interne
sudo ip link set can0 down
sudo ip link set can0 type can bitrate 500000 loopback true
sudo ip link set can0 up
cansend can0 321#CAFEBABE && candump -n 1 can0

Verificación esperada

En modo loopback, candump recibe la trama 321#CAFEBABE enviada por cansend. En un bus con dos tarjetas, cansend en una hace aparecer la trama en candump en la otra; ip -details muestra el bitrate 500000 activo y la interfaz en estado UP.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales