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

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 outra UART está reservada para o Microsoft diagnóstico.

As ferramentas de software para PC do Azure Sphere exigem o uso de um chip de interface USB para UART que expõe essas interfaces a um computador de uma maneira que permite 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 do Azure Sphere usando o UART de Recuperação. As ferramentas de computador exigem o uso do chip de interface FTDI (Future Technology Devices International) FT4232HQ UART-to-USB para expor as interfaces. Atualmente, as ferramentas não dão suporte a outros chips FTDI ou chips de interface de diferentes fabricantes.

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

Visão geral das portas

O MT3620 expõe três UARTs e uma interface SWD usadas para programação, microsoft diagnóstico 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óstico. Observe que este UART não é utilizável para depuração de aplicativos ou diagnóstico.

    Sob a direção da Microsoft, essa interface fornece um meio de capturar informações adicionais de diagnóstico que podem ser úteis ao depurar determinados problemas. Portanto, é recomendável incluir essa interface para dispositivos que são usados para desenvolvimento de software ou hardware, mas pode ser considerado opcional para dispositivos que chegaram ao estágio de fabricação.

  • Interface SWD — A interface SWD é usada ao depurar RTApps (aplicativos com capacidade em tempo real) que são 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. Depois que o dispositivo chegar ao estágio de fabricação, essa interface poderá ser considerada opcional e pode ser omitida.

  • UART de serviço — O UART de serviço fornece a main interface de programação e depuração entre o MT3620 e o computador host.

    Essa interface habilita todas as operações da CLI do Azure que exigem um dispositivo anexado, exceto a recuperação (conforme descrito no próximo parágrafo). Como o UART de Serviço é a interface main 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 no campo, ela também poderá ser usada por engenheiros de serviço, por exemplo, para carregar novas versões do software de aplicativo, se o dispositivo não receber atualizações de 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 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 conectou à Internet), as atualizações de 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 componentes main da interface FTDI de 4 portas e suas interconexões com o MT3620:

Diagrama da interface FTDI de 4 portas para MT3620

Você pode optar por usar o chip FTDI e o circuito como parte da mesma placa que o MT3620 (por exemplo, se estiver criando 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 de computador, é importante garantir que cada um dos UARTs expostos e a interface SWD que serão usadas em seu design estejam conectados às portas FTDI, conforme descrito na tabela a seguir.

Função Função de pino FT4232HQ (número do pino) Função de pino MT3620 (número de pino)
UART de recuperação, redefinição e fixação 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 WAKEUP (70) por meio de circuito detalhado abaixo)
UART de serviço Porta-C CDBUS0 (38) SERVICE_RXD (129)
CDBUS1 (39) SERVICE_TXD (127)
CDBUS2 (40) SERVICE_CTS (130)
CDBUS3 (41) SERVICE_RTS (128)

SWD e redefinição

Porta B BDBUS0 (26) SWCLK Consulte interface SWD para obter detalhes do circuito SWD
BDBUS1 (27) SWDIO fora
BDBUS2 (28) SWDIO em
BDBUS4 (30) Direção SWDIO
BDBUS5 (32) Habilitar o SWD
BDBUS6 (33) SYSRST_N (125) (e opcionalmente WAKEUP (70) por meio de 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 cinta" do MT3620 que, se puxados para o alto durante uma redefinição de chip, faz com que o chip insira o modo de recuperação. Em todos os outros momentos, esse pino é o pino RTS do UART de depuração.

Esquemas

Os esquemas a seguir mostram os componentes main necessários para dar suporte ao 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

Anotações: Esquema 1:

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

Esquema 2:

esquema com circuitos de wake/reset para dar suporte ao chip FTDI

Anotações: Esquema 2:

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

Os dois elementos a seguir são opcionais. Se estiverem presentes, eles permitirão 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 design que use o modo Power Down em que o botão de redefinição ou a interface do computador devem continuar a operar enquanto estiver no modo Power Down.

  • Um par de diodos Schottky está conectado em série entre SYSRST_N e WAKEUP e a conexão de cátodo comum dos diodos está conectada ao botão de redefinição e aos sinais de redefinição ftdi. Isso impede que SYSRST_N se alterne quando WAKEUP alterna baixo.
  • O WAKEUP é puxado para o alto com um resistor de 100 mil que está conectado ao 3V3_RTC fonte de alimentação. A resistência de 100K garante que o WAKEUP seja alternado baixo quando SYSRST_N é alternado baixo; A conexão com 3V3_RTC garante que o WAKEUP continue a ser puxado para o alto se a fonte de alimentação MT3620 for desativada para o modo Power Down.

FTDI EEPROM

O chip de interface FTDI fornece um conjunto de pinos que devem ser conectados a um EEPROM pequeno que é usado para armazenar os detalhes do fabricante e um número de série. Após o assembly do quadro, essas informações são programadas no EEPROM por usb usando uma ferramenta de software fornecida pela FTDI, conforme descrito posteriormente no FTDI FT_PROG Programming Tool.

As seguintes partes 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 oferta de 3.3V. Para fins de desenvolvimento interno, a Microsoft sempre usou a parte 93LC56BT-E/OT.

Conecte o EEPROM ao chip FTDI da seguinte maneira:

Circuito EEPROM Conexão com o chip FTDI
Circuito EEProm conexão com o 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, CTS e RTS. A documentação FTDI descreve o pino 0 de cada porta como TXD e fixa 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 atravessar 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 os 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 quad tristate para permitir que a parte FTDI opere como uma interface SWD de alta velocidade.

O seguinte ilustra o circuito e a conexão necessários com o chip FTDI. Observe que o sinal SWDIO se conecta ao pino MT3620 98 e O SWCLK se conecta ao pino 99.

Arranjo de buffer de três estados Conexões FTDI Port-B
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 pela 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 ANDs reúne o relógio e as linhas de dados que conectam o FT4232HQ ao EEPROM. Embora não seja óbvio, 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, a hora da saída do portão AND é muito curta para iluminar um LED; Portanto, esse sinal é usado para conduzir um circuito mono estáveis, que, por sua vez, aciona o LED.

A hora do circuito mono estáveis é definida como 100ms, de modo que mesmo pequenas rajadas de tráfego USB farão com que o LED se ilumine.

LED de atividade USB

Ferramenta de programação FT_PROG FTDI

Para ajudar na programação do EEPROM, o FTDI fornece uma ferramenta de software gratuita 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 do mesmo pacote. Baixe a ferramenta do site 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 preferencial de programação do EEPROM, pois ele usa o nome de um arquivo de configuração como um parâmetro e, em seguida, programa vários dispositivos com um único comando.

O repositório 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. Recomendamos fortemente 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:

  • Habilita o modo D2XX Direct e desabilita 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, pois as ferramentas de COMPUTADOR 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 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:

  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 altere para a pasta em que você salvou o arquivo de configuração.

  4. Digite o seguinte comando para listar todos os dispositivos anexados:

    "c:\Program Files (x86)\FTDI\FT_Prog\FT_Prog-CmdLine.exe" scan

    Se quatro dispositivos estiverem anexados, 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 comando a seguir para programar todos os dispositivos anexados. Especifique os índices dos dispositivos anexados (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, examine 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 do Windows GUI do aplicativo é útil para ler e verificar o estado das informações EEPROM. Você também pode usá-la 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 do 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.

FT_PROG tela de dispositivo desconhecida

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

FT_PROG exibição correta

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