Dans cet article j'explique comment installer ArduinoIDE sur Ubuntu et comment le configurer pour l'utilisation avec la carte blue pill.
Arduio a fait ses début avec des cartes de développement basé sur des µC Atmel AVR mais ajourd'hui le support pour d'autre µC a été ajouté entre autre pour les µC à coeur ARM Cortex M. La carte blue pill utilise un µC stm32f103c8t6 avec un CPU Cortex M3.
Les références utilisées pour l'écriture de cet article sont les suivantes:
- Set up STM32 "blue pill" for Arduino IDE
- STM32duino boot loader
- STM32duino wiki
- Téléchargement de ArduinoIDE
Installation de ArduinoIDE
- Téléchargez la version d'ArduinoIDE qui convient à votre système. Mon Système est en Ubuntu 16.04 64 bits.
- Il s'agit d'une archive TAR zippée. On la place dans le dossier où on veut installer le programme. Par exemple
Il y a maintenant un dossier ~/ArduinoIDE/arduino-1.8.5mkdir ~/ArduinoIDE tar -xzf arduino-1.8.5-linux64.tar.xz
- Allez dans le dossier ~/ArduinoIDE/arduino-1.8.5. Il faut rendre le fichier install.sh exécutable
chmod +x intall.sh
- Exécutez le programme d'installation qui va créer un raccourci sur votre bureau.
./install.sh
-
S'il y a une erreur au démarrage de l'IDE, examinez le contenu dans un éditeur de texte.
Mon raccourci ne fonctionnais pas car il y avait un espace dans le chemin de l'exécutable. Pour corriger j'ai simplement mis le chemin au complet entre guillemets comme on le voie dans la capture d'écran.gedit ~/Bureau/arduino-arduinoide.desktop
- Une fois l'IDE démarré on ajoute l'URL qui va permettre à l'IDE de télécharger les librairies de STM32duino.
Allez dans le menu Fichier - Préférences ajoutez http://dan.drown.org/stm32duino/package_STM32duino_index.json dans le champ URL de gestionnaire de cartes supplémentaires et refermez la fenêtre. - Allez dans le menu Outils - Type de carte - gestionnaire de carte. Il faut sélectionner la dernière version de STM32F1xx/GD32F1xx Après avoir fait l'installation revenez sélectionné le même item dans la liste et cliquez sur le bouton mise à jour pour être certain d'avoir la dernière version installlée.
Installation du boot loader
En réalité le boot loader n'est pas nécessaire car l'environnement ArduinoIDE permet de programmer la carte en utilisant le programmeur stlink/v2. Je vais quand d'écrire l'installation du boot loader.
- Clonez le dépôt https://github.com/rogerclarkmelbourne/STM32duino-bootloader sur votre ordinateur
Il y a un dossier binaries dans le dépôt où se trouve plusieurs fichiers .bincd ~/Téléchargements git clone https://github.com/rogerclarkmelbourne/STM32duino-bootloader
J'ai installé le fichier generic_boot20_pc13.bin car sur la carte blue pill que j'ai la LED verte est branchée à PC13.cd ~/Téléchargements/STM32duino-bootloader/binaries
- Pour programmer le boot loader il faut mettre le cavalier boot0 sur la carte blue pill à la position 1. La commande à
exécuter est la suivante.
S'il n'y a pas d'erreur remettez le cavalier boot0 à sa position initiale et pesez sur le bouton reset de la carte. Au démarrage la LED verte clignote rapidement puis lentement 5 fois.st-flash --reset write generic_boot20_pc13.bin 0x8000000
- Il faut maintenant débrancher le programmeur stlink/v2, remettre le cavalier boot0 à la position 0 et brancher la carte au PC avec un cable USB. Un périphérique ttyACM0 devrait maintenant être visible dans le dossier /dev.
Premier projet
- Lancez ArduinoIDE Il faut maintenant sélectionner le type de carte, la variante ainsi que le méthode de téléversement (i.e. Upload method)
- Type de carte: Generic STM32F103 series
- Variant: STM32F103C8 (20K RAM, 64K Flash)
- Upload Method: STM32duino bootloader
- Comme premier projet nous allons sélectionner dans Fichier - exemples - A_STM32_Examples - digital - Blink
Puisque sur ma carte la LED verte est sur PC13 J'ai du modifié l'exemple en remplaçant PB1 par PC13 - Dans la barre d'outils d'ArduinoIDE cliquez sur le bouton crochet pour compiler le programme. Les messages s'affiche en bas dans la fenêtre en noir.
- Si le programme a compiler correctement pressez le bouton reset de la carte blue pill et dans la barre d'outils cliquez sur la flèche téléverser pour programmer la carte.
Failed to open serial device.
No DFU capable USB device found
Et la commande dmesg rapporte l'erreur suivante:
[ 7356.893978] cdc_acm 2-1.7:1.0: ttyACM0: USB ACM device [ 7363.474986] usb 2-1.7: USB disconnect, device number 21 [ 7363.477217] cdc_acm 2-1.7:1.0: failed to set dtr/rtsMes recherche m'ont conduit à ceci et à celà. Il semblerais donc que d'utiliser ce bootloader ne fonctionne pas! J'en arrive donc à la deuxième méthode qui fonctionne très bien.
Utiliser le programmeur STLINK/V2 avec ArduinoIDE
D'abord je désinstalle le bootloader en mettant le cavalier boot0 à 1 en en rebranchant le programmeur.
st-flash erase
Ensuite:
- Débranchez le fil 3v3 du programmeur côté de la carte blue pill
- Remettez le cavalier boot0 à 0.
- Brancher le cable USB à l'autre bout de la carte et au PC. Maintenant la carte est alimentée par le cable USB.
- Dans le menu Outils - Upload Method: sélectionnez STLINK
- Cliquez pour téléverser Blink à nouveau. Bingo ça fonctionne!
Donc maintenant on utilise STLINK/V2 pour programmer la carte blue pill et le cable USB lui sert simple à communiquer avec le Terminal sériel disponible dans Outils - Moniteur série.
L'exemple Fichier - exemples - A_STM32_Examples - General - InternalTempSensor fait la lecture de la sonde de température et envoie des informations au Moniteur Serie. Encore une fois j'ai du adapter cet exemple à la carte blue pill
Voici une capture d'écran du Moniteur série. Le moniteur série doit-être configuré à 115200 BAUD.
retour à blue pill (introduction)
Aucun commentaire:
Publier un commentaire
Remarque : Seuls les membres de ce blogue sont autorisés à publier des commentaires.