Partager via


Interface de programmation et de débogage de microcontrôleur

Important

Il s’agit de la documentation Azure Sphere (héritée). Azure Sphere (hérité) prend sa retraite le 27 septembre 2027 et les utilisateurs doivent migrer vers Azure Sphere (intégré) pour l’instant. Utilisez le sélecteur de version situé au-dessus du TOC pour afficher la documentation Azure Sphere (intégrée).

Le MT3620 expose deux composants UART dédiés et deux signaux de contrôle (réinitialisation et récupération) à utiliser pendant le provisionnement et la récupération de l’appareil. En outre, une interface SWD est disponible pour le débogage de RTApps et un autre UART est réservé aux diagnostics Microsoft.

Les outils logiciels de PC Azure Sphere nécessitent l’utilisation d’une puce d’interface USB-UART qui expose ces interfaces à un PC d’une façon qui permet aux outils de les reconnaître et d’interagir avec elles. Les outils Azure Sphere incluent la prise en charge du chargement d’une application sur USB à l’aide de l’UART de service et de la récupération du système d’exploitation Azure Sphere à l’aide de l’UART de récupération. Les outils de PC nécessitent l’utilisation de la puce d’interface UART-USB FTDI (Future Technology Devices International) FT4232HQ pour exposer les interfaces. Pour l’instant, les outils ne prennent pas en charge les autres puces FTDI ni les puces d’interface provenant d’autres fabricants.

Pour les cartes de développement, cette puce d’interface se trouve généralement sur la même carte de circuits imprimés que la MT3620. Cette approche est documentée dans la conception du tableau de développement de référence MT3620 (RDB). Pour une carte ou un module personnalisé qui utilise le MT3620, il peut être approprié d’avoir la puce d’interface sur une carte OU un module DEC distinct, car ce matériel est nécessaire uniquement pendant la fabrication ou la maintenance, ce qui permet des économies par unité de coût. Cette approche est documentée dans la conception autonome de la programmation et du débogage de la carte d’interface.

Vue d’ensemble des ports

Le MT3620 expose trois UART et une interface SWD qui sont utilisées pour la programmation, les diagnostics Microsoft et l’approvisionnement de la puce. Les quatre interfaces ont les fonctions suivantes :

  • Déboguer UART : L’UART de débogage permet à Microsoft d’effectuer des diagnostics. Notez que cet UART n’est pas utilisable pour le débogage ou les diagnostics des applications.

    Sous la direction de Microsoft, cette interface fournit un moyen de capturer des informations de diagnostic supplémentaires qui peuvent être utiles lors du débogage de certains problèmes. Il est donc recommandé d’inclure cette interface pour les appareils utilisés pour le développement logiciel ou matériel, mais il peut être considéré comme facultatif pour les appareils qui ont atteint l’étape de fabrication.

  • Interface SWD : l’interface SWD est utilisée lors du débogage d’applications compatibles en temps réel (RTApps) qui s’exécutent sur les cœurs M4F ; cette interface est partagée entre les deux cœurs M4F.

    Si vous avez besoin de la possibilité de déboguer des applications RTApps (par exemple pendant le développement d’appareils), votre appareil doit prendre en charge cette interface. Une fois que votre appareil atteint la phase de fabrication, cette interface peut être considérée comme facultative et peut être omise.

  • UART de service : L’UART de service fournit l’interface de programmation et de débogage principale entre le MT3620 et l’ordinateur hôte.

    Cette interface active toutes les opérations Azure Sphere CLI qui nécessitent un appareil attaché, à l’exception de la récupération (comme décrit dans le paragraphe suivant). Étant donné que l’UART du service est l’interface principale entre le MT3620 et l’ordinateur hôte, cette interface doit être disponible pour les appareils qui prennent en charge le développement de logiciels, ainsi que pendant la fabrication d’appareils de vente au détail. Si cette interface est disponible pour un appareil dans le champ, elle peut également être utilisée par les ingénieurs de service, par exemple pour charger de nouvelles versions du logiciel d’application, si l’appareil ne reçoit pas de mises à jour cloud, car il n’est pas connecté à Internet.

  • UART de récupération : le port de récupération fournit un moyen de récupérer un appareil vers la dernière version du système d’exploitation.

    Cette interface doit être prise en charge pendant la fabrication, car la récupération d’un appareil vers la dernière version du système d’exploitation est une tâche courante lors de la fabrication de l’appareil. Toutefois, une fois qu’un appareil a été vendu à un client (et qu’il l’a connecté à Internet), les mises à jour cloud garantissent que l’appareil est tenu à jour avec la dernière version du système d’exploitation.

Présentation des composants

Le diagramme suivant fournit une vue d’ensemble des principaux composants de l’interface FTDI 4 ports et leurs interconnexions avec le MT3620 :

Diagramme de l’interface FTDI 4 ports pour le MT3620

Vous pouvez choisir d’utiliser la puce FTDI et des circuits dans le cadre de la même carte que le MT3620 (par exemple, si vous créez une carte de développement) ou dans une carte d’interface distincte qui se situe entre votre appareil MT3620 et le PC.

Affectations de ports

Pour garantir la compatibilité avec les outils PC, il est important de s’assurer que chacun des UART exposés et de l’interface SWD qui seront utilisés dans votre conception sont connectés aux ports FTDI, comme décrit dans le tableau suivant.

Fonction Fonction de broche FT4232HQ (numéro de broche) Fonction de broche MT3620 (numéro de broche)
UART de récupération, broche de connexion de réinitialisation et récupération Port-D DDBUS0 (48) RECOVERY_RXD (134)
DDBUS1 (52) RECOVERY_TXD (135)
DDBUS2 (53) RECOVERY_CTS (137)
DDBUS3 (54) RECOVERY_RTS (136)
DDBUS5 (57) DEBUG_RTS (96)*
DDBUS6 (58) SYSRST_N (125) (et éventuellement WAKEUP (70) via un circuit détaillé ci-dessous)
UART de service Port-C CDBUS0 (38) SERVICE_RXD (129)
CDBUS1 (39) SERVICE_TXD (127)
CDBUS2 (40) SERVICE_CTS (130)
CDBUS3 (41) SERVICE_RTS (128)

SWD et réinitialisation

Port-B BDBUS0 (26) SWCLK Consultez Interface SWD pour plus d’informations sur les circuits SWD
BDBUS1 (27) SWDIO sortie
BDBUS2 (28) SWDIO entrée
BDBUS4 (30) Direction de SWDIO
BDBUS5 (32) Activation SWD
BDBUS6 (33) SYSRST_N (125) (et éventuellement WAKEUP (70) via un circuit détaillé ci-dessous)

UART de débogage

Port-A ADBUS0 (16) DEBUG_RXD (94)
ADBUS1 (17) DEBUG_TXD (95)
ADBUS2 (18) DEBUG_CTS (97)
ADBUS3 (19) DEBUG_RTS (96)*

*DEBUG_RTS est l’une des « broches de sanglage » de MT3620, qui, si elles sont extraites à haut lors d’une réinitialisation de puce, entraîne l’entrée de la puce en mode de récupération. Le reste du temps, cette broche est la broche RTS de l’UART de débogage.

Schémas

Les schémas suivants montrent les principaux composants requis pour prendre en charge la puce FT4232HQ. La conception de carte de référence MT3620 fournit une conception de référence intégrant ce schéma.

Schématique 1 :

schéma pour prendre en charge la puce FTDI

Remarques : schématique 1 :

  • Les résistances 1K de série avec la ligne de réinitialisation sont incluses pour éviter un court-circuit dans le cas où un utilisateur appuie sur le bouton de réinitialisation (s’il est inclus dans la conception) en même temps que la ligne de réinitialisation est contrôlée par programme pendant la récupération.
  • Lors de la disposition du CCP, assurez-vous que la paire différentielle, USB_P et USB_N, sont routées parallèlement les unes aux autres pour donner une impedance différentielle caractéristique de 90Ω.
  • Les résistances de 33Ω en série avec les lignes SWD (en option) sont destinées à réduire les transitoires et doivent être placées près de la puce FT4232HQ.

Schématique 2 :

schématique avec circuit de mise en éveil/réinitialisation pour prendre en charge la puce FTDI

Remarques : schématique 2 :

  • SYSRST_N est tiré haut avec une résistance de 100 K (R8). Cela signifie que la réinitialisation de puce n’est pas déclarée par défaut.

Les deux éléments suivants sont facultatifs. S’ils sont présents, ils autorisent le bouton RÉINITIALISATION physique et l’interface FTDI au PC à réveiller automatiquement le MT3620 lorsque RESET aurait été désactivé. Il est recommandé pour toute conception qui utilise le mode Power Down où le bouton de réinitialisation ou l’interface PC doit continuer à fonctionner en mode Power Down.

  • Une paire de diodes Schottky est connectée en série entre SYSRST_N et WAKEUP et la connexion cathode commune des diodes est connectée au bouton de réinitialisation et aux signaux de réinitialisation FTDI. Cela empêche SYSRST_N de basculer bas lorsque WAKEUP bascule bas.
  • WAKEUP est tiré haut avec un résistance de 100K connecté à l’alimentation 3V3_RTC. La résistance de 100K garantit que WAKEUP est bas quand SYSRST_N est bas ; la connexion à 3V3_RTC garantit que WAKEUP continue d’être extrait haut si l’alimentation MT3620 est désactivée pour le mode Power Down.

Mémoire EEPROM FTDI

La puce d’interface FTDI fournit un ensemble de broches qui doivent être connectées à une petite mémoire EEPROM utilisée pour stocker les détails du fabricant et un numéro de série. Après l’assembly de carte, ces informations sont programmées dans l’EEPROM sur USB à l’aide d’un outil logiciel fourni par FTDI, comme décrit plus loin dans FTDI FT_PROG Programming Tool.

Les composants suivants de la mémoire EEPROM sont compatibles avec la puce FTDI :

  • 93LC46BT-I/OT
  • 93LC56BT-I/OT
  • 93LC66BT-I/OT

Notez l’utilisation de la variante LC, qui est compatible avec une alimentation 3,3V. À des fins de développement interne, Microsoft a toujours utilisé le composant 93LC56BT-I/OT.

Connectez la mémoire EEPROM à la puce FTDI comme suit :

Circuit de la mémoire EEPROM Connexion à la puce FTDI
Circuit de la mémoire EEPROM connexion à la puce FTDI

Interfaces UART

Les connexions UART Recovery, Service et Debug entre mt3620 et FTDI ne nécessitent aucun circuit spécial. Toutefois, notez le croisement de TXD et RXD, et CTS et RTS. La documentation FTDI décrit la broche 0 de chaque port comme TXD et la broche 1 comme RXD. Ces définitions sont relatives à la puce FTDI ; autrement dit, la broche 0 est une sortie et la broche 1 est une entrée. Par conséquent, il est nécessaire de croiser les connexions RXD et TXD pour le MT3620 (et aussi pour CTS et RTS). Le diagramme suivant illustre ceci pour l’UART de service ; utilisez également le même schéma pour les UART de récupération et de débogage :

Connexions UART de récupération et de service

Interface SWD

Bien que les puces FTDI soient généralement utilisées pour fournir un pont entre des UART et USB, l’interface de programmation et de débogage d’Azure Sphere utilise un circuit supplémentaire basé sur une mémoire tampon quadruple à trois états pour permettre au composant FTDI de fonctionner comme une interface SWD à haut débit.

L’exemple suivant illustre le circuit requis et la connexion à la puce FTDI. Notez que le signal SWDIO se connecte à la broche MT3620 98 et SWCLK se connecte à la broche 99.

Disposition de la mémoire tampon à trois états Connexions Port-B FTDI
Disposition de la mémoire tampon à trois états Connexions Port-B FTDI

Voyant LED d’activité USB (en option)

Une LED d’activité USB peut être utile pour indiquer le transfert de données via la connexion USB pendant le fonctionnement normal. Vous pouvez implémenter un voyant LED d’activité USB de plusieurs manières. Le circuit suivant est simplement un exemple.

Le circuit relie les lignes d’horloge et de données qui connectent la puce FT4232HQ à la mémoire EEPROM. Même si ce n’est pas évident, ces deux lignes alternent quand les données sont envoyées et reçues via USB et peuvent par conséquent être utilisées pour indiquer l’activité USB. Toutefois, le délai de la sortie de la porte AND est trop court pour allumer un voyant LED ; par conséquent, ce signal est utilisé pour commander un circuit monostable, qui à son tour commande le voyant LED.

Le délai du circuit monostable est défini sur 100 ms, afin que même de courts pics de trafic USB allument le voyant LED.

Voyant LED d’activité USB

Outil de programmation ftDI FT_PROG

Pour faciliter la programmation de l’EEPROM, FTDI fournit un outil logiciel gratuit appelé FT_PROG. L’outil est disponible à la fois sous la forme d’une application d’interface utilisateur graphique Windows et d’un outil de ligne de commande ; les deux options sont installées en même temps à partir du même package. Téléchargez l’outil à partir du site web FTDI et installez-le à l’emplacement par défaut.

outil en ligne de commande FT_PROG

La version de ligne de commande de FT_PROG est la méthode préférée de programmation de l’EEPROM, car elle prend le nom d’un fichier de configuration en tant que paramètre, puis programme plusieurs appareils avec une seule commande.

Le référentiel Conceptions matérielles Azure Sphere sur GitHub contient un fichier de configuration EEPROM à utiliser avec l’outil en ligne de commande. Nous vous recommandons vivement d’utiliser ce fichier et l’outil en ligne de commande dans les scénarios de fabrication. Le fichier de configuration programme l’EEPROM avec les paramètres suivants :

  • Active le mode direct D2XX et désactive le port COM virtuel
  • Génère automatiquement un numéro de série, en commençant par « AS »
  • Définit la description du produit sur « MSFT MT3620 Std Interface »

Pour programmer l’EEPROM, vous devez utiliser ce fichier comme sans modification, car les outils PC Azure Sphere recherchent la chaîne Description du produit et échouent si cette valeur est modifiée.

Instructions pas à pas pour la programmation de la mémoire EEPROM

Pour utiliser la version de ligne de commande de FT_PROG pour programmer eEPROM pour une puce FTDI à quatre ports :

  1. Installez les outils FTDI à l’emplacement par défaut : C:\Program Files(x86)\FTDI\FT_Prog.

  2. Connectez une ou plusieurs cartes MT3620 au PC.

  3. Ouvrez une invite de commandes (par exemple, cmd.exe) et accédez au dossier dans lequel vous avez enregistré le fichier de configuration.

  4. Tapez la commande suivante pour répertorier tous les appareils attachés :

    "c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan

    Si quatre appareils sont attachés, la sortie ressemble à ceci :

    Device 0: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
    Device 1: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
    Device 2: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
    Device 3: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
    
  5. Tapez la commande suivante pour programmer tous les appareils attachés. Spécifiez les index des appareils attachés (0, 1, 2, etc.) après les paramètres et cycl les prog paramètres :

    "c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan prog 0,1,2,3 MT3620_Standard_Interface.xml cycl 0,1,2,3

    L’outil doit afficher :

     Scanning for devices...
     Device 0: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
     Device 1: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
     Device 2: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
     Device 3: FT4232H, MSFT MT3620 Std Interface, 984A8DD25A36
     Device 0 programmed successfully!
     Device 1 programmed successfully!
     Device 2 programmed successfully!
     Device 3 programmed successfully!
     Finished
    
     Re-enumerating Device 0....
     Re-enumerating Device 1....
     Re-enumerating Device 2....
     Re-enumerating Device 3....
    
  6. Pour vérifier que la programmation a réussi, analysez une fois de plus :

    "c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan

    Notez que les numéros de série ont des modifications dans la sortie et commencent maintenant par AS :

    Scanning for devices...
     Device 0: FT4232H, MSFT MT3620 Std Interface, AS5AW7FD
     Device 1: FT4232H, MSFT MT3620 Std Interface, AS5AHG3C
     Device 2: FT4232H, MSFT MT3620 Std Interface, AS5DWM2I
     Device 3: FT4232H, MSFT MT3620 Std Interface, AS5JQ0LJ
    

application gui FT_PROG

La version de l’interface utilisateur graphique Windows de l’application est utile pour la lecture et la vérification de l’état des informations de la mémoire EEPROM. Vous pouvez également l’utiliser pour modifier les informations ; Toutefois, nous vous recommandons d’utiliser la version de ligne de commande de l’outil pour programmer l’appareil.

Une fois que vous avez démarré l’application, cliquez sur le bouton d’analyse (avec l’icône de la loupe) pour lire et afficher le contenu actuel de la mémoire EEPROM.

Si une boîte de dialogue Appareil inconnu s’affiche, comme dans l’exemple suivant, cliquez sur OK jusqu’à ce que la fenêtre de l’application affiche les informations correctement.

Écran Appareil inconnu FT_PROG

L’exemple suivant montre l’affichage correct :

Affichage correct FT_PROG

Pour plus d’informations sur l’utilisation du logiciel, consultez la documentation FT_PROG.