🛠 Configuration avancée et validation du bus I2C

Unité de pilotage moteur à encodeur M5Stack (DRV8837DSGR) · avance · Apprenez à configurer l'adresse I2C personnalisée et à valider la communication avec le DRV8837DSGR via le registre de statut.

Objectifs

Ce tutoriel s'adresse aux utilisateurs avancés souhaitant dépasser la configuration par défaut. L'objectif est de modifier l'adresse I2C de l'Encoder Motor Driver Unit (DRV8837DSGR) pour éviter les conflits sur le bus, puis de vérifier la communication bas niveau en lisant les registres internes. Nous allons confirmer que le microcontrôleur STM32G031G8U6 répond correctement aux requêtes et que le pont en H DRV8837DSGR est initialisé.

Matériel nécessaire

Étapes

  1. Connexion matérielle : Connectez l'unité à votre carte via le connecteur Grove ou les broches I2C. Assurez-vous que SDA et SCL sont correctement câblés. Branchez l'alimentation DC (6-12V) sur le port dédié. Le régulateur interne convertira cette tension en 5V pour le moteur et l'interface.
  1. Scan I2C initial : Avant toute configuration, scannez le bus pour détecter l'adresse par défaut 0x2F. Utilisez un code de scan I2C standard pour confirmer la présence de l'unité.
  1. Configuration de l'adresse : Pour changer l'adresse (plage 0x08 à 0x77), vous devez envoyer une commande spécifique au registre de configuration. En utilisant la bibliothèque M5Stack ou des commandes brutes I2C, écrivez la nouvelle adresse dans le registre d'identification. Notez que cette modification persiste après redémarrage.
  1. Initialisation du pilote : Envoyez une commande d'initialisation pour activer le pont en H DRV8837DSGR. Vérifiez que le circuit de détection de courant INA199A est actif en lisant le registre de statut correspondant.
  1. Test de communication : Envoyez une commande de rotation lente (PWM faible) et lisez les données de l'encodeur AB (3-15 PPR) pour valider le flux de données bidirectionnel.

Vérification

Utilisez un analyseur logique pour observer les trames I2C. Vous devez voir l'adresse configurée répondre aux requêtes de lecture. La LED RGB WS2812C peut être programmée pour clignoter lors de la réception de commandes valides, offrant une confirmation visuelle immédiate de l'activité du bus.

Pour aller plus loin

Explorez le contrôle en boucle fermée de la position en configurant les PID via les registres avancés. Testez la protection contre les surintensités en bloquant manuellement le moteur pour observer la réaction du circuit INA199A.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels