Bus et protocoles : piloter les moteurs, du PWM au DShot

Illustration : Bus et protocoles : piloter les moteurs, du PWM au DShot

Écrit par

dans

Entre le contrôleur de vol et les ESC circule la consigne de chaque moteur, plusieurs milliers de fois par seconde. Le protocole choisi conditionne la latence, la résolution et la possibilité de récupérer des informations en retour.

Du PWM au numérique

ProtocolePrincipePériode / débitRemarques
PWMimpulsion de 1 000 à 2 000 µsjusqu’à 490 Hzhérité du modélisme, trop lent pour un multirotor
OneShot125impulsion de 125 à 250 µsjusqu’à 4 kHzanalogique, à calibrer
OneShot42impulsion de 42 à 84 µsjusqu’à 12 kHzanalogique, à calibrer
Multishotimpulsion de 5 à 25 µsjusqu’à 32 kHzanalogique, sensible au bruit
DShot150 à 1200trame numérique de 16 bits150 à 1 200 kbit/spas de calibration, somme de contrôle

Les protocoles analogiques codent la consigne dans la durée d’une impulsion : l’ESC mesure cette durée, d’où la calibration des bornes et une sensibilité aux parasites. Le DShot transmet une valeur numérique protégée par une somme de contrôle : plus de calibration, et une trame corrompue est simplement ignorée.

La trame DShot

1000001011000110valeur (11 bits)TCRC (4 bits)« 1 » : 75 % du bit à l’état haut — « 0 » : 37,5 %
Trame DShot de la valeur 1046 : 0x82C6.

Seize bits : onze pour la valeur (0 à 47 réservés aux commandes, 48 à 2 047 pour les gaz), un bit de demande de télémétrie, quatre bits de somme de contrôle. Un « 1 » est un état haut sur 75 % du temps bit, un « 0 » sur 37,5 %. L’article Le protocole DShot décortiqué détaille le codage bit à bit, la réponse bidirectionnelle, et propose un calculateur de trames.

DébitDurée d’un bitDurée d’une trame
DShot1506,67 µs107 µs
DShot3003,33 µs53 µs
DShot6001,67 µs27 µs
DShot12000,83 µs13 µs

DShot300 suffit pour une boucle à 4 kHz, DShot600 pour 8 kHz. Monter plus haut n’apporte rien si la boucle ne suit pas, et rend la liaison plus sensible aux longueurs de fil.

DShot bidirectionnel et télémétrie

En DShot bidirectionnel, l’ESC répond sur le même fil après chaque trame avec la vitesse de rotation électrique du moteur (eRPM). Betaflight s’en sert pour le filtre RPM, qui suit les harmoniques moteurs et nettoie le gyroscope bien mieux qu’un filtre fixe. Il faut un firmware d’ESC qui le gère (BLHeli_32, Bluejay, AM32) et activer dshot_bidir.

La télémétrie complète (tension, courant, température, régime) passe, elle, par un fil séparé vers un UART du contrôleur, à 115 200 bit/s, sur les ESC qui l’exposent.

Les signaux en pratique

  • Un fil de signal par moteur, plus la masse : sur les ESC 4-en-1, le connecteur 8 broches les regroupe avec la tension batterie, le courant et la télémétrie.
  • Garder les fils de signal courts, ou torsadés avec la masse, et loin des fils de phase moteur.
  • Sortie motrice et timer : sur certaines cartes, deux sorties partagent un timer et doivent utiliser le même protocole. Les plans de câblage du fabricant l’indiquent.

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *