MCU-programmeer- en foutopsporingsinterface
Belangrijk
Dit is de Documentatie voor Azure Sphere (verouderd). Azure Sphere (verouderd) wordt op 27 september 2027 buiten gebruik gesteld en gebruikers moeten tegen deze tijd migreren naar Azure Sphere (geïntegreerd). Gebruik de versiekiezer boven de inhoudsweergave om de Documentatie van Azure Sphere (geïntegreerd) weer te geven.
De MT3620 toont twee toegewezen UART's en twee besturingssignalen (reset en herstel) voor gebruik tijdens het inrichten en herstellen van apparaten. Daarnaast is er een SWD-interface beschikbaar voor foutopsporing van RTApps en is een verdere UART gereserveerd voor Diagnostische gegevens van Microsoft.
Voor de Softwarehulpprogramma's voor Azure Sphere-pc's is het gebruik van een USB-naar-UART-interfacechip vereist die deze interfaces beschikbaar maakt voor een pc op een manier waarmee de hulpprogramma's deze kunnen herkennen en ermee kunnen communiceren. De Azure Sphere-hulpprogramma's bevatten 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 Recovery 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 bieden de hulpprogramma's geen ondersteuning voor andere FTDI-chips of interfacechips van verschillende fabrikanten.
Voor ontwikkelingsborden bevindt deze interfacechip zich meestal op dezelfde PCB als de MT3620. Deze benadering wordt beschreven in het MT3620-ontwerp voor referentieontwikkelingsbord (RDB). Voor een aangepast bord of een module die gebruikmaakt van de MT3620, kan het geschikt zijn om de interfacechip op een afzonderlijke PCB te hebben, omdat deze hardware alleen nodig is tijdens de productie of het onderhoud, waardoor kostenbesparingen per eenheid mogelijk zijn. Deze benadering wordt beschreven in het zelfstandige programmeer- en foutopsporingsontwerp van interfacebord.
Overzicht van poorten
De MT3620 toont drie UART's en een SWD-interface die wordt gebruikt voor programmeren, Diagnostische gegevens van Microsoft en het inrichten van de chip. De vier interfaces hebben de volgende functies:
Foutopsporing in UART: met de UART voor foutopsporing kan Microsoft diagnostische gegevens uitvoeren. Houd er rekening mee dat deze UART niet bruikbaar is voor foutopsporing of diagnostische gegevens van toepassingen.
Onder de richting van Microsoft biedt deze interface een middel om aanvullende diagnostische gegevens vast te leggen die nuttig kunnen zijn bij het opsporen van fouten in bepaalde problemen. Het wordt daarom aanbevolen deze interface op te nemen voor apparaten die worden gebruikt voor software- of hardwareontwikkeling, maar het kan worden beschouwd als optioneel voor apparaten die de productiefase hebben bereikt.
SWD-interface: de SWD-interface wordt gebruikt bij het opsporen van fouten in realtime geschikte 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 het ontwikkelen van apparaten), moet uw apparaat deze interface ondersteunen. Zodra uw apparaat de productiefase 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 Sphere CLI-bewerkingen mogelijk waarvoor een gekoppeld apparaat is vereist, met uitzondering van herstel (zoals beschreven in de volgende alinea). Omdat de Service UART de belangrijkste interface is tussen de MT3620 en de hostcomputer, moet deze interface beschikbaar zijn voor apparaten die softwareontwikkeling ondersteunen en tijdens de productie van retailapparaten. 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 manier om een apparaat te herstellen naar de nieuwste versie van het besturingssysteem.
Deze interface moet tijdens de productie worden ondersteund, 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 het apparaat is verbonden met internet), zorgen cloudupdates ervoor dat het apparaat up-to-date blijft met de nieuwste versie van het besturingssysteem.
Overzicht van onderdelen
In het volgende diagram ziet u een overzicht van de belangrijkste onderdelen van de FTDI-interface met vier poorten en hun verbindingen met de 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 op een apart interfacebord dat zich tussen uw MT3620-apparaat en de pc bevindt.
Poorttoewijzingen
Om de compatibiliteit met de pc-hulpprogramma's te waarborgen, is het belangrijk dat elk van de weergegeven UART's en de SWD-interface die in uw ontwerp wordt gebruikt, zijn verbonden met de FTDI-poorten, zoals beschreven in de volgende tabel.
Functie | FT4232HQ functie vastmaken (pincodenummer) | MT3620 Pin Function (pin number) | ||
---|---|---|---|---|
Herstel-UART, vastmaken van herstel- en herstelstrapping | 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 onderstaande circuit) | |||
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 DE 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 onderstaande circuit) | |||
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 MT3620's 'strapping pinnen' die, indien getrokken hoog tijdens het opnieuw instellen van de chip, zorgt ervoor dat de chip in de herstelmodus komt. Op alle andere momenten is deze pin de RTS-speld van de UART voor foutopsporing.
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 waarin dit schematisch is opgenomen.
Schematisch 1:
Notities— Schematisch 1:
- De 1K-weerstanden in serie met de resetlijn zijn opgenomen om een kortsluiting te voorkomen wanneer een gebruiker op de resetknop drukt (indien opgenomen in het ontwerp) op hetzelfde moment dat de resetlijn programmatisch wordt beheerd tijdens het herstel.
- Zorg er bij de inrichting 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 tijdelijke lijnen te verminderen en moeten dicht bij de FT4232HQ worden geplaatst.
Schematisch 2:
Notities— Schematisch 2:
- SYSRST_N wordt hoog getrokken met een weerstand van 100 K (R8). Dit betekent dat het opnieuw instellen van de chip niet standaard wordt ingesteld.
De volgende twee elementen zijn optioneel. Indien aanwezig, kunnen ze de fysieke RESET-knop en de FTDI-interface naar de pc automatisch wakker maken van de MT3620 wanneer RESET zou zijn uitgeschakeld. Dit wordt aanbevolen voor elk ontwerp dat gebruikmaakt van de modus Power Down, waarbij de resetknop of de pc-interface moet blijven werken in de modus Inschakelen.
- Een paar Schottky diodes is aangesloten in reeks tussen SYSRST_N en WAKEUP en de gemeenschappelijke kathodeverbinding van de diodes is aangesloten op de resetknop en de FTDI resetsignalen. Hierdoor voorkomt u dat SYSRST_N laag kan schakelen wanneer WAKEUP laag wordt.
- WAKEUP wordt hoog getrokken met een weerstand van 100 K die is aangesloten op de 3V3_RTC voeding. De weerstand van 100.000 zorgt ervoor dat WAKEUP laag wordt in- of uit- of SYSRST_N uit- de verbinding met 3V3_RTC zorgt ervoor dat WAKEUP blijft hoog worden getrokken 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 voor het opslaan van de details van de fabrikant en een serienummer. Na de boardassembly wordt deze informatie geprogrammeerd in de EEPROM via USB met behulp van een softwaretool van FTDI, zoals verderop beschreven in FTDI FT_PROG Programmeerprogramma.
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-levering. Voor interne ontwikkelingsdoeleinden heeft Microsoft altijd het 93LC56BT-I/OT-onderdeel gebruikt.
Verbind de EEPROM als volgt met de 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; Pin 0 is een uitvoer en pin 1 is een invoer. Daarom is het noodzakelijk om de RXD- en TXD-verbindingen over te steken met de MT3620 (en op dezelfde manier voor CTS en RTS). In het volgende diagram ziet u dit voor de Service UART; gebruik hetzelfde schema voor de UART's voor herstel en foutopsporing:
SWD-interface
Hoewel FTDI-chips doorgaans worden gebruikt om een brug te bieden tussen UARTs en USB, maakt de Azure Sphere-programmeer- en foutopsporingsinterface gebruik van extra circuits op basis van een quad-tristatebuffer om het FTDI-onderdeel te laten werken als een SWD-interface met hoge snelheid.
Hieronder ziet u het vereiste circuit en de verbinding met de FTDI-chip. Houd er rekening mee dat het SWDIO-signaal verbinding maakt met de MT3620 pin 98 en SWCLK maakt verbinding met pin 99.
Rangschikking van drie statusbuffers | FTDI-poort-B-verbindingen |
---|---|
USB-activiteit LED (optioneel)
Een USB-activiteits-LED kan nuttig zijn om gegevensoverdracht via de USB-verbinding aan te geven tijdens de 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 dit niet duidelijk is, schakelen deze twee lijnen in wanneer gegevens worden verzonden en ontvangen via USB en kunnen daarom worden gebruikt om USB-activiteit aan te geven. De on-time 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 te besturen, 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 de LED zal verlichten.
FTDI FT_PROG programmeerprogramma
Om u te helpen bij het programmeren van de EEPROM, biedt FTDI een gratis softwareprogramma genaamd FT_PROG. Het hulpprogramma is beschikbaar als zowel een Windows-GUI-toepassing als als een opdrachtregelprogramma; beide opties worden tegelijkertijd vanuit hetzelfde pakket geïnstalleerd. Download het hulpprogramma van de FTDI-website en installeer het op de standaardlocatie.
opdrachtregelprogramma FT_PROG
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 met één opdracht programma's.
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 in productiescenario's te gebruiken. Het configuratiebestand programmat de EEPROM met de volgende instellingen:
- Hiermee schakelt u de directe D2XX-modus in en schakelt u de virtuele COM-poort uit
- Hiermee wordt automatisch een serienummer gegenereerd, te beginnen met 'AS'
- Stelt productbeschrijving in op "MSFT MT3620 Std Interface"
Als u de EEPROM wilt programmeren, moet u dit bestand gebruiken zoals zonder wijziging, omdat de Azure Sphere-pc-hulpprogramma's zoeken naar de tekenreeks Productbeschrijving en mislukken als deze waarde wordt gewijzigd.
Stapsgewijze instructies voor EEPROM-programmering
De opdrachtregelversie van FT_PROG gebruiken om de EEPROM te programmeren voor een FTDI-chip met vier poorten:
Installeer de FTDI-hulpprogramma's op de standaardlocatie:
C:\Program Files(x86)\FTDI\FT_Prog
.Sluit een of meer MT3620-borden aan op de pc.
Open een opdrachtprompt (bijvoorbeeld cmd.exe) en ga naar de map waarin u het configuratiebestand hebt opgeslagen.
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
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
encycl
parameters:"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....
Als u wilt controleren of 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; het is echter raadzaam om 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 er een dialoogvenster Onbekend apparaat wordt weergegeven, zoals in het volgende voorbeeld, klikt u op OK totdat in het toepassingsvenster de gegevens correct worden weergegeven.
In het volgende voorbeeld ziet u de juiste weergave:
Zie de FT_PROG documentatie voor meer informatie over het gebruik van de software.