Partilhar via


Interface de programação e depuração mcU

O MT3620 expõe dois UARTs dedicados e dois sinais de controlo (reposição e recuperação) para utilização durante o aprovisionamento e recuperação de dispositivos. Além disso, está disponível uma interface SWD para depurar RTApps e está reservado mais um UART para diagnósticos da Microsoft.

As ferramentas de software para PC do Azure Sphere requerem a utilização de um chip de interface USB para UART que expõe estas interfaces a um PC de forma a permitir que as ferramentas reconheçam e interajam com as mesmas. As ferramentas do Azure Sphere incluem suporte para carregar uma aplicação por USB através do UART do Serviço e para recuperar o SO do Azure Sphere com o UART de Recuperação. As ferramentas de PC requerem a utilização do chip de interface UART para USB FT4232HQ da Future Technology Devices International (FTDI) para expor as interfaces. Atualmente, as ferramentas não suportam outros chips de FTDI ou chips de interface de diferentes fabricantes.

Para os quadros de desenvolvimento, este chip de interface está geralmente no mesmo PCB que o MT3620. Esta abordagem está documentada na estrutura do quadro de desenvolvimento de referência (RDB) MT3620. Para um quadro ou módulo personalizado que utilize o MT3620, pode ser apropriado ter o chip de interface num PCB separado, uma vez que este hardware só é necessário durante o fabrico ou manutenção, o que permite uma poupança de custos por unidade. Esta abordagem está documentada na estrutura da placa de interface de programação e depuração autónoma.

Descrição geral das portas

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

  • Depurar UART — O UART de Depuração permite à Microsoft realizar diagnósticos. Tenha em atenção que este UART não é utilizável para depuração ou diagnóstico de aplicações.

    Sob a direção da Microsoft, esta interface fornece um meio de capturar informações de diagnóstico adicionais que podem ser úteis ao depurar determinados problemas. Por conseguinte, recomenda-se que inclua esta interface para dispositivos que são utilizados para desenvolvimento de software ou hardware, mas pode ser considerada opcional para dispositivos que tenham chegado à fase de fabrico.

  • Interface SWD — a interface SWD é utilizada ao depurar aplicações com capacidade em tempo real (RTApps) que são executadas nos núcleos M4F; esta interface é partilhada entre os dois núcleos M4F.

    Se precisar da capacidade de depurar RTApps (por exemplo, durante o desenvolvimento de dispositivos), o dispositivo deverá suportar esta interface. Assim que o dispositivo chegar à fase de fabrico, esta interface pode ser considerada opcional e pode ser omitida.

  • UART do Serviço — o serviço UART fornece a interface de programação e depuração principal entre o MT3620 e o computador anfitrião.

    Esta interface permite todas as operações da CLI do Azure que necessitam de um dispositivo ligado, exceto a recuperação (conforme descrito no parágrafo seguinte). Uma vez que o UART do Serviço é a interface principal entre o MT3620 e o computador anfitrião, esta interface tem de estar disponível para dispositivos que suportem o desenvolvimento de software, bem como durante o fabrico de dispositivos de revenda. Se esta interface estiver disponível para um dispositivo no campo, também pode ser utilizada por engenheiros de serviço, por exemplo, para carregar novas versões do software de aplicação, se o dispositivo não receber atualizações da cloud porque não está ligado à 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 operativo.

    Esta interface tem de ser suportada durante o fabrico, uma vez que a recuperação de um dispositivo para a versão mais recente do sistema operativo é uma tarefa comum durante o fabrico do dispositivo. No entanto, depois de um dispositivo ter sido vendido a um cliente (e o ter ligado à Internet), as atualizações da cloud irão garantir que o dispositivo está atualizado com a versão mais recente do sistema operativo.

Descrição geral dos componentes

O diagrama seguinte fornece uma descrição geral dos principais componentes da interface FTDI de 4 portas e as respetivas interligações com o MT3620:

Diagrama da interface FTDI de 4 portas para MT3620

Pode optar por utilizar o chip e os circuitos FTDI como parte do mesmo quadro que o MT3620 (por exemplo, se estiver a criar uma placa de desenvolvimento) ou numa placa de interface separada que se encontra 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á utilizada na sua estrutura estão ligadas às portas FTDI, conforme descrito na tabela seguinte.

Função Função Afixar FT4232HQ (número do pin) Função Afixar MT3620 (número do pin)
UART de recuperação, pino de reposição e 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) através de circuito detalhado abaixo)
UART do 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 reposição

Porta-B BDBUS0 (26) SWCLK Veja Interface SWD para obter detalhes sobre os circuitos SWD
BDBUS1 (27) SWDIO fora
BDBUS2 (28) SWDIO em
BDBUS4 (30) Direção do SWDIO
BDBUS5 (32) Ativar o SWD
BDBUS6 (33) SYSRST_N (125) (e opcionalmente WAKEUP (70) através 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 for puxado para alto durante uma reposição do chip, faz com que o chip entre no modo de recuperação. Em todos os outros momentos, este pino é o pino RTS do UART de depuração.

Esquemas

Os seguintes esquemas mostram os componentes principais necessários para suportar o chip FT4232HQ. A estrutura do quadro de referência MT3620 fornece um design de referência que incorpora este esquema.

Esquema 1:

schematic para suportar chip FTDI

Notas — Esquema 1:

  • As resistências 1K em série com a linha de reposição são incluídas para evitar um curto-circuito no caso de um utilizador premir o botão de reposição (se incluído na estrutura) ao mesmo tempo que a linha de reposição está a ser controlada programaticamente durante a recuperação.
  • Ao definir o PCB, certifique-se de que o par diferencial, USB_P e USB_N, são encaminhados paralelos entre si para proporcionar uma impedância diferencial característica de 90Ω.
  • As resistências 33Ω em série com as linhas SWD (opcionais) destinam-se a reduzir os transitórios e devem ser colocadas perto do FT4232HQ.

Esquema 2:

schematic com circuitos de reativação/reposição para suportar chip FTDI

Notas — Esquema 2:

  • SYSRST_N é puxado para alto com uma resistência de 100 mil (R8). Isto significa que a reposição do chip não é afirmada por predefinição.

Os dois elementos seguintes são opcionais. Se estiverem presentes, permitem que o botão RESET físico e a interface FTDI para o PC reativem automaticamente o MT3620 quando RESET teria sido ativado. Isto é recomendado para qualquer estrutura que utilize o modo Desativar/Desligar em que o botão de reposição ou a interface do PC têm de continuar a funcionar enquanto estiver no modo Desativado.

  • Um par de díodos Schottky está ligado em série entre SYSRST_N e WAKEUP e a ligação de cátodo comum dos díodos está ligada ao botão de reposição e aos sinais de reposição de FTDI. Isto impede SYSRST_N de alternar baixo quando WAKEUP alterna para baixo.
  • A função WAKEUP é puxada para alto com uma resistência de 100 mil que está ligada à fonte de alimentação 3V3_RTC. A resistência a 100 000 garante que a função WAKEUP é desativada para baixo quando SYSRST_N está desativada; a ligação ao 3V3_RTC garante que a função WAKEUP continuará a ser elevada se a fonte de alimentação MT3620 se desligar para o modo Desativado.

FTDI EEPROM

O chip de interface FTDI fornece um conjunto de pinos que têm de ser ligados a um pequeno EEPROM que é utilizado para armazenar os detalhes do fabricante e um número de série. Após a montagem do quadro, estas informações são programadas no EEPROM através de USB através de uma ferramenta de software fornecida pelo FTDI, conforme descrito mais tarde na 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

Tenha em atenção a utilização da variante LC, que é compatível com uma oferta de 3,3V. Para fins de desenvolvimento interno, a Microsoft sempre utilizou a parte 93LC56BT-I/OT.

Ligue o EEPROM ao chip FTDI da seguinte forma:

Circuito EEPROM Ligação ao chip FTDI
Circuito EEProm ligação ao chip FTDI

Interfaces UART

As ligações UART de Recuperação, Serviço e Depuração entre o MT3620 e o FTDI não necessitam de circuitos especiais. No entanto, tenha em atenção o cross-over de TXD e RXD e CTS e RTS. A documentação de FTDI descreve o pin 0 de cada porta como TXD e afixar 1 como RXD. Estas definições são relativas ao chip FTDI; ou seja, pin 0 é um resultado e pin 1 é uma entrada. Consequentemente, é necessário atravessar as ligações RXD e TXD para o MT3620 (e da mesma forma para CTS e RTS). O diagrama seguinte ilustra isto para o UART do Serviço; utilize também o mesmo esquema para as UARTs de Recuperação e Depuração:

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

Interface SWD

Embora os chips ftDI sejam normalmente utilizados para fornecer uma ponte entre UARTs e USB, a interface de programação e depuração do Azure Sphere utiliza circuitos adicionais baseados numa memória intermédia triestado quad para permitir que a peça FTDI funcione como uma interface SWD de alta velocidade.

O seguinte ilustra o circuito necessário e a ligação ao chip FTDI. Tenha em atenção que o sinal SWDIO liga-se ao pino MT3620 98 e o SWCLK liga-se ao pin 99.

Disposição da memória intermédia de três estados Ligações FTDI Porta-B
disposição da memória intermédia de três estados ligações de porta B ftdi

LED de atividade USB (opcional)

Um LED de atividade USB pode ser útil para indicar a transferência de dados através da ligação USB durante o funcionamento normal. Pode implementar um LED de atividade USB de várias formas. O circuito seguinte é apenas um exemplo.

O circuito AND junta o relógio e as linhas de dados que ligam o FT4232HQ ao EEPROM. Apesar de não serem óbvias, estas duas linhas alternam quando os dados são enviados e recebidos por USB, pelo que podem ser utilizados para indicar a atividade USB. No entanto, o tempo limite da saída da porta AND é demasiado curto para iluminar um LED; Por conseguinte, este sinal é utilizado para conduzir um circuito mono-estável, o que, por sua vez, conduz o LED.

O tempo limite do circuito mono-estável está definido 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 de FT_PROG FTDI

Para ajudar na programação do EEPROM, o FTDI fornece uma ferramenta de software gratuita denominada FT_PROG. A ferramenta está disponível como uma aplicação GUI do Windows e como uma ferramenta de linha de comandos; ambas as opções são instaladas ao mesmo tempo a partir do mesmo pacote. Transfira a ferramenta a partir do site ftDI e instale-a na localização predefinida.

FT_PROG ferramenta de linha de comandos

A versão da linha de comandos do FT_PROG é o método preferencial para programar o EEPROM, uma vez que utiliza o nome de um ficheiro de configuração como um 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 ficheiro de configuração EEPROM para utilização com a ferramenta de linha de comandos. Recomendamos vivamente que utilize este ficheiro e a ferramenta de linha de comandos em cenários de fabrico. O ficheiro de configuração programa o EEPROM com as seguintes definiçõ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 "MsFT MT3620 Std Interface"

Para programar o EEPROM, tem de utilizar este ficheiro tal como está sem modificação, porque as ferramentas do PC do Azure Sphere procuram a cadeia de Descrição do Produto e irão falhar se este valor for alterado.

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

Para utilizar a versão da linha de comandos do FT_PROG programar o EEPROM para um chip FTDI de quatro portas:

  1. Instale as ferramentas FTDI na localização predefinida: C:\Program Files(x86)\FTDI\FT_Prog.

  2. Ligue um ou mais quadros MT3620 ao PC.

  3. Abra uma linha de comandos (por exemplo, cmd.exe) e mude para a pasta onde guardou o ficheiro de configuração.

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

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

    Se estiverem ligados quatro dispositivos, o resultado terá um aspeto semelhante ao seguinte:

    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. Escreva o seguinte comando para programar todos os dispositivos anexados. Especifique os índices dos dispositivos anexados (0, 1, 2 e assim sucessivamente) 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 apresentar:

     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, analise mais uma vez:

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

    Tenha em atenção 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 aplicação GUI

A versão gui do Windows da aplicação é útil para ler e verificar o estado das informações do EEPROM. Também pode utilizá-la para alterar as informações; no entanto, recomendamos a utilização da versão da linha de comandos da ferramenta para programar o dispositivo.

Depois de iniciar a aplicação, clique no botão Digitalizar (com o ícone de lupa) para ler e apresentar os conteúdos atuais do EEPROM.

Se for apresentada uma caixa de diálogo Dispositivo Desconhecido, como no exemplo seguinte, clique em OK até a janela da aplicação apresentar as informações corretamente.

FT_PROG ecrã de dispositivo desconhecido

O exemplo seguinte mostra a apresentação correta:

FT_PROG ecrã correto

Veja a documentação do FT_PROG para obter mais informações sobre como utilizar o software.