Partager via


Interface de programmation et de débogage MCU

Le MT3620 expose deux UART dédiés et deux signaux de contrôle (réinitialisation et récupération) à utiliser lors de l’approvisionnement et de la récupération de l’appareil. En outre, une interface SWD est disponible pour le débogage des applications en temps réel et un autre UART est réservé à Microsoft diagnostics.

Les outils logiciels pour PC Azure Sphere nécessitent l’utilisation d’une puce d’interface USB-à-UART qui expose ces interfaces à un PC de manière à permettre aux outils de les reconnaître et d’interagir avec elles. Les outils Azure Sphere prennent en charge le chargement d’une application via USB à l’aide de l’UART de service et la récupération du système d’exploitation Azure Sphere à l’aide de l’UART de récupération. Les outils PC nécessitent l’utilisation de la puce d’interface UART-USB FTDI (Future Technology Devices International) FT4232HQ pour exposer les interfaces. Actuellement, les outils ne prennent pas en charge d’autres puces FTDI ou puces d’interface de différents fabricants.

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

Vue d’ensemble des ports

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

  • Débogage UART : l’UART de débogage permet à Microsoft d’effectuer des diagnostics. Notez que cet UART n’est pas utilisable pour le débogage d’application ou la diagnostics.

    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 elle peut être considérée comme facultative pour les appareils qui ont atteint la phase 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 pouvoir déboguer des applications en temps réel (par exemple, pendant le développement de l’appareil), votre appareil doit prendre en charge cette interface. Une fois que votre appareil atteint l’étape de fabrication, cette interface peut être considérée comme facultative et peut être omise.

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

    Cette interface active toutes les opérations Azure CLI qui nécessitent un appareil attaché, à l’exception de la récupération (comme décrit dans le paragraphe suivant). Étant donné que le service UART est l’interface main 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 sur le terrain, 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 permet 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 pendant 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 à jour avec la dernière version du système d’exploitation.

Vue d’ensemble des composants

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

Diagramme de l’interface FTDI à 4 ports vers MT3620

Vous pouvez choisir d’utiliser la puce et le circuit FTDI dans 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 trouve 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 l’interface SWD qui sera utilisée dans votre conception sont connectés aux ports FTDI, comme décrit dans le tableau suivant.

Fonction Ft4232HQ, fonction pin (numéro de broche) Fonction pin MT3620 (numéro de broche)
UART de récupération, broche de courroie de réinitialisation et de 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 le circuit détaillé ci-dessous)
Service UART 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 Pour plus d’informations sur les circuits SWD, consultez Interface SWD
BDBUS1 (27) SORTIE SWDIO
BDBUS2 (28) SWDIO dans
BDBUS4 (30) Direction SWDIO
BDBUS5 (32) Activation SWD
BDBUS6 (33) SYSRST_N (125) (et éventuellement WAKEUP (70) via le circuit détaillé ci-dessous)

Déboguer L’UART

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 cerclage » du MT3620 qui, si elle est tirée à haute altitude lors d’une réinitialisation de la puce, provoque l’entrée de la puce en mode de récupération. À tous les autres moments, cette broche est la broche RTS de l’UART de débogage.

Schémas

Les schémas suivants montrent les composants main 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éma 1 :

schématique pour prendre en charge la puce FTDI

Notes — Schéma 1 :

  • Les résistances 1K en 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 programmation pendant la récupération.
  • Lors de la disposition du CIRCUIT imprimé, assurez-vous que la paire différentielle, USB_P et USB_N, est routée parallèlement l’une à l’autre pour donner une impédance différentielle caractéristique de 90Ω.
  • Les résistances 33Ω en série avec les lignes SWD (facultatives) sont destinées à réduire les transitoires et doivent être placées près du FT4232HQ.

Schéma 2 :

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

Remarques — Schéma 2 :

  • SYSRST_N est tiré en hauteur avec une résistance de 100 000 (R8). Cela signifie que la réinitialisation de la 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 physique RESET et l’interface FTDI sur le PC à réveiller automatiquement le MT3620 quand RESET aurait été activé. Cette option est recommandée pour toute conception qui utilise le mode Marche/Arrêt où le bouton de réinitialisation ou l’interface du PC doit continuer à fonctionner en mode Marche/Arrêt.

  • Une paire de diodes Schottky est connectée en série entre SYSRST_N et WAKEUP, et la connexion cathodique 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é en hauteur avec une résistance de 100K qui est connectée au bloc d’alimentation 3V3_RTC. La résistance 100 000 garantit que wakeup est bas quand SYSRST_N est bas bas; la connexion à 3V3_RTC garantit que le wakeup continue d’être élevé si le bloc d’alimentation MT3620 s’éteint en mode Marche/Arrêt.

FTDI EEPROM

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

Les composants EEPROM suivants 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é la partie 93LC56BT-I/OT.

Connectez l’EEPROM à la puce FTDI comme suit :

Circuit EEPROM Connexion à la puce FTDI
Circuit EEProm connexion à la puce FTDI

Interfaces UART

Les connexions UART Recovery, Service et Debug entre le MT3620 et le FTDI ne nécessitent aucun circuit spécial. Toutefois, notez le croisement entre TXD et RXD, et CTS et RTS. La documentation FTDI décrit la broche 0 de chaque port en tant que 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 traverser les connexions RXD et TXD au MT3620 (et de même pour CTS et RTS). Le diagramme suivant illustre cela pour l’UART du service ; utilisez également le même schéma pour les UART de récupération et de débogage :

récupération et connexions UART de service

Interface SWD

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

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

Disposition des mémoires tampons à trois états Connexions FTDI Port-B
Disposition des mémoires tampons à trois états Connexions ftdi port B

LED d’activité USB (facultatif)

Une LED d’activité USB peut être utile pour indiquer le transfert de données via la connexion USB pendant un fonctionnement normal. Vous pouvez implémenter une LED d’activité USB de plusieurs façons. Le circuit suivant n’est qu’un exemple.

Le circuit AND regroupe les lignes d’horloge et de données qui relient le FT4232HQ à l’EEPROM. Bien que cela ne soit pas évident, ces deux lignes basculent lorsque les données sont envoyées et reçues via USB et peuvent donc être utilisées pour indiquer l’activité USB. Toutefois, l’heure de sortie de la porte AND est trop courte pour éclairer une LED; par conséquent, ce signal est utilisé pour piloter un circuit mono-stable, qui à son tour pilote la LED.

L’heure du circuit mono-stable est définie sur 100 ms, de sorte que même de courtes rafales de trafic USB provoquent l’éclairage de la LED.

LED d’activité USB

Outil de programmation FT_PROG FTDI

Pour faciliter la programmation de l’EEPROM, FTDI fournit un outil logiciel gratuit appelé FT_PROG. L’outil est disponible à la fois en tant qu’application GUI Windows et en tant qu’outil en 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.

FT_PROG outil en ligne de commande

La version de ligne de commande de FT_PROG est la méthode préférée pour programmer 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, commençant par « AS »
  • Définit la description du produit sur « Interface MSFT MT3620 Std »

Pour programmer l’EEPROM, vous devez utiliser ce fichier tel qu’il est 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 EEPROM

Pour utiliser la version de ligne de commande de FT_PROG programmer l’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 prog paramètres et cycl :

    "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 à nouveau :

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

    Notez que les numéros de série ont changé 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 Windows GUI de l’application est utile pour lire et vérifier l’état des informations EEPROM. Vous pouvez également l’utiliser pour modifier les informations ; Toutefois, nous vous recommandons d’utiliser la version en ligne de commande de l’outil pour programmer l’appareil.

Après avoir démarré l’application, cliquez sur le bouton Analyser (avec l’icône en forme de loupe) pour lire et afficher le contenu actuel de l’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 d’application affiche correctement les informations.

FT_PROG écran de l’appareil inconnu

L’exemple suivant montre l’affichage correct :

FT_PROG affichage correct

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