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:
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:
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:
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 |
---|---|
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:
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 |
---|---|
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.
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:
Installieren Sie die FTDI-Tools am Standardspeicherort:
C:\Program Files(x86)\FTDI\FT_Prog
.Schließen Sie mindestens ein MT3620-Board an den PC an.
Öffnen Sie eine Eingabeaufforderung (z. B. cmd.exe), und wechseln Sie zu dem Ordner, in dem Sie die Konfigurationsdatei gespeichert haben.
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
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....
Ü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.
Das folgende Beispiel zeigt die richtige Anzeige:
Weitere Informationen zur Verwendung der Software finden Sie in der FT_PROG-Dokumentation.