Le Cahier de F4FEZ
STM32
Présentation

Présentation

Après avoir expérimenté une multitude de microcontroleurs 8 bits, le besoin d'un composant plus performant c'est fait sentir pour les applications nécessitant plus de calcul ou de mémoire. Mon choix c'est donc tourné vers le marché des microcontroleurs 16 et 32 bits. Cependant il fallu sélectionner un composant économique, simple à utilisé pour l'amateur, disposant d'outils et de documentation facile à trouver et offrant de bonnes performances.

Vers une architecture ARM Cortex M3

Compte tenu de la multitude de composants sur le marché, mon choix c'est tourné vers la famille des ARM Cortex M3. Les dignes succésseurs des ARM7 TDMI sont très présent dans les applications professionel et dans une moindre mesure amateur. Cette plateforme est supportée par une multitude d'outils de développement et notament par le compilateur libre GCC pour la réalisation de programmes en C ou C++. A savoir que ARM n'est pas un fondeur et qu'il ne fabrique donc pas de composants. ARM conçoit des architectures et les revend aux fondeurs pour une production sous licence. Le microprocesseur Cortex M3 exécute les jeux d'instruction thumb et thumb2 32 Bits d'ARM sur une architecture de type Harvard. Il peut être relié jusqu'à 240 interruptions avec des priorités paramétrables. Il propose plusieurs mode de sommeil, un multiplieur et un diviseur matériel. En outre une interface JTAG est prévu. L'architecture est également prévu pour faire du traitement numérique du signal, on peu par exemple retrouver une instruction MAC (Multiply And Add) comme sur les DSPs.
ARM fournit pour cette famille de microprocesseur une interface de programmation unifiée pour l'accès aux registres système. Il d'agit d'une API normalisé du microprocesseur indépendament de l'implémentation du fondeur. Cette API se nomme CMSIS. Les spécifications sont téléchargeable sur le site d'ARM.
Plusieurs fabricants propose des microcontroleurs à base de Cortex M3. Pour ma part je me suis orienté vers la famille STM32 de ST microelectronics. Cette famille offre un large choix de micros avec des tailles mémoire importantes pour des microcontroleurs ainsi qu'une multitude de périphériques intégrés. De plus, le prix de ces composants est tout à fait résonable.

La famille des STM32

La famille des STM32 ou plus exactement celle des STM32F est divisée en 6 branches :

STM32F100xx (Value line)

Il s'agit de la série d'entrée de gamme. Cette famille à l'avantage d'être assez économique pour la production en série. Ces composants fonctionnent avec une horloge à 24MHz et offre assez peu de mémoire : 8Ko de RAM, 128Ko de Flash.

STM32F101xx (Access line)

Cette gamme fonctionnant à 36MHz offre tous les périphériques de base. A ce jour, les circuits les plus évolués disposent de 80Ko de RAM et 1Mo de Flash.

STM32F102xx (USB Access line)

La famille USB Access line comme sont nom l'indique posssède la structure interne pour pouvoir communiqué avec un PC via un port USB. La vitesse d'horloge monte pour l'occasion à 48MHz. En revanche la taille de la flash proposée est de 128Ko et la RAM de 16Ko.

STM32F103xx (Performance line)

Voici la famille sur laquelle je vais travailler, en plus de l'USB, il y a une multitude de périphériques internes suplémentaire tel que de nouveaux timers, des DACs, une gestion des cartes SD, des bus CAN... Avec une vitesse d'horloge de 72MHz et jusqu'a 1Mo de flash et 96Ko de RAM, cela fait "un gros" microcontroleur 32bit pas plus chère que certains composants 8 Bits !

STM32F105xx (Connectivity line)

Equipé jusqu'a 256Ko de Flash et 64Ko de RAM, cette série possède la particularité d'intégrer un controleur compatible USB On The Go permetant par exemple de lui adjoindre une clef USB.

STM32F107xx (Connectivity line)

Très similaire des STM32F105xx, ici, il existe en plus un controleur Ethernet. Un composant gérant la couche PHY doit être malheuresement adjoint pour exploiter réellement cette interface.

Une partie hardware malheuresement pas si simple

Voici le gros problème de ces composant pour une utilisation amateur : Les plus performants de ces circuits sont disponible en format TQFP. Ce qui peu se traduire par "Gros carré avec les pattes sur les 4 cotés", et bien sur, pas de DIL disponible ! Pour ceux qui m'interesse en particulier il s'agit des versions 64, 100 ou 144 broches.
Ne paniquons pas ! Tout d'abord il existe un certain nombre de cartes d'expérimentation intgrant un partie de l'électronique. Le prix de ces cartes varie de 30€ à plusieurs centaines d'Euros. Une carte d'entrée de gamme commandé à Hong-Kong convient pour commencer la réalisation d'applications ponctuel. Par contre si un certain nombre de réalisation sont prévu, il faudra s'orienter vers le soudage des CMS. Détesté par bon nombre d'amateur cette technologie est omniprésente et le bricoleur désireurx de travailler dans l'électronique actuel devra adapter son matériel.
Je ne vais pas faire un cours sur le soudage de ces composants dans ces lignes mais en cherchant sur internet, on trouve beaucoup d'information et de video : "hot air soldering", "four à refusion diy"...

Pour la suite

Je ne vais pas faire un cours sur le fonctionnement général des microcontroleurs ou de la programmation en C, les articles suivant décrivent les particularités de cette architecture et les points délicats. Après une première page sur la mise en place de l'environnement et la construction d'un squelette d'application, nous verrons un classique 'hello world". La construction du squelette est une section importante et complexe compte tenu du nombre d'élements impactant la réalisation d'une plateforme de programmation de haut niveau (en C).

Copyright © 2008-2011 Florian MAZEN