Compartir a través de


Interfaz de depuración y programación de MCU

El MT3620 expone dos UART dedicados y dos señales de control (restablecimiento y recuperación) para su uso durante el aprovisionamiento y recuperación del dispositivo. Además, hay disponible una interfaz SWD para depurar RTApps y se reserva un UART adicional para diagnósticos de Microsoft.

Las herramientas de software del equipo Azure Sphere requieren el uso de un chip de interfaz USB a UART que exponga estas interfaces a un equipo de manera que las herramientas puedan reconocerlas e interactuar con ellas. Las herramientas de Azure Sphere incluyen soporte para cargar una aplicación a través de USB mediante el UART de servicio y para recuperar el sistema operativo Azure Sphere con el UART recuperación. Las herramientas de PC requieren el uso del chip de interfaz FT4232HQ UART a USB de Future Technology Devices International (FTDI) para exponer las interfaces. Actualmente, las herramientas no admiten otros chips FTDI o chips de interfaz de diferentes fabricantes.

Para placas de desarrollo, este chip de interfaz está generalmente en el mismo PCB que el MT3620. Este enfoque se documenta en el diseño de la placa de desarrollo de referencia (RDB) MT3620. Para una placa o módulo personalizado que utiliza el MT3620, puede ser apropiado tener el chip de interfaz en un PCB independiente, porque este hardware es necesario sólo durante la fabricación o mantenimiento, lo que permite un ahorro de costos por unidad. Este enfoque se documenta en el diseño de la placa de interfaz de depuración y programación independiente.

Información general sobre los puertos

El MT3620 expone tres UART y una interfaz SWD que se utilizan para la programación, diagnósticos de Microsoft, y el aprovisionamiento del chip. Las cuatro interfaces tienen las siguientes funciones:

  • Depurar UART: el UART de depuración permite a Microsoft realizar diagnósticos. Tenga en cuenta que este UART no es utilizable para la depuración de aplicaciones o diagnósticos.

    Bajo la dirección de Microsoft, esta interfaz proporciona un medio de capturar información de diagnóstico adicional que puede ser útil al depurar ciertos problemas. Por lo tanto, se recomienda incluir esta interfaz para los dispositivos que se utilizan para el desarrollo de software o hardware, pero puede considerarse opcional para los dispositivos que han alcanzado la fase de fabricación.

  • Interfaz SWD — La interfaz SWD se utiliza al depurar aplicaciones compatibles en tiempo real (RTApps) que se ejecutan en los núcleos M4F; esta interfaz se comparte entre los dos núcleos M4F.

    Si necesita la capacidad de depurar RTApps (por ejemplo, durante el desarrollo del dispositivo), el dispositivo debe admitir esta interfaz. Una vez que el dispositivo alcanza la fase de fabricación, esta interfaz puede considerarse opcional y se puede omitir.

  • UART de servicio: el UART de servicio proporciona la interfaz de depuración y programación principal entre el MT3620 y el equipo host.

    Esta interfaz habilita todas las operaciones de la CLI de Azure que requieren un dispositivo adjunto, excepto la recuperación (como se describe en el párrafo siguiente). Dado que el UART de servicio es la interfaz principal entre el MT3620 y el equipo host, esta interfaz debe estar disponible para los dispositivos que admiten el desarrollo de software, así como durante la fabricación de dispositivos comerciales. Si esta interfaz está disponible para un dispositivo en el campo, también la pueden usar los ingenieros del servicio,por ejemplo, para cargar nuevas versiones del software de la aplicación, si el dispositivo no recibe actualizaciones en la nube porque no está conectado a Internet.

  • UART de recuperación: el puerto de recuperación proporciona un medio para recuperar un dispositivo a la última versión del sistema operativo.

    Esta interfaz debe ser compatible durante la fabricación, ya que la recuperación de un dispositivo a la última versión del sistema operativo es una tarea común durante la fabricación del dispositivo. Sin embargo, después de vender un dispositivo a un cliente (y de conectarlo a Internet), las actualizaciones en la nube garantizarán que el dispositivo se mantenga actualizado con la versión más reciente del sistema operativo.

Información general de los componentes

El siguiente diagrama proporciona una visión general de los componentes principales de la interfaz FTDI de 4 puertos y sus interconexiones con el MT3620:

Diagrama de la interfaz FTDI de 4 puertos al MT3620

Puede elegir usar el chip y los circuitos FTDI como parte de la misma placa que el MT3620 (por ejemplo, si está creando una placa de desarrollo) o en una placa de interfaz independiente que se encuentra entre el dispositivo MT3620 y el PC.

Portabilidad de asignaciones

Para garantizar la compatibilidad con las herramientas de PC, es importante asegurarse de que cada uno de los UART expuestos y la interfaz SWD que se utilizarán en su diseño estén conectados a los puertos FTDI como se describe en la tabla siguiente.

Función Función de pin FT4232HQ (número de pin) Función PIN MT3620 (número de chincheta)
Pin de correa para recuperación de UART, restablecimiento y recuperación Puerto 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) (y opcionalmente WAKEUP (70) a través del circuito detallado a continuación)
Servicio UART Puerto-C CDBUS0 (38) SERVICE_RXD (129)
CDBUS1 (39) SERVICE_TXD (127)
CDBUS2 (40) SERVICE_CTS (130)
CDBUS3 (41) SERVICE_RTS (128)

SWD y restablecimiento

Puerto B BDBUS0 (26) SWCLK Consulte la interfaz SWD para obtener detalles sobre los circuitos SWD
BDBUS1 (27) SWDIO fuera
BDBUS2 (28) SWDIO en
BDBUS4 (30) Dirección SWDIO
BDBUS5 (32) Habilitación SWD
BDBUS6 (33) SYSRST_N (125) (y opcionalmente WAKEUP (70) a través del circuito detallado a continuación)

Depurar UART

Puerto A ADBUS0 (16) DEBUG_RXD (94)
ADBUS1 (17) DEBUG_TXD (95)
ADBUS2 (18) DEBUG_CTS (97)
ADBUS3 (19) DEBUG_RTS (96)*

*DEBUG_RTS es uno de los "pasadores de correa" mt3620 que, si se tira de alta durante un restablecimiento del chip, hace que el chip entre en el modo de recuperación. En todas las demás ocasiones, este pin es el pin RTS del UART de depuración.

Esquemas

Los siguientes esquemas muestran los componentes principales necesarios para soportar el chip FT4232HQ. El diseño de la placa de referencia MT3620 proporciona un diseño de referencia que incorpora este esquema.

Esquema 1:

esquema para admitir chip FTDI

Notas —Esquemática 1:

  • Las resistencias 1K en serie con la línea de restablecimiento se incluyen para evitar un corto circuito en el caso de que un usuario presione el botón de restablecimiento (si se incluye en el diseño) al mismo tiempo que la línea de restablecimiento se controla mediante programación durante la recuperación.
  • Al colocar el PCB, asegúrese de que el par diferencial, USB_P y USB_N, se enrute paralelos entre sí para dar una impedancia diferencial característica de 90 Ω.
  • Las resistencias de 33Ω en serie con las líneas SWD (opcionales) están pensadas para reducir los transitorios y deben colocarse cerca del FT4232HQ.

Esquema 2:

Esquema con circuito reactiva/reset para admitir chip FTDI

Notas —Esquemática 2:

  • SYSRST_N se tira hacia arriba con una resistencia de 100 K (R8). Esto significa que el restablecimiento del chip no se afirma de manera predeterminada.

Los dos elementos siguientes son opcionales. Si están presentes, permiten que el botón de restablecimiento físico y la interfaz FTDI al PC para reactivar automáticamente el MT3620 cuando el RESET se hubiera alternado. Esto se recomienda para cualquier diseño que use el modo de apagado donde el botón de reinicio o la interfaz del PC deben seguir funcionando mientras está en modo de apagado.

  • Un par de diodos Schottky está conectado en serie entre SYSRST_N y WAKEUP y la conexión catódea común de los diodos está conectada al botón de reinicio y las señales de restablecimiento FTDI. Esto evita que el SYSRST_N cambie a bajo cuando WAKEUP cambie a bajo.
  • WAKEUP se extrae alta con una resistencia de 100K que está conectada a la fuente de alimentación 3V3_RTC. La resistencia 100K asegura que WAKEUP se alterna bajo cuando SYSRST_N se alterna bajo; la conexión a 3V3_RTC garantiza que WAKEUP seguirá siendo elevado si la fuente de alimentación MT3620 se apaga para el modo de apagado.

FTDI EEPROM

El chip de interfaz FTDI proporciona un conjunto de pines que se deben conectar a un pequeño EEPROM que se utiliza para almacenar los detalles del fabricante y un número de serie. Después del montaje de la placa, esta información se programa en el EEPROM a través de USB utilizando una herramienta de software proporcionada por FTDI, como se describe más adelante en FTDI FT_PROG Programming Tool.

Las siguientes piezas EEPROM son compatibles con el chip FTDI:

  • 93LC46BT-I/OT
  • 93LC56BT-I/OT
  • 93LC66BT-I/OT

Observe el uso de la variante LC, que es compatible con una fuente de 3.3V. Con fines de desarrollo interno, Microsoft siempre ha usado la parte 93LC56BT-I/OT.

Conecte el EEPROM al chip FTDI de la siguiente manera:

Circuito EEPROM Conexión al chip FTDI
Circuito EEProm conexión al chip FTDI

Interfaces de UART

Las conexiones de UART de recuperación, servicio y depuración entre mt3620 y FTDI no requieren circuitos especiales. Sin embargo, anote el cross-over del TXD y RXD, y CTS y RTS. La documentación FTDI describe el pin 0 de cada puerto como TXD y pin 1 como RXD. Estas definiciones son relativas al chip FTDI; es decir, anclar 0 es una salida y anclar 1 es una entrada. Por lo tanto, es necesario cruzar sobre las conexiones RXD y TXD al MT3620 (y de forma similar para CTS y RTS). El siguiente diagrama ilustra esto para el UART de servicio; utilizar el mismo esquema para la recuperación y depuración UARTs, así:

conexiones de UART de recuperación y servicio

Interfaz SWD

Aunque los chips FTDI se usan normalmente para proporcionar un puente entre UARTs y USB, la interfaz de programación y depuración de Azure Sphere usa circuitos adicionales basados en un búfer tristate para permitir que la parte FTDI funcione como una interfaz SWD de alta velocidad.

La siguiente ilustra el circuito requerido y la conexión al chip FTDI. Observe que la señal SWDIO se conecta al PIN MT3620 98 y el SWCLK se conecta al pin 99.

Disposición del búfer de tres estados Conexiones FTDI Port-B
disposición del búfer tri-estado conexiones de puerto ftdi B

LED de actividad USB (opcional)

Un LED de actividad USB puede ser útil para indicar la transferencia de datos a través de la conexión USB durante el funcionamiento normal. Puedes implementar un LED de actividad de USB de varias maneras. El siguiente circuito es simplemente un ejemplo.

El circuito ANDs junta el reloj y las líneas de datos que conectan el FT4232HQ al EEPROM. Aunque no es obvio, estas dos líneas alternan cuando se envían y reciben datos a través de USB y, por lo tanto, se pueden usar para indicar la actividad de USB. Sin embargo, el tiempo de salida de la puerta AND es demasiado corto para iluminar un LED; por lo tanto, esta señal se utiliza para conducir un circuito mono-estable, que a su vez conduce el LED.

El tiempo del circuito mono-estable se establece en 100 ms, de modo que incluso ráfagas cortas de tráfico USB harán que el LED se encienda.

LED de actividad USB

Herramienta de programación FT_PROG FTDI

Para ayudar a programar el EEPROM, FTDI proporciona una herramienta de software gratuita llamada FT_PROG. La herramienta está disponible tanto como aplicación de GUI de Windows como como herramienta de línea de comandos; ambas opciones se instalan al mismo tiempo desde el mismo paquete. Descargue la herramienta desde el sitio web de FTDI e instálala en la ubicación predeterminada.

FT_PROG herramienta de línea de comandos

La versión de la línea de comandos de FT_PROG es el método preferido para programar el EEPROM, ya que toma el nombre de un archivo de configuración como parámetro y luego programa varios dispositivos con un solo comando.

El repositorio Azure Sphere Hardware Designs en GitHub contiene un archivo de configuración EEPROM para su uso con la herramienta de línea de comandos. Le recomendamos encarecidamente que use este archivo y la herramienta de línea de comandos en escenarios de fabricación. El archivo de configuración programa el EEPROM con los siguientes ajustes:

  • Habilita el modo directo D2XX y deshabilita el puerto COM virtual.
  • Genera automáticamente un número de serie, comenzando por "AS".
  • Establece la descripción del producto en "MSFT MT3620 Std Interface"

Para programar el EEPROM, debe usar este archivo como está sin modificación, porque las herramientas de Azure Sphere PC buscan la cadena de Descripción del producto y fallarán si se cambia este valor.

Instrucciones paso a paso para la programación de EEPROM

Para utilizar la versión de línea de comandos de FT_PROG programar el EEPROM para un chip FTDI de cuatro puertos:

  1. Instale las herramientas FTDI en la ubicación predeterminada: C:\Program Files(x86)\FTDI\FT_Prog.

  2. Conecte uno o más paneles MT3620 al PC.

  3. Abre un símbolo del sistema (por ejemplo, cmd.exe) y cambia a la carpeta donde guardaste el archivo de configuración.

  4. Escribe el siguiente comando para enumerar todos los dispositivos conectados:

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

    Si hay cuatro dispositivos conectados, la salida es similar 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. Escribe el siguiente comando para programar todos los dispositivos conectados. Especifique los índices de los dispositivos conectados (0, 1, 2, etc.) después de los prog parámetros y 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

    La herramienta debe mostrar:

     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 comprobar que la programación se realizó correctamente, vuelve a analizar:

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

    Tenga en cuenta que los números de serie tienen cambios en la salida y ahora comienzan 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
    

aplicación gui de FT_PROG

La versión gui de Windows de la aplicación es útil para leer y comprobar el estado de la información eeprom. También puede usarla para cambiar la información; sin embargo, recomendamos el uso de la versión de la línea de comandos de la herramienta para programar el dispositivo.

Después de iniciar la aplicación, haga clic en el botón Escanear (con el icono de lupa) para leer y mostrar el contenido actual del EEPROM.

Si aparece un cuadro de diálogo Dispositivo desconocido, como en el ejemplo siguiente, haga clic en Aceptar hasta que la ventana de la aplicación muestre la información correctamente.

FT_PROG pantalla de dispositivo desconocido

En el ejemplo siguiente se muestra la visualización correcta:

FT_PROG visualización correcta

Consulta la documentación FT_PROG para obtener más información sobre el uso del software.