Interfaccia di programmazione e debug del microcontroller
Importante
Questa è la documentazione di Azure Sphere (legacy). Azure Sphere (legacy) viene ritirato il 27 settembre 2027 e gli utenti devono eseguire la migrazione ad Azure Sphere (integrato) entro questo periodo. Usare il selettore di versione posizionato sopra il sommario per visualizzare la documentazione di Azure Sphere (integrata).
MT3620 espone due UART dedicati e due segnali di controllo (reimpostazione e ripristino) per l'uso durante il provisioning di dispositivi e il ripristino. Inoltre, un'interfaccia SWD è disponibile per il debug di RTApps e un ulteriore UART è riservato per la diagnostica Microsoft.
Gli strumenti software del computer Azure Sphere PC richiedono un chip di interfaccia USB-UART che espone queste interfacce a un computer in modo da consentire agli strumenti software di riconoscerle e interagire con esse. Gli strumenti di Azure Sphere includono il supporto per il caricamento di un'applicazione tramite USB tramite UART del servizio e per il ripristino del sistema operativo Azure Sphere usando il UART di ripristino. Per esporre le interfacce, gli strumenti del computer richiedono l'uso del chip di interfaccia UART-USB FT4232HQ FTDI (Future Technology Devices International). Attualmente, gli strumenti non supportano chip FTDI o di interfaccia di altri produttori.
Per le schede di sviluppo, questo chip di interfaccia si trova in genere nello stesso PCB del MT3620. Questo approccio è documentato nella progettazione della scheda di sviluppo di riferimento MT3620 (RDB). Per una scheda o un modulo personalizzato che utilizza MT3620, può essere opportuno avere il chip di interfaccia su un PCB separato, perché questo hardware è necessario solo durante la produzione o la manutenzione, consentendo risparmi sui costi per unità. Questo approccio è documentato nella progettazione autonoma della scheda di interfaccia di programmazione e debug.
Panoramica delle porte
MT3620 espone tre UART e un'interfaccia SWD usata per la programmazione, la diagnostica Microsoft e il provisioning del chip. Le quattro interfacce hanno le funzioni seguenti:
Debug UART: il debug UART consente a Microsoft di eseguire la diagnostica. Si noti che questo UART non è utilizzabile per il debug o la diagnostica dell'applicazione.
In base alla direzione di Microsoft, questa interfaccia offre un mezzo per acquisire informazioni di diagnostica aggiuntive che possono essere utili durante il debug di determinati problemi. È quindi consigliabile includere questa interfaccia per i dispositivi usati per lo sviluppo di software o hardware, ma può essere considerato facoltativo per i dispositivi che hanno raggiunto la fase di produzione.
Interfaccia SWD: l'interfaccia SWD viene usata durante il debug di applicazioni con funzionalità in tempo reale (RTApps) eseguite sui core M4F; questa interfaccia è condivisa tra i due core M4F.
Se è necessaria la possibilità di eseguire il debug di applicazioni RTApp (ad esempio durante lo sviluppo di dispositivi), il dispositivo deve supportare questa interfaccia. Quando il dispositivo raggiunge la fase di produzione, questa interfaccia può essere considerata facoltativa e può essere omessa.
UART del servizio: il servizio UART fornisce l'interfaccia di programmazione e debug principale tra MT3620 e il computer host.
Questa interfaccia abilita tutte le operazioni dell'interfaccia della riga di comando di Azure Sphere che richiedono un dispositivo collegato, ad eccezione del ripristino (come descritto nel paragrafo successivo). Poiché il servizio UART è l'interfaccia principale tra MT3620 e il computer host, questa interfaccia deve essere disponibile per i dispositivi che supportano lo sviluppo software, nonché durante la produzione di dispositivi al dettaglio. Se questa interfaccia è disponibile per un dispositivo in campo, può essere usata anche dai tecnici del servizio, ad esempio per caricare nuove versioni del software dell'app, se il dispositivo non riceve aggiornamenti cloud perché non è connesso a Internet.
UART di ripristino: la porta di ripristino consente di ripristinare un dispositivo alla versione più recente del sistema operativo.
Questa interfaccia deve essere supportata durante la produzione, perché il ripristino di un dispositivo alla versione più recente del sistema operativo è un'attività comune durante la produzione del dispositivo. Tuttavia, dopo che un dispositivo è stato venduto a un cliente (e lo hanno connesso a Internet), gli aggiornamenti cloud garantiranno che il dispositivo venga mantenuto aggiornato con la versione più recente del sistema operativo.
Panoramica dei componenti
Il diagramma seguente fornisce una panoramica dei componenti principali dell'interfaccia FTDI a 4 porte e le relative interconnessioni con MT3620:
È possibile scegliere di usare il chip e i circuiti FTDI come parte della stessa scheda del dispositivo MT3620 (ad esempio, se si sta creando una scheda di sviluppo) o in una scheda di interfaccia separata che risiede tra il dispositivo MT3620 e il computer.
Assegnazioni delle porte
Per garantire la compatibilità con gli strumenti PC, è importante assicurarsi che ogni UART esposto e l'interfaccia SWD che verrà usata nella progettazione siano connesse alle porte FTDI, come descritto nella tabella seguente.
Funzione | Funzione pin FT4232HQ (numero pin) | Funzione pin MT3620 (numero pin) | ||
---|---|---|---|---|
UART di ripristino, pin di bootstrap per la reimpostazione e il ripristino | Porta 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) (e facoltativamente WAKEUP (70) tramite circuito descritto di seguito) | |||
UART di servizio | Porta C | CDBUS0 (38) | SERVICE_RXD (129) | |
CDBUS1 (39) | SERVICE_TXD (127) | |||
CDBUS2 (40) | SERVICE_CTS (130) | |||
CDBUS3 (41) | SERVICE_RTS (128) | |||
SWD e reimpostazione |
Porta B | BDBUS0 (26) | SWCLK | Per i dettagli dei circuiti SWD, vedere Interfaccia SWD |
BDBUS1 (27) | SWDIO out | |||
BDBUS2 (28) | SWDIO in | |||
BDBUS4 (30) | SWDIO direction | |||
BDBUS5 (32) | SWD enable | |||
BDBUS6 (33) | SYSRST_N (125) (e facoltativamente WAKEUP (70) tramite circuito descritto di seguito) | |||
UART di debug |
Porta A | ADBUS0 (16) | DEBUG_RXD (94) | |
ADBUS1 (17) | DEBUG_TXD (95) | |||
ADBUS2 (18) | DEBUG_CTS (97) | |||
ADBUS3 (19) | DEBUG_RTS (96)* |
*DEBUG_RTS è uno dei "pin di strappatura" di MT3620 che, se tirato alto durante una reimpostazione del chip, fa sì che il chip entri in modalità di recupero. In tutte le altre situazioni, questo pin è il pin RTS del UART di debug.
Schemi
Gli schemi seguenti mostrano i componenti principali necessari per supportare il chip FT4232HQ. La progettazione della scheda di riferimento MT3620 fornisce un design di riferimento che incorpora questo schema.
Schema 1:
Note— Schema 1:
- I resistori 1K in serie con la linea di reimpostazione sono inclusi per evitare un corto circuito nel caso in cui un utente preme il pulsante di reimpostazione (se incluso nella progettazione) nello stesso momento in cui la riga di reimpostazione viene controllata a livello di codice durante il ripristino.
- Quando si dispone il PCB, assicurarsi che la coppia differenziale, USB_P e USB_N, siano instradate l'una all'altra per dare una caratteristica impedance differenziale di 90HM.
- Le resistenze da 33 Ω in serie con le linee SWD (facoltative) consentono di ridurre gli stati transitori e devono essere collocate vicino a FT4232HQ.
Schema 2:
Note — Schema 2:
- SYSRST_N è elevato con un resistore da 100.000 .000 (R8). Ciò significa che la reimpostazione del chip non viene asserta per impostazione predefinita.
I due elementi seguenti sono facoltativi. Se presente, consentono il pulsante FISICO RESET e l'interfaccia FTDI al PC di riattivare automaticamente MT3620 quando RESET sarebbe stato attivato o disattivato. Questo è consigliato per qualsiasi progettazione che usa la modalità di risparmio di energia in cui il pulsante di reimpostazione o l'interfaccia DEL PC deve continuare a funzionare durante la modalità di risparmio energia.
- Una coppia di diodi Schottky è connessa in serie tra SYSRST_N e WAKEUP e la comune connessione cathode dei diodi è connessa al pulsante di reimpostazione e i segnali di reimpostazione FTDI. In questo modo si impedisce SYSRST_N di attivare o disattivare la riattivazione quando si attiva o disattiva l'interruttore.
- WAKEUP viene trascinato in alto con un resistore da 100.000 che è connesso all'alimentatore 3V3_RTC. La resistenza da 100K garantisce che WAKEUP sia disattivato quando SYSRST_N è disattivato; la connessione a 3V3_RTC assicura che WAKEUP continuerà a essere trascinato in alto se l'alimentatore MT3620 si spegne per la modalità di alimentazione inattiva.
EEPROM DEL CHIP FTDI
Il chip di interfaccia FTDI fornisce un set di pin da connettere a una EEPROM di piccole dimensioni che viene usata per archiviare i dettagli del produttore e un numero seriale. Dopo l'assemblaggio della scheda, queste informazioni vengono programmate in EEPROM tramite USB usando uno strumento software fornito da FTDI, come descritto più avanti in FTDI FT_PROG Programming Tool.
Le parti EEPROM elencate di seguito sono compatibili con il chip FTDI:
- 93LC46BT-I/OT
- 93LC56BT-I/OT
- 93LC66BT-I/OT
Si noti l'uso della variante LC, compatibile con l'alimentazione da 3,3 V. Per scopi di sviluppo interno, Microsoft usa da sempre la parte 93LC56BT-I/OT.
Connettere la EEPROM al chip FTDI come indicato di seguito:
Circuito della EEPROM | Connessione al chip FTDI |
---|---|
Interfacce UART
Le connessioni UART di ripristino, servizio e debug tra MT3620 e FTDI non richiedono circuiti speciali. Si noti, tuttavia, il passaggio di TXD e RXD e di CTS e RTS. La documentazione di FTDI descrive il pin 0 di ogni porta come TXD e il pin 1 come RXD. Queste definizioni sono relative al chip FTDI, ovvero pin 0 è un output e pin 1 è un input. Di conseguenza, è necessario passare le connessioni RXD e TXD a MT3620 (e analogamente per CTS e RTS). Il diagramma seguente illustra questo valore per il UART del servizio; usare lo stesso schema anche per gli UART di ripristino e debug:
Interfaccia SWD
Anche se i chip FTDI vengono in genere usati per fornire un bridge tra UART e USB, l'interfaccia di programmazione e debug di Azure Sphere usa altri circuiti basati su un quad buffer a tre stati per consentire il funzionamento del componente FTDI come interfaccia SWD ad alta velocità.
Di seguito viene illustrato il circuito e la connessione necessari al chip FTDI. Si noti che i segnali SWDIO e SWCLK si connettono rispettivamente al pin 98 e al pin 99 di MT3620.
Disposizione del buffer a tre stati | Connessioni FTDI porta B |
---|---|
LED dell'attività USB (facoltativo)
Un LED di attività USB può essere utile per indicare il trasferimento dei dati tramite la connessione USB durante il normale funzionamento. È possibile implementare un LED dell'attività USB in vari modi. Il circuito seguente è un semplice esempio.
I circuiti AND uniscono le linee di dati e orologio che connettono FT4232HQ alla EEPROM. Sebbene non sia ovvio, queste due linee si attivano e disattivano durante l'invio e la ricezione di dati tramite USB e pertanto possono essere usate per indicare l'attività USB. Tuttavia, il tempo di attivazione dell'output dal gate AND è troppo breve per consentire a un LED di illuminarsi: di conseguenza, questo segnale viene usato per fornire un circuito monostabile che a sua volta determina l'accensione del LED.
Il tempo di attivazione del circuito monostabile è impostato a 100 ms, in modo tale che anche picchi di breve durata nel traffico USB possano determinare l'accensione del LED.
Strumento di programmazione ftdi FT_PROG
Per facilitare la programmazione di EEPROM, FTDI fornisce uno strumento software gratuito denominato FT_PROG. Lo strumento è disponibile sia come applicazione GUI di Windows sia come strumento da riga di comando. Entrambe le opzioni vengono installate contemporaneamente dallo stesso pacchetto. Scaricare lo strumento dal sito Web FTDI e installarlo nel percorso predefinito.
FT_PROG strumento da riga di comando
La versione della riga di comando di FT_PROG è il metodo preferito per la programmazione di EEPROM, perché accetta il nome di un file di configurazione come parametro e quindi programma più dispositivi con un singolo comando.
Il repository Progetti hardware di Azure Sphere in GitHub contiene un file di configurazione EEPROM da usare con lo strumento da riga di comando. È consigliabile usare questo file e lo strumento da riga di comando negli scenari di produzione. Il file di configurazione programmi EEPROM con le impostazioni seguenti:
- Abilita la modalità D2XX Direct e disabilita la porta COM virtuale
- Genera automaticamente un numero di serie, a partire da 'AS'
- Imposta la descrizione del prodotto su "Interfaccia STD MSFT MT3620"
Per programmare EEPROM, è necessario usare questo file così come è senza modifiche, perché gli strumenti pc Di Azure Sphere cercano la stringa Product Description e avranno esito negativo se questo valore viene modificato.
Istruzioni dettagliate per la programmazione della EEPROM
Per usare la versione della riga di comando di FT_PROG per programmare EEPROM per un chip FTDI a quattro porte:
Installare gli strumenti FTDI nel percorso predefinito:
C:\Program Files(x86)\FTDI\FT_Prog
.Collegare una o più schede MT3620 al PC.
Aprire un prompt dei comandi (ad esempio, cmd.exe) e passare alla cartella in cui è stato salvato il file di configurazione.
Digitare il comando seguente per elencare tutti i dispositivi collegati:
"c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan
Se sono collegati quattro dispositivi, l'output sarà simile al seguente:
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
Digitare il comando seguente per programmare tutti i dispositivi collegati. Specificare gli indici dei dispositivi collegati (0, 1, 2 e così via) dopo i
prog
parametri ecycl
:"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
Nello strumento verrà visualizzato:
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....
Per verificare che la programmazione abbia avuto esito positivo, eseguire l'analisi ancora una volta:
"c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan
Si noti che i numeri di serie hanno modifiche nell'output e ora iniziano con 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'applicazione GUI
La versione GUI di Windows dell'applicazione è utile per la lettura e il controllo dello stato delle informazioni EEPROM. È anche possibile usarlo per modificare le informazioni; È tuttavia consigliabile usare la versione della riga di comando dello strumento per programmare il dispositivo.
Dopo avere avviato l'applicazione, fare clic sul pulsante Analisi (con l'icona della lente di ingrandimento) per leggere e visualizzare il contenuto corrente della EEPROM.
Se viene visualizzata una finestra di dialogo dispositivo sconosciuto, come nell'esempio seguente, fare clic su OK fino a quando nella finestra dell'applicazione le informazioni non vengono visualizzate in modo corretto.
L'esempio seguente mostra la visualizzazione corretta:
Per altre informazioni sull'uso del software, vedere la documentazione FT_PROG.