Arduino Forum

International => Français => Tutoriels et cours => Topic started by: hbachetti on Apr 01, 2018, 07:24 pm

Title: STM32 DUINO
Post by: hbachetti on Apr 01, 2018, 07:24 pm
Pour ceux qui ont envie de se lancer dans l'aventure STM32 à moindre frais, voici un petit tutoriel (https://riton-duino.blogspot.fr/2018/03/stm32f103c8t6-et-arduino.html).
La carte STM32F103C8 "blue pills" peut se trouver facilement sur AliExpress (https://fr.aliexpress.com/item/1pcs-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-arduino/32583160323.html?spm=a2g0s.9042311.0.0.LGsoeM) ou EBay (https://www.ebay.fr/itm/1-2-5-10PCS-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module/263366543431?hash=item3d51de8847:m:mtJIrjix9JPiXYEIYURpflw) et permet pour un prix modique de développer des applications sur un processeur bien plus performant que nos ATMEGA328P, tout en restant dans le monde ARDUINO.

Bonnes bidouilles
@+
Title: Re: STM32 DUINO
Post by: _pepe_ on Apr 02, 2018, 12:22 am
Supprimé
Title: Re: STM32 DUINO
Post by: _pepe_ on Apr 02, 2018, 01:04 am
Supprimé
Title: Re: STM32 DUINO
Post by: hbachetti on Apr 02, 2018, 09:53 am
Salut

Comme il est dit dans le tuto :
Large gamme de tension d'utilisation de 2V à 3.6V, pas simplement 3.3V.

Les sorties PC13 à PC15 sont effectivement limitées en courant :

Quote
The GPIOs (general-purpose inputs/outputs) can sink or source up to ±8 mA, and sink or source up to ±20 mA (with a relaxed VOL /VOH) except PC13, PC14 and PC15 which can sink or source up to +/-3mA.
La carte peut être alimentée en 5V par la broche 3 ou l'USB. Elle embarque un régulateur 3.3V pour alimenter le processeur.
Elle peut être alimentée entre 2V et 3.6V par la broche 1.

J'ai ajouté le lien sur la datasheet du processeur en bas de page.

La table 5 (Table 5. Medium-density STM32F103xx pin definitions) décrit les IOs du processeur. Les pins marquées FT sont tolérantes au 5V. Attention, ne considérer que les pins correspondant au boîtier LQFP48.
Comme il est dit dans le tuto :
La carte "Blue Pills" vous permet d'exploiter 32 ports sur les 37 disponibles.
Reportez-vous au schéma (lien en bas de page).

@+
Title: Re: STM32 DUINO
Post by: 68tjs on Apr 02, 2018, 10:30 am
La vérité est que
50% des entrées/sorties sont 5V tolérantes ce qu'aucun micro Atmel ne fait, ni d'autre fondeurs. C'est peut-être un brevet ST.
On trouve au moins UN accès série, un accès I2C, un accès SPI 5V tolérant ce qui est loin d'être négligeable.
Si on compare avec le modèle de micro équivalent utilisé dans la DUE (pour combien de temps encore avant que la carte soit abandonnée?) par arduino, la DUE a un max d' E/S limitées à seulement 5 mA.

De toute façon je ne changerais jamais d'avis : il faut séparer l'intelligence (le micro) de l'interface de puissance.
Le cas des avr est très particulier, et même avec ses "grosses" capacités à fournir du courant il suffit de regarder la datasheet pour voir qu'avec un courant de 20 mA on perd (de mémoire, à vérifier) 0,5 à 0,6 V dans les Rdson des transistors de sortie.

Il en est bien évidement de même avec tous les micro-controleur y compris avec les STM32 il suffit de lire leur datasheet qui indique la perte de tension pour un courant de 20 mA.
Ne pas oublier que tous les ARM sont gravés plus fin qu'un avr donc ils ont de plus petits transistors de sortie, même si on "pourrait" me rétorquer que les transistors de sortie sont "grossis" par rapport aux transistors internes.
Ce qui confirme ma conception de la séparation  intelligence/puissance.

Un avantage des STM32 qui a été oublié , dans stmduino et je pense aussi mbed, c'est que l'on peut choisir 3 bandes passantes pour les transistors de sortie.
Casser la bande passante quand on n'en a pas besoin simplifie et sécurise énormément les câblages avec des micros à 72 MHz d'horloge, et même beaucoup plus avec certains STM32.
Je pense, cela reste à vérifier, que stmduino et mbed sélectionnent la bande passante la plus faible par mesure conservatrice.
Ce qui limite "bêtement" l'utilisation de ces micros.
Title: Re: STM32 DUINO
Post by: _pepe_ on Apr 02, 2018, 11:04 am
Supprimé
Title: Re: STM32 DUINO
Post by: _pepe_ on Apr 02, 2018, 11:13 am
Supprimé
Title: Re: STM32 DUINO
Post by: hbachetti on Apr 02, 2018, 11:29 am
Cette carte fonctionne parfaitement bien sous 2.4V. Deux batteries NI-MH suffisent.

Pendant le développement j'utilise un convertisseur USB / série pour le chargement du code, comme indiqué dans le tuto. Le port USB n'est jamais utilisé.

Il n'y a pas de contre indication à appliquer sur la sortie d'un régulateur une tension inférieure à sa tension de sortie
théorique à partir du moment où son entrée n'est pas alimentée.

Le seul inconvénient est que cette sortie consomme qq dizaines de µA et qu'il est préférable de couper la patte de sortie du régulateur si l'on désire travailler en low-power. Dans ce cas il est évidemment conseillé de supprimer la LED D1.

Cette opération peut être pratiquée aussi sur une ARDUINO PRO MINI (https://riton-duino.blogspot.fr/2018/02/arduino-pro-mini-basse-consommation.html).


Quelqu'un a t-il déjà essayé cette carte (https://fr.aliexpress.com/item/STM32F407ZET6-Cortex-M4-Development-Board-STM32-Mini-System-Learning-Core-Module-R179T-Drop-Shipping/32819697572.html?spm=a2g0s.9042311.0.0.mUeKES) ?

(https://i.ebayimg.com/images/g/1CUAAOSwGtRXySY7/s-l300.jpg)
Title: Re: STM32 DUINO
Post by: _pepe_ on Apr 02, 2018, 12:17 pm
Supprimé
Title: Re: STM32 DUINO
Post by: 68tjs on Apr 02, 2018, 12:34 pm
Pour ceux qui sont intéressés je joins la feuille d'affectation des broches que je me suis fait.
Concernant les sous fonctions elle n'est pas complète : c'est un compromis personnel entre la lisibilité et l'exhaustivité.
Comme d'habitude rien ne remplace la lecture de la datasheet.

Vous pourrez y trouver les sorties qui sont 5V tolérantes.
Title: Re: STM32 DUINO
Post by: hbachetti on Apr 02, 2018, 02:53 pm
Quote
Pour des tensions inférieures, la consommation du régulateur reste limitée à une centaine de microampères. Il faut considérer le type d'application pour voir si cela reste acceptable.
A titre de comparaison j'avais relevé 75µA sur une ARDUINO PRO MINI dans les mêmes conditions.

Quote
À ceci près que les cartes Arduino Pro Mini officielles (conçues par Sparkfun) présentent un strap prévu à cet effet, de sorte qu'il n'est pas nécessaire de d'intervenir au niveau du régulateur et de la led ON ou de sa résistance pour réduire la consommation.
C'est exactement ce qui est indiqué sur mon blog (voir lien précédent : ARDUINO PRO MINI (https://riton-duino.blogspot.fr/2018/02/arduino-pro-mini-basse-consommation.html)).

-----------------------------------------------------------------------------------------

68tjs, tu as donc déjà utilisé ces cartes ?
As-tu déjà tenté le NRF24L01 ?

@+
Title: Re: STM32 DUINO
Post by: _pepe_ on Apr 02, 2018, 03:51 pm
Supprimé
Title: Re: STM32 DUINO
Post by: hbachetti on Apr 02, 2018, 04:11 pm
Quote
Alors j'annonce de suite : la radio et moi cela n'a jamais collé, c'est dans les gênes, désolé ce n'est pas à mon age que cela va changer.
Un petit effort, je m'y suis mis à soixante balais. Il n'est jamais trop tard.
Une petite remarque toutefois, j'arrêterai la radio quand cela créera des perturbations dans mon futur sonotone.

 :smiley-confuse:

@+
Title: Re: STM32 DUINO
Post by: hbachetti on Apr 02, 2018, 04:24 pm
Je comprends parfaitement l'argumentation.
J'en connais qui ont été jusqu'à poser dans leur maison des gaines électriques anti rayonnement électrique et électromagnétique (http://www.courant.fr/flexaray-prefilzen,p4.html). Ils se méfient même du 50Hz.

@+
Title: Re: STM32 DUINO
Post by: hbachetti on Apr 03, 2018, 04:58 pm
Salut à tous

Je pense sincèrement que ces échanges hostiles devraient faire l'objet d'un topic à part, ou bien se faire par MP.
Vous m'avez complètement pourri mon tuto.

Cordialement
Henri
@+
Title: Re: STM32 DUINO
Post by: 68tjs on Apr 03, 2018, 07:03 pm
Tu as raison, pour ma part j'ai effacé tout ce qui n'est pas strictement technique.
Title: Re: STM32 DUINO
Post by: _pepe_ on Apr 03, 2018, 07:44 pm
Idem pour moi.
Title: Re: STM32 DUINO
Post by: hbachetti on Apr 03, 2018, 10:56 pm
Excellent.
Merci pour cette réaction. Je n'en attendais pas moins de vous.

@+
Title: Re: STM32 DUINO
Post by: hbachetti on Mar 23, 2019, 01:15 pm
Salut à tous

Constatant les progrès énormes réalisés par l'équipe STM32DUINO j'ai ajouté par mal de renseignements dans mon tuto à propos du support des cartes ST Microelectronics, NUCLEO, DISCOVERY, que je connais bien :

https://riton-duino.blogspot.com/2018/03/stm32f103c8t6-et-arduino.html#boards (https://riton-duino.blogspot.com/2018/03/stm32f103c8t6-et-arduino.html#boards)

(https://4.bp.blogspot.com/-aLgBDMlnhsI/XJUNVIhcKOI/AAAAAAAABs0/5rUDIhanlQgOzjkmvBl_FeqU24NPA7tQwCLcBGAs/s1600/NUCLEO-L053R8.jpg)
Title: Re: STM32 DUINO
Post by: hbachetti on Mar 27, 2019, 02:34 pm
Un STM32 c'est bien mais que peut-on bien faire avec ?

(https://2.bp.blogspot.com/-VH0c8g2Dzgg/XJt0blvm8uI/AAAAAAAABvw/5hoUzz77EGw0A9gbcskBhNi0BKNc3VIogCLcBGAs/s320/stm32-st7735.jpg)
TFT ST7735 1.8"

(https://4.bp.blogspot.com/-Id2UG1SeeEw/XJt-5CuypVI/AAAAAAAABwI/Z4T68XayGxsixWo4HeR66K3d115kuIDWgCLcBGAs/s320/stm32-ili9341.jpg)
TFT ILI9341 2.8"

Sur une F401RE, sans aucune difficulté, avec les librairies ARDUINO bien sûr :

https://github.com/adafruit/Adafruit-ST7735-Library (https://github.com/adafruit/Adafruit-ST7735-Library)
https://github.com/adafruit/Adafruit_ILI9341 (https://github.com/adafruit/Adafruit_ILI9341)

Remarque : la librairie UTFT refuse ce genre de processeur.
Title: Re: STM32 DUINO
Post by: hbachetti on Mar 27, 2019, 11:17 pm
STM32DUINO : il y a des options d'optimisation dans le menu Outils / Optimize, dont une attire mon attention, je dirais même "me titille" :

Debug (-g)

Pourquoi ne pas essayer ?

Compilation puis chargement : OK

Lancement du serveur gdb :

Code: [Select]

riton@alpha:/mnt/sdc1/riton$ st-util
2019-03-27T22:48:51 INFO src/stlink-common.c: Loading device parameters....
2019-03-27T22:48:51 INFO src/stlink-common.c: Device connected is: F4 device (Dynamic Efficency), id 0x10006433
2019-03-27T22:48:51 INFO src/stlink-common.c: SRAM size: 0x18000 bytes (96 KiB), Flash: 0x80000 bytes (512 KiB) in pages of 16384 bytes
2019-03-27T22:48:51 INFO gdbserver/gdb-server.c: Chip ID is 00000433, Core ID is  2ba01477.
2019-03-27T22:48:51 INFO gdbserver/gdb-server.c: Target voltage is 3270 mV.
2019-03-27T22:48:51 INFO gdbserver/gdb-server.c: Listening at *:4242...


Lancement du debugger :

Quote
riton@alpha:~/arduino-1.8.5/examples/02.Digital/BlinkWithoutDelay$ ~/.arduino15/packages/STM32/tools/arm-none-eabi-gcc/6-2017-q2-update/bin/arm-none-eabi-gdb /tmp/arduino_build_30137/BlinkWithoutDelay.ino.elf
...
Reading symbols from /tmp/arduino_build_30137/BlinkWithoutDelay.ino.elf...done.
(gdb) target extended-remote :4242       // connexion au serveur gdb
Remote debugging using :4242
0x08000620 in Reset_Handler ()
(gdb) c                              // on continue
Continuing.
^C                                    // on arrête
Program received signal SIGTRAP, Trace/breakpoint trap.
0x08000534 in loop () at /mnt/sdc1/riton/arduino-1.8.5/examples/02.Digital/BlinkWithoutDelay/BlinkWithoutDelay.ino:57
57     if (currentMillis - previousMillis >= interval) {
(gdb) p currentMillis           // affiche la variable currentMillis
$1 = 10288
(gdb) n                          // un petit pas en avant
main () at /home/riton/.arduino15/packages/STM32/hardware/stm32/1.5.0/cores/arduino/main.cpp:65
65       if (serialEventRun) serialEventRun();       // on est sorti de la loop()
(gdb) b BlinkWithoutDelay.ino:55         // on place un petit point d'arrêt ?
Breakpoint 1 at 0x800052e: file /mnt/sdc1/riton/arduino-1.8.5/examples/02.Digital/BlinkWithoutDelay/BlinkWithoutDelay.ino, line 55.
(gdb) c                                      // on continue
Continuing.

Breakpoint 1, loop () at /mnt/sdc1/riton/arduino-1.8.5/examples/02.Digital/BlinkWithoutDelay/BlinkWithoutDelay.ino:55
55     unsigned long currentMillis = millis();      // point d'arrêt atteint
(gdb)

Ça marche. Top cool  8)

Bien sûr avec une interface graphique se serait plus sympa, et ça existe : Eclipse ou PlatformIO.

Un debugger, c'est ce qui me manque le plus sur ARDUINO

Title: Re: STM32 DUINO
Post by: 68tjs on Mar 28, 2019, 01:20 pm
Là clairement tu a touché dans le mile sauf que je n'ai toujours rien compris à l'utilisation de gdb, openocd, etc..... ni ce qu'on peut faire avec.

Un tuto simple pour "ignares" en débogage serait fortement apprécié.

Edit :
ce bus est aussi présent sur les cartes Due, Zero et Mkr même s'il est confidentiel : sur les photos on voit que le circuit imprimé n'est pas équipé de connecteur.
Le débogage des micro ARM Atmel devrait aussi être possible.
Title: Re: STM32 DUINO
Post by: hbachetti on Mar 28, 2019, 01:50 pm

Dans le cas du STM32 c'est très simple. OpenOCD est inutile.
Il suffit de lancer Le serveur gdb st-util. Il tourne en arrière plan et attend sur une socket (port tcp 4242).

Ensuite sous gdb il y a une petite commande pour se connecter dessus :

target extended-remote :4242

Quote
Un tuto simple pour "ignares" en débogage serait fortement apprécié.
Pourquoi pas mais il faudrait que je le fasse avec une interface graphique.

merci pour le commentaire
Title: Re: STM32 DUINO
Post by: hbachetti on Mar 28, 2019, 11:59 pm
Quote
Un tuto simple pour "ignares" en débogage serait fortement apprécié.
BON. A la demande générale (surtout 68tjs) je m'y suis collé.

Un tuto simple ?

Pas vraiment ... mais c'est fait.

https://riton-duino.blogspot.com/2019/03/stm32-duino-deboguer.html (https://riton-duino.blogspot.com/2019/03/stm32-duino-deboguer.html)

Des restes de mon ancien métier, simplement pour que vous sachiez qu'il n'y a pas qu'ARDUINO dans la vie.

Mais cela reste de l'ARDUINO quand même puisqu'il s'agit de STM32DUINO.

Un debugger peut aider pas mal à déverminer une application et surtout extraire certaines bestioles indésirables : les bugs !

(https://1.bp.blogspot.com/-7AOL_qfYVM0/XJ0_fyqNpTI/AAAAAAAABws/o2raCXZbhZcXE146ava6nhSbCuNnXTLnwCLcBGAs/s320/bug.jpg)

Et une photo de la belle qui m'a aidé dans cette tâche :

(https://1.bp.blogspot.com/-aLgBDMlnhsI/XJUNVIhcKOI/AAAAAAAABtA/7MWXleX4VpsWcINcrla8Mq1Qc5M2wp7CQCPcBGAYYCw/s1600/NUCLEO-L053R8.jpg)

Elle a des connecteurs ARDUINO UNO vous avez remarqué ?

100% compatible, mais une fréquence d'horloge différente d'un ARDUINO : 84MHz !
Ça décoiffe  :smiley-evil:

J'ai fait avec la même carte des essais d'ADC, PCF8574, MAX7219, TFT, DS3231, et ce n'est pas fini.

https://riton-duino.blogspot.com/2018/03/stm32f103c8t6-et-arduino.html#boards (https://riton-duino.blogspot.com/2018/03/stm32f103c8t6-et-arduino.html#boards)

@+ et bonne bidouilles.

Title: Re: STM32 DUINO
Post by: 68tjs on Mar 29, 2019, 01:46 pm
Chapeau bas.

Maintenant que Buster (Debian testing) est passée à l'état "Frozen" je vais l'installer et ensuite promis j'essaye.

Encore une question : le boîtier "STmicro" permet-il de faire plus que ce que tu appelle le clone chinois.
Si je pose la question ce n'est pas parce que je veux en faire plus, il faut déjà digérer ton tuto, mais c'est par curiosité personnelle car il me semble avoir compris que JTAG utilise davantage de pins.
Title: Re: STM32 DUINO
Post by: hbachetti on Mar 29, 2019, 02:31 pm
Non je ne pense pas que le ST en fasse plus.

Tu veux essayer sur quelle carte ?

Title: Re: STM32 DUINO
Post by: 68tjs on Mar 29, 2019, 03:45 pm
La blue pill, mais j'ai aussi un Nucléo L15xmachin dans un tiroir.

Je parle sur le plan de brochage http://reblag.dk/wordpress/wp-content/uploads/2016/07/The-Generic-STM32F103-Pinout-Diagram.pdf (http://reblag.dk/wordpress/wp-content/uploads/2016/07/The-Generic-STM32F103-Pinout-Diagram.pdf)   des broches JTDI, JTDO, JTRST et sur le connacteur SWD : JTMS, SWIO et SWCLK/JTCK.
Ou alors je confond JTAG avec le débogage.

D'un autre coté le "boîtier" STMicro possède plus de connecteurs et il existe une carte sur Ebay d'un F103 avec justement un gros connecteur comme celui du boîtier ST.
Ma petite tête me fait penser que plus de broches au connecteur ce n'est peut-être pas pour rien.

Je reprécise : c'est juste de la curiosité.
Title: Re: STM32 DUINO
Post by: hbachetti on Mar 29, 2019, 04:07 pm
La NUCLEO fonctionne en USB directement. Le ST-LINK est sur la carte.

Quote
Ma petite tête me fait penser que plus de broches au connecteur ce n'est peut-être pas pour rien.
Je ne crois pas. Sur les 20 pins il y en a très peu qui sont utilisées : https://www.st.com/content/ccc/resource/technical/document/user_manual/49/56/14/ee/98/cc/4d/2c/CD00221563.pdf/files/CD00221563.pdf/jcr:content/translations/en.CD00221563.pdf (https://www.st.com/content/ccc/resource/technical/document/user_manual/49/56/14/ee/98/cc/4d/2c/CD00221563.pdf/files/CD00221563.pdf/jcr:content/translations/en.CD00221563.pdf)

Certaines cartes sont équipées de connecteurs SWIM ou 20 pins.

Une carte OLIMEX :

https://www.olimex.com/Products/ARM/ST/STM32-H103/ (https://www.olimex.com/Products/ARM/ST/STM32-H103/)

Et le pinout de son connecteur :

(https://www.olimex.com/Products/ARM/_resources/arm-jtag-layout.gif)

C'est plein de GND.

Par contre il y a peut-être d'autres outils qui utilisent d'autres pins de ce connecteur sur des cartes qui fournissent plus de signaux.

Mais le ST-LINK ne les utilise pas.
Title: Re: STM32 DUINO
Post by: hbachetti on Mar 29, 2019, 07:27 pm
Les petits ST-LINK chinois marchent bien :

(https://4.bp.blogspot.com/-QIvmO1FSIAw/XJVK2tylrnI/AAAAAAAABt4/J3UI21TQI4AQKB50gCd1Q3iUK5pvSGTrgCPcBGAYYCw/s320/st-link-v2-clone.jpg)

Avec le petit fichier udev qui va bien :

/etc/udev/rules.d/49-stlinkv2.1.rules :

# stm32 nucleo boards, with onboard st/linkv2-1
# ie, STM32F0, STM32F4.
# STM32VL has st/linkv1, which is quite different

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", \
   MODE:="0666", \
   SYMLINK+="stlinkv2-1_%n"

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", \
   MODE:="0666", \
   SYMLINK+="stlinkv2_%n"

# If you share your linux system with other users, or just don't like the
# idea of write permission for everybody, you can replace MODE:="0666" with
# OWNER:="yourusername" to create the device owned by you, or with
# GROUP:="somegroupname" and mange access using standard unix groups.

Ce fichier permet à l'utilisateur non root d'accéder au device, qu'il soit un ST-LINK ST MicroElectronics ou un ST-LINK chinois.
Title: Re: STM32 DUINO
Post by: 68tjs on Mar 29, 2019, 07:57 pm
Alors sur ce point : faites gaffe.

Je ne sais pas si c'est toujours le cas mais il y a 2, 3 ans certains modèles de ST-Link chinois avait un circuit imprimé avec brochage différent de celui écrit sur le capot. Si on suit  les indications du boîtier on provoque un court-circuit.

Comment les reconnaître si malheureusement il y en a encore qui traînent à la vente :

Méthode barbare : brancher et regarder si tout s'éteint c'est qu'il y a le court-circuit.

Méthode policée : (pour Linux)
Après connexion du St-Link regarder le résultat de
$dmesg | tail -10

Si vous lisez :
usb 2-4: SerialNumber: 9  c'est bon

Par contre si vous lisez :
usb 2-4: SerialNumber: PÿtQ\xffffffc2\xffffff87VSD3%g
Ce n'est pas bon, il faut ouvrir le capot et lire le brochage réel sur le circuit imprimé et après tout est est ok.

Information :
Les programmes ST-link et autres St-machin sont maintenant disponibles en paquet Debian. Pour Buster pas de problème, pour Stretch il faut activer  les dépôts backport.

Dans l'ancienne méthode où il fallait télécharger les sources chez Texane la doc fournissait deux versions de règles Udev. La version qui fonctionne avec la bluepill à 2€ est la version pour les cartes discovery.
Il faut réserver la version Nucleo aux cartes Nucléo.
Title: Re: STM32 DUINO
Post by: hbachetti on Mar 29, 2019, 08:01 pm
Oui j'ai vu ça, mais apparemment le mien est bien sérigraphié.
Ça charge comme une fleur.
Title: Re: STM32 DUINO
Post by: hbachetti on Mar 29, 2019, 09:52 pm
(https://1.bp.blogspot.com/-AtHuLbNIfyw/XJ5_2JmGBnI/AAAAAAAABxY/-u-uhlKiAhIYaSG0IRwYeT3bPlDopcuRgCLcBGAs/s320/ST-Lien-V2-Stlink.jpg)

https://fr.aliexpress.com/item/ST-LINK-V2-CN-ST-LINK-STLINK-STM8-STM32-emulator-official-version/32230072665.html?spm=a2g0s.9042311.0.0.27426c37xNAP8G (https://fr.aliexpress.com/item/ST-LINK-V2-CN-ST-LINK-STLINK-STM8-STM32-emulator-official-version/32230072665.html?spm=a2g0s.9042311.0.0.27426c37xNAP8G)

Soit disant version officielle.

Heu ... sans vouloir être malpoli, mes c***lles ...

A éviter !

Code: [Select]

riton@alpha:/mnt/sdc1/riton$ st-flash write /tmp/arduino_build_579822/Blink.ino.bin 0x8000000
2019-03-29T20:36:26 INFO src/stlink-common.c: Loading device parameters....
2019-03-29T20:36:26 WARN src/stlink-common.c: unknown chip id! 0
riton@alpha:/mnt/sdc1/riton$

L'emballage est joli, ça console.

Préférer ceci :

(https://1.bp.blogspot.com/-opo6S61R5DQ/XJ52dRyeiOI/AAAAAAAABxM/cAkHctcAqnU54Z1SRpwtQcbcjL2N8YjlACEwYBhgL/s320/stlink-chinese.jpg)

https://fr.aliexpress.com/item/ST-Link-V2-Programming-Unit-mini-STM8-STM32-Emulator-Downloader-M89-New/32631496848.html?spm=a2g0s.9042311.0.0.27426c37Knvivh (https://fr.aliexpress.com/item/ST-Link-V2-Programming-Unit-mini-STM8-STM32-Emulator-Downloader-M89-New/32631496848.html?spm=a2g0s.9042311.0.0.27426c37Knvivh)

Ces petite machins qui n'ont l'air de rien fonctionnent :

Code: [Select]

riton@alpha:/mnt/sdc1/riton$ st-flash write /tmp/arduino_build_579822/Blink.ino.bin 0x8000000
2019-03-29T21:17:02 INFO src/stlink-common.c: Loading device parameters....
2019-03-29T21:17:02 INFO src/stlink-common.c: Device connected is: F1 Medium-density device, id 0x20036410
2019-03-29T21:17:02 INFO src/stlink-common.c: SRAM size: 0x5000 bytes (20 KiB), Flash: 0x10000 bytes (64 KiB) in pages of 1024 bytes
2019-03-29T21:17:02 INFO src/stlink-common.c: Attempting to write 12844 (0x322c) bytes to stm32 address: 134217728 (0x8000000)
Flash page at addr: 0x08003000 erased
2019-03-29T21:17:02 INFO src/stlink-common.c: Finished erasing 13 pages of 1024 (0x400) bytes
2019-03-29T21:17:02 INFO src/stlink-common.c: Starting Flash write for VL/F0/F3 core id
2019-03-29T21:17:02 INFO src/stlink-common.c: Successfully loaded flash loader in sram
 12/12 pages written
2019-03-29T21:17:03 INFO src/stlink-common.c: Starting verification of write complete
2019-03-29T21:17:03 INFO src/stlink-common.c: Flash written and verified! jolly good!
riton@alpha:/mnt/sdc1/riton$


Quelques fois la merde chinoise se cache bien sous des apparences trompeuses !

Title: Re: STM32 DUINO
Post by: hbachetti on Apr 01, 2019, 01:22 pm
Quelques petites présentations STM32 :

https://riton-duino.blogspot.com/2019/03/stm32-environnements-de-developpement.html (https://riton-duino.blogspot.com/2019/03/stm32-environnements-de-developpement.html)
https://riton-duino.blogspot.com/2019/03/stm32-boitier-st-link.html (https://riton-duino.blogspot.com/2019/03/stm32-boitier-st-link.html)
https://riton-duino.blogspot.com/2019/03/stm32-duino-deboguer.html (https://riton-duino.blogspot.com/2019/03/stm32-duino-deboguer.html)
https://riton-duino.blogspot.com/2018/03/stm32f103c8t6-et-arduino.html (https://riton-duino.blogspot.com/2018/03/stm32f103c8t6-et-arduino.html)

Je suis de plus en plus convaincu par l'IDE PlatformIO (https://platformio.org/platformio-ide) (Visuel Studio), sur ARDUINO, ESP8266 ou ESP32 et STM32, même MSP430 on dirait, et bien d'autres.

La liste des plateformes : https://docs.platformio.org/en/latest/boards/index.html#boards (https://docs.platformio.org/en/latest/boards/index.html#boards)

Sur STM32 le chargement est fait par OpenOCD.
Avec les cartes ST cela se passe très bien.

Mais sur la BLUE PILL apparemment le code est bien chargé mais il démarre au mauvais endroit.
Certainement un problème de vecteur de reset.
Avec l'utilitaire ST-FLASH de ST Microelecronics c'est correct.

Je travaille actuellement sur une F429ZI, une carte possédant 3 ADC 12bits :

(https://1.bp.blogspot.com/-Vmo0T4hlOUM/XJUNXk6A_PI/AAAAAAAABs4/DXT8m-BXuRsSd3XJIbgWwibIkR_rpx_-wCLcBGAs/s1600/NUCLEO-F429ZI.jpg)

Cette carte est époustouflante :

833333 échantillons par seconde et par canal en mode polling.
Si j'utilisais les interruptions ou la DMA ce serait encore plus fort, mais j'ai besoin de 100K/s, pas plus.
Actuellement j'exploite deux canaux.

Du code ici : https://bitbucket.org/henri_bachetti/stm32duino-samples/src (https://bitbucket.org/henri_bachetti/stm32duino-samples/src)

A comparer avec les 38500 échantillons par seconde que l'on peut obtenir d'un ARDUINO sur lequel l'ADC est boosté. Il paraît que l'on peut le pousser à 77000.
Et l'ADC n'a que 10 bits.

@+
Title: Re: STM32 DUINO
Post by: hbachetti on Apr 10, 2019, 06:41 pm

Quelques résultats d'une petite plongée dans l'ADC du STM32, avec polling, interruptions et DMA.

STM32 : l'ADC (https://riton-duino.blogspot.com/2019/04/stm32-ladc.html)

Title: Re: STM32 DUINO
Post by: Leptro on May 25, 2019, 05:02 pm
Salut la compagnie,

Voici un petit retour d'expérience sur l'utilisation du STM32.
J'ai acheté, il y a quelques mois de cela, un clone maple mini embarquant un STM32F103C8, afin de l'utiliser dans l'environnement Arduino.

Je n'avais pas eu le temps de le mettre en oeuvre j'usqu'à hier.


Une fois les bibliothèques installées (stm32duino), le branchement de la carte créer dans windows (désolé linuxiens) un nouveau port série.


Pour tester la bébète, je compile sans problème un sketch style blink mais le téléversement est systématiquement en erreur " DFU not find".

Je télécharge depuis le site de St Micro le

stm32 loader demonstrator (https://www.st.com/en/development-tools/flasher-stm32.html)
et en utilisant un convertisseur usb vers série connecté aux ligne TX1 et RX1 du maple mini.
Je démarre la carte avec boot0 à Vcc.

Je constate que la mémoire du stm32 est protèger en écriture.

Pas de problème, le soft stm32 loader demo permet de dévérouiller la mémoire mais l'éfface en totalité.

Pour le rendre le maple de nouveau fonctionnel, il faut lui injecter un nouveau boot loader.

ce fichier se trouve dans le dossier ici (https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/binaries)

voici un  
lien (https://circuitdigest.com/microcontroller-projects/programming-stm32f103c8-board-using-usb-port) qui vous aidera à mieux comprendre la démarche.

il suffit après de redemarrer le maple mini avec boot0 à gnd, de le connecter en usb.
et tout roule.
Bonne lecture


(https://forum.arduino.cc/index.php?action=dlattach;topic=538832.0;attach=309818)

(https://forum.arduino.cc/index.php?action=dlattach;topic=538832.0;attach=309820)
(https://forum.arduino.cc/index.php?action=dlattach;topic=538832.0;attach=309816)
Title: Re: STM32 DUINO
Post by: hbachetti on May 25, 2019, 06:12 pm
Détail : le stm32 loader demonstrator est une application Windows.

Dommage de flasher un bootloader alors que le STM32 en possède déjà un nativement, celui qui te permet d'ailleurs de charger le bootloader STM32DUINO par la ligne série.

Mais c'est vrai que cela oblige à utiliser un convertisseur USB / série.
Title: Re: STM32 DUINO
Post by: Leptro on May 25, 2019, 07:46 pm
Hbachetti, merci pour ta remarque.

Mais une fois la mémoire effacée, je n'ai pas pu réutiliser la carte.
Je n'ai eu comme solution que le bootloader.

Si il y a une autre solution, je suis preneur.

J'ai commandé un st-link.. je ferais des essais une fois réceptionné.

Title: Re: STM32 DUINO
Post by: hbachetti on May 25, 2019, 11:53 pm
Pas besoin de ST-LINK.
Ce boîtier est ce que j'utilisais au boulot pour charger à partir d'un Makefile en ligne de commande.
Avec l'IDE ARDUINO il y a plus simple : stm32f103c8t6-et-arduino (https://riton-duino.blogspot.com/2018/03/stm32f103c8t6-et-arduino.html). Voir 7. Chargement
Title: Re: STM32 DUINO
Post by: Leptro on May 26, 2019, 03:47 am
Merci je vais tester cela.. mais une fois la mémoire effacée suite au retrait de la protection mémoire, je n'avais plus de port série.


J'essai de revenir à cette étape.


Title: Re: STM32 DUINO
Post by: hbachetti on May 26, 2019, 12:41 pm
Réserve ces cartes à des projets gourmands en ressources, ça pédale vite.

 ;)