Interface de depuração e programação da MCU

Importante

Esta é a documentação do Azure Sphere (herdado). O Azure Sphere (herdado) 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 a recuperação de dispositivos. Além disso, uma interface SWD está disponível para depurar RTApps e um UART adicional é reservado para o diagnóstico da Microsoft.

As ferramentas de software para computador do Azure Sphere usam um chip de interface USB para UART que expõe essas interfaces para um computador de modo a permitir às ferramentas reconhecer e interagir 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 do Azure Sphere usando o UART de recuperação. As ferramentas de PC exigem o uso do chip de interface FT4232HQ UART para USB FTDI (Future Technology Devices International) para expor as interfaces. Atualmente, as ferramentas não dão suporte a outros chips FTDI nem a chips de interface de fabricantes diferentes.

Para placas de desenvolvimento, esse chip de interface geralmente está na mesma PCB que o MT3620. Essa abordagem está documentada no design do RDB (placa de desenvolvimento de referência) MT3620. Para uma placa ou módulo personalizado que usa o MT3620, pode ser apropriado ter o chip de interface em um PCB separado, pois esse hardware é necessário apenas durante a fabricação ou manutenção, permitindo economia de custo por unidade. Essa abordagem está documentada no design autônomo da placa de interface de programação e depuração.

Visão geral das portas

O MT3620 expõe três UARTs e uma interface SWD que são usadas para programação, diagnóstico da Microsoft e provisionamento do chip. As quatro interfaces têm as seguintes funções:

  • Depurar UART — O UART de depuração permite que a Microsoft execute diagnósticos. Observe que esse UART não pode ser usado 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 determinados problemas. Portanto, é recomendável incluir essa interface para dispositivos usados para desenvolvimento de software ou hardware, mas ela pode ser considerada opcional para dispositivos que atingiram o estágio de fabricação.

  • SWD interface— A interface SWD é usada ao depurar aplicativos com capacidade em tempo real (RTApps) executados nos núcleos M4F; essa interface é compartilhada entre os dois núcleos M4F.

    Se você precisar da capacidade de depurar RTApps (por exemplo, durante o desenvolvimento do dispositivo), seu dispositivo deverá dar suporte a essa interface. Quando o dispositivo atingir o estágio de fabricação, essa interface poderá ser considerada opcional e poderá ser omitida.

  • UART de serviço — O UART de serviço 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 anexado, exceto para recuperação (conforme descrito no próximo parágrafo). Como o UART de Serviço é a interface principal entre o MT3620 e o computador host, essa interface deve estar disponível para dispositivos que dão suporte ao 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 ter suporte durante a fabricação, pois a recuperação de 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 conectar à 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 apresenta uma visão geral dos principais componentes da interface FTDI de quatro portas e suas interconexões com o MT3620:

Diagrama da interface FTDI de 4 portas MT3620

Você pode optar por usar o chip e o circuito FTDI como parte da mesma placa que o MT3620 (por exemplo, se você estiver compilando uma placa de desenvolvimento) ou em uma placa de interface separada que fica entre o dispositivo MT3620 e o computador.

Atribuições de porta

Para garantir a compatibilidade com as ferramentas do PC, é importante garantir que cada um dos UARTs expostos e a interface SWD que será usada em seu projeto estejam conectados às portas FTDI, conforme descrito na tabela a seguir.

Função Função do Pino FT4232HQ (número do pino) Função do Pino MT3620 (número do pino)
UART de Recuperação, pino de fixação de recuperação e redefiniçã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 WAKEUP (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 redefinir

Porta B BDBUS0 (26) SWCLK Confira a Interface SWD para obter detalhes do circuito SWD
BDBUS1 (27) Saída de SWDIO
BDBUS2 (28) Entrada de SWDIO
BDBUS4 (30) Direção de SWDIO
BDBUS5 (32) Habilitar SWD
BDBUS6 (33) SYSRST_N (125) (e opcionalmente WAKEUP (70) via circuito detalhado abaixo)

Depurar 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 é um dos "pinos de amarração" do MT3620 que, se puxado para cima durante uma reinicialização do chip, faz com que o chip entre no modo de recuperação. Em todas as outras vezes, esse pino é o pino RTS do UART de Depuração.

Esquemas

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 esse esquema.

Esquema 1:

esquema para dar suporte ao chip FTDI

Notas - Esquema 1:

  • Os resistores de 1K em série com a linha de reinicialização são incluídos para evitar um curto-circuito no caso de um usuário pressionar o botão de reinicialização (se incluído no projeto) ao mesmo tempo em que a linha de reinicialização está sendo controlada programaticamente durante a recuperação.
  • Ao dispor o PCB, certifique-se de que o par diferencial, USB_P e USB_N, sejam roteados paralelamente um ao outro para fornecer uma impedância diferencial característica de 90Ω.
  • Os resistores de 33 Ω em série com as linhas SWD (opcionais) se destinam a reduzir transições e devem ser colocados perto de FT4232HQ.

Esquema 2:

esquema com circuito de ativação/reinicialização para suportar chip FTDI

Notas - Esquema 2:

  • SYSRST_N é puxado para cima com um resistor de 100K (R8). Isso significa que a redefinição do chip não é declarada por padrão.

Os dois elementos a seguir são opcionais. Se presentes, eles permitem que o botão RESET físico e a interface FTDI para o computador ativem automaticamente o MT3620 quando RESET teria sido alternado. Isso é recomendado para qualquer projeto que use o modo de desligamento em que o botão de reinicialização ou a interface do PC deve continuar a operar 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 reinicialização do FTDI. Isso evita que SYSRST_N alterne para baixo quando WAKEUP alterna para baixo.
  • O WAKEUP é puxado para cima com um resistor de 100K conectado à fonte de alimentação 3V3_RTC. A resistência de 100K garante que WAKEUP seja alternado para baixo quando SYSRST_N é alternado para baixo; a conexão com o 3V3_RTC garante que WAKEUP continuará a ser puxado para cima se a fonte de alimentação MT3620 for desligada para o modo de desligamento.

EEPROM FTDI

O chip de interface FTDI fornece um conjunto de pinos que devem estar conectados a uma pequena EEPROM usada para armazenar um número de série e os detalhes do fabricante. Após a montagem da placa, essas informações são programadas na EEPROM via USB usando uma ferramenta de software fornecida pela FTDI, conforme descrito posteriormente na FTDI FT_PROG Programming Tool.

As seguintes partes da 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 alimentação de 3,3 V. Para fins de desenvolvimento interno, a Microsoft sempre utilizou a parte 93LC56BT-I/OT.

Conecte a EEPROM ao chip FTDI da seguinte maneira:

Circuito EEPROM Conexão ao chip FTDI
Circuito EEPROM conexão com 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 nenhum circuito especial. No entanto, observe o cruzamento de TXD e RXD e CTS e RTS. A documentação do FTDI descreve o pino 0 de cada porta como TXD e o pino 1 como RXD. Essas 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 os UARTs de recuperação e depuração também:

conexões UART de recuperação e serviço

Interface SWD

Embora chips FTDI normalmente sejam usados para fornecer uma ponte entre UARTs e USB, a interface de programação e depuração do Azure Sphere usa circuitos adicionais com base em um buffer de três estados quad para permitir que a parte FTDI opere como uma interface SWD de alta velocidade.

A seguir, ilustramos o circuito necessário e a conexão com o chip FTDI. Observe que o sinal SWDIO conecta-se ao pino 98 do MT3620 e SWCLK conecta-se ao pino 99.

Disposição de buffer de três estados Conexões de porta B de FTDI
disposição de buffer de três estados conexões de porta B de ftdi

LED de atividade de USB (opcional)

Um LED de atividade USB pode ser útil para indicar a transferência de dados pela conexão USB durante a operação normal. Você pode implementar um LED de atividade de USB de várias maneiras. O circuito a seguir é meramente um exemplo.

O circuito ANDs junto com o relógio e as linhas de dados que conectam FT4232HQ a EEPROM. Embora não seja óbvio, essas duas linhas se alternam quando dados são enviados e recebidos por USB, portanto, podem ser usadas para indicar a atividade do USB. No entanto, o tempo da saída do portão AND é curto demais para acender um LED; portanto, esse sinal é usado para orientar um circuito monoestável que, por sua vez, orienta o LED.

O tempo do circuito monoestável é definido como 100 ms, de modo que até mesmo breves intermitências de tráfego USB acendam o LED.

LED de atividade USB

Ferramenta de programação de 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 da GUI do Windows e como uma ferramenta de linha de comando; ambas as opções são instaladas ao mesmo tempo do mesmo pacote. Baixe a ferramenta do site FTDI e instale-a na localização 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 da EEPROM, porque usa 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 de designs de hardware do Azure Sphere 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 a EEPROM com as seguintes configurações:

  • Ativa o modo D2XX Direct 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 "Interface padrão MSFT MT3620"

Para programar a EEPROM, você deve usar esse arquivo como está, sem modificação, pois as ferramentas do PC do Azure Sphere procuram a cadeia de caracteres Descrição do Produto e falharão se esse valor for alterado.

Instruções passo a passo para a programação da EEPROM

Para usar a versão de linha de comando do FT_PROG para programar a EEPROM para um chip FTDI de quatro portas:

  1. Instale as ferramentas FTDI no local padrão: C:\Program Files(x86)\FTDI\FT_Prog.

  2. Conecte uma ou mais placas MT3620 ao computador.

  3. Abra um prompt de comando (por exemplo, cmd.exe) e mude para a pasta onde você salvou o arquivo de configuração.

  4. 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
    
  5. 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 e cycl :

    "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....
    
  6. 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
    

FT_PROG aplicativo GUI

A versão da GUI do Windows do aplicativo é útil para leitura e verificação do estado das informações da 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 Verificar (com o ícone de lupa) para ler e exibir o conteúdo atual da EEPROM.

Se aparecer uma caixa de diálogo de Dispositivo Desconhecido, como no exemplo a seguir, clique em OK até que a janela do aplicativo exiba as informações corretamente.

Tela de dispositivo desconhecido FT_PROG

O exemplo a seguir mostra a exibição correta:

Exibição correta do FT_PROG

Consulte a documentação FT_PROG para obter mais informações sobre como usar o software.