Introducción al kit de conectividad de IoT XMC4800 y OPTIGA Trust X de Infineon - FreeRTOS

Introducción al kit de conectividad de IoT XMC4800 y OPTIGA Trust X de Infineon

importante

Esta integración de referencia está alojada en el repositorio de Amazon-FreeRTOS, que está en desuso. Recomendamos empezar por aquí al crear un nuevo proyecto. Si ya tiene un proyecto FreeRTOS existente basado en el repositorio Amazon FreeRTOS, ahora obsoleto, consulte Guía de migración del repositorio Github de Amazon-FreeRTOS.

Este tutorial ofrece instrucciones para la introducción al kit de conectividad de IoT XMC4800 y el elemento seguro de OPTIGA Trust X de Infineon. En comparación con el tutorial Introducción al kit de conectividad de IoT XMC4800 de Infineon, esta guía le muestra cómo proporcionar credenciales seguras mediante un elemento seguro de OPTIGA Trust X de Infineon.

Necesitará el siguiente hardware:

  1. MCU del host: Kit de conectividad de IoT XMC4800 de Infineon, consulte el Catálogo de dispositivos de socios de AWS para adquirir uno de nuestros socios.

  2. Paquete de extensión de seguridad:

    • Elemento seguro: OPTIGA Trust X de Infineon.

      Consulte el Catálogo de dispositivos de socios de AWS para adquirirlos de nuestro socio.

    • Placa de personalización: placa de personalización OPTIGA de Infineon.

    • Placa del adaptador: adaptador MyIoT de Infineon.

Para seguir estos pasos, debe abrir una conexión serie con la placa para ver la información de registro y depuración. (Uno de los pasos requiere copiar una clave pública de la salida de depuración en serie de la placa y pegarla en un archivo). Para ello, necesita un convertidor USB/serie de 3,3 V además del kit de conectividad de IoT XMC4800. El convertidor USB a serie JBtek EL-PN-47310126 es compatible con esta demostración. También necesitará tres cables puente macho a macho (para la recepción [RX], la transmisión [TX] y la conexión a tierra [GND]) para conectar el cable de serie a la placa del adaptador MyIoT de Infineon.

Antes de comenzar, debe configurar AWS IoT y la descarga de FreeRTOS para conectar el dispositivo a la nube de AWS. Para obtener instrucciones, consulte Opción n.º 2: generación de claves privadas integrada. En este tutorial, la ruta al directorio de descargas de FreeRTOS se denomina freertos.

Descripción general

Este tutorial contiene los siguientes pasos:

  1. Instale el software en el equipo host para desarrollar y depurar las aplicaciones integradas de la placa del microcontrolador.

  2. Realice una compilación cruzada de una aplicación de demostración de FreeRTOS en una imagen binaria.

  3. Cargue la imagen binaria de la aplicación en su placa y, a continuación, ejecute la aplicación.

  4. Interactúe con la aplicación que se está ejecutando en la placa con una conexión serie para fines de monitorización y depuración.

Cómo configurar el entorno de desarrollo.

FreeRTOS utiliza el entorno de desarrollo DAVE de Infineon para programar el XMC4800. Antes de comenzar, descargue e instale DAVE y algunos controladores J-Link para comunicarse con el depurador incorporado.

Instale DAVE

  1. Vaya a la página de descarga de software DAVE de Infineon.

  2. Elija el paquete de DAVE para su sistema operativo y envíe su información de registro. Después de registrarse, debe recibir un email de confirmación con un enlace para descargar un archivo .zip.

  3. Descargue el archivo .zip del paquete de Dave (DAVE_version_os_date.zip) y descomprímalo a la ubicación en la que desee instalar DAVE (por ejemplo, C:\DAVE4).

    nota

    Algunos usuarios de Windows han informado de problemas al usar el explorador de Windows para descomprimir el archivo. Le recomendamos que utilice un programa de terceros como 7-Zip.

  4. Para lanzar DAVE, ejecute el archivo ejecutable que podrá encontrar en la carpeta descomprimida DAVE_version_os_date.zip.

(Para obtener más información, consulte la DAVE Quick Start Guide).

Para comunicarse con la sonda de depuración incorporada del kit de conectividad de IoT XMC4800, necesita los controladores que se incluyen en el paquete de documentación y software de J-Link. Puede descargar el paquete de documentación y software de J-Link a través de la página de descarga de software de J-Link de Segger.

Establecimiento de una conexión serie

Conecte el cable convertidor USB a serie al adaptador Shield2Go de Infineon. Esto permite que la placa envíe información de registro y depuración en un formato que puede ver en su equipo de desarrollo. Para configurar una conexión serie:

  1. Conecte el pin RX al pin TX del convertidor USB a serie.

  2. Conecte el pin TX al pin RX del convertidor USB a serie.

  3. Conecte el pin de conexión a tierra del convertidor de serie a uno de los pines GND de la placa. Los dispositivos deben compartir una conexión a tierra común.

La alimentación se suministra desde el puerto de depuración USB, así que no conecte el pin de tensión positiva del adaptador serie a la placa.

nota

Algunos cables serie utilizan un nivel de señalización de 5 V. El XMC4800 board and the Wi-Fi Haga clic en memoria requieren un 3,3 V. No utilice el puente IOREF de la placa para cambiar las señales de la placa a 5 V.

Con el cable conectado, puede abrir una conexión serie en un emulador de terminal como, por ejemplo, GNU Screen. La velocidad en baudios se establece en 115 200 de forma predeterminada con 8 bits de datos, sin paridad, y 1 bit de parada.

Monitorización de mensajes de MQTT en la nube

Antes de ejecutar el proyecto de demostración de FreeRTOS, puede configurar el cliente de MQTT en la consola de AWS IoT para monitorizar los mensajes que envía el dispositivo a la nube de AWS.

Suscripción al tema de MQTT con el cliente de MQTT de AWS IoT
  1. Inicie sesión en la consola de AWS IoT.

  2. En el panel de navegación, seleccione Probar y, a continuación, seleccione el cliente de prueba MQTT para abrir el cliente MQTT.

  3. En Tema de suscripción, escriba your-thing-name/example/topic y, a continuación, elija Suscribirse al tema.

Cuando el proyecto de demostración se ejecute correctamente en su dispositivo, verá el mensaje “¡Hola, mundo!” enviado varias veces al tema al que se ha suscrito.

Creación y ejecución del proyecto de demostración de FreeRTOS

Importación de la demostración de FreeRTOS a DAVE

  1. Inicie DAVE.

  2. En DAVE, elija File (Archivo) y, a continuación, elija Import (Importar). Expanda la carpeta Infineon, elija DAVE Project (Proyecto DAVE) y, a continuación, elija Next (Siguiente).

  3. En la ventana Import DAVE Projects (Importar proyectos de DAVE), elija Select Root Directory (Seleccionar directorio raíz), elija Browse (Examinar) y, a continuación, elija el proyecto de demostración XMC4800.

    En el directorio en el que ha descomprimido la descarga de FreeRTOS, el proyecto de demostración se encuentra en projects/infineon/xmc4800_plus_optiga_trust_x/dave4/aws_demos/dave4.

    Asegúrese de que Copy Projects Into Workspace (Copiar proyectos en Workspace) no esté marcado.

  4. Seleccione Finalizar.

    El proyecto aws_demos debe importarse a su espacio de trabajo y activarse.

  5. En el menú Project (Proyecto) elija Build Active Project (Compilar proyecto activo).

    Asegúrese de que el proyecto se crea sin errores.

Ejecución del proyecto de demostración de FreeRTOS

  1. En el menú Project (Proyecto), elija Rebuild Active Project (Reconstruir proyecto activo) para reconstruir aws_demos y confirmar que se recogen los cambios realizados a la configuración.

  2. Desde Project Explorer (Explorador de proyectos), haga clic con el botón derecho del ratón en aws_demos, elija Debug As (Depurar como) y, a continuación, elija DAVE C/C++ Application (Aplicación DAVE C/C++).

  3. Haga doble clic en GDB SEGGER J-Link Debugging (Depuración de J-Link de SEGGER con GDB) para crear una confirmación de depuración. Elija Debug (Depuración).

  4. Cuando el depurador se detenga en el punto de ruptura en main(), desde el menú Run (Ejecutar), elija Resume (Reanudar).

En este punto, continúe con el paso de extracción de clave pública que figura en Opción n.º 2: generación de claves privadas integrada. Una vez completados todos los pasos, vaya a la consola de AWS IoT. El cliente de MQTT que ha configurado previamente debe mostrar los mensajes de MQTT enviados por el dispositivo. A través de la conexión serie del dispositivo, debe ver algo similar a esto en la salida UART:

0 0 [Tmr Svc] Starting key provisioning... 1 1 [Tmr Svc] Write root certificate... 2 4 [Tmr Svc] Write device private key... 3 82 [Tmr Svc] Write device certificate... 4 86 [Tmr Svc] Key provisioning done... 5 291 [Tmr Svc] Wi-Fi module initialized. Connecting to AP... .6 8046 [Tmr Svc] Wi-Fi Connected to AP. Creating tasks which use network... 7 8058 [Tmr Svc] IP Address acquired [IP Address] 8 8058 [Tmr Svc] Creating MQTT Echo Task... 9 8059 [MQTTEcho] MQTT echo attempting to connect to [MQTT Broker]. ...10 23010 [MQTTEcho] MQTT echo connected. 11 23010 [MQTTEcho] MQTT echo test echoing task created. .12 26011 [MQTTEcho] MQTT Echo demo subscribed to iotdemo/# 13 29012 [MQTTEcho] Echo successfully published 'Hello World 0' .14 32096 [Echoing] Message returned with ACK: 'Hello World 0 ACK' .15 37013 [MQTTEcho] Echo successfully published 'Hello World 1' 16 40080 [Echoing] Message returned with ACK: 'Hello World 1 ACK' .17 45014 [MQTTEcho] Echo successfully published 'Hello World 2' .18 48091 [Echoing] Message returned with ACK: 'Hello World 2 ACK' .19 53015 [MQTTEcho] Echo successfully published 'Hello World 3' .20 56087 [Echoing] Message returned with ACK: 'Hello World 3 ACK' .21 61016 [MQTTEcho] Echo successfully published 'Hello World 4' 22 64083 [Echoing] Message returned with ACK: 'Hello World 4 ACK' .23 69017 [MQTTEcho] Echo successfully published 'Hello World 5' .24 72091 [Echoing] Message returned with ACK: 'Hello World 5 ACK' .25 77018 [MQTTEcho] Echo successfully published 'Hello World 6' 26 80085 [Echoing] Message returned with ACK: 'Hello World 6 ACK' .27 85019 [MQTTEcho] Echo successfully published 'Hello World 7' .28 88086 [Echoing] Message returned with ACK: 'Hello World 7 ACK' .29 93020 [MQTTEcho] Echo successfully published 'Hello World 8' .30 96088 [Echoing] Message returned with ACK: 'Hello World 8 ACK' .31 101021 [MQTTEcho] Echo successfully published 'Hello World 9' 32 104102 [Echoing] Message returned with ACK: 'Hello World 9 ACK' .33 109022 [MQTTEcho] Echo successfully published 'Hello World 10' .34 112047 [Echoing] Message returned with ACK: 'Hello World 10 ACK' .35 117023 [MQTTEcho] Echo successfully published 'Hello World 11' 36 120089 [Echoing] Message returned with ACK: 'Hello World 11 ACK' .37 122068 [MQTTEcho] MQTT echo demo finished. 38 122068 [MQTTEcho] ----Demo finished----

Creación de la demostración de FreeRTOS con CMake

En esta sección se explica el uso de CMake en Windows con MingW como el sistema de compilación nativo. Para obtener más información acerca de cómo utilizar CMake con otros sistemas operativos y opciones, consulte Uso de CMake con FreeRTOS. (MinGW es un entorno de desarrollo minimalista para aplicaciones nativas de Microsoft Windows).

Si prefiere no utilizar un IDE para el desarrollo de FreeRTOS, puede usar CMake para crear y ejecutar las aplicaciones de demostración o las aplicaciones que ha desarrollado con herramientas de depuración y editores de código de terceros.

Creación de la demostración de FreeRTOS con CMake
  1. Configure la cadena de herramientas GNU Arm Embedded Toolchain.

    1. Descargue una versión de Windows de la cadena de herramientas de la página de descargas de Arm Embedded Toolchain.

      nota

      Debido a un error notificado en la utilidad objcopy, recomendamos que descargue una versión distinta de "8-2018-q4-major".

    2. Abra el instalador de la cadena de herramientas descargado y siga las instrucciones del asistente.

    3. En la última página del asistente de instalación, seleccione Add path to environment variable (Añadir ruta a variable de entorno) para añadir la ruta de la cadena de herramientas a la variable de entorno de ruta del sistema.

  2. Instale CMake y MingW.

    Para obtener instrucciones, consulte Requisitos previos de CMake.

  3. Cree una carpeta para contener los archivos de compilación generados (carpeta-compilación).

  4. Cambie los directorios por el directorio de descargas de FreeRTOS (freertos) y utilice el siguiente comando para generar los archivos de creación:

    cmake -DVENDOR=infineon -DBOARD=xmc4800_plus_optiga_trust_x -DCOMPILER=arm-gcc -S . -B build-folder -G "MinGW Makefiles" -DAFR_ENABLE_TESTS=0
  5. Cambie los directorios al directorio de compilación (carpeta-compilación) y utilice el siguiente comando para compilar el binario:

    cmake --build . --parallel 8

    Este comando compila el binario de salida aws_demos.hex en el directorio de compilación.

  6. Actualice y ejecute la imagen con JLINK.

    1. Desde el directorio de compilación (carpeta-compilación), utilice los siguientes comandos para crear un script de actualización:

      echo loadfile aws_demos.hex > flash.jlink echo r >> flash.jlink echo g >> flash.jlink echo q >> flash.jlink
    2. Actualice la imagen mediante el ejecutable de JLNIK.

      JLINK_PATH\JLink.exe -device XMC4800-2048 -if SWD -speed auto -CommanderScript flash.jlink

      Los registros de la aplicación deben ser visibles a través de la conexión serie que ha establecido con la placa. Continúe con el paso de extracción de clave pública en Opción n.º 2: generación de claves privadas integrada. Después de completar todos los pasos, vaya a la consola de AWS IoT. El cliente de MQTT que ha configurado previamente debe mostrar los mensajes de MQTT enviados por el dispositivo.

Solución de problemas

Para obtener información sobre la resolución de problemas, consulte Introducción a solución de problemas.