🛠 Registrar datos CAN FD en XIAO STM32C5
Objetivos
Este tutorial tiene como objetivo configurar el controlador CAN FD integrado (FDCAN2) de la XIAO STM32C5 para recibir tramas de datos y registrarlas en la memoria flash externa de 16 MB. Aprenderás a inicializar el bus CAN, gestionar interrupciones y usar el sistema de archivos para el almacenamiento persistente.
Material Necesario
- Placa Seeed Studio XIAO STM32C5.
- Cable USB-C para alimentación y depuración.
- Un transceptor CAN externo o módulo CAN FD para generar tráfico (opcional para pruebas, ya que el TCAN3403-Q1 está integrado en FDCAN2).
- Ordenador con STM32CubeIDE o Zephyr RTOS instalado.
Pasos
- Inicialización del Proyecto: Crea un nuevo proyecto en STM32CubeIDE seleccionando el microcontrolador STM32C5A3CG. Activa el reloj externo de 48 MHz para asegurar la precisión temporal requerida por CAN FD.
- Configuración de FDCAN2: En el configurador de dispositivos, habilita FDCAN2. Ten en cuenta que el transceptor TCAN3403-Q1 ya está conectado con una resistencia de terminación de 120 Ω. Configura la velocidad del bus (ej: 500 kbps para arbitraje, 2 Mbps para datos) y habilita las interrupciones de recepción.
- Gestión de Memoria Externa: La placa dispone de 16 MB de flash externa. Configura el controlador QSPI o SPI correspondiente en el código para acceder a esta memoria. Inicializa un sistema de archivos simple (como LittleFS) para estructurar los datos en archivos.
- Código de Recepción y Almacenamiento: Implementa la función de callback de interrupción CAN. En cada trama recibida, lee el ID y los datos. Escribe esta información en un archivo de texto o binario en la flash externa. Asegúrate de añadir una marca de tiempo para cada entrada.
- Compilación y Carga: Compila el proyecto y cárgalo en la placa a través del puerto USB-C. Abre el monitor serie para verificar los mensajes de depuración que indican la inicialización exitosa de CAN y del sistema de archivos.
Verificación
Conecta un dispositivo CAN al bus FDCAN2. Envía tramas de datos. Verifica en el monitor serie que las tramas son detectadas. Usa un comando de lectura de archivo para confirmar que los datos se persisten en la memoria externa tras reiniciar la placa.
Para Ir Más Allá
Explora el uso del sensor inercial LSM6DS3TR-C para enriquecer los datos CAN con mediciones de movimiento. Activa el circuito de calefacción programable por PWM para estabilizar las mediciones antes de registrarlas, creando un registro de alta precisión.