MCU-programmeer- en foutopsporingsinterface

De MT3620 stelt twee toegewezen UART's en twee besturingssignalen (opnieuw instellen en herstellen) beschikbaar voor gebruik tijdens het inrichten en herstellen van apparaten. Daarnaast is er een SWD-interface beschikbaar voor het opsporen van fouten in RTApps en is er nog een UART gereserveerd voor diagnostische gegevens van Microsoft.

De Azure Sphere-pc-softwarehulpprogramma's vereisen het gebruik van een USB-naar-UART-interfacechip die deze interfaces beschikbaar maakt voor een pc op een manier die de hulpprogramma's in staat stelt om ze te herkennen en ermee te communiceren. De Azure Sphere-hulpprogramma's bieden ondersteuning voor het laden van een toepassing via USB met behulp van de service-UART en voor het herstellen van het Azure Sphere-besturingssysteem met behulp van de herstel-UART. De pc-hulpprogramma's vereisen het gebruik van de Future Technology Devices International (FTDI) FT4232HQ UART-naar-USB-interfacechip om de interfaces beschikbaar te maken. Momenteel ondersteunen de hulpprogramma's geen andere FTDI-chips of interfacechips van verschillende fabrikanten.

Voor ontwikkelborden bevindt deze interfacechip zich meestal op dezelfde PCB als de MT3620. Deze aanpak wordt beschreven in het RDB-ontwerp (Reference Development Board) van MT3620. Voor een aangepast bord of module die gebruikmaakt van de MT3620, kan het handig zijn om de interfacechip op een afzonderlijke printplaat te hebben, omdat deze hardware alleen nodig is tijdens productie of onderhoud, waardoor u per eenheid kostenbesparingen kunt realiseren. Deze aanpak wordt gedocumenteerd in het ontwerp van het interfacebord voor zelfstandige programmering en foutopsporing.

Overzicht van poorten

De MT3620 maakt drie UART's en een SWD-interface beschikbaar die worden gebruikt voor programmering, Diagnostische gegevens van Microsoft en het inrichten van de chip. De vier interfaces hebben de volgende functies:

  • Foutopsporing UART: met de UART voor foutopsporing kan Microsoft diagnostische gegevens uitvoeren. Houd er rekening mee dat deze UART niet kan worden gebruikt voor foutopsporing van toepassingen of diagnostische gegevens.

    Onder leiding van Microsoft biedt deze interface een methode voor het vastleggen van aanvullende diagnostische informatie die nuttig kan zijn bij het opsporen van fouten in bepaalde problemen. Het wordt daarom aanbevolen om deze interface op te nemen voor apparaten die worden gebruikt voor software- of hardwareontwikkeling, maar deze kan als optioneel worden beschouwd voor apparaten die de productiefase hebben bereikt.

  • SWD-interface: de SWD-interface wordt gebruikt bij het opsporen van realtime compatibele toepassingen (RTApps) die worden uitgevoerd op de M4F-kernen; deze interface wordt gedeeld tussen de twee M4F-kernen.

    Als u de mogelijkheid nodig hebt om fouten in RTApps op te sporen (bijvoorbeeld tijdens de ontwikkeling van het apparaat), moet uw apparaat deze interface ondersteunen. Zodra uw apparaat de productiefase heeft bereikt, kan deze interface als optioneel worden beschouwd en kan deze worden weggelaten.

  • Service UART: de service-UART biedt de belangrijkste programmeer- en foutopsporingsinterface tussen de MT3620 en de hostcomputer.

    Deze interface maakt alle Azure CLI-bewerkingen mogelijk waarvoor een gekoppeld apparaat is vereist, met uitzondering van herstel (zoals beschreven in de volgende alinea). Omdat de service-UART de hoofdinterface is tussen de MT3620 en de hostcomputer, moet deze interface beschikbaar zijn voor apparaten die ondersteuning bieden voor softwareontwikkeling, evenals tijdens de productie van apparaten in de detailhandel. Als deze interface beschikbaar is voor een apparaat in het veld, kan deze ook worden gebruikt door servicetechnici, bijvoorbeeld om nieuwe versies van de app-software te laden als het apparaat geen cloudupdates ontvangt omdat het niet is verbonden met internet.

  • Herstel-UART: de herstelpoort biedt een middel om een apparaat te herstellen naar de nieuwste versie van het besturingssysteem.

    Deze interface moet worden ondersteund tijdens de productie, omdat het herstellen van een apparaat naar de nieuwste versie van het besturingssysteem een veelvoorkomende taak is tijdens de productie van het apparaat. Nadat een apparaat echter is verkocht aan een klant (en deze verbinding heeft gemaakt met internet), zorgen cloudupdates ervoor dat het apparaat up-to-date blijft met de nieuwste versie van het besturingssysteem.

Overzicht van onderdelen

Het volgende diagram biedt een overzicht van de belangrijkste onderdelen van de 4-poorts FTDI-interface en hun onderlinge verbindingen met de MT3620:

Diagram van 4-poorts FTDI-interface naar MT3620

U kunt ervoor kiezen om de FTDI-chip en -circuits te gebruiken als onderdeel van hetzelfde bord als de MT3620 (bijvoorbeeld als u een ontwikkelbord bouwt) of in een afzonderlijke interfacekaart die zich tussen uw MT3620-apparaat en de pc bevindt.

Poorttoewijzingen

Om compatibiliteit met de pc-hulpprogramma's te garanderen, is het belangrijk om ervoor te zorgen dat alle blootgestelde UART's en de SWD-interface die in uw ontwerp worden gebruikt, zijn verbonden met de FTDI-poorten, zoals beschreven in de volgende tabel.

Functie FT4232HQ-pinfunctie (pinnummer) MT3620 Pin-functie (pincodenummer)
Herstel-UART, reset- en herstel-omsnoeringspin Poort-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) (en optioneel WAKEUP (70) via het circuit dat hieronder wordt beschreven)
Service-UART Poort-C CDBUS0 (38) SERVICE_RXD (129)
CDBUS1 (39) SERVICE_TXD (127)
CDBUS2 (40) SERVICE_CTS (130)
CDBUS3 (41) SERVICE_RTS (128)

SWD en opnieuw instellen

Poort-B BDBUS0 (26) SWCLK Zie SWD-interface voor meer informatie over SWD-circuits
BDBUS1 (27) SWDIO uit
BDBUS2 (28) SWDIO in
BDBUS4 (30) SWDIO-richting
BDBUS5 (32) SWD inschakelen
BDBUS6 (33) SYSRST_N (125) (en optioneel WAKEUP (70) via het circuit dat hieronder wordt beschreven)

Fouten opsporen in UART

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

*DEBUG_RTS is een van de 'omsnoeringspinnen' van de MT3620 die, als ze hoog worden getrokken tijdens het opnieuw instellen van de chip, ervoor zorgt dat de chip in de herstelmodus komt. Op alle andere momenten is deze pincode de RTS-pincode van de foutopsporingS-UART.

Schema

In de volgende schema's ziet u de belangrijkste onderdelen die nodig zijn om de FT4232HQ-chip te ondersteunen. Het mt3620-referentiebordontwerp biedt een referentieontwerp dat dit schema bevat.

Schematisch 1:

schematisch ter ondersteuning van FTDI-chip

Notities: schematisch 1:

  • De 1K-weerstanden in serie met de resetlijn zijn opgenomen om kortsluiting te voorkomen in het geval een gebruiker op de resetknop drukt (indien opgenomen in het ontwerp) op hetzelfde moment dat de resetlijn tijdens het herstel programmatisch wordt geregeld.
  • Zorg er bij het uitzetten van de PCB voor dat het differentiële paar, USB_P en USB_N, parallel aan elkaar worden gerouteerd om een karakteristieke differentiële impedantie van 90Ω te geven.
  • De 33Ω-weerstanden in serie met de (optionele) SWD-lijnen zijn bedoeld om tijdelijkheid te verminderen en moeten dicht bij de FT4232HQ worden geplaatst.

Schematisch 2:

schematisch met wake/reset circuit ter ondersteuning van FTDI-chip

Notities: schematisch 2:

  • SYSRST_N wordt hoog getrokken met een 100.000 weerstand (R8). Dit betekent dat het opnieuw instellen van de chip niet standaard wordt bevestigd.

De volgende twee elementen zijn optioneel. Indien aanwezig, staan ze de fysieke resetknop en de FTDI-interface naar de pc toe om de MT3620 automatisch te activeren wanneer RESET zou zijn ingeschakeld. Dit wordt aanbevolen voor elk ontwerp dat de modus Uitschakelen gebruikt, waarbij de resetknop of de pc-interface moet blijven werken in de modus Uitschakelen.

  • Een paar Schottky diodes is in serie verbonden tussen SYSRST_N en WAKEUP en de gemeenschappelijke kathodeverbinding van de diodes is aangesloten op de resetknop en de FTDI reset signalen. Dit voorkomt dat SYSRST_N laag wordt in- of uitschakelen wanneer WAKEUP laag wordt ingeschakeld.
  • WAKEUP wordt hoog getrokken met een 100K weerstand die is aangesloten op de 3V3_RTC voeding. De 100K weerstand zorgt ervoor dat WAKEUP laag wordt ingeschakeld wanneer SYSRST_N laag is; de verbinding met 3V3_RTC zorgt ervoor dat WAKEUP hoog blijft als de MT3620-voeding wordt uitgeschakeld voor de modus Uitschakelen.

FTDI EEPROM

De FTDI-interfacechip biedt een set pinnen die moeten worden aangesloten op een kleine EEPROM die wordt gebruikt om de gegevens van de fabrikant en een serienummer op te slaan. Na de boardassembly wordt deze informatie via USB in de EEPROM geprogrammeerd met behulp van een softwaretool van FTDI, zoals verderop wordt beschreven in FTDI FT_PROG Programming Tool.

De volgende EEPROM-onderdelen zijn compatibel met de FTDI-chip:

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

Let op het gebruik van de LC-variant, die compatibel is met een 3.3V-voeding. Voor interne ontwikkelingsdoeleinden heeft Microsoft altijd het onderdeel 93LC56BT-I/OT gebruikt.

Verbind de EEPROM als volgt met de FTDI-chip:

EEPROM-circuit Verbinding met FTDI-chip
EEProm-circuit verbinding met FTDI-chip

UART-interfaces

Voor de UART-verbindingen voor herstel, service en foutopsporing tussen de MT3620 en de FTDI zijn geen speciale circuits vereist. Let echter op de cross-over van TXD en RXD, en CTS en RTS. De FTDI-documentatie beschrijft pin 0 van elke poort als TXD en pin 1 als RXD. Deze definities zijn relatief ten opzichte van de FTDI-chip; Dat wil gezegd, pin 0 is een uitvoer en pin 1 is een invoer. Daarom is het noodzakelijk om de RXD- en TXD-verbindingen over te steken naar de MT3620 (en op dezelfde manier voor CTS en RTS). Het volgende diagram illustreert dit voor de Service-UART; gebruik hetzelfde schema ook voor de herstel- en foutopsporing-URL's:

herstel- en service-UART-verbindingen

SWD-interface

Hoewel FTDI-chips doorgaans worden gebruikt om een brug te vormen tussen UART's en USB, maakt de Azure Sphere-programmeer- en foutopsporingsinterface gebruik van extra circuits op basis van een quad tristate-buffer, zodat het FTDI-onderdeel kan werken als een snelle SWD-interface.

Hieronder ziet u het vereiste circuit en de verbinding met de FTDI-chip. Merk op dat het SWDIO-signaal verbinding maakt met de MT3620 pin 98 en SWCLK verbinding maakt met pin 99.

Bufferindeling met drie statussen FTDI-poort-B-verbindingen
tri-state buffer rangschikking ftdi poort B-verbindingen

USB-activiteits-LED (optioneel)

Een USB-activiteits-LED kan handig zijn om gegevensoverdracht via de USB-verbinding aan te geven tijdens normale werking. U kunt een USB-activiteits-LED op verschillende manieren implementeren. Het volgende circuit is slechts een voorbeeld.

Het circuit AND's samen de klok- en gegevenslijnen die de FT4232HQ verbinden met de EEPROM. Hoewel niet duidelijk, schakelen deze twee lijnen in wanneer gegevens worden verzonden en ontvangen via USB en daarom kunnen worden gebruikt om USB-activiteit aan te geven. De tijd van de uitgang van de AND-poort is echter te kort om een LED te verlichten; daarom wordt dit signaal gebruikt om een mono-stabiel circuit aan te drijven, dat op zijn beurt de LED aanstuurt.

De on-time van het mono-stabiele circuit is ingesteld op 100 ms, zodat zelfs korte bursts van USB-verkeer ervoor zorgen dat de LED brandt.

USB-activiteit-LED

Hulpprogramma voor het programmeren van ftdi FT_PROG

Om te helpen bij het programmeren van de EEPROM, biedt FTDI een gratis softwareprogramma met de naam FT_PROG. Het hulpprogramma is beschikbaar als een Windows GUI-toepassing en als opdrachtregelprogramma; beide opties worden op hetzelfde moment geïnstalleerd vanuit hetzelfde pakket. Download het hulpprogramma van de FTDI-website en installeer het op de standaardlocatie.

FT_PROG opdrachtregelprogramma

De opdrachtregelversie van FT_PROG is de voorkeursmethode voor het programmeren van de EEPROM, omdat deze de naam van een configuratiebestand als parameter gebruikt en vervolgens meerdere apparaten programmeert met één opdracht.

De Azure Sphere Hardware Designs-opslagplaats op GitHub bevat een EEPROM-configuratiebestand voor gebruik met het opdrachtregelprogramma. We raden u ten zeerste aan dit bestand en het opdrachtregelprogramma te gebruiken in productiescenario's. Het configuratiebestand programmeert de EEPROM met de volgende instellingen:

  • Hiermee schakelt u de D2XX Direct-modus in en schakelt u de virtuele COM-poort uit
  • Automatisch genereert een serienummer, beginnend met 'AS'
  • Stelt productbeschrijving in op MSFT MT3620 Std Interface

Als u de EEPROM wilt programmeren, moet u dit bestand gebruiken zoals het is zonder wijzigingen, omdat de Pc-hulpprogramma's van Azure Sphere zoeken naar de tekenreeks Productbeschrijving en mislukken als deze waarde wordt gewijzigd.

Stapsgewijze instructies voor EEPROM-programmering

Als u de opdrachtregelversie van FT_PROG wilt gebruiken om de EEPROM te programmeren voor een FTDI-chip met vier poorten:

  1. Installeer de FTDI-hulpprogramma's op de standaardlocatie: C:\Program Files(x86)\FTDI\FT_Prog.

  2. Sluit een of meer MT3620-borden aan op de pc.

  3. Open een opdrachtprompt (bijvoorbeeld cmd.exe) en ga naar de map waarin u het configuratiebestand hebt opgeslagen.

  4. Typ de volgende opdracht om alle gekoppelde apparaten weer te geven:

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

    Als er vier apparaten zijn gekoppeld, ziet de uitvoer er ongeveer als volgt uit:

    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. Typ de volgende opdracht om alle gekoppelde apparaten te programmeren. Geef de indexen op van de gekoppelde apparaten (0, 1, 2, enzovoort) na de prog parameters en 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

    Het hulpprogramma moet het volgende weergeven:

     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. Als u wilt controleren of het programmeren is geslaagd, scant u nogmaals:

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

    Houd er rekening mee dat de serienummers wijzigingen hebben in de uitvoer en nu beginnen met 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
    

FT_PROG GUI-toepassing

De Windows GUI-versie van de toepassing is handig voor het lezen en controleren van de status van de EEPROM-informatie. U kunt deze ook gebruiken om de informatie te wijzigen; We raden u echter aan de opdrachtregelversie van het hulpprogramma te gebruiken om het apparaat te programmeren.

Nadat u de toepassing hebt gestart, klikt u op de knop Scannen (met het vergrootglaspictogram) om de huidige inhoud van de EEPROM te lezen en weer te geven.

Als het dialoogvenster Onbekend apparaat wordt weergegeven, zoals in het volgende voorbeeld, klikt u op OK totdat de informatie correct wordt weergegeven in het toepassingsvenster.

FT_PROG onbekend apparaatscherm

In het volgende voorbeeld ziet u de juiste weergave:

FT_PROG juiste weergave

Raadpleeg de documentatie voor FT_PROG voor meer informatie over het gebruik van de software.