Interface de programação e depuração MCU
Importante
Esta é a documentação do Azure Sphere (Legado). O Azure Sphere (Legado) será desativado em 27 de setembro de 2027 e os usuários devem migrar para o Azure Sphere (Integrado) até esse momento. Use o seletor de versão localizado acima do sumário para exibir a documentação do Azure Sphere (Integrado).
O MT3620 expõe dois UARTs dedicados e dois sinais de controle (redefinição e recuperação) para uso durante o provisionamento e recuperação do dispositivo. Além disso, uma interface SWD está disponível para depuração de RTApps e um UART adicional é reservado para diagnóstico da Microsoft.
As ferramentas de software do Azure Sphere PC exigem o uso de um chip de interface USB-para-UART que expõe essas interfaces a um PC de uma forma que permita que as ferramentas reconheçam e interajam com elas. As ferramentas do Azure Sphere incluem suporte para carregar um aplicativo por USB usando o UART de serviço e para recuperar o sistema operacional Azure Sphere usando o UART de recuperação. As ferramentas de PC requerem o uso do chip de interface UART-to-USB da Future Technology Devices International (FTDI) FT4232HQ para expor as interfaces. Atualmente, as ferramentas não suportam outros chips FTDI ou chips de interface de diferentes fabricantes.
Para placas de desenvolvimento, este chip de interface é geralmente no mesmo PCB que o MT3620. Essa abordagem está documentada no projeto da placa de desenvolvimento de referência (RDB) MT3620. Para uma placa ou módulo personalizado que usa o MT3620, pode ser apropriado ter o chip de interface em um PCB separado, porque esse hardware é necessário apenas durante a fabricação ou manutenção, permitindo economia de custos por unidade. Essa abordagem está documentada no design da placa de interface de programação e depuração autônoma.
Visão geral dos portos
O MT3620 expõe três UARTs e uma interface SWD que são usados para programação, diagnóstico da Microsoft e provisionamento do chip. As quatro interfaces têm as seguintes funções:
Debug UART—O Debug UART permite que a Microsoft execute diagnósticos. Observe que esse UART não é utilizável para depuração ou diagnóstico de aplicativos.
Sob a direção da Microsoft, essa interface fornece um meio de capturar informações de diagnóstico adicionais que podem ser úteis ao depurar certos problemas. Recomenda-se, portanto, incluir essa interface para dispositivos que são usados para desenvolvimento de software ou hardware, mas pode ser considerada opcional para dispositivos que atingiram o estágio de fabricação.
Interface SWD—A interface SWD é usada ao depurar aplicativos com capacidade em tempo real (RTApps) que são executados nos núcleos M4F; esta interface é partilhada entre os dois núcleos M4F.
Se você precisar da capacidade de depurar RTApps (por exemplo, durante o desenvolvimento do dispositivo), seu dispositivo deverá suportar essa interface. Quando o seu dispositivo atinge a fase de fabrico, esta interface pode ser considerada opcional e pode ser omitida.
UART de serviço—O serviço UART fornece a interface principal de programação e depuração entre o MT3620 e o computador host.
Essa interface habilita todas as operações da CLI do Azure Sphere que exigem um dispositivo conectado, exceto a recuperação (conforme descrito no próximo parágrafo). Como o Service UART é a interface principal entre o MT3620 e o computador host, essa interface deve estar disponível para dispositivos que suportam o desenvolvimento de software, bem como durante a fabricação de dispositivos de varejo. Se essa interface estiver disponível para um dispositivo em campo, ela também poderá ser usada por engenheiros de serviço — por exemplo, para carregar novas versões do software do aplicativo, se o dispositivo não receber atualizações na nuvem porque não está conectado à Internet.
UART de recuperação—A porta de recuperação fornece um meio de recuperar um dispositivo para a versão mais recente do sistema operacional.
Essa interface deve ser suportada durante a fabricação, porque recuperar um dispositivo para a versão mais recente do sistema operacional é uma tarefa comum durante a fabricação do dispositivo. No entanto, depois que um dispositivo for vendido a um cliente (e ele o tiver conectado à Internet), as atualizações na nuvem garantirão que o dispositivo seja mantido atualizado com a versão mais recente do sistema operacional.
Visão geral dos componentes
O diagrama a seguir fornece uma visão geral dos principais componentes da interface FTDI de 4 portas e suas interconexões com o MT3620:
Você pode optar por usar o chip FTDI e circuitos como parte da mesma placa que a MT3620 (por exemplo, se você estiver construindo uma placa de desenvolvimento) ou em uma placa de interface separada que fica entre o seu dispositivo MT3620 e o PC.
Atribuições de portas
Para garantir a compatibilidade com as ferramentas do PC, é importante garantir que cada uma das UARTs expostas e a interface SWD que será usada em seu projeto estejam conectadas às portas FTDI, conforme descrito na tabela a seguir.
Função | FT4232HQ Função de pino (número de pino) | Função de pino MT3620 (número de pino) | ||
---|---|---|---|---|
UART de recuperação, redefinição e pino de cinta de recuperação | 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, opcionalmente, DESPERTAR (70) via circuito detalhado abaixo) | |||
Serviço 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 reset |
Porto-B | BDBUS0 (26) | SWCLK | Consulte a interface SWD para obter detalhes dos circuitos SWD |
BDBUS1 (27) | SWDIO fora | |||
BDBUS2 (28) | SWDIO em | |||
BDBUS4 (30) | Direção SWDIO | |||
BDBUS5 (32) | Ativação SWD | |||
BDBUS6 (33) | SYSRST_N (125) (e, opcionalmente, DESPERTAR (70) via circuito detalhado abaixo) | |||
Depurar UART |
Porto-A | ADBUS0 (16) | DEBUG_RXD (94) | |
ADBUS1 (17) | DEBUG_TXD (95) | |||
ADBUS2 (18) | DEBUG_CTS (97) | |||
ADBUS3 (19) | DEBUG_RTS (96)* |
*DEBUG_RTS é um dos "pinos de cinta" do MT3620 que, se puxados para o alto durante uma reposição do chip, faz com que o chip entre no modo de recuperação. Em todos os outros momentos, esse pino é o pino RTS do UART de Depuração.
Diagramas
Os esquemas a seguir mostram os principais componentes necessários para suportar o chip FT4232HQ. O design da placa de referência MT3620 fornece um design de referência que incorpora este esquema.
Esquema 1:
Notas—Esquema 1:
- As resistências 1K em série com a linha de reset estão incluídas para evitar um curto-circuito no caso de um utilizador premir o botão de reset (se incluído no design) ao mesmo tempo que a linha de reset está a ser controlada programaticamente durante a recuperação.
- Ao dispor o PCB, certifique-se de que o par diferencial, USB_P e USB_N, são roteados paralelamente um ao outro para obter uma impedância diferencial característica de 90Ω.
- As resistências de 33Ω em série com as linhas SWD (opcionais) destinam-se a reduzir os transientes e devem ser colocadas perto do FT4232HQ.
Esquema 2:
Notas—Esquema 2:
- SYSRST_N é puxado para o alto com uma resistência de 100K (R8). Isso significa que a redefinição do chip não é declarada por padrão.
Os dois elementos seguintes são opcionais. Se presentes, eles permitem que o botão físico RESET e a interface FTDI para o PC despertem automaticamente o MT3620 quando RESET teria sido alternado. Isso é recomendado para qualquer design que use o modo de desligamento, onde o botão de reinicialização ou a interface do PC devem continuar a operar enquanto estiver no modo de desligamento.
- Um par de diodos Schottky é conectado em série entre SYSRST_N e WAKEUP e a conexão catódica comum dos diodos é conectada ao botão de reinicialização e aos sinais de redefinição FTDI. Isso evita que SYSRST_N alterne baixo quando o WAKEUP alterna baixo.
- O WAKEUP é puxado para o alto com uma resistência de 100K que está ligada à fonte de alimentação 3V3_RTC. A resistência de 100K garante que o WAKEUP é alternado para baixo quando SYSRST_N é alternado para baixo; a ligação ao 3V3_RTC garante que o WAKEUP continuará a ser puxado para o alto se a fonte de alimentação MT3620 se desligar para o modo de desligamento.
FTDI EEPROM
O chip de interface FTDI fornece um conjunto de pinos que devem ser conectados a um pequeno EEPROM que é usado para armazenar os detalhes do fabricante e um número de série. Após a montagem da placa, essas informações são programadas na EEPROM por USB usando uma ferramenta de software fornecida pela FTDI, conforme descrito mais adiante em FTDI FT_PROG Programming Tool.
As seguintes peças EEPROM são compatíveis com o chip FTDI:
- 93LC46BT-I/OT
- 93LC56BT-I/OT
- 93LC66BT-I/OT
Observe o uso da variante LC, que é compatível com uma fonte de 3,3 V. Para fins de desenvolvimento interno, a Microsoft sempre usou a parte 93LC56BT-I/OT.
Conecte a EEPROM ao chip FTDI da seguinte maneira:
Circuito EEPROM | Ligação ao chip FTDI |
---|---|
Interfaces UART
As conexões UART de recuperação, serviço e depuração entre o MT3620 e o FTDI não exigem circuitos especiais. No entanto, observe o cruzamento de TXD e RXD, e CTS e RTS. A documentação FTDI descreve o pino 0 de cada porta como TXD e o pino 1 como RXD. Estas definições são relativas ao chip FTDI; ou seja, o pino 0 é uma saída e o pino 1 é uma entrada. Consequentemente, é necessário cruzar as conexões RXD e TXD para o MT3620 (e da mesma forma para CTS e RTS). O diagrama a seguir ilustra isso para o UART de serviço; use o mesmo esquema para as UARTs de Recuperação e Depuração:
Interface SWD
Embora os chips FTDI sejam normalmente usados para fornecer uma ponte entre UARTs e USB, a interface de programação e depuração do Azure Sphere usa circuitos adicionais baseados em um buffer tristate quádruplo para permitir que a parte FTDI opere como uma interface SWD de alta velocidade.
O seguinte ilustra o circuito necessário e a conexão com o chip FTDI. Observe que o sinal SWDIO se conecta ao pino MT3620 98 e SWCLK se conecta ao pino 99.
Arranjo de buffer de três estados | Conexões FTDI Port-B |
---|---|
LED de atividade USB (opcional)
Um LED de atividade USB pode ser útil para indicar a transferência de dados através da conexão USB durante a operação normal. Você pode implementar um LED de atividade USB de várias maneiras. O circuito a seguir é apenas um exemplo.
O circuito E junta o relógio e as linhas de dados que ligam o FT4232HQ à EEPROM. Embora não sejam óbvias, essas duas linhas alternam quando os dados estão sendo enviados e recebidos por USB e, portanto, podem ser usadas para indicar a atividade USB. No entanto, o tempo de saída do portão AND é muito curto para iluminar um LED; portanto, este sinal é usado para acionar um circuito mono-estável, que por sua vez aciona o LED.
O tempo de funcionamento do circuito monoestável está definido para 100ms, de modo que mesmo pequenas rajadas de tráfego USB farão com que o LED se ilumine.
Ferramenta de programação FT_PROG FTDI
Para ajudar na programação da EEPROM, a FTDI fornece uma ferramenta de software livre chamada FT_PROG. A ferramenta está disponível como um aplicativo GUI do Windows e como uma ferramenta de linha de comando; Ambas as opções são instaladas ao mesmo tempo a partir do mesmo pacote. Baixe a ferramenta do site da FTDI e instale-a no local padrão.
FT_PROG ferramenta de linha de comando
A versão de linha de comando do FT_PROG é o método preferido de programação do EEPROM, porque ele toma o nome de um arquivo de configuração como parâmetro e, em seguida, programa vários dispositivos com um único comando.
O repositório Azure Sphere Hardware Designs no GitHub contém um arquivo de configuração EEPROM para uso com a ferramenta de linha de comando. É altamente recomendável que você use esse arquivo e a ferramenta de linha de comando em cenários de fabricação. O arquivo de configuração programa o EEPROM com as seguintes configurações:
- Ativa o modo direto D2XX e desativa a porta COM virtual
- Gera automaticamente um número de série, começando com 'AS'
- Define a descrição do produto como "MSFT MT3620 Std Interface"
Para programar o EEPROM, você deve usar esse arquivo como está sem modificação, porque as ferramentas do Azure Sphere PC procuram a cadeia de caracteres Descrição do Produto e falharão se esse valor for alterado.
Instruções passo-a-passo para programação EEPROM
Para usar a versão de linha de comando do FT_PROG para programar o EEPROM para um chip FTDI de quatro portas:
Instale as ferramentas FTDI no local padrão:
C:\Program Files(x86)\FTDI\FT_Prog
.Conecte uma ou mais placas MT3620 ao PC.
Abra um prompt de comando (por exemplo, cmd.exe) e mude para a pasta onde você salvou o arquivo de configuração.
Digite o seguinte comando para listar todos os dispositivos conectados:
"c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan
Se quatro dispositivos estiverem conectados, a saída será semelhante a esta:
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
Digite o seguinte comando para programar todos os dispositivos conectados. Especifique os índices dos dispositivos conectados (0, 1, 2 e assim por diante) após os
prog
parâmetros 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
A ferramenta deve exibir:
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....
Para verificar se a programação foi bem-sucedida, verifique mais uma vez:
"c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan
Observe que os números de série têm alterações na saída e agora começam com 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
Aplicação GUI FT_PROG
A versão Windows GUI do aplicativo é útil para ler e verificar o estado das informações EEPROM. Você também pode usá-lo para alterar as informações; no entanto, recomendamos o uso da versão de linha de comando da ferramenta para programar o dispositivo.
Depois de iniciar o aplicativo, clique no botão Digitalizar (com o ícone da lupa) para ler e exibir o conteúdo atual da EEPROM.
Se uma caixa de diálogo Dispositivo desconhecido for exibida, como no exemplo a seguir, clique em OK até que a janela do aplicativo exiba as informações corretamente.
O exemplo a seguir mostra a exibição correta:
Consulte a documentação do FT_PROG para obter mais informações sobre como usar o software.