RadioShuttle STM32 Utility

1. RadioShuttle STM32 Utility

« RadioShuttle STM32 Utility » est un outil spécial qui permet de télécharger facilement un firmware sur une carte compatible RadioShuttle STM32 via une connexion USB utilisant le protocole DFU. L’outil peut être utilisé à partir d’une ligne de commande sur les ordinateurs Mac, Windows et Linux, ou d’une interface utilisateur graphique sur les ordinateurs Mac et Windows. Le firmware peut être téléchargé à partir des MCU STM32. L’outil peut être utilisé avec des cartes compatibles RadioShuttle qui ont été fournies avec une licence valide (code) pendant la fabrication.

2. Configuration système requise

  • Mac :
    macOS 10.9 ou plus récent
  • Windows :
    Windows 7 ou plus récent
  • Linux :
    Linux kernel 2.6.16 ou plus récent
    glibc 2.4 ou plus récent

Remarque :
Le logiciel « STM32 Utility » fonctionne uniquement avec des cartes activées par le fabricant. Toutes les cartes LoRa sont préparées pour le logiciel « STM32 Utility ».

3. Charger le firmware sur une carte STM32

  • Connectez la carte à l’ordinateur à l’aide d’un câble micro-USB (figure 1)
Figure 1 : Raccordement du câble micro-USB entre la carte hôte et la carte cible

Remarque importante pour les utilisateurs Windows :
Avant de pouvoir utiliser la carte cible STM32 sous Windows, les pilotes RadioShuttle doivent être installés. Reportez-vous à la section 7, Installation des pilotes sous Windows.

  • Télécharger l’archive RadioShuttle STM32 Tools
  • Extrayez l’archive
  • Ouvrez l’outil « RadioShuttle STM32 Utility »

La carte doit d’abord être mise en mode de démarrage du DFU (barre d’état "STM32 DFU Target not available (enable via User and Reset button)"):

  • Appuyer et maintenir enfoncé le bouton « User » et appuyer brièvement une fois sur le bouton « Reset » (figure 2)
Figure 2 : Bouton Utilisateur et Reset sur la carte cible

La carte est maintenant en mode de démarrage USB DFU.

GUI (Windows/Mac)

  • Faites glisser le fichier « .bin » contenant le firmware dans la fenêtre (figures 3a+b) :
Figure 3a : Le fichier binaire est glissé dans la fenêtre de l’utilitaire RadioShuttle STM32 (Windows)
Figure 3b : Le fichier binaire est glissé dans la fenêtre de l’utilitaire RadioShuttle STM32 (Mac)
  • Vous pouvez également faire glisser le fichier « .bin » directement sur l’icône du programme « RadioShuttle STM32 Utility »
  • Alternativement, vous pouvez aller dans le menu « File > Upload to target » et sélectionner le fichier « .bin »

Ligne de commande (Windows/Mac/UNIX)

Avant de pouvoir télécharger le nouveau firmware, le message d’état dans la fenêtre du programme doit ressembler à ceci :
"STM32 (ID:0) Flash: 256 kB".

ID: 0 indique le numéro consécutif de la carte connectée via USB. Avec cet outil, plusieurs cartes peuvent être connectées à un même hôte, où l’ID diffère entre les différentes cartes.

Veuillez noter que l’application « RadioShuttle Utility » vérifie automatiquement le contenu après le téléchargement du firmware (figure 4). Une fois que le microprogramme a été chargé avec succès sur la carte cible, le logiciel est automatiquement réinitialisé, ce qui signifie que la carte quitte le mode de démarrage du DFU et lance le programme nouvellement installé. Pour revenir au mode de démarrage du DFU, appuyez sur la combinaison de boutons indiquée au début de cette section.

Figure 4 : Le fichier binaire est chargé sur la carte

Dès que le firmware a été installé avec succès sur la carte, une fenêtre du programme macOS « Terminal » (figure 5a) s’ouvre automatiquement, qui affiche la sortie complète du programme chargé, par example, la version du compilateur ARM, la tension et le type de source, la mémoire disponible, etc.

Dans des 10 secondes, des commandes supplémentaires peuvent être entrées. Après ce laps de temps, l’entrée est désactivée.

Commandes disponibles :

p   PropertyEditor
t LoRa PingPong test
x LoRa TX continuous wave test
d Hexdump of memory address [offset count]
r Reset
c Continue with RadioShuttle

Après 10 secondes, l’utilitaire SMT32 affiche la fréquence radio utilisée, le facteur d’étalement, la bande passante, le mode de démarrage du nœud (par ex. « Node Offline »), etc.

Figure 5a : Sortie du programme macOS « Terminal »

Sous Windows, vous pouvez utiliser le programme Tera Term pour vous connecter au port COM virtuel correct (figure 5b)

  • Allez dans « Setup > Serial port… » et entrez le port série correct (dans notre exemple c’est « COM4 ») :
  • Cliquez sur « OK »

Tera Term ouvre alors une fenêtre de programme (figure 5b) qui affiche toute la sortie du programme chargé.

Figure 5b : Sortie du programme « TeraTerm » (Windows)

4. Réglages définis par l’utilisateur

Le menu « Préférences » (figure 6) est optionnel et n’est normalement pas nécessaire à moins que des paramètres spéciaux, tels que, l’adresse de démarrage du flash (offset) diffèrent de l’adresse par défaut ou la taille du flash doit être limitée.

Figure 6 : Menu « Preferences »
  • (Windows) : Allez dans « Help > Preferences… »
    (Mac) : Allez dans « RadioShuttle STM32 Utility > Preferences… »
  • Sélectionnez la carte souhaitée dans le menu contextuel « STM32 Target : », par ex. « STM32 ID:0 »
  • Si nécessaire, ajustez les valeurs pour « Offset » et « Size » :
    Activez la case à cocher « Options » et les nouvelles valeurs pour le décalage, pour définir une adresse propre et la taille. Les valeurs peuvent être entrées en notation décimale ou hexadécimale

Les réglages définis par l’utilisateur sont sauvegardés et réutilisés lors du prochain démarrage de l’outil. Dans le cas de plusieurs cartes cibles connectées, l’ID de la carte n’est pas enregistré. L’outil utilise automatiquement la première carte cible trouvée après le démarrage.

5. Lire la mémoire flash

  • Allez dans « Fichier > Télécharger depuis la cible »

Veuillez noter que lors du téléchargement, toute la mémoire flash cible est extraite et enregistrée dans un fichier « .bin » sur l’hôte. Ainsi, même si seulement une petite partie est utilisée, tout le contenu flash est déballé et sauvegardé. C’est parce que pendant le téléchargement, l’utilitaire ne sait pas combien est utilisé, donc il lit tout. Les options de taille (« Offset » / « Size ») peuvent être utilisées pour limiter la taille du téléchargement.

Remarque importante :
L’outil n’efface pas tout le contenu de la puce mémoire, mais efface ou écrit seulement la taille du fichier « .bin » dans la mémoire et conserve les données restantes dans la mémoire flash.

6. Paramètres de ligne de commande

Au lieu d’utiliser « RadioShuttle STM32 Utility », le firmware peut également être flashé sur la carte à l’aide de l’outil en ligne de commande.

  • Dans la ligne de commande, passez dans le répertoire dans lequel « RadioShuttleSTM32Tool » est installé
  • Entrez la ligne suivante:
    RadioShuttleSTM32Tool

Après le démarrage, une liste de toutes les options de ligne de commande disponibles s’affiche.

Options

-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)

Attention : Utilisez l’option erase flash chip or pages avec prudence. Lors de la suppression complète de la puce, les fichiers du bootloader et le contenu de la mémoire permanente peuvent également être supprimés ! Par précaution, cette option n’est donc pas disponible dans « RadioShuttle STM32 Utility ».

Exemples

Exemple pour faire flash la carte avec le fichier « MyProg.bin » :
RadioShuttleSTM32Tool MyProg.bin

Flashing de la carte en utilisant le fichier « MyProg.bin » avec le décalage de mémoire flash 0x0400 :
RadioShuttleSTM32Tool -o 0x400 MyProg.bin

Flash le firmware complet d’une carte dans le fichier « flash.bin » :
RadioShuttleSTM32Tool -d -f /Users/rs/Desktop/flash.bin

Code de sortie

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. Installation des pilotes sous Windows

Avant de pouvoir utiliser la carte cible STM32 sous Windows, vous devez installer les pilotes de périphériques requis.

Installation du pilote « STM32 BOOTLOADER »

  • Placez la carte STM32 que vous avez connectée à un ordinateur Windows en mode de démarrage DFU en maintenant enfoncé le bouton « User » et en appuyant une fois sur le bouton « Reset » (figure 2)
  • Ouvrez le « Gestionnaire de périphériques » de Windows

Remarque :
Si un pilote plus ancien a déjà été installé sur la carte ou si Windows a automatiquement affecté un pilote à la carte STM32, par exemple dans « Contrôleurs de bus USB » ou « Contrôleur USB », celui-ci doit d’abord être désinstallé :

  • Double-cliquez sur l’entrée du périphérique pour ouvrir les propriétés
  • Dans l’onglet « Pilote », cliquez sur « Désinstaller »
  • Assurez-vous d’avoir activé la case à cocher « Supprimer le pilote pour ce périphérique » et cliquez sur « OK »
  • Appuyez et maintenez enfoncé le bouton « Utilisateur » et appuyez brièvement sur le bouton « Réinitialiser » une fois pour remettre la carte en mode de démarrage du DFU

L’entrée « STM32 BOOTLOADER » apparaît maintenant sous « Autres appareils ». L’icône est accompagnée d’un avertissement indiquant que Windows n’a pas pu trouver un pilote approprié :

Le pilote peut maintenant être installé :

  • Extrayes l’archive « RadioShuttle STM32 Tools.zip »
  • Double-cliquez sur l’entrée « STM32 BOOTLOADER » pour ouvrir les propriétés
  • Dans l’onglet « Général », cliquez sur « Mettre à jour le pilote… »

Le système Windows vous demande comment rechercher le pilote dont vous avez besoin :

  • Cliquez sur « Rechercher le logiciel pilote sur votre ordinateur »
    (Ne sélectionnez pas la méthode « Rechercher automatiquement le logiciel de pilote à jour » !)
  • A l’aide du bouton « Parcourir… », accédez au dossier « RadioShuttle STM32 Tools » dézippé
  • Dans ce dossier, accédez à « Windows > pilote » et cliquez sur « OK »
  • Cliquez sur « Suivant » et confirmez le dialogue suivant avec « Installer »

Une fois que Windows a installé avec succès le logiciel pilote, l’entrée « STM32 BOOTLOADER » apparaît dans le « Gestionnaire de périphériques » sous « Contrôleurs de bus USB » :

  • Double-cliquez sur l’entrée « STM32 BOOTLOADER » et assurez-vous que l’information ressemble à ceci :
La version du pilote doit être au moins 1.0.0.0

CDC DEVICE (Virtual Serial COM Port) installation

Dans un deuxième temps, le pilote « CDC DEVICE » doit être installé:

  • Appuyez sur le bouton « Reset » de la carte cible

Remarque :
Si un pilote plus ancien était déjà affecté à la carte ou si le système Windows a automatiquement affecté un pilote à la carte STM32, par exemple dans « Ports (COM et LPT) », celui-ci doit d’abord être supprimé :

  • Double-cliquez sur l’entrée du périphérique pour ouvrir ses propriétés
  • Dans l’onglet « Pilote » cliquez sur « Désinstaller »
  • Cochez la case « Supprimer le pilote pour ce périphérique » et confirmez avec « OK »

Si aucun pilote existant ou plus ancien n’avait été attribué auparavant, l’entrée « CDC DEVICE » apparaît sous « Autres périphériques ». Son icône est marquée d’un avertissement indiquant qu’aucun pilote correspondant n’a pu être trouvé par le système Windows:

Le nouveau pilote peut maintenant être installé :

  • Double-cliquez sur l’entrée « CDC DEVICE » pour ouvrir ses propriétés
  • Dans l’onglet « Général », cliquez sur « Mettre à jour le pilote… »

Le système Windows vous demande comment rechercher le pilote dont vous avez besoin :

  • Cliquez sur « Rechercher le logiciel pilote sur votre ordinateur »
    (Ne sélectionnez pas la méthode « Rechercher automatiquement le logiciel de pilote à jour » !)
  • A l’aide du bouton « Parcourir… », accédez au dossier « RadioShuttle STM32 Tools » dézippé
  • Dans ce dossier, accédez à « Windows > pilote » et cliquez sur « OK »
  • Cliquez sur « Suivant » et confirmez le dialogue suivant avec « Installer »

Une fois que Windows a installé avec succès le logiciel pilote, l’entrée « STM32 CDC (e.g. COM20) » apparaît dans le « Gestionnaire de périphériques » sous « Ports (COM et LPT) » :

  • Double-cliquez sur l’entrée « STM32 CDC (par ex. COM20) » et assurez-vous qu’elle ressemble à ceci :
La version du pilote doit être au moins 1.0.0.0

Si aucun pilote n’a encore été affecté, les pilotes ont été installés avec succès et vous pouvez en savoir plus à la section 3. Charger le firmware sur une carte STM32.

8. Autorisation

L’outil n’est disponible que pour les clients qui ont acheté une carte compatible RadioShuttle avec une licence RadioShuttle. RadioShuttle doit avoir été activé sur la carte pendant la production, sinon il n’est pas supporté et ne fonctionne pas.

9. Questions et réponses

a) Ma carte n’est pas affichée dans « RadioShuttle STM32 Utility ».
Vérifiez les points suivants :

  • Le câble USB est-il connecté à l’hôte ?
  • Le câble USB est-il connecté à la carte ?
  • La carte est-elle en mode boot DFU (voir 3. Charger le firmware sur une carte STM32) ?
  • La carte est-elle soutenue par RadioShuttle ?

b) Le chargement du micrologiciel a une erreur, par ex. 0x08001000.
Certaines puces MCU peuvent être protégées en écriture, la mémoire ne peut pas être écrasée ou certains blocs de mémoire peuvent être protégés en écriture.

c) Le téléchargement du contenu de la mémoire échoue.
Certaines puces MCU peuvent être protégées contre la lecture. Veuillez contacter votre revendeur.

d) Après le téléchargement, le programme ne démarre plus.
Par défaut, l’adresse de départ est 0x080000000000. Le logiciel a peut-être besoin d’une autre adresse de démarrage qui peut être spécifiée dans la configuration « Préférences ». Une autre option peut être que le firmware (« .bin ») n’est pas compatible avec votre carte ou contient des erreurs logicielles. Dans ce cas, simplifiez l’application et testez à nouveau.

e) Combien de temps faut-il pour télécharger le firmware et programmer la mémoire flash ?
Cela dépend de la taille de l’image flash (« .bin »). Une petite image peut être écrite dans la mémoire en une seconde. Une image plus grande, par exemple 200 kB, prend 3 secondes.

(c) 2018 www.radioshuttle.de