MCU programmering och felsökning gränssnitt

MT3620 exponerar två dedikerade UARTs och två kontrollsignaler (återställning och återställning) för användning under enhetsetablering och återställning. Dessutom finns ett SWD-gränssnitt för felsökning av RTApps och ytterligare en UART är reserverad för Microsoft-diagnostik.

Azure Sphere PC-programvaruverktygen kräver användning av ett USB-till-UART-gränssnittschip som exponerar dessa gränssnitt för en dator på ett sätt som gör att verktygen kan känna igen och interagera med dem. Azure Sphere-verktygen har stöd för att läsa in ett program via USB med hjälp av Service UART och för att återställa Azure Sphere-operativsystemet med hjälp av Recovery UART. Datorverktygen kräver att Future Technology Devices International (FTDI) FT4232HQ UART-to-USB-gränssnittschip används för att exponera gränssnitten. För närvarande stöder inte verktygen andra FTDI-kretsar eller gränssnittschips från olika tillverkare.

För utveckling styrelser är detta gränssnitt chip vanligtvis på samma PCB som MT3620. Den här metoden beskrivs i designen för MT3620-referensutvecklingstavlan (RDB). För en anpassad tavla eller modul som använder MT3620 kan det vara lämpligt att ha gränssnittschipet på en separat PCB, eftersom den här maskinvaran endast krävs under tillverkning eller underhåll, vilket möjliggör kostnadsbesparingar per enhet. Den här metoden beskrivs i den fristående designen för programmering och felsökning av gränssnittstavlor.

Översikt över portar

MT3620 exponerar tre UARTs och ett SWD-gränssnitt som används för programmering, Microsoft-diagnostik och etablering av chipet. De fyra gränssnitten har följande funktioner:

  • FelsökA UART – Med felsöknings-UART kan Microsoft utföra diagnostik. Observera att UART inte kan användas för felsökning av program eller diagnostik.

    Under Microsofts ledning tillhandahåller det här gränssnittet ett sätt att samla in ytterligare diagnostikinformation som kan vara användbar när du felsöker vissa problem. Därför rekommenderas det här gränssnittet för enheter som används för programvaru- eller maskinvaruutveckling, men det kan anses vara valfritt för enheter som har nått tillverkningsfasen.

  • SWD-gränssnitt – SWD-gränssnittet används när du felsöker realtidsaktiverade program (RTApps) som körs på M4F-kärnorna. det här gränssnittet delas mellan de två M4F-kärnorna.

    Om du behöver kunna felsöka RTApps (till exempel under enhetsutveckling) bör enheten ha stöd för det här gränssnittet. När enheten når tillverkningssteget kan gränssnittet anses vara valfritt och kan utelämnas.

  • Service UART – Tjänsten UART tillhandahåller huvudgränssnittet för programmering och felsökning mellan MT3620 och värddatorn.

    Det här gränssnittet aktiverar alla Azure CLI-åtgärder som kräver en ansluten enhet, förutom återställning (enligt beskrivningen i nästa stycke). Eftersom Service UART är huvudgränssnittet mellan MT3620 och värddatorn måste det gränssnittet vara tillgängligt för enheter som stöder programvaruutveckling och under tillverkning av återförsäljarenheter. Om det här gränssnittet är tillgängligt för en enhet i fältet kan det också användas av tjänsttekniker, till exempel för att läsa in nya versioner av appprogramvaran, om enheten inte får molnuppdateringar eftersom den inte är ansluten till Internet.

  • Återställnings-UART – Återställningsporten är ett sätt att återställa en enhet till den senaste versionen av operativsystemet.

    Det här gränssnittet måste stödjas under tillverkningen, eftersom återställning av en enhet till den senaste versionen av operativsystemet är en vanlig uppgift under enhetstillverkningen. När en enhet har sålts till en kund (och de har anslutit den till Internet) ser dock molnuppdateringar till att enheten hålls uppdaterad med den senaste versionen av operativsystemet..

Översikt över komponenter

Följande diagram ger en översikt över huvudkomponenterna i FTDI-gränssnittet med fyra portar och deras sammankopplingar med MT3620:

Diagram över FTDI-gränssnitt med 4 portar till MT3620

Du kan välja att använda FTDI-kretsen och kretsarna som en del av samma anslagstavla som MT3620 (till exempel om du bygger en utvecklingstavla) eller i en separat gränssnittstavla som sitter mellan din MT3620-enhet och datorn.

Porttilldelningar

För att säkerställa kompatibilitet med datorverktygen är det viktigt att se till att var och en av de exponerade UART:erna och SWD-gränssnittet som ska användas i din design är anslutna till FTDI-portarna enligt beskrivningen i följande tabell.

Funktion FT4232HQ Pin Function (pin number) MT3620 Pin-funktion (pin-nummer)
ÅterställningS-UART, återställnings- och återställningsfästet 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) (och eventuellt WAKEUP (70) via kretsen nedan)
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 och återställning

Port-B BDBUS0 (26) SWCLK Se SWD-gränssnittet för mer information om SWD-kretsar
BDBUS1 (27) SWDIO ut
BDBUS2 (28) SWDIO i
BDBUS4 (30) SWDIO riktning
BDBUS5 (32) SWD-aktiverad
BDBUS6 (33) SYSRST_N (125) (och eventuellt WAKEUP (70) via kretsen nedan)

Felsöka 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 är en av MT3620's "bandstift" som, om de dras högt under en chipåterställning, gör att chipet går in i återställningsläge. Vid alla andra tillfällen är den här stiftet RTS-stiftet på felsöknings-UART.

Scheman

Följande scheman visar de viktigaste komponenterna som krävs för att stödja FT4232HQ-chipet. MT3620-referenstavlans design ger en referensdesign som innehåller den här schematiska designen.

Schematisk 1:

schematiskt för att stödja FTDI-krets

Anteckningar – schematisk 1:

  • 1K-resistorerna i serien med återställningslinjen ingår för att undvika kortslutning om en användare trycker på återställningsknappen (om den ingår i designen) samtidigt som återställningslinjen styrs programmässigt under återställningen.
  • Vid läggning av PCB ska du se till att differensparet, USB_P och USB_N, dras parallellt med varandra för att ge en karakteristisk differentiell impedans på 90 TB.
  • 33V-resistorerna i serien med de (valfria) SWD-linjerna är avsedda att minska tillfälliga och bör placeras nära FT4232HQ.

Schematisk 2:

schematic with wake/reset circuitry to support FTDI chip

Anteckningar – schematisk 2:

  • SYSRST_N dras högt med en 100K-resistor (R8). Detta innebär att chipåterställningen inte hävdas som standard.

Följande två element är valfria. Om det finns tillåter de att den fysiska RESET-knappen och FTDI-gränssnittet till datorn automatiskt aktiverar MT3620 när RESET skulle ha växlats. Detta rekommenderas för alla konstruktioner som använder energisparläge där återställningsknappen eller datorgränssnittet måste fortsätta att fungera i power down-läge.

  • Ett par Schottky dioder är anslutna i serie mellan SYSRST_N och WAKEUP och den gemensamma katodanslutningen av dioderna är ansluten till återställningsknappen och FTDI-återställningssignalerna. Det förhindrar att SYSRST_N växlar lågt när WAKEUP växlar lågt.
  • WAKEUP dras högt med en 100K-resistor som är ansluten till 3V3_RTC nätadaptern. 100K-resistensen säkerställer att WAKEUP är låg när SYSRST_N är låg. anslutningen till 3V3_RTC säkerställer att WAKEUP fortsätter att dras högt om MT3620-nätadaptern stängs av för avstängningsläge.

FTDI EEPROM

FTDI-gränssnittets krets tillhandahåller en uppsättning stift som måste anslutas till en liten EEPROM som används för att lagra tillverkarens detaljer och ett serienummer. Efter monteringen programmeras denna information in i EEPROM via USB med hjälp av ett programvaruverktyg som tillhandahålls av FTDI, enligt beskrivningen senare i programmeringsverktyget för FTDI FT_PROG.

Följande EEPROM-delar är kompatibla med FTDI-kretsen:

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

Observera användningen av LC-varianten, som är kompatibel med en 3.3V-matning. Av interna utvecklingsskäl har Microsoft alltid använt 93LC56BT-I/OT-delen.

Anslut EEPROM till FTDI-kretsen på följande sätt:

EEPROM-krets Anslutning till FTDI-krets
EEProm-krets anslutning till FTDI-krets

UART-gränssnitt

Återställnings-, service- och felsöknings-UART-anslutningar mellan MT3620 och FTDI kräver inga speciella kretsar. Observera dock korsningen av TXD och RXD samt CTS och RTS. FTDI-dokumentationen beskriver stift 0 på varje port som TXD och stift 1 som RXD. Dessa definitioner är i förhållande till FTDI-krets; pin 0 är alltså en utdata och stift 1 är en inmatning. Därför är det nödvändigt att gå över RXD- och TXD-anslutningarna till MT3620 (och på liknande sätt för CTS och RTS). I följande diagram visas detta för Service UART. använder samma schema för återställning och felsökning av UARTs också:

återställnings- och Service UART-anslutningar

SWD-gränssnitt

Även om FTDI-kretsar vanligtvis används för att tillhandahålla en bro mellan UARTs och USB, använder Azure Sphere-programmerings- och felsökningsgränssnittet ytterligare kretsar baserade på en quad tristate-buffert för att ftdi-delen ska fungera som ett höghastighets-SWD-gränssnitt.

Nedan visas den nödvändiga kretsen och anslutningen till FTDI-kretsen. Observera att SWDIO-signalen ansluts till MT3620 stift 98 och SWCLK ansluts till stift 99.

Buffertarrangemang för tri-state FTDI Port-B-anslutningar
trestatsbuffertordning ftdi port B-anslutningar

USB-aktivitets-LED (valfritt)

En USB-aktivitets-LED kan vara användbar för att indikera dataöverföring via USB-anslutningen under normal drift. Du kan implementera en USB-aktivitets-LED på flera sätt. Följande krets är bara ett exempel.

Kretsen ANDs tillsammans klockan och datalinjer som ansluter FT4232HQ till EEPROM. Även om det inte är uppenbart växlar dessa två rader när data skickas och tas emot via USB och kan därför användas för att indikera USB-aktivitet. I tid för utdata från AND-porten är dock för kort för att lysa upp en LED-lysdiod. Därför används denna signal för att driva en monostabil krets, som i sin tur driver LED-lampan.

Den monostabila kretsens tid är inställd på 100 ms, så att även korta utbrott av USB-trafik gör att LED-lampan lyser.

USB-aktivitetsLYSDIOD

Programmeringsverktyg för FTDI FT_PROG

För att hjälpa till med programmering av EEPROM tillhandahåller FTDI ett kostnadsfritt programvaruverktyg som kallas FT_PROG. Verktyget är tillgängligt både som ett Windows GUI-program och som ett kommandoradsverktyg. båda alternativen installeras samtidigt från samma paket. Ladda ned verktyget från FTDI-webbplatsen och installera det på standardplatsen.

kommandoradsverktyget FT_PROG

Kommandoradsversionen av FT_PROG är den rekommenderade metoden för programmering av EEPROM, eftersom namnet på en konfigurationsfil tas som en parameter och sedan programmerar flera enheter med ett enda kommando.

Repo för Azure Sphere Hardware Designs på GitHub innehåller en EEPROM-konfigurationsfil som kan användas med kommandoradsverktyget. Vi rekommenderar starkt att du använder den här filen och kommandoradsverktyget i tillverkningsscenarier. Konfigurationsfilen programmerar EEPROM med följande inställningar:

  • Aktiverar D2XX Direct-läge och inaktiverar virtuell COM-port
  • Genererar ett serienummer automatiskt, med början i AS
  • Anger produktbeskrivning till "MSFT MT3620 Std Interface"

Om du vill programmera EEPROM måste du använda den här filen som den är utan ändringar, eftersom Azure Sphere-datorverktygen letar efter produktbeskrivningssträngen och misslyckas om det här värdet ändras.

Stegvisa instruktioner för EEPROM-programmering

Så här använder du kommandoradsversionen av FT_PROG för att programmera EEPROM för ett FTDI-chip med fyra portar:

  1. Installera FTDI-verktygen på standardplatsen: C:\Program Files(x86)\FTDI\FT_Prog.

  2. Anslut en eller flera MT3620-tavlor till datorn.

  3. Öppna en kommandotolk (till exempel cmd.exe) och ändra till mappen där du sparade konfigurationsfilen.

  4. Skriv följande kommando för att visa en lista över alla anslutna enheter:

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

    Om fyra enheter är anslutna ser utdata ut ungefär så här:

    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. Skriv följande kommando för att programmera alla anslutna enheter. Ange index för de anslutna enheterna (0, 1, 2 och så vidare) efter parametrarna prog och 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

    Verktyget ska visa:

     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. Kontrollera att programmeringen lyckades genomsöka en gång till:

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

    Observera att serienumren har ändringar i utdata och börjar nu med 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-program

Windows GUI-versionen av programmet är användbar för att läsa och kontrollera status för EEPROM-informationen. Du kan också använda den för att ändra informationen. Vi rekommenderar dock att du använder kommandoradsversionen av verktyget för att programmera enheten.

När du har startat programmet klickar du på knappen Skanna (med förstoringsglasikonen) för att läsa och visa det aktuella innehållet i EEPROM.

Om dialogrutan Okänd enhet visas, som i följande exempel, klickar du på OK tills informationen visas korrekt i programfönstret.

FT_PROG okänd enhetsskärm

I följande exempel visas rätt skärm:

FT_PROG korrekt skärm

Mer information om hur du använder programvaran finns i FT_PROG dokumentation.