🛠 Bus CAN FD : relier deux R4 avec un transceiver externe

Arduino UNO R4 WiFi · avance · Schéma : IMG-uno-r4-wifi-avance-3-ur4wifi-can-fd.svg — deux UNO R4 WiFi face à face, chacune reliée à un module transceiver CAN FD, paires de fils CANH/CANL reliant les deux modules, résistance 120 Ω aux deux extrémités, matrice LED affichant un compteur reçu.

Objetivos

Salir del punto a punto: el RA4M1 integra un controlador CAN FD (Flexible Data-rate), una funcionalidad rara en una placa Arduino — la biblioteca oficial Arduino_CAN la explota. El RA4M1 proporciona el controlador, pero NO la capa física: se necesita un transceptor CAN FD externo entre la placa y el bus. Vas a conectar dos placas e intercambiar tramas a 500 kbit/s (arbitraje) / 2 Mbit/s (datos).

Material

Código (emisor, la otra placa como receptor con el ejemplo gemelo)

#include <CANFD.h>

void setup {
  Serial.begin(115200);
  // Débit d'arbitrage 500 kbit/s, débit de données 2 Mbit/s :
  if (!CANFD.begin(CanBitRate::BR_500k_BR_2M)) {
    Serial.println(F("CAN FD init KO"));
    while (true) { }
  }
}

void loop {
  static uint8_t compteur = 0;
  CanFrame trame;
  trame.canId = 0x123;
  trame.dataLength = 1;
  trame.data[0] = compteur++;
  CANFD.transmit(trame);
  Serial.print(F("emis ")); Serial.println(trame.data[0]);
  delay(500);
}

Verificación esperada

En el lado receptor, la trama llega con su ID 0x123 y un contador incrementado; la matriz LED de la placa receptora puede mostrar el valor. Prueba de diagnóstico: desconecta CANL — ya no pasa nada; retira una terminación — errores de arbitraje intermitentes.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales