Teilen über


MCU-Schnittstelle für Programmierung und Debuggen

Wichtig

Dies ist die Dokumentation zu Azure Sphere (Legacy). Azure Sphere (Legacy) wird am 27. September 2027 eingestellt, und Benutzer müssen bis zu diesem Zeitpunkt zu Azure Sphere (integriert) migrieren. Verwenden Sie die Versionsauswahl oberhalb des Inhaltsverzeichniss, um die Dokumentation zu Azure Sphere (Integriert) anzuzeigen.

Der MT3620 macht zwei dedizierte UARTs sowie zwei Steuersignale („Zurücksetzen“ und „Wiederherstellung“) für die Verwendung während der Bereitstellung und Wiederherstellung von Geräten verfügbar. Darüber hinaus steht eine SWD-Schnittstelle zum Debuggen von RTApps zur Verfügung, und eine weitere UART ist für die Microsoft-Diagnose reserviert.

Die Azure Sphere PC-Softwaretools erfordern die Verwendung eines USB-zu-UART-Schnittstellenchips. Er macht diese Schnittstellen einem PC auf eine Weise verfügbar, die es den Tools ermöglichen, sie zu erkennen und mit ihnen zu interagieren. Die Azure Sphere-Tools umfassen Unterstützung für das Laden einer Anwendung über USB mithilfe des Dienst-UART und zum Wiederherstellen des Azure Sphere-Betriebssystems mithilfe der Wiederherstellungs-UART. Die PC-Tools erfordern die Verwendung des FTDI (Future Technology Devices International) FT4232HQ UART-zu-USB-Schnittstellenchips, um die Schnittstellen verfügbar zu machen. Aktuell unterstützen die Tools keine anderen FTDI-Chips oder Schnittstellenchips anderer Hersteller.

Bei Entwicklungsboards befindet sich dieser Schnittstellenchip in der Regel auf demselben Board wie der MT3620. Dieser Ansatz ist im ENTWURF des MT3620-Referenzentwicklungsboards (RDB) dokumentiert. Für ein benutzerdefiniertes Board oder Modul, das das MT3620 verwendet, kann es sinnvoll sein, den Schnittstellenchip auf einem separaten PCB zu haben, da diese Hardware nur während der Herstellung oder Wartung erforderlich ist, wodurch Kosteneinsparungen pro Einheit ermöglicht werden. Dieser Ansatz wird im eigenständigen Programmierungs- und Debugging-Interface Board-Design dokumentiert.

Übersicht über Ports

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

  • Debuggen von UART – Mit der Debug-UART kann Microsoft Diagnosen ausführen. Beachten Sie, dass diese UART nicht für das Debuggen oder Die Diagnose von Anwendungen verwendet werden kann.

    Unter der Richtung von Microsoft bietet diese Schnittstelle eine Möglichkeit, zusätzliche Diagnoseinformationen zu erfassen, die beim Debuggen bestimmter Probleme nützlich sein können. Daher wird 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 Echtzeitfähigen Anwendungen (RTApps) verwendet, die auf den M4F-Kernen ausgeführt werden; Diese Schnittstelle wird zwischen den beiden M4F-Kernen gemeinsam genutzt.

    Wenn Sie die Möglichkeit zum Debuggen von RTApps (z. B. während der Geräteentwicklung) benötigen, sollte Ihr Gerät diese Schnittstelle unterstützen. Sobald Ihr Gerät die Herstellungsphase erreicht hat, kann diese Schnittstelle als optional betrachtet und weggelassen werden.

  • Dienst-UART – Der Dienst-UART stellt die Hauptschnittstelle für Programmierung und Debugging zwischen dem MT3620 und dem Hostcomputer bereit.

    Diese Schnittstelle ermöglicht alle Azure Sphere CLI-Vorgänge, die ein angeschlossenes Gerät erfordern, mit Ausnahme der Wiederherstellung (wie im nächsten Absatz beschrieben). Da der Dienst-UART die Hauptschnittstelle 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 im Feld 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, da es nicht mit dem Internet verbunden ist.

  • Wiederherstellungs-UART– Der Wiederherstellungsport bietet ein Mittel zum Wiederherstellen eines Geräts auf die neueste Version des Betriebssystems.

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

Übersicht der Komponenten

Das folgende Diagramm bietet einen Überblick über die Hauptkomponenten der 4-Port-FTDI-Schnittstelle und ihrer Verschaltungen mit dem MT3620:

Diagramm der 4-Port-FTDI-Schnittstelle mit dem MT3620

Sie können sich entschließen, den FTDI-Chip und dessen Schaltungen als Teil desselben Boards des MT3620 (z.B. beim Erstellen eines Entwicklungsboards) oder auf einem gesonderten Schnittstellenboard zu verwenden, das zwischen Ihrem MT3620-Gerät und dem PC angeordnet ist.

Port-Zuweisungen

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

Funktion FT4232HQ-Pin-Funktion (Pin-Nummer) MT3620-Pin-Funktion (Pin-Nummer)
Wiederherstellungs-UART, Koppelungs-PIN für Zurücksetzen und Wiederherstellung 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 den unten beschriebenen Schaltkreis)
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 und Zurücksetzen

Port-B BDBUS0 (26) SWCLK Details zur SWD-Schaltung finden Sie unter SWD-Schnittstelle.
BDBUS1 (27) SWDIO-Ausgang
BDBUS2 (28) SWDIO-Eingang
BDBUS4 (30) SWDIO-Richtung
BDBUS5 (32) SWD aktivieren
BDBUS6 (33) SYSRST_N (125) (und optional WAKEUP (70) über den unten beschriebenen Schaltkreis)

UART debuggen

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

Schaltpläne

Die folgenden Schematik zeigen die Hauptkomponenten, die erforderlich sind, um den FT4232HQ Chip zu unterstützen. Das MT3620-Referenzboarddesign bietet einen Referenzentwurf, der dieses schematische Design einbezieht.

Schematisch 1:

Schaltschema für Unterstützung des FTDI-Chips

Hinweise – Schematisch 1:

  • Die 1K-Widerstände in Serie mit der Rücksetzungslinie sind enthalten, um einen Kurzschluss zu vermeiden, wenn ein Benutzer die Rücksetztaste drückt (sofern im Design enthalten), gleichzeitig, dass die Rücksetzlinie während der Wiederherstellung programmgesteuert gesteuert wird.
  • Stellen Sie beim Auslegen der PCB sicher, dass das Differenzpaar, USB_P und USB_N, parallel zueinander geroutet werden, um eine charakteristische differenzielle Impedanz von 90Ω zu ermöglichen.
  • Die 33 Ω-Widerstände in Reihe mit den (optionalen) SWD-Leitungen dienen der Verringerung von Transienten und sollten nahe beim FT4232HQ platziert werden.

Schematisch 2:

schematisch mit Wake/Reset-Schaltkreis zur Unterstützung von FTDI-Chip

Hinweise – Schematisch 2:

  • SYSRST_N wird mit einem 100K-Widerstand (R8) hoch gezogen. Dies bedeutet, dass die Chipzurücksetzung nicht standardmäßig bestätigt wird.

Die folgenden beiden Elemente sind optional. Wenn vorhanden, ermöglichen sie die physische RESET-Taste und die FTDI-Schnittstelle an den PC, die MT3620 automatisch zu reaktivieren, wenn RESET umgeschaltet worden wäre. Dies wird für jedes Design empfohlen, das den Power Down-Modus verwendet, in dem der Rücksetzschalter oder die PC-Schnittstelle weiterhin im Power Down-Modus ausgeführt werden muss.

  • Ein Schottky-Diodenpaar ist in Serie zwischen SYSRST_N und WAKEUP verbunden und die gemeinsame Kathodeverbindung der Diode ist mit dem Rücksetzschalter und den FTDI-Rücksetzsignalen verbunden. Dadurch wird verhindert, dass SYSRST_N niedrig umschalten, wenn WAKEUP niedrig ist.
  • WAKEUP wird mit einem 100K-Widerstand hoch gezogen, der mit der 3V3_RTC Stromversorgung verbunden ist. Der 100K-Widerstand 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 die MT3620-Stromversorgung für den Power Down-Modus deaktiviert wird.

FTDI EEPROM

Der FTDI-Schnittstellenchip bietet eine Reihe von Pins, die mit einem kleinen EEPROM verbunden werden müssen, der zum Speichern der Herstellerdetails und einer Seriennummer verwendet wird. Nach der Boardassembly werden diese Informationen mithilfe eines von FTDI bereitgestellten Softwaretools in den EEPROM über USB 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,3 V-Stromversorgung kompatibel ist. Zu internen Entwicklungszwecken hat Microsoft immer das 93LC56BT-I/OT-Teil verwendet.

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

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

UART-Schnittstellen

Für die Wiederherstellungs-, Dienst- und Debug-UART-Verbindungen zwischen mt3620 und FTDI sind keine speziellen Schaltkreise erforderlich. Beachten Sie aber die Leitungskreuzung (Crossover) zwischen TXD und RXD sowie zwischen CTS und RTS. In der FTDI-Dokumentation wird Pin 0 jedes Ports als TXD und Pin 1 als RXD beschrieben. Diese Definitionen sind relativ zum FTDI-Chip, d. h. Pin 0 ist ein Ausgang und Pin 1 ein Eingang. Daraus folgt, dass es notwendig ist, die Verbindungen von RXD und TXD mit dem MT3620 zu überkreuzen (und ebenso CTS und RTS). Das folgende Diagramm veranschaulicht dies für die Dienst-UART; verwenden Sie dasselbe Schema für die Wiederherstellungs- und Debug-UARTs sowie:

Wiederherstellungs- und Dienst-UART-Verbindungen

SWD-Schnittstelle

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

Im Folgenden wird der erforderliche Schaltkreis und die Verbindung mit dem FTDI-Chip veranschaulicht. Beachten Sie, dass das SWDIO-Signal mit PIN 98 des MT3620 verbunden ist und SWCLK mit PIN 99.

Tri-State-Puffer-Anordnung FTDI-Port-B-Verbindungen
Tri-State-Puffer-Anordnung 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 anzugeben. Sie können eine USB-Aktivitäts-LED auf mehrere Arten implementieren. Die folgende Schaltung stellt lediglich ein Beispiel dar.

Die Schaltung verbindet per AND-Gatter die Uhr- und Datenleitungen, die den FT4232HQ mit dem EEPROM verbinden. Auch wenn dies nicht offensichtlich ist, schalten diese beiden Leitungen um, wenn Daten über USB gesendet und empfangen werden, und können deshalb verwendet werden, um USB-Aktivität anzuzeigen. Die Einschaltzeit der Ausgabe des UND-Gatters ist jedoch zu kurz, um eine LED zu erleuchten. Daher wird dieses Signal verwendet, um eine monostabile Schaltung anzutreiben, die wiederum die LED antreibt.

Die Einschaltzeit der monostabilen Schaltung ist auf 100 ms festgelegt, sodass selbst kurze Impulse von USB-Datenverkehr zum Aufleuchten der LED führen.

USB-Aktivitäts-LED

FTDI-FT_PROG-Programmiertool

Um bei der Programmierung des EEPROM zu helfen, bietet FTDI ein kostenloses Softwaretool namens FT_PROG. Das Tool ist sowohl als Windows-Anwendung mit grafischer Benutzeroberfläche 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 der Programmierung 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 programmiert den EEPROM mit den folgenden Einstellungen:

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

Um das EEPROM zu programmieren, 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.

Schrittweise Anleitungen für die EEPROM-Programmierung

So programmieren Sie mit der Befehlszeilenversion von FT_PROG den EEPROM für einen FTDI-Chip mit vier Anschlüssen:

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

  2. Verbinden Sie eine oder mehrere MT3620-Boards mit dem PC.

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

  4. Geben Sie den folgenden Befehl ein, um alle angeschlossenen Geräte auflisten zu können:

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

    Wenn vier Geräte angeschlossen sind, sieht die Ausgabe 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 angeschlossenen Geräte (0, 1, 2 usw.) nach den und cycl den prog Parametern an:

    "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. Um zu überprüfen, ob die Programmierung erfolgreich war, überprüfen Sie noch einmal:

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

    Beachten Sie, dass die Seriennummern Änderungen in der Ausgabe aufweisen und jetzt 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 Version der Windows-Anwendung mit grafischer Benutzeroberfläche eignet sich für das Lesen und Überprüfen des Zustands der EEPROM-Informationen. Sie können sie auch verwenden, um die Informationen zu ändern; Wir empfehlen jedoch die Verwendung der Befehlszeilenversion des Tools, um das Gerät zu programmieren.

Nachdem Sie die Anwendung gestartet haben, klicken Sie auf die Schaltfläche „Scan“ (mit dem Vergrößerungsglassymbol), 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.

FT_PROG-Bildschirm „Unbekanntes Gerät“

Im folgenden Beispiel ist die richtige Anzeige dargestellt:

Richtige FT_PROG-Anzeige

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