Interfaccia di programmazione e debug MCU
Mt3620 espone due UART dedicati e due segnali di controllo (ripristino e ripristino) per l'uso durante il provisioning e il ripristino del dispositivo. Inoltre, è disponibile un'interfaccia SWD per il debug di RTApps e un'ulteriore UART è riservata per la diagnostica Microsoft.
Gli strumenti software per PC Azure Sphere richiedono l'uso di un chip di interfaccia DA USB a UART che espone queste interfacce a un PC in modo da consentire agli strumenti di riconoscerle e interagire con esse. Gli strumenti di Azure Sphere includono il supporto per il caricamento di un'applicazione tramite USB tramite Service UART e per il ripristino del sistema operativo Azure Sphere tramite l'UART di ripristino. Gli strumenti per PC richiedono l'uso del chip di interfaccia da UART a USB FT4232HQ FT4232HQ per esporre le interfacce. Attualmente, gli strumenti non supportano altri chip FTDI o chip di interfaccia di produttori diversi.
Per le schede di sviluppo, questo chip di interfaccia è di solito sullo stesso CIRCUITO STAMPATO del MT3620. Questo approccio è documentato nella progettazione della scheda di sviluppo di riferimento (RDB) MT3620. Per una scheda o un modulo personalizzato che utilizza l'MT3620, potrebbe essere appropriato avere il chip di interfaccia su un CIRCUITO STAMPATO separato, perché questo hardware è necessario solo durante la produzione o la manutenzione, consentendo un risparmio di 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 che vengono utilizzati per la programmazione, diagnostica Microsoft e provisioning del chip. Le quattro interfacce hanno le seguenti funzioni:
Debug UART: debug UART consente a Microsoft di eseguire la diagnostica. Si noti che questo oggetto UART non è utilizzabile per il debug o la diagnostica delle applicazioni.
Sotto la direzione di Microsoft, questa interfaccia fornisce un mezzo per acquisire informazioni diagnostiche aggiuntive che possono essere utili durante il debug di determinati problemi. Si consiglia quindi di includere questa interfaccia per i dispositivi utilizzati per lo sviluppo di software o hardware, ma può essere considerata facoltativa per i dispositivi che hanno raggiunto la fase di produzione.
Interfaccia SWD: l'interfaccia SWD viene utilizzata durante il debug di applicazioni che supportano il tempo reale (RTApps) eseguite sui core M4F; questa interfaccia è condivisa tra i due core M4F.
Se è necessaria la possibilità di eseguire il debug di RTApps (ad esempio durante lo sviluppo di dispositivi), il dispositivo deve supportare questa interfaccia. Una volta che il dispositivo raggiunge la fase di produzione, questa interfaccia può essere considerata facoltativa e può essere omessa.
Service UART: il servizio UART fornisce l'interfaccia di programmazione e debug principale tra MT3620 e il computer host.
Questa interfaccia abilita tutte le operazioni cli azure 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 di software, nonché durante la produzione di dispositivi al dettaglio. Se questa interfaccia è disponibile per un dispositivo sul campo, può essere utilizzata 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 recupero di un dispositivo alla versione più recente del sistema operativo è un compito comune durante la produzione del dispositivo. Tuttavia, dopo che un dispositivo è stato venduto a un cliente (e lo ha connesso a Internet), gli aggiornamenti cloud assicurano che il dispositivo sia aggiornato con l'ultima versione del sistema operativo.
Panoramica dei componenti
Il seguente diagramma fornisce una panoramica dei principali componenti dell'interfaccia FTDI a 4 porte e delle loro connessioni con l'MT3620:
Puoi scegliere di utilizzare il chip FTDI e i circuiti come parte della stessa scheda dell'MT3620 (ad esempio, se stai costruendo una scheda di sviluppo) o in una scheda di interfaccia separata che si trova tra il dispositivo MT3620 e il PC.
Assegnazioni di porte
Per garantire la compatibilità con gli strumenti del PC, è importante assicurarsi che ciascuno degli UARTs esposti e l'interfaccia SWD che verrà utilizzata nella progettazione siano collegati alle porte FTDI come descritto nella tabella seguente.
Funzione | Funzione PIN FT4232HQ (numero pin) | Funzione PIN MT3620 (numero pin) | ||
---|---|---|---|---|
Segnaposto di ripristino UART, ripristino e 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) | |||
Servizio UART | Porta C | CDBUS0 (38) | SERVICE_RXD (129) | |
CDBUS1 (39) | SERVICE_TXD (127) | |||
CDBUS2 (40) | SERVICE_CTS (130) | |||
CDBUS3 (41) | SERVICE_RTS (128) | |||
SWD e ripristino |
Porta B | BDBUS0 (26) | SWCLK | Vedere Interfaccia SWD per i dettagli dei circuiti SWD |
BDBUS1 (27) | SWDIO out | |||
BDBUS2 (28) | SWDIO in | |||
BDBUS4 (30) | Direzione SWDIO | |||
BDBUS5 (32) | SWD enable | |||
BDBUS6 (33) | SYSRST_N (125) (e, facoltativamente, WAKEUP (70) tramite circuito descritto di seguito) | |||
Debug UART |
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 "piedini di legatura" di MT3620 che, se tirato in alto durante il ripristino del chip, fa sì che il chip entri in modalità di ripristino. In tutti gli altri casi, questo pin è il pin RTS dell'oggetto UART debug.
Schemi
I seguenti schemi mostrano i componenti principali necessari per supportare il chip FT4232HQ. La progettazione della scheda di riferimento MT3620 fornisce una struttura di riferimento che incorpora questo schematico.
Schematico 1:
Note - Schematico 1:
- I resistori 1K in serie con la linea di reimpostazione sono inclusi per evitare un corto circuito nel caso in cui un utente premo il pulsante di reimpostazione (se incluso nel design) nello stesso momento in cui la linea di reimpostazione viene controllata a livello di programmazione durante il ripristino.
- Quando si dispone il CIRCUITO STAMPATO, assicurarsi che la coppia differenziale, USB_P e USB_N, sono indirizzati paralleli l'uno all'altro per dare un'impedanza differenziale caratteristica di 90I.
- I resistori a 33I in serie con linee SWD (opzionali) sono progettati per ridurre i transitori e devono essere posizionati vicino alla FT4232HQ.
Schematico 2:
Note - Schematico 2:
- SYSRST_N viene tirato in alto con una resistenza da 100K (R8). Questo significa che il ripristino del chip non viene affermato per impostazione predefinita.
I due elementi seguenti sono facoltativi. Se presente, consentono al pulsante fisico RESET e all'interfaccia FTDI al PC di riattivare automaticamente MT3620 quando il ripristino sarebbe stato attivato. Questa opzione è consigliata per qualsiasi progettazione che usi la modalità di risparmio energia in cui il pulsante di reimpostazione o l'interfaccia del PC deve continuare a funzionare in modalità Disacco attivo.
- Una coppia di diodi Schottky è collegata in serie tra SYSRST_N e WAKEUP e la connessione catodo comune dei diodi è collegata al pulsante di reimpostazione e ai segnali di reimpostazione FTDI. In questo modo si evita che SYSRST_N si disattivi quando l'interruttore WAKEUP è basso.
- WAKEUP viene tirato in alto con una resistenza da 100K collegata all'alimentatore 3V3_RTC. La resistenza di 100K assicura che WAKEUP sia attivato in basso quando SYSRST_N è disattivato; la connessione a 3V3_RTC assicura che WAKEUP continuerà a essere tirato in alto se l'alimentatore MT3620 si spegne per la modalità di spegnimento.
FTDI EEPROM
Il chip di interfaccia FTDI fornisce un set di pin che devono essere collegati a un piccolo EEPROM che viene utilizzato per memorizzare i dettagli del produttore e un numero di serie. Dopo l'assemblaggio, queste informazioni sono programmate nell'EEPROM su USB utilizzando uno strumento software fornito da FTDI, come descritto più avanti in FTDI FT_PROG Programming Tool.
I seguenti componenti EEPROM sono compatibili con il chip FTDI:
- 93LC46BT-I/OT
- 93LC56BT-I/OT
- 93LC66BT-I/OT
Si noti l'uso della variante LC, compatibile con una fornitura da 3,3 V. Per lo sviluppo interno, Microsoft ha sempre usato la parte 93LC56BT-I/OT.
Collega l'EEPROM al chip FTDI come indicato di seguito:
Circuito EEPROM | Connessione al chip FTDI |
---|---|
Interfacce UART
Le connessioni UART di ripristino, servizio ed debug tra MT3620 e FTDI non richiedono circuiti speciali. Si noti tuttavia il cross-over di TXD e RXD e CTS e RTS. La documentazione FTDI descrive il pin 0 di ogni porta come TXD e il pin 1 come RXD. Queste definizioni sono relative al chip FTDI; ovvero il pin 0 è un output e il pin 1 è un input. Di conseguenza, è necessario attraversare le connessioni RXD e TXD all'MT3620 (e analogamente per CTS e RTS). Il diagramma seguente illustra questo aspetto per l'oggetto UART servizio; usare lo stesso schema anche per gli UARTs di ripristino e debug:
Interfaccia SWD
Anche se i chip FTDI vengono in genere utilizzati per fornire un bridge tra UARTs e USB, l'interfaccia di programmazione e debug Azure Sphere utilizza circuiti aggiuntivi basati su un buffer tristatale quad per consentire alla parte FTDI di funzionare come un'interfaccia SWD ad alta velocità.
Di seguito è illustrato il circuito richiesto e la connessione al chip FTDI. Il segnale SWDIO si connette al pin 98 MT3620 e SWCLK al pin 99.
Disposizione buffer a tre stati | Connessioni FTDI Port-B |
---|---|
LED 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. Puoi implementare un LED di attività USB in diversi modi. Il circuito seguente è solo un esempio.
Gli AND del circuito collegano l'orologio e le linee dati che collegano FT4232HQ all'EEPROM. Sebbene non siano ovvie, queste due linee attivano o disattivano quando i dati vengono inviati e ricevuti tramite USB e pertanto possono essere usati per indicare un'attività USB. Tuttavia, il tempo di uscita del gate AND è troppo breve per illuminare un LED; pertanto, questo segnale viene utilizzato per guidare un circuito mono-stabile, che a sua volta guida il LED.
Il tempo di accensione del circuito mono-stabile è impostato su 100ms, in modo che anche brevi raffiche di traffico USB possano causare l'illuminazione del LED.
Strumento di programmazione FT_PROG FTDI
Per facilitare la programmazione dell'EEPROM, FTDI fornisce uno strumento software gratuito chiamato FT_PROG. Lo strumento è disponibile sia come applicazione GUI di Windows che come strumento da riga di comando; entrambe le opzioni vengono installate contemporaneamente dallo stesso pacchetto. Scarica lo strumento dal sito Web FTDI e installalo nella posizione predefinita.
FT_PROG strumento da riga di comando
La versione da riga di comando di FT_PROG è il metodo preferito di programmazione dell'EEPROM, perché prende il nome di un file di configurazione come parametro e quindi programma più dispositivi con un singolo comando.
Il repository Azure Sphere Hardware Designs in GitHub contiene un file di configurazione EEPROM da usare con lo strumento da riga di comando. È consigliabile usare questo file e lo strumento della riga di comando negli scenari di produzione. Il file di configurazione programmi il EEPROM con le seguenti impostazioni:
- Abilita la modalità D2XX Direct e disabilita la porta VIRTUAL COM
- Genera automaticamente un numero seriale, che inizia con "AS"
- Imposta la descrizione del prodotto su "MSFT MT3620 Std Interface"
Per programmare l'EEPROM, è necessario utilizzare questo file così come è senza modifiche, perché gli strumenti di Azure Sphere PC cercano la stringa Descrizione prodotto e avrà esito negativo se questo valore viene modificato.
Istruzioni dettagliate per la programmazione EEPROM
Per utilizzare la versione da riga di comando di FT_PROG per programmare l'EEPROM per un chip FTDI a quattro porte:
Installare gli strumenti FTDI nella posizione predefinita:
C:\Program Files(x86)\FTDI\FT_Prog
.Collega 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.
Digita 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 ha un aspetto 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
Digita 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
Lo strumento deve visualizzare:
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 sia riuscita, eseguire di nuovo l'analisi:
"c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan
Si noti che i numeri seriali presentano modifiche nell'output e iniziano ora 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
applicazione GUI FT_PROG
La versione gui Windows dell'applicazione è utile per la lettura e il controllo dello stato delle informazioni EEPROM. È anche possibile usarlo per modificare le informazioni; tuttavia, è consigliabile l'uso della versione da riga di comando dello strumento per programmare il dispositivo.
Dopo aver avviato l'applicazione, fare clic sul pulsante Scansione (con l'icona a lente di ingrandimento) per leggere e visualizzare il contenuto corrente dell'EEPROM.
Se viene visualizzata una finestra di dialogo Dispositivo sconosciuto, come nell'esempio seguente, fare clic su OK finché le informazioni non vengono visualizzate correttamente nella finestra dell'applicazione.
L'esempio seguente mostra la visualizzazione corretta:
Per altre informazioni sull'uso del software, vedere la documentazione FT_PROG.