MCU-Programmier- und Debugschnittstelle

Der MT3620 macht zwei dedizierte UARTs und zwei Steuersignale (Zurücksetzen und Wiederherstellung) für die Verwendung während der Gerätebereitstellung und -wiederherstellung verfügbar. Darüber hinaus ist eine SWD-Schnittstelle zum Debuggen von RTApps verfügbar, und ein weiterer UART ist für Microsoft Diagnose reserviert.

Die Azure Sphere-PC-Softwaretools erfordern die Verwendung eines USB-zu-UART-Schnittstellenchips, der diese Schnittstellen einem PC auf eine Weise verfügbar macht, die es den Tools ermöglicht, sie zu erkennen und mit ihnen zu interagieren. Die Azure Sphere-Tools unterstützen das Laden einer Anwendung über USB mithilfe des Dienst-UART und die Wiederherstellung des Azure Sphere-Betriebssystems mithilfe des Wiederherstellungs-UART. Die PC-Tools erfordern die Verwendung des FTDI Ft4232HQ UART-zu-USB-Schnittstellenchips von Future Technology Devices International (FTDI), um die Schnittstellen verfügbar zu machen. Derzeit unterstützen die Tools keine anderen FTDI-Chips oder Schnittstellenchips von verschiedenen Herstellern.

Bei Entwicklungsboards befindet sich dieser Schnittstellenchip in der Regel auf derselben Platine wie der MT3620. Dieser Ansatz ist im MT3620-RdB-Entwurf (Reference Development Board) dokumentiert. Für ein benutzerdefiniertes Board oder Modul, das den MT3620 verwendet, kann es sinnvoll sein, den Schnittstellenchip auf einer separaten Leiterplatte zu verwenden, da diese Hardware nur während der Herstellung oder Wartung benötigt wird, was Kosteneinsparungen pro Einheit ermöglicht. Dieser Ansatz ist im design der eigenständigen Programmierung und des Debuggens der Schnittstellenplatine dokumentiert.

Übersicht über Ports

Das MT3620 macht drei UARTs und eine SWD-Schnittstelle verfügbar, die für die Programmierung, microsoft Diagnose und die Bereitstellung des Chips verwendet werden. Die vier Schnittstellen verfügen über die folgenden Funktionen:

  • Debug-UART: Mit dem Debug-UART kann Microsoft Diagnose ausführen. Beachten Sie, dass dieser UART nicht für das Debuggen von Anwendungen oder Diagnose verwendet werden kann.

    Unter der Leitung von Microsoft bietet diese Schnittstelle eine Möglichkeit, zusätzliche Diagnoseinformationen zu erfassen, die beim Debuggen bestimmter Probleme nützlich sein können. Es wird daher empfohlen, diese Schnittstelle für Geräte einzuschließen, die für die Software- oder Hardwareentwicklung verwendet werden, aber sie kann für Geräte, die die Herstellungsphase erreicht haben, als optional betrachtet werden.

  • SWD-Schnittstelle – Die SWD-Schnittstelle wird beim Debuggen von Echtzeitanwendungen (RTApps) verwendet, die auf den M4F-Kernen ausgeführt werden. Diese Schnittstelle wird von den beiden M4F-Kernen gemeinsam genutzt.

    Wenn Sie rtApps debuggen müssen (z. B. während der Geräteentwicklung), sollte Ihr Gerät diese Schnittstelle unterstützen. Sobald Ihr Gerät die Fertigungsphase erreicht hat, kann diese Schnittstelle als optional betrachtet und weggelassen werden.

  • Dienst-UART– Der Dienst-UART stellt die Standard Programmier- und Debugschnittstelle zwischen dem MT3620 und dem Hostcomputer bereit.

    Diese Schnittstelle ermöglicht alle Azure CLI-Vorgänge, die ein angefügtes Gerät erfordern, mit Ausnahme der Wiederherstellung (wie im nächsten Absatz beschrieben). Da der Dienst-UART die Standard Schnittstelle zwischen dem MT3620 und dem Hostcomputer ist, muss diese Schnittstelle für Geräte verfügbar sein, die die Softwareentwicklung unterstützen, sowie während der Herstellung von Einzelhandelsgeräten. Wenn diese Schnittstelle für ein Gerät vor Ort verfügbar ist, kann sie auch von Servicetechnikern verwendet werden, z. B. zum Laden neuer Versionen der App-Software, wenn das Gerät keine Cloudupdates empfängt, weil es nicht mit dem Internet verbunden ist.

  • Wiederherstellungs-UART– Der Wiederherstellungsport bietet eine Möglichkeit, ein Gerät auf die neueste Version des Betriebssystems wiederherzustellen.

    Diese Schnittstelle muss während der Fertigung unterstützt werden, da die Wiederherstellung eines Geräts auf die neueste Version des Betriebssystems eine häufige Aufgabe während der Geräteherstellung ist. Nachdem ein Gerät jedoch an einen Kunden verkauft wurde (und dieser es mit dem Internet verbunden hat), stellen Cloudupdates sicher, dass das Gerät mit der neuesten Version des Betriebssystems auf dem neuesten Stand gehalten wird.

Übersicht über Komponenten

Das folgende Diagramm bietet einen Überblick über die Standard Komponenten der 4-Port FTDI-Schnittstelle und deren Verbindungen mit dem MT3620:

Diagramm der 4-Port FTDI-Schnittstelle zu MT3620

Sie können den FTDI-Chip und die Schaltung als Teil derselben Platine wie das MT3620 verwenden (z. B. wenn Sie ein Entwicklungsboard erstellen) oder in einer separaten Schnittstellenplatine, die sich zwischen Ihrem MT3620-Gerät und dem PC befindet.

Portzuweisungen

Um die Kompatibilität mit den PC-Tools sicherzustellen, ist es wichtig, sicherzustellen, dass alle verfügbaren UARTs und die SWD-Schnittstelle, die in Ihrem Entwurf verwendet werden, mit den FTDI-Ports verbunden sind, wie in der folgenden Tabelle beschrieben.

Funktion FT4232HQ Pin-Funktion (Pinnummer) MT3620 Pin-Funktion (Pinnummer)
Wiederherstellungs-UART, Zurücksetzen und Wiederherstellen des Umreifungspins 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) (und optional WAKEUP (70) über die unten beschriebene Leitung)
Dienst-UART Port-C CDBUS0 (38) SERVICE_RXD (129)
CDBUS1 (39) SERVICE_TXD (127)
CDBUS2 (40) SERVICE_CTS (130)
CDBUS3 (41) SERVICE_RTS (128)

SWD und Zurücksetzen

Port-B BDBUS0 (26) SWCLK Details zur SWD-Schaltung finden Sie unter SWD-Schnittstelle .
BDBUS1 (27) SWDIO out
BDBUS2 (28) SWDIO in
BDBUS4 (30) SWDIO-Richtung
BDBUS5 (32) SWD aktivieren
BDBUS6 (33) SYSRST_N (125) (und optional WAKEUP (70) über die unten beschriebene Leitung)

Debuggen von 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 ist einer der "Umreifungsstifte" des MT3620, der, wenn er während eines Chiprücksetzungsvorgangs hoch gezogen wird, dazu führt, dass der Chip in den Wiederherstellungsmodus wechselt. Zu allen anderen Zeiten ist dieser Pin der RTS-Pin des Debug-UART.

Schaltpläne

Die folgenden Schemata zeigen die Standard Komponenten, die zur Unterstützung des FT4232HQ-Chips erforderlich sind. Das Mt3620-Referenzboard-Design bietet ein Referenzdesign, das dieses Schema enthält.

Schematisch 1:

Schematisch zur Unterstützung von FTDI-Chip

Hinweise – Schematisch 1:

  • Die 1K-Widerstände in Reihe mit der Rücksetzlinie sind enthalten, um einen Kurzschluss zu vermeiden, wenn ein Benutzer die Rücksetztaste drückt (sofern im Design enthalten), während die Rücksetzlinie während der Wiederherstellung programmgesteuert gesteuert wird.
  • Stellen Sie beim Auslegen der Leiterplatte sicher, dass das Differenzialpaar USB_P und USB_N parallel zueinander geleitet wird, um eine charakteristische differenzielle Impedanz von 90Ω zu erhalten.
  • Die 33Ω-Widerstände in Reihe mit den (optionalen) SWD-Leitungen sollen Vorübergehende reduzieren und sollten in der Nähe des FT4232HQ platziert werden.

Schematisch 2:

Schematisch mit Reaktivierungs-/Reset-Schaltungen zur Unterstützung des FTDI-Chips

Hinweise – Schematic 2:

  • SYSRST_N wird mit einem 100K Widerstand (R8) hochgezogen. Dies bedeutet, dass das Zurücksetzen des Chips nicht standardmäßig bestätigt wird.

Die folgenden beiden Elemente sind optional. Falls vorhanden, ermöglichen sie die physische RESET-Taste und die FTDI-Schnittstelle für den PC, den MT3620 automatisch zu reaktivieren, wenn RESET umgeschaltet worden wäre. Dies wird für jedes Design empfohlen, bei dem der Herunterschaltmodus verwendet wird, bei dem die Zurücksetzungstaste oder die PC-Schnittstelle im Herunterschaltmodus weiterhin funktionieren muss.

  • Zwischen SYSRST_N und WAKEUP ist ein Schottky-Diodenpaar in Reihe geschaltet und die gemeinsame Kathodenverbindung der Dioden mit dem Rücksetzschalter und den FTDI-Rücksetzsignalen verbunden. Dadurch wird verhindert, dass SYSRST_N niedrig umschalten, wenn WAKEUP niedrig umschaltt.
  • WAKEUP wird mit einem 100K-Widerstand hochgezogen, der an das 3V3_RTC Netzteil angeschlossen ist. Der Widerstand von 100K sorgt dafür, dass WAKEUP niedrig ist, wenn SYSRST_N niedrig ist; Die Verbindung mit 3V3_RTC stellt sicher, dass WAKEUP weiterhin hoch gezogen wird, wenn das MT3620-Netzteil für den PowerDown-Modus ausgeschaltet wird.

FTDI EEPROM

Der FTDI-Schnittstellenchip bietet eine Reihe von Pins, die mit einem kleinen EEPROM verbunden werden müssen, das zum Speichern der Herstellerdetails und einer Seriennummer verwendet wird. Nach der Boardmontage werden diese Informationen in das EEPROM über USB mithilfe eines von FTDI bereitgestellten Softwaretools programmiert, wie weiter unten in FTDI FT_PROG Programming Tool beschrieben.

Die folgenden EEPROM-Teile sind mit dem FTDI-Chip kompatibel:

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

Beachten Sie die Verwendung der LC-Variante, die mit einer 3,3V-Versorgung kompatibel ist. Für interne Entwicklungszwecke hat Microsoft immer den Teil 93LC56BT-I/OT verwendet.

Verbinden Sie den EEPROM wie folgt mit dem FTDI-Chip:

EEPROM-Schaltung Verbindung mit FTDI-Chip
EEProm-Schaltung Verbindung mit FTDI-Chip

UART-Schnittstellen

Die Wiederherstellungs-, Dienst- und Debug-UART-Verbindungen zwischen dem MT3620 und dem FTDI erfordern keine spezielle Verbindung. Beachten Sie jedoch das Crossover von TXD und RXD sowie CTS und RTS. In der FTDI-Dokumentation wird Pin 0 jedes Ports als TXD und Pin 1 als RXD beschrieben. Diese Definitionen beziehen sich auf den FTDI-Chip; Das heißt, Pin 0 ist eine Ausgabe und Pin 1 ist eine Eingabe. Daher ist es notwendig, die RXD- und TXD-Verbindungen mit dem MT3620 (und ähnlich für CTS und RTS) zu überqueren. Das folgende Diagramm veranschaulicht dies für den Dienst-UART. Verwenden Sie das gleiche Schema auch für die Wiederherstellungs- und Debug-UARTs:

Wiederherstellungs- und Dienst-UART-Verbindungen

SWD-Schnittstelle

Obwohl FTDI-Chips in der Regel verwendet werden, um eine Brücke zwischen UARTs und USB bereitzustellen, verwendet die Programmier- und Debugschnittstelle von Azure Sphere zusätzliche Schaltungen, die auf einem Quad-Tristate-Puffer basieren, damit das FTDI-Teil als SWD-Hochgeschwindigkeitsschnittstelle arbeiten kann.

Im Folgenden wird die erforderliche Schaltung und Verbindung mit dem FTDI-Chip veranschaulicht. Beachten Sie, dass das SWDIO-Signal mit dem MT3620-Pin 98 und SWCLK mit Pin 99 verbunden wird.

Pufferanordnung mit drei Zuständen FTDI-Port-B-Verbindungen
Pufferanordnung mit drei Zuständen Ftdi-Port B-Verbindungen

USB-Aktivitäts-LED (optional)

Eine USB-Aktivitäts-LED kann nützlich sein, um die Datenübertragung über die USB-Verbindung während des normalen Betriebs anzuzeigen. Sie können eine USB-Aktivitäts-LED auf verschiedene Arten implementieren. Die folgende Schaltung ist lediglich ein Beispiel.

Die Leitungs-ANDs zusammen die Takt- und Datenleitungen, die den FT4232HQ mit dem EEPROM verbinden. Obwohl diese beiden Zeilen nicht offensichtlich sind, schalten sie um, wann Daten über USB gesendet und empfangen werden, und können daher verwendet werden, um die USB-Aktivität anzuzeigen. Die Einlaufzeit der Ausgabe des AND-Gates ist jedoch zu kurz, um eine LED zu beleuchten; daher wird dieses Signal verwendet, um eine monostabile Schaltung zu steuern, die wiederum die LED antreibt.

Die On-Time der monostabilen Schaltung ist auf 100ms festgelegt, sodass selbst kurze Bursts des USB-Datenverkehrs dazu führen, dass die LED leuchtet.

USB-Aktivitäts-LED

FTDI FT_PROG-Programmiertool

Um bei der Programmierung des EEPROM zu helfen, bietet FTDI ein freies Softwaretool namens FT_PROG. Das Tool ist sowohl als Windows-GUI-Anwendung als auch als Befehlszeilentool verfügbar. Beide Optionen werden gleichzeitig aus demselben Paket installiert. Laden Sie das Tool von der FTDI-Website herunter, und installieren Sie es am Standardspeicherort.

FT_PROG-Befehlszeilentool

Die Befehlszeilenversion von FT_PROG ist die bevorzugte Methode zum Programmieren des EEPROM, da sie den Namen einer Konfigurationsdatei als Parameter verwendet und dann mehrere Geräte mit einem einzigen Befehl programmiert.

Das Azure Sphere Hardware Designs-Repository auf GitHub enthält eine EEPROM-Konfigurationsdatei für die Verwendung mit dem Befehlszeilentool. Es wird dringend empfohlen, diese Datei und das Befehlszeilentool in Fertigungsszenarien zu verwenden. Die Konfigurationsdatei programmieren EEPROM mit den folgenden Einstellungen:

  • Aktiviert den direkten D2XX-Modus und deaktiviert den virtuellen COM-Port.
  • Generiert automatisch eine Seriennummer, beginnend mit "AS".
  • Legt die Produktbeschreibung auf "MSFT MT3620 Std Interface" fest

Zum Programmieren des EEPROM müssen Sie diese Datei unverändert verwenden, da die Azure Sphere-PC-Tools nach der Zeichenfolge "Produktbeschreibung" suchen und fehlschlagen, wenn dieser Wert geändert wird.

Schritt-für-Schritt-Anleitungen für die EEPROM-Programmierung

So verwenden Sie die Befehlszeilenversion von FT_PROG zum Programmieren des EEPROM für einen FTDI-Chip mit vier Ports:

  1. Installieren Sie die FTDI-Tools am Standardspeicherort: C:\Program Files(x86)\FTDI\FT_Prog.

  2. Schließen Sie mindestens ein MT3620-Board an den PC an.

  3. Öffnen Sie eine Eingabeaufforderung (z. B. cmd.exe), und wechseln Sie zu dem Ordner, in dem Sie die Konfigurationsdatei gespeichert haben.

  4. Geben Sie den folgenden Befehl ein, um alle angeschlossenen Geräte aufzulisten:

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

    Wenn vier Geräte angeschlossen sind, sieht die Ausgabe in etwa wie folgt aus:

    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. Geben Sie den folgenden Befehl ein, um alle angeschlossenen Geräte zu programmieren. Geben Sie die Indizes der angefügten Geräte (0, 1, 2 usw.) nach den Parametern und cycl anprog:

    "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

    Das Tool sollte Folgendes anzeigen:

     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. Überprüfen Sie erneut, ob die Programmierung erfolgreich war:

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

    Beachten Sie, dass die Seriennummern Änderungen in der Ausgabe aufweisen und nun mit AS beginnen:

    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-Anwendung

Die Windows-GUI-Version der Anwendung ist nützlich, um den Status der EEPROM-Informationen zu lesen und zu überprüfen. Sie können es auch verwenden, um die Informationen zu ändern. Es wird jedoch empfohlen, die Befehlszeilenversion des Tools zum Programmieren des Geräts zu verwenden.

Nachdem Sie die Anwendung gestartet haben, klicken Sie auf die Schaltfläche Scan (mit dem Lupensymbol), um den aktuellen Inhalt des EEPROM zu lesen und anzuzeigen.

Wenn wie im folgenden Beispiel ein Dialogfeld Unbekanntes Gerät angezeigt wird, klicken Sie auf OK , bis die Informationen im Anwendungsfenster richtig angezeigt werden.

Bildschirm

Das folgende Beispiel zeigt die richtige Anzeige:

FT_PROG korrekte Anzeige

Weitere Informationen zur Verwendung der Software finden Sie in der FT_PROG-Dokumentation.