RadioShuttle STM32 Utility

1. RadioShuttle STM32 Utility

“RadioShuttle STM32 Utility” es una utilidad especial que permite fácilmente cargar y descargar firmware desde/hacia tarjetas compatibles con RadioShuttle STM32, vía USB usando el protocolo DFU. La utilidad se puede utilizar desde una línea de comandos de Mac, Windows y Linux, o en una interfaz gráfica de usuario de ordenadores Mac y Windows. El firmware se puede cargar o descargar desde las MCU STM32. Ha sido diseñado para ser utilizado con tarjetas compatibles con RadioShuttle que hayan obtenido una licencia (código) válida durante el proceso de fabricación.

2. Requisitos del sistema

  • Mac:
    macOS 10.9 o posterior
  • Windows:
    Windows 7 o posterior
  • Linux:
    Linux kernel 2.6.16 o posterior
    glibc 2.4 o posterior

Nota:
El software “RadioShuttle STM32 Utility” sólo funciona con tarjetas activadas por el fabricante. Todas las tarjetas LoRa están preparadas para el software “STM32 Utility”.

3. Cargar firmware en una tarjeta STM32

  • Conecte la tarjeta al ordenador mediante un cable micro USB (illustr.1)
Illustr. 1: Conexión por cable micro USB entre el host y la tarjeta de destino

Nota importante para los usuarios de Windows:
Antes de poder usar la tarjeta STM32 (destino) en Windows, se deben seguir algunos pasos adicionales para instalar los controladores de RadioShuttle. Véase la sección 7. Instalar controladores en Windows para obtener instrucciones.

Primero, la tarjeta debe ponerse en modo de arranque DFU (la línea de estado dice "STM32 DFU Target not available (enable via User and Reset button)"):

  • Mantenga pulsado el pulsador “User” y pulse una vez el pulsador «Reset» (illustr. 2)
Illustr. 2: Pulsadores “User” y “Reset” en la tarjeta de destino

Ahora la tarjeta está en modo de arranque USB DFU.

Interfaz gráfica (Windows/Mac)

  • Arrastre el archivo “.bin” que contiene el firmware a la ventana (illustr. 3a+b):
Illustr. 3a: El binario se arrastra a la utilidad RadioShuttle STM32 (Windows)
Illustr. 3b: El binario se arrastra a la utilidad RadioShuttle STM32 (Mac)
  • O bien, arrastre el archivo “.bin” directamente al icono de la aplicación “RadioShuttle STM32 Utility”
  • Alternativamente, vaya a “File > Upload to target” y seleccione el archivo “.bin”

Línea de comandos (Windows/Mac/UNIX)

Antes de cargar un nuevo firmware, el mensaje de estado debe decir "STM32 (ID:0) Flash: 256 kB".

ID: 0 es el número de enumeración de la tarjeta conectada vía USB. La utilidad soporta la conexión de varias tarjetas al mismo host, en este caso el ID distingue entre las diferentes tarjetas.

Tenga en cuenta que después de flashear el firmware (illustr. 4) la utilidad «RadioShuttle STM32 Utility» verifica automáticamente el contenido. Después de flashear con éxito la tarjeta de destino, se reinicia automáticamente el software, lo que significa que la tarjeta sale del modo de arranque DFU y se inicia con el nuevo programa flasheado. Para volver a ponerlo en modo de arranque DFU, se debe pulsar la combinación de pulsadores dada al principio de esta sección

Illustr. 4: El binario está siendo flasheado a la tarjeta

Una vez que el firmware ha sido flasheado con éxito, se abre automáticamente una ventana de programa macOS “Terminal” (illustr. 5a) que muestra cualquier salida del programa flasheado, por ejemplo, la versión del compilador ARM, el voltaje y tipo el de fuente, la memoria disponible, etc.

Nota:
Si el programa “Terminal” no se inicia automáticamente (como se ha descrito anteriormente), por favor vaya a la opción de menú “Terminal > ttyusbmodem<…>” en la utilidad “RadioShuttle STM32 Utility”.

Dentro de 10 segundos, se pueden introducir comandos adicionales. Después de este período de tiempo, la entrada se desactiva.

Comandos disponibles:

r -- Reset
d -- Hexdump of memory address [offset count]
h -- help for the command (e.g.: h b [help for blinky])
q -- quit program and continue
B -- CPUBench example CPU benchmark
p -- Properties non volatile settings editor
l -- LoRaPingPong raw LoRa ping pong example
w -- RadioContinuousTX LoRa radio continues wave TX test
b -- Blinky example without LoRa
n -- RadioTestNew RadioShuttle test example
x -- PanicButton RadioShuttle panic button example
t -- RemoteTempSensor RadioShuttle remote temperature sensor
k -- RemoteRelay RadioShuttle remote relay control
c -- Continue with default program

Después de 10 segundos, la utilidad SMT32 muestra la frecuencia de radio utilizada, el factor de dispersión, el ancho de banda, el modo en que se inicia el nodo (por ejemplo, “Node Offline”), etc.

Illustr. 5a: Salida “Terminal” macOS

En Windows, el programa Tera Term se puede utilizar para conectarse al puerto COM virtual correcto (illustr. 5b).

  • Abra “Setup > Serial port…” para especificar el puerto serie correcto (en nuestro ejemplo de abajo es “COM4”):
  • Haga clic en el botón “OK”

A continuación, Tera Term abre una ventana de programa (illustr. 5b) que muestra cualquier salida del programa flasheado.

Illustr. 5b: Salida “TeraTerm” de Windows

4. Configuraciones personalizadas

El menú “Preferences” (illustr. 6) es opcional y normalmente no es necesario, a menos que parámetros especiales como la dirección de inicio del flash (offset) difiera de la dirección predeterminada, o que el tamaño del flash deba ser limitado.

Illustr. 6: Menú “Preferencias”
  • (Windows): Abra “Help > Preferences…”.
    (Mac): Abra “RadioShuttle STM32 Utility > Preferences…”
  • En el menú desplegable “STM32 Target:” seleccione la tarjeta deseada, por ejemplo, “STM32 ID:0”
  • Si es necesario, ajuste el offset y el tamaño de la memoria:
    Active la casilla de verificación “Options” e introduzca el offset de memoria para definir una dirección personalizada y un tamaño. Las entradas se pueden especificar en notación decimal o hexadecimal

Los ajustes personalizados se guardan y se volverán a utilizar la próxima vez que se inicie la utilidad. El ID de la tarjeta (en caso de varias tarjetas de destino conectados) no se guardará. La herramienta utilizará automáticamente la primera tarjeta de destino encontrada cuando se inicie.

5. Lectura de la memoria flash

  • Vaya a “File > Download from target”

Tenga en cuenta que cuando se utiliza la descarga flash, toda la memoria flash de destino se extrae y guarda en un archivo “.bin” en el host, incluso si sólo se utiliza una pequeña parte – el contenido flash completo se extrae y se guarda. Esto se debe a que durante la descarga la utilidad no sabe cuánto se está utilizando, por lo tanto lee todo. Para limitar el tamaño de la descarga, las opciones de tamaño se pueden establecer en las preferencias.

Nota importante:
La utilidad flash no borrará todo el contenido del chip flash, sólo borrará y flasheará el tamaño del archivo “.bin” en el flash y conservará el resto de los datos existentes en el flash.

6. Parámetros de la línea de comandos

En lugar de utilizar la utilidad “RadioShuttle STM32 Utility”, el firmware también puede ser flasheado a la tarjeta utilizando la herramienta de línea de comandos.

  • En la línea de comandos, cambie al directorio en el que está instalado “RadioShuttleSTM32Tool”.
  • Introduzca la siguiente línea:
    RadioShuttleSTM32Tool

Tras iniciar, se muestra una lista de todas las opciones de línea de comandos disponibles.

Opciones

-l  list connected STM32 USB-targets
-u  upload image to target device
-d  download image from target device
-e  erase flash chip or pages (via offset/length)
-o  offset of target flash address for download/upload (optional)
-s  size of target flash operation for download/upload/erase
-i  index for multiple targets (default: 0)
-f  image file (default: image.bin)
-q  no text output (quiet)

Atención:
Utilice la opción erase flash chip or pages con precaución. Cuando se borra el chip completo, también se pueden eliminar los archivos del cargador de arranque y el contenido de la memoria permanente. Como precaución, esta opción no está disponible en “RadioShuttle STM32 Utility”.

Ejemplos

Ejemplo de flasheo de la tarjeta con el archivo “MyProg.bin”:
RadioShuttleSTM32Tool MyProg.bin

Flasheando la tarjeta con el archivo “MyProg.bin” con el offset de memoria flash 0x0400:
RadioShuttleSTM32Tool -o 0x400 MyProg.bin

Flasheando el firmware completo de una tarjeta en el archivo “flash.bin”:
RadioShuttleSTM32Tool -d -f /Users/rs/Desktop/flash.bin

Código de salida

0: Success
1: No Device
2: Device Read Error
3: Device Write Error
4: Device Erase Error
5: Firmware Verify Error
6: USB Error
7: Parameter Error (command line arguments)
8: Unix Error (out of memory etc)
9: Offset Alignment Error
10: Invalid Start Address
11: Read File Error
12: Write File Error
13: Firmware Too Big

7. Instalar controladores en Windows

Antes de poder utilizar la tarjeta STM32 (destino) en Windows, se deben tomar medidas adicionales para instalar los controladores de dispositivo necesarios.

Instalación del controlador del “STM32 BOOTLOADER”

  • Ponga la tarjeta STM32, que ha conectado al ordenador con Windows, en modo de arranque DFU manteniendo pulsado el pulsador “User” y pulsando una vez el pulsador “Reset” (illustr. 2)
  • Abra el “Administrador de dispositivos” de Windows

Nota:
Si ya se ha asignado un controlador antiguo a la tarjeta, o si el sistema Windows ha asignado automáticamente un controlador a la tarjeta STM32, por ejemplo, en “Dispositivos de bus serie universal” o en “Controladoras de bus serie universal”, éste deberá borrarse primero:

  • Haga doble clic en la entrada del dispositivo para abrir sus propiedades
  • En la pestaña “Controlador” haga clic en “Desinstalar”
  • Asegúrese de marcar la casilla de verificación “Eliminar el software de controlador de este dispositivo” y confirmar con “Aceptar”
  • Mantenga pulsado el pulsador “User” y pulse una vez el pulsador “Reset” para volver a poner la tarjeta en modo de arranque DFU

Ahora aparece la entrada “STM32 BOOTLOADER” en “Otros dispositivos”. Su icono está etiquetado con una advertencia de que el sistema Windows no ha podido encontrar ningún controlador compatible:

Ahora se puede instalar el nuevo controlador:

  • Descomprima el archivo “RadioShuttle STM32 Tools.zip”
  • Haga doble clic en la entrada “STM32 BOOTLOADER” para abrir sus propiedades
  • En la pestaña “General” haga clic en “Actualizar controlador…”

El sistema Windows le preguntará cómo desea buscar el controlador requerido:

  • Haga clic en “Buscar software de controlador en el equipo”
    (No seleccione “Buscar automáticamente software de controlador actualizado”!)
  • Con el botón “Examinar….” navegue hasta la carpeta descomprimida “RadioShuttle STM32 Tools”
  • En la carpeta, vaya a “Windows > driver” y haga clic en “Aceptar”
  • Haga clic en “Siguiente” y confirme el siguiente diálogo con “Instalar”

Después de haber instalado Windows con éxito el software del controlador, en la ventana “Administrador de dispositivos” aparece la entrada “STM32 BOOTLOADER” bajo «Dispositivos de bus serie universal»:

  • Haga doble clic en la entrada “STM32 BOOTLOADER” y asegúrese de que se verá de esa manera:
La versión del controlador debe ser 1.0.0.0 o superior

Instalación de CDC DEVICE (Puerto COM serie virtual)

En un segundo paso, es necesario instalar el controlador “CDC DEVICE”

  • Presione el pulsador “Reset” en la tarjeta de destino

Nota:
Si ya se ha asignado un controlador antiguo a la tarjeta, o si el sistema Windows ha asignado automáticamente un controlador a la tarjeta STM32, por ejemplo, en “Puertos (COM y LPT)”, éste debe borrarse primero:

  • Haga doble clic en la entrada del dispositivo para abrir sus propiedades
  • En la pestaña “Controlador” haga clic en “Desinstalar”
  • Asegúrese de marcar la casilla de verificación “Eliminar el software de controlador de este dispositivo” y confirmar con “Aceptar”

Si todavía no se ha asignado ningún controlador existente o anterior, la entrada “CDC DEVICE” aparece en “Otros dispositivos”. Su icono está etiquetado con una advertencia de que el sistema Windows no ha podido encontrar ningún controlador compatible:

Ahora se puede instalar el nuevo controlador:

  • Haga doble clic en la entrada “CDC DEVICE” para abrir sus propiedades
  • En la pestaña “General” haga clic en “Actualizar controlador…”

El sistema Windows le preguntará cómo desea buscar el controlador requerido:

  • Haga clic en “Buscar software de controlador en el equipo”
    (No seleccione “Buscar automáticamente software de controlador actualizado”!)
  • Con el botón “Examinar….” navegue hasta la carpeta descomprimida “RadioShuttle STM32 Tools”
  • En la carpeta, vaya a “Windows > driver” y haga clic en “Aceptar”
  • Haga clic en “Siguiente” y confirme el siguiente diálogo con “Instalar”

Después de haber instalado Windows con éxito el software del controlador, en la ventana “Administrador de dispositivos” aparece la entrada “STM32 CDC (p. ej. COM20)” bajo “Puertos (COM y LPT)”:

  • Haga doble clic en la entrada “STM32 CDC (p. ej. COM20)” y asegúrese de que parezca así:
La versión del controlador debe ser 1.0.0.0 o superior

Si todavía no se ha asignado ningún controlador existente o anterior, los controladores se han instalado correctamente y puede continuar en la sección 3. Cargar firmware en una tarjeta STM32.

8. Licencias

La herramienta está disponible sólo para clientes que han obtenido una tarjeta compatible con RadioShuttle que incluye una licencia de RadioShuttle. La tarjeta debe estar habilitada para RadioShuttle en el momento de la fabricación, de lo contrario no es compatible y no funcionará.

9. Preguntas y respuestas

a) Mi tarjeta no aparece en el “RadioShuttle STM32 Utility”.
Verifique lo siguiente:

  • ¿El cable USB está conectado al host?
  • ¿El cable USB está conectado a la tarjeta?
  • ¿Se ha puesto la tarjeta en modo de arranque DFU (véase 3. Cargar firmware en la tarjeta STM32)?
  • ¿Está la tarjeta soportada por RadioShuttle?

b) El flasheo falla en la dirección, por ejemplo, 0x08001000.
Algunos chips MCU pueden haber sido protegidos contra escritura, el flash no puede sobrescribirse o bloques de flash especiales están protegidos contra escritura.

c) La descarga de contenido flash falla.
Algunos chips MCU pueden estar protegidos contra la lectura. Póngase en contacto con su proveedor.

d) Después de flashear, el programa no se inicia.
Por defecto, la dirección de inicio es 0x08000000. Tal vez el software requiera otra dirección de inicio que puede ser especificada en la configuración de “Preferencias”. Otra opción puede ser que el firmware (“.bin”) no sea compatible con su tarjeta o contenga errores de software. En este caso, simplifique la aplicación y vuelva a probar.

e) ¿Cuánto tiempo se tarda en cargar y programar la memoria flash?
Depende del tamaño de la imagen del flash (“.bin”). Una imagen pequeña se puede flashear en un segundo. Una imagen más grande de 200 kB requiere 3 segundos.

© 2018 www.radioshuttle.de