Compartir a través de


Interfaz de depuración y programación de MCU

Importante

Esta es la documentación de Azure Sphere (heredado). Azure Sphere (heredado) se retira el 27 de septiembre de 2027 y los usuarios deben migrar a Azure Sphere (integrado) en este momento. Use el selector de versiones situado encima de la TOC para ver la documentación de Azure Sphere (integrado).

La MT3620 expone dos UART dedicados y dos señales de control (restablecimiento y recuperación) para usar durante el aprovisionamiento y la recuperación de dispositivos. 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 para PC de Azure Sphere requieren el uso de un chip de interfaz de USB a UART que expone estas interfaces a un equipo de forma que permite que las herramientas las reconozcan e interactúen con ellas. Las herramientas de Azure Sphere incluyen compatibilidad para cargar una aplicación a través de USB mediante el UART de servicio y para recuperar el sistema operativo de Azure Sphere mediante el UART de recuperación. Las herramientas para PC requieren el uso del chip de interfaz de UART a USB FT4232HQ de Future Technology Devices International (FTDI) para exponer las interfaces. Actualmente, las herramientas no admiten otros chips de FTDI ni chips de interfaz de otros fabricantes.

En el caso de las placas de desarrollo, este chip de interfaz está normalmente en el mismo PCB que el MT3620. Este enfoque se documenta en el diseño de la placa de desarrollo de referencia (RDB) MT3620. En el caso de una placa o módulo personalizado que use mt3620, puede ser adecuado tener el chip de interfaz en un PCB independiente, ya que este hardware solo se requiere durante la fabricación o el mantenimiento, lo que permite ahorrar costos por unidad. Este enfoque se documenta en el diseño independiente de la placa de interfaz de programación y depuración.

Información general sobre los puertos

El MT3620 expone tres UART y una interfaz SWD que se usan para programar, diagnósticos de Microsoft y aprovisionar el 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 se puede usar para la depuración o diagnóstico de aplicaciones.

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

  • Interfaz SWD: la interfaz SWD se usa al depurar aplicaciones con respuesta 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 de dispositivos), el dispositivo debe admitir esta interfaz. Una vez que el dispositivo llega a la fase de fabricación, esta interfaz se puede considerar opcional y se puede omitir.

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

    Esta interfaz habilita todas las operaciones de la CLI de Azure Sphere que requieren un dispositivo conectado, excepto la recuperación (como se describe en el párrafo siguiente). Dado que el UART de servicio es la interfaz principal entre 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, los ingenieros de servicio también pueden usarla, por ejemplo, para cargar nuevas versiones del software de la aplicación, si el dispositivo no recibe actualizaciones en la nube porque no está conectada a Internet.

  • UART de recuperación: el puerto de recuperación proporciona un medio para recuperar un dispositivo a la versión más reciente del sistema operativo.

    Esta interfaz debe admitirse durante la fabricación, ya que la recuperación de un dispositivo a la versión más reciente 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 lo han conectado 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

En el diagrama siguiente se proporciona información general de los componentes principales de la interfaz de 4 puertos de FTDI y sus interconexiones con MT3620:

Diagrama de la interfaz de 4 puertos de FTDI a MT3620

Es posible usar el chip de FTDI y un circuito como parte de la misma placa que MT3620 (por ejemplo, si está creando una placa de desarrollo) o en una tarjeta de interfaz independiente que se encuentre entre el dispositivo MT3620 y el equipo.

Asignaciones de puertos

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 usará en el diseño están conectados a los puertos FTDI, tal como se describe en la tabla siguiente.

Función Función de pin de FT4232HQ (número de pin) Función de pin de MT3620 (número de pin)
UART de recuperación, pin de puente de 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)
UART de servicio 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 interfaz SWD para obtener información detallada de los circuitos SWD
BDBUS1 (27) SWDIO salida
BDBUS2 (28) SWDIO entrada
BDBUS4 (30) SWDIO dirección
BDBUS5 (32) SWD habilitación
BDBUS6 (33) SYSRST_N (125) (y, opcionalmente, WAKEUP (70) a través del circuito detallado a continuación)

UART de depuración

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 una de las "patillas de fijación" de MT3620 que, si se extraen alto durante un restablecimiento de chip, hace que el chip entre en modo de recuperación. En cualquier otro momento, este pin es el pin RTS del UART de depuración.

Esquemas

En los esquemas siguientes se muestran los componentes principales necesarios para admitir el chip de 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 el chip de FTDI

Notas: esquema 1:

  • Las resistencias 1K de la serie con la línea de restablecimiento se incluyen para evitar un cortocircuito en 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 diseñar el PCB, asegúrese de que el par diferencial, USB_P y USB_N, se enrutan en paralelo 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 diseñadas para reducir las corrientes transitorias y deben colocarse cerca de FT4232HQ.

Esquema 2:

esquemas con circuitos de reactivación y restablecimiento para admitir el chip FTDI

Notas: esquema 2:

  • SYSRST_N se extrae alto con una resistencia de 100 000 K (R8). Esto significa que el restablecimiento del chip no se declara de forma predeterminada.

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

  • Un par de diodos Schottky está conectado en serie entre SYSRST_N y WAKEUP y la conexión de cátodo común de los diodos está conectado al botón de restablecimiento y a las señales de restablecimiento FTDI. Esto evita que SYSRST_N de alternar bajo cuando WAKEUP cambie bajo.
  • WAKEUP es elevado con una resistencia de 100 000 K conectada a la fuente de alimentación 3V3_RTC. La resistencia de 100 00K garantiza que WAKEUP se active bajo cuando SYSRST_N esté desactivada; 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 de FTDI proporciona un conjunto de pines que debe estar conectado a una EEPROM pequeña que se usa 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 la EEPROM a través de USB mediante una herramienta de software proporcionada por FTDI, como se describe más adelante en FTDI FT_PROG Herramienta de programación.

Las siguientes piezas de la EEPROM son compatibles con el chip de FTDI:

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

Tenga en cuenta el uso de la variante LC, que es compatible con una alimentación de 3,3 V. Para fines de desarrollo interno, Microsoft siempre ha utilizado la pieza 93LC56BT-I/OT.

Conecte la EEPROM con el chip de FTDI como sigue:

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

Interfaces UART

Las conexiones UART de recuperación, servicio y depuración entre MT3620 y FTDI no requieren ningún circuito especial. Sin embargo, tenga en cuenta el cruce de TXD y RXD, CTS y RTS. En la documentación de FTDI se describe el pin 0 de cada puerto como TXD, y el pin 1 como RXD. Estas definiciones son relativas para el chip de FTDI; es decir, el pin 0 es una salida y el pin 1 es una entrada. Por lo tanto, es necesario cruzar las conexiones RXD y TXD a MT3620 (y lo mismo para CTS y RTS). En el diagrama siguiente se muestra esto para el UART de servicio; use también el mismo esquema para los UART de recuperación y depuración:

conexiones UART de recuperación y servicio

Interfaz de SWD

Aunque los chips de FTDI se suelen usar para ofrecer un puente entre UART y USB, la interfaz de programación y depuración de Azure Sphere usa circuitos adicionales basados en un búfer cuádruple de tres estados para permitir que la parte de FTDI funcione como una interfaz de SWD de alta velocidad.

A continuación se muestra el circuito necesario y la conexión al chip FTDI. Tenga en cuenta que la señal SWDIO se conecta al pin 98 de MT3620 y SWCLK se conecta al pin 99.

Organización de búfer de tres estados Conexiones de FTDI al puerto B
Organización de búfer de tres estados Conexiones de FTDI al puerto 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. Puede implementar un LED de actividad USB de muchas maneras. El circuito siguiente es simplemente un ejemplo.

El circuito junta las líneas del reloj y de datos que conectan el FT4232HQ a la EEPROM. Aunque no es evidente, estas dos líneas se alternan cuando los datos se envían y reciben a través de USB y, por tanto, se pueden usar para indicar la actividad USB. Sin embargo, el tiempo activo de la salida desde la puerta AND es demasiado corto para iluminar un LED; por lo tanto, esta señal se usa para controlar un circuito monestable que, a su vez, controla el LED.

El tiempo activo del circuito monoestable se establece en 100 ms, por lo que, incluso ráfagas cortas de tráfico USB harán que el LED se ilumina.

LED de actividad USB

Herramienta de programación de FT_PROG FTDI

Para ayudar a programar la EEPROM, FTDI proporciona una herramienta de software gratuita denominada FT_PROG. La herramienta está disponible como aplicación de GUI Windows y 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álela 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 de programación de EEPROM, ya que toma el nombre de un archivo de configuración como parámetro y, a continuación, programa varios dispositivos con un solo comando.

El repositorio Diseños de hardware de Azure Sphere en GitHub contiene un archivo de configuración EEPROM para su uso con la herramienta de línea de comandos. Se recomienda encarecidamente usar este archivo y la herramienta de línea de comandos en escenarios de fabricación. El archivo de configuración programa la EEPROM con los valores siguientes:

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

Para programar la EEPROM, debe usar este archivo tal como está sin modificaciones, ya que las herramientas de PC de Azure Sphere buscan la cadena Descripción del producto y producirán un error si se cambia este valor.

Instrucciones paso a paso para la programación de la EEPROM

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

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

  2. Conecte una o varias placas MT3620 al equipo.

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

  4. Escriba 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 tiene un aspecto similar al siguiente:

    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. Escriba 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 debería 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, examine una vez más:

    "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 de GUI de FT_PROG

La versión de GUI Windows de la aplicación es útil para leer y comprobar el estado de la información de la EEPROM. También puede usarlo para cambiar la información; Sin embargo, se recomienda usar 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 Scan (con el icono de lupa) para leer y mostrar el contenido actual de la EEPROM.

Si aparece un cuadro de diálogo Unknown Device, como se muestra en el ejemplo siguiente, haga clic en OK hasta que la ventana de la aplicación muestre la información correctamente.

Pantalla de dispositivo desconocido de FT_PROG

En el siguiente ejemplo se muestra la pantalla correcta:

Pantalla correcta de FT_PROG

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