am13e23019-canfd-transmit.ino

BeagleConnect QuadESC: Controlador BLDC de 4 canales · Archivo : am13e23019-canfd-transmit.ino · Lenguaje : C · Uso : Envoyer un trame CAN FD périodique pour la communication avec un contrôleur de vol.

Configuración y envío de tramas CAN FD de alta velocidad, esencial para interfaces DShot/CAN de drones.

Requiere el módulo CAN FD del SDK TI. BeagleConnect QuadESC expone las líneas CAN a través de conectores. Asegúrese de que el transceptor CAN esté alimentado. Pruebe con una herramienta como CANalyzer u otro nodo CAN.

am13e23019-canfd-transmit.ino

#include <ti/devices/am13e2x/inc/am13e2x.h>
#include <ti/drv/canfd/canfd.h>
#include <ti/drv/canfd/soc/canfd_soc.h>
#include <ti/drv/uart/UART_stdio.h>

CANFD_Handle canfdHandle;
CANFD_Frame frame;

void init_canfd(void) {
    CANFD_Params params;
    CANFD_Params_init(&params);
    params.bitRate = 1000000; // 1 Mbps
    params.dataBitRate = 5000000; // 5 Mbps
    
    canfdHandle = CANFD_open(CANFD_INSTANCE_0, &params);
    if (canfdHandle == NULL) {
        UART_printf("Erreur ouverture CAN FD\n");
        while(1);
    }
}

void send_can_frame(void) {
    frame.id = 0x123;
    frame.dlc = 4;
    frame.data[0] = 0xDE;
    frame.data[1] = 0xAD;
    frame.data[2] = 0xBE;
    frame.data[3] = 0xEF;
    frame.frameType = CANFD_FRAME_DATA;
    frame.isExtended = false;
    
    if (CANFD_write(canfdHandle, &frame) != CANFD_STATUS_SUCCESS) {
        UART_printf("Erreur envoi CAN\n");
    }
}

← Volver a la ficha