Tutoriels autour de l'Arduino |
Maj : 14/03/22
Abstract :
Résumé : |
Le STM32 est un excellent microcontrôleur développé par ST Microelectronics, en ARM 32bits, auquel il ne manque que le WiFi.
Il existe une grande variété de STM32 pour s'adapter à différents environnements, certains sont à très faible coût pour des petites applications d'autres sont extrêmement puissants.
Les chiffres de production de ce composant s'expriment en millions, ce qui explique la diffusion dans des appareils les plus inattendus, de la brosse à dents à l’automobile, ils sont cachés partout.
Son coût très abordable permet de le substituer très avantageusement aux anciennes cartes Arduino, il est beaucoup plus petit et beaucoup plus performant pour un prix très inférieur.
La lecture de son datasheet vous fera découvrir sa puissance.
Il est toutefois moins simple à mettre en ouvre que les autres arduinos, car généralement les cartes son livrées sans bootstrap.
Pour le savoir, chargez le petit programme de test joint dans mes softwares, <Blink_print_STM32.ino>.
Si votre carte est vue comme Mapple, le programme se charge et après un reset, et la led s’anime et le terminal montre un flux de données.
Tout va bien, vous n’avez rien à faire, votre carte est fonctionnelle et vous pouvez exploiter normalement le circuit.
Si cela coince, il faut alors passer par la procédure suivante pour charger le bootstrap.
Le chargement du bootstrap ne se passe pas toujours bien, c’est le gros défaut du STM32, ce qui peut en décourager certains, car tous les autres Arduinos n’ont pas ce problème et se chargent directement. Dans un même lot chinois, certains spécimens peuvent bloquer, mais avec des chips authentiques, il n’y a jamais de problème.
Quelques remarques
Contrairement à la documentation originale, le régulateur de tension n’est pas un 8183b mais un XC6204B332MR-GF, marqué 4B2X qui ne tolère que 10 V.
Notez que 3 pins sont supprimées : Pin 3, seulement pour la led interne, et 3-4, l’oscillateur qui n’est utilisé que si vous supprimez le quartz pour un oscillateur externe, sinon les capacités parasites posent de gros problèmes.
Il existe de nombreuses variantes utilisant le STL32F103C8.
La plus répandue est la version 40 pins, mais les BluePill et BlackPill (souvent en 34 pins) sont équivalentes, les pins absentes n’étant pas critiques. Attention les dispositions sont différentes suivant les modèles.
La led rouge fixe éclaire beaucoup trop, il vaut mieux remplacer R1 au dessous de 510 Ohms, par une 51 k. La led sera à peine visible. Il est à noter que la tension aux bornes de la résistance est alors de 1.625 V, ce qui donne le courant de led extraordinairement faible de I = V / R = 1.625 / 51 * 10 exp 3 = 32 µA !
Cette led est utile pour s'assurer que le circuit est bien alimenté, mais elle doit rester très discrète.
Suivant les approvisionnements, modèles genuines ou fakes, l’Eeprom sera de 64 ou 128k, cela dépend des lots, il faudra tester pour le savoir.
La pin 1 VBat est prévue pour alimenter l’horloge interne (RTC, Real Time Clock) par une pile externe CR3032.
Attention aux pins pour l'I2C, il y a deux implantations à choisir par soft, mais marquées à l'identique SCL1 et SDA1 (Wire1 = 42/43 et Wire2 = 45/46).
Si la carte chinoise low cost STM32 plante
La liaison USB est capricieuse (mais pas avec un chip authentique).
Ces deux tutoriels ne sont pas écrits par moi, mais par mon ami William BoherCoy.
Nous travaillons ensemble depuis fort longtemps sur de nombreux projets.
Vous pouvez nous contacter s'il est nécessaire de fournir plus d'informations où corriger quelques bugs.
L’IDE de l’Arduino est très rustique et n’offre aucune aide pour le débogage. Le développement est bien plus agréable avec Visual Studio ou Eclipse (plus léger), mais le paramétrage est délicat.
|