🛠 Enregistrer les données CAN FD sur la XIAO STM32C5

Seeed Studio XIAO STM32C5 · intermediaire · Configurez le bus CAN FD pour capturer et stocker des trames de données sur le stockage externe de la carte.

Objectifs

Ce tutoriel vise à configurer le contrôleur CAN FD intégré (FDCAN2) de la XIAO STM32C5 pour recevoir des trames de données et les enregistrer sur la mémoire flash externe de 16 Mo. Vous apprendrez à initialiser le bus CAN, à gérer les interruptions et à utiliser le système de fichiers pour le stockage persistant.

Matériel nécessaire

Étapes

  1. Initialisation du projet : Créez un nouveau projet dans STM32CubeIDE en sélectionnant le microcontrôleur STM32C5A3CG. Activez l'horloge externe de 48 MHz pour assurer la précision temporelle requise par le CAN FD.
  1. Configuration du FDCAN2 : Dans le configurateur de périphériques, activez le FDCAN2. Notez que le transceiver TCAN3403-Q1 est déjà connecté avec une résistance de terminaison de 120 Ω. Configurez la vitesse du bus (ex: 500 kbps pour l'arbitrage, 2 Mbps pour les données) et activez les interruptions de réception.
  1. Gestion de la mémoire externe : La carte dispose de 16 Mo de flash externe. Configurez le driver QSPI ou SPI correspondant dans le code pour accéder à cette mémoire. Initialisez un système de fichiers simple (comme LittleFS) pour structurer les données en fichiers.
  1. Code de réception et stockage : Implémentez la fonction de callback d'interruption CAN. À chaque trame reçue, lisez l'identifiant et les données. Écrivez ces informations dans un fichier texte ou binaire sur la flash externe. Assurez-vous d'ajouter un horodatage pour chaque entrée.
  1. Compilation et téléversement : Compilez le projet et téléversez-le sur la carte via le port USB-C. Ouvrez le moniteur série pour vérifier les messages de débogage indiquant l'initialisation réussie du CAN et du système de fichiers.

Vérification

Connectez un dispositif CAN au bus FDCAN2. Envoyez des trames de données. Vérifiez sur le moniteur série que les trames sont bien détectées. Utilisez une commande de lecture de fichier pour confirmer que les données sont persistées dans la mémoire externe après un redémarrage de la carte.

Pour aller plus loin

Explorez l'utilisation du capteur inertielle LSM6DS3TR-C pour enrichir les données CAN avec des mesures de mouvement. Activez le circuit de chauffage programmable par PWM pour stabiliser les mesures avant de les enregistrer, créant ainsi un journal de bord haute précision.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels