🛠 Contrôle distribué multi-moteurs via CAN FD sur BeagleConnect QuadESC
Objectifs
Ce tutoriel avancé vise à implémenter une architecture de contrôle distribué où le BeagleConnect QuadESC agit comme nœud de puissance intelligent. Nous allons configurer le bus CAN FD pour recevoir les consignes de couple de quatre moteurs simultanément, tout en remontant la télémétrie (courant, température) à un contrôleur central. L'accent est mis sur la gestion des interruptions matérielles et la configuration des registres du microcontrôleur TI AM13E23019 pour garantir une latence minimale.
Matériel nécessaire
- Carte BeagleConnect QuadESC
- Quatre moteurs BLDC triphasés (courant nominal < 40A)
- Alimentation DC régulée (12V-24V, 3S-6S compatible)
- Interface CAN FD USB (ex: Kvaser ou PCAN)
- Câblage blindé pour les signaux de puissance et communication
- Station de développement avec SDK TI AM13E2X installé
Étapes
- Préparation de l'environnement : Assurez-vous que le SDK TI AM13E2X est correctement configuré. Compilez le projet de base
can_fd_loopbackpour valider la chaîne de compilation.
- Configuration des drivers DRV8323S : Modifiez le fichier de configuration du périphérique pour activer le mode de commutation approprié. Les demi-ponts CSD88599Q5DC nécessitent un temps mort précis. Utilisez la commande suivante pour générer les fichiers de configuration matériels :
ti-sdk-am13e2x/tools/sysconfig/bin/sysconfig_cli --project ./quadesc_hw_config.syscfg
- Initialisation du CAN FD : Dans le code d'application, configurez le contrôleur CAN pour le mode FD (Flexible Data-rate). Définissez un débit de 5 Mbit/s pour la phase arbitrage et 2 Mbit/s pour la phase données. Allouez les buffers de réception pour les IDs spécifiques de chaque moteur (ex: ID 0x101 à 0x104).
- Boucle de contrôle temps réel : Implémentez une ISR (Interruption Service Routine) déclenchée par le timer PWM. Cette ISR lit les trames CAN reçues, applique la loi de contrôle (ex: PI) sur les courants mesurés via les 12 canaux ADC, et met à jour les registres PWM pour les 4 sorties triphasées. Utilisez les instructions spécifiques Cortex-M33 pour optimiser les calculs mathématiques.
- Protection batterie : Ajoutez une vérification périodique de la tension d'entrée (9-25.2V). Si la tension chute sous un seuil critique, forcez l'arrêt des drivers via les broches nEN_GATE.
Vérification
Connectez l'interface CAN FD. Envoyez des trames de consignes de couple. Surveillez les signaux sur les sorties moteur avec un oscilloscope pour vérifier la modulation de largeur d'impulsion (MLI). Vérifiez que les trames de télémétrie sont envoyées à 1 kHz sans perte de paquets.
Pour aller plus loin
Explorez l'utilisation de l'accélérateur TinyEngine pour implémenter des algorithmes de contrôle prédictif (MPC) directement sur la carte, réduisant ainsi la dépendance au contrôleur central.