Différences entre versions de « Tutoriels/Créer son PCB avec STM32 »

De Polybot Grenoble
Sauter à la navigation Sauter à la recherche
Ligne 11 : Ligne 11 :
 
Dans ce tutoriel, je vais présenter l'outil de développement logiciel STM32CubeIDE, car à mon gout, c'est l'outil le mieux adapter pour travailler avec les microcontrôleurs STM32. Concernant la conception de cartes électroniques, il existe une multitude de logiciels. Ici, je n'en aborde pas un spécifiquement. Je décrirai simplement le processus de conception. Libre à vous de choisir le logiciel qui vous convient le mieux. Je ferrai une liste de logiciels que je connais avec une bonne réputation. (Des pages sont en cours de rédaction sur l'utilisation de logiciels tels qu'Altium et STM32CubeIDE).
 
Dans ce tutoriel, je vais présenter l'outil de développement logiciel STM32CubeIDE, car à mon gout, c'est l'outil le mieux adapter pour travailler avec les microcontrôleurs STM32. Concernant la conception de cartes électroniques, il existe une multitude de logiciels. Ici, je n'en aborde pas un spécifiquement. Je décrirai simplement le processus de conception. Libre à vous de choisir le logiciel qui vous convient le mieux. Je ferrai une liste de logiciels que je connais avec une bonne réputation. (Des pages sont en cours de rédaction sur l'utilisation de logiciels tels qu'Altium et STM32CubeIDE).
  
Il faut garder à l’esprit qu'il existe probablement des méthodes plus performantes pour la réalisation d'un tel projet. Mon tutoriel offre un point de départ! C'est de cette manière que je me suis lancé dans la fabrication de PCB avec microcontrôleur donnant un résultat satisfaisant. Particulièrement la partie du choix de l'étain et du flux pour la soudure. Sur la fin de la rédaction de ce tutoriel, je tenterai de faire un renseignement un peu plus poussé sur ce sujet.
+
Il faut garder à l’esprit qu'il existe probablement des méthodes plus performantes pour la réalisation d'un tel projet. Mon tutoriel offre un point de départ! C'est de cette manière que je me suis lancé dans la fabrication de PCB avec microcontrôleur donnant un résultat satisfaisant. Sur la fin de la rédaction de ce tutoriel, je tenterai de faire un renseignement un peu plus poussé sur les sujets dont je n'ai pas donné d'information exhaustive. Particulièrement sur la partie parlant de la soudure portant sur le choix de l'étain et du flux. Il est aussi possible que j'ai oublié de mentionner des règles et bonnes pratiques de routage. Cependant, les informations qui suivent devraient être suffisantes pour se lancer dans la conception d'un premier PCB avec STM32.  
  
 
Ceci mit de côté, commençons!
 
Ceci mit de côté, commençons!

Version du 21 septembre 2019 à 15:18

Introduction

Dans la phase de prototypage, il est commun d'utiliser des cartes de développement telles que STM32 Nucleo ou Arduino Uno. Une solution qui permet au développeur de simplement connecter la carte à un ordinateur et de téléverser le code. Les éléments externes sont reliés par des connecteurs de type "header", et le tour est joué. Au bout d'un certain temps, cette solution est affinée, et la majorité des pins ne sont plus réassignées à de nouvelles fonctions. Il peut aussi arriver que la quasi-totalité des broches soit utilisée. À moins de scotcher les fils à la carte, il arrive aussi que ces derniers se déconnectent par mégarde. C'est en général à ce moment que l'on se dit "pourquoi ne pas créer un PCB qui regroupe mes éléments externes et le microcontrôleur?". En effet, cette alternative permettrait de réduire le nombre de fils, compacter l'électronique et fiabiliser le reste de la connectique. Mais des questions suivent cette idée: comment faire? Par où commencer? Comment je vais programmer ma carte? Comment je vais souder les composants?

Dans ce tutoriel, j'aborde ces questions auxquelles j'ai répondu par ma propre expérience. Je parlerai des outils de conceptions, de la fabrication de la carte, du choix des composants, des outils de programmation, enfin, tous les éléments nécessaires pour réaliser son PCB avec STM32 embarqué. Le tutoriel suit l'ordre chronologique des étapes que j'ai suivi.

Vous êtes prêts? C'est parti.

Avant de commencer

Dans ce tutoriel, je vais présenter l'outil de développement logiciel STM32CubeIDE, car à mon gout, c'est l'outil le mieux adapter pour travailler avec les microcontrôleurs STM32. Concernant la conception de cartes électroniques, il existe une multitude de logiciels. Ici, je n'en aborde pas un spécifiquement. Je décrirai simplement le processus de conception. Libre à vous de choisir le logiciel qui vous convient le mieux. Je ferrai une liste de logiciels que je connais avec une bonne réputation. (Des pages sont en cours de rédaction sur l'utilisation de logiciels tels qu'Altium et STM32CubeIDE).

Il faut garder à l’esprit qu'il existe probablement des méthodes plus performantes pour la réalisation d'un tel projet. Mon tutoriel offre un point de départ! C'est de cette manière que je me suis lancé dans la fabrication de PCB avec microcontrôleur donnant un résultat satisfaisant. Sur la fin de la rédaction de ce tutoriel, je tenterai de faire un renseignement un peu plus poussé sur les sujets dont je n'ai pas donné d'information exhaustive. Particulièrement sur la partie parlant de la soudure portant sur le choix de l'étain et du flux. Il est aussi possible que j'ai oublié de mentionner des règles et bonnes pratiques de routage. Cependant, les informations qui suivent devraient être suffisantes pour se lancer dans la conception d'un premier PCB avec STM32.

Ceci mit de côté, commençons!

Déroulement de l'opération

Dans un premier temps, on réalise le schéma technique de la carte électronique. Dans cette étape, on s'assure que toutes les fonctions que l'on souhaite incorporer sont présentes et prêtes à marcher. Puis vient l'étape du routage. Avant de passer à cette étape, il est conseillé de s'assurer que l'étape de la schématisation est terminée (mis à part des modifications mineures). Imaginez avoir routé tout le PCB, et vous vous apercevez que vous avez pris le mauvais microcontrôleur... Une fois le routage terminé, il faut également passer du temps à vérifier que toutes les pistes sont connectées au bon endroit et qu'il n'y a pas de courts-circuits ou de conflits mécaniques. Faire fabriquer le PCB prend du temps. Il serait dommage d'attendre pour rien. Après vérification, il est l'heure de commander le PCB et les composants. Une fois arrivés, il faut les assembler. Il est conseillé de suivre un certain ordre logique de soudure, en faisant, pourquoi pas, des tests de temps à autre pour vérifier que les composants fonctionnent. Quand tout est prêt et semble ne pas avoir grillé, on passe à la programmation.

Schématiser le projet

Schéma bloc

Commencer par dessiner un schéma bloc de la carte électronique souhaitée est une bonne pratique. Cela permet de repérer quels éléments doivent être interconnectés, avoir une idée des tensions d'alimentation qu'il faudra (puissance et logique) et de la disposition globale des composants sur le PCB. Ce dernier point sera très apprécié quand ce sera l'étape de routage. En plus, pour la documentation, c'est un grand plus, car simple à lire.

Choisir son microcontrôleur

Tout dépend de l'application que l'on souhaite. STMicroelectronics propose plusieurs gammes de microcontrôleurs. Sur l'image ci-dessous, on retrouve les ultra-low-power adaptées à des solutions d'appareils connectés qui doivent économiser peut d’énergie avec un compromis sur la performance. Les MCU mainstream sont les plus rependus et sont un bon compromis entre la performance et l'économie d'énergie. Et les High-performance, qui ne se penchent pas trop sur l'aspect énergie.

Ma recommandation est de choisir un microcontrôleur que l'on peut trouver dans les cartes de développement Nucleo ou Discovery. Comme ça, si jamais il y a besoin de faire des tests supplémentaires, il suffit de prendre la carte associée au MCU et continuer son code sans perdre de temps sur les problèmes de compatibilités. En plus de ça, c'est une bonne idée d'utiliser les MCU supportés par Mbed. Mbed étant une plateforme en ligne permettant de développer des solutions rapidement en utilisant leurs libraires assez haut niveau. Certains d'entre nous ont probablement commencé par cette plateforme pour programmer les Nucleo, et ont une bonne partie de leur code dessus. Il faut faciliter la transition à STM32CubeIDE qui est un logiciel offrant beaucoup plus de liberté tout en laissant la possibilité de travailler avec Mbed (ce que je ne recommande pas :p ). La liste des microcontrôleurs embarqués sur une Nucleo et supportés par Mbed sont ici. Et simplement la liste des microcontrôleurs sur carte de développement .

MCU series STM32.jpeg

STMicroelectronics propose l'outil ST MCU finder qui regroupe l'ensemble des microcontrôleurs STM (32 et 8). Cet outil est inclus dans STM32CubeIDE. Lorsqu'on commence un nouveau projet, la même interface apparaît. Cet outil permet de filtrer les microcontrôleurs par fonctions, mémoire, vitesses, nombre de broches et d'autres paramètres. Il affiche même si le MCU est utilisé dans une carte de développement!

Vous avez trouvé votre bonheur? Passons à la suite!

Schéma technique

(mentionner les librairies)

Alimentation

(VCAP)

Protections

Oscillateur externe

Debug et flashage

(boot)

Reset

Capacités de découplage

(VDDA)

Pull down et pull up

Composants "barrière"

(aspect protection et tension 3.3V=>5V)

Les broches

Routage et conception de son PCB

Quelques principes à respecter

Prendre en compte les moyens technologiques de fabrication

Largeur des pistes

Eviter les angles droits et aigus

Dissipation thermique

Masse

Séparer la partie puissance et logique

Chemin du retour

Oscillateur

Astuces

Où trouver des librairies de composants?

Créer des points de test

LED d'indication et boutons ou switchs

Annotations

Contraintes physiques

Fixation du PCB

Dimensions des composants et autres éléments présents sur le PCB

Fabriquer sa carte

Assemblage

Soudure

Ordre de soudure suggérée

Comment savoir si mon microcontrôleur fonctionne?

Programmation

ST-Link

STM32CubeIDE

Autres méthodes de flashage