La conception du circuit PCB nécessaire pour les microcontrôleurs embarqués est un projet énorme. Pour les microcontrôleurs avancés, les fiches techniques et la documentation technique peuvent atteindre à elles seules des centaines de pages.
Avant de commencer à concevoir un circuit, il est préférable de dessiner un organigramme du fonctionnement de tous les principaux composants du sujet, y compris tous les périphériques qui ont une interface avec le microcontrôleur.
Microcontrôleur ARM Cortex - M
Cet article se concentrera sur les considérations de conception de carte PCB nécessaires pour importer un microcontrôleur ARM Cortex - M. Le microcontrôleur ARM Cortex - M est disponible en différentes versions de différents fabricants de puces.
Comparé à un microcontrôleur 8 bits typique, ARM Cortex - M avec une architecture 32 bits est particulièrement adapté pour les travaux intensifs et intensifs en calcul. Les microcontrôleurs 32 bits présentent également un avantage s'il existe des applications qui nécessitent plus de capacité mémoire ou qui peuvent simplifier la migration de la plate - forme système pour répondre aux besoins d'expansion futurs.
Le microcontrôleur ARM Cortex - M dont nous parlons est la série stm32 de ST Microelectronics; Plus précisément, nous nous concentrerons sur la série stm32f4.
Cependant, la série stm32 comprend en fait de nombreux modèles, tels que la série stm32l ultra - basse puissance et une série plus performante et moins performante que la version stm32f4. La version la plus efficace est stm32f7, qui peut exécuter un milliard d'instructions par seconde. Le stm32l0 est l'un des modèles les moins efficaces, il exécute seulement 26 millions d'instructions par seconde.
Conception de puissance
L'alimentation du circuit est l'un des aspects les plus importants de la conception du matériel; N'attendez pas plus tard dans la conception pour décider de la configuration de l'alimentation et de la mise à la terre.
Le courant utilisé par le microcontrôleur est déterminé par plusieurs facteurs tels que la tension de fonctionnement, la fréquence d'horloge et la charge sur les broches d'entrée / sortie.
Les condensateurs en céramique 1uf et 100nf (tels que C7 et C8 sur la figure 1) doivent être placés aussi près que possible de chaque broche d'alimentation VDD du MCU pour assurer le découplage de l'alimentation. En outre, un condensateur en céramique de 4,7 µF (C1 sur la figure 1) doit être installé à proximité de l'emplacement de l'IC sur le câblage du circuit principal fournissant le VDD.
Les microcontrôleurs avec convertisseur analogique - numérique (ADC) ont généralement également une alimentation indépendante (vdda) et une broche de terre (vssa) dédiées aux signaux analogiques. Ces broches doivent notamment éviter le bruit.
Si votre tension d'alimentation est supérieure à la limite supérieure de la tension d'entrée du microcontrôleur, vous aurez généralement besoin d'un régulateur linéaire abaisseur de tension. Par exemple, le tps795xx de Texas Instruments a des caractéristiques de bruit particulièrement faibles et peut fournir jusqu'à 500 ma.
Si votre tension d'alimentation est significativement plus élevée que celle requise par le microcontrôleur, un régulateur à découpage abaisseur sera un meilleur choix. Lorsque la tension d'entrée est nettement supérieure à la tension de sortie, un régulateur linéaire gaspillera trop d'énergie.
Cependant, il est généralement préférable de réguler la tension de sortie du régulateur de commutation de manière secondaire avec un régulateur linéaire, car le bruit de tension fourni par le régulateur linéaire est beaucoup plus faible.
Horloge
Le stm32f4 peut être exécuté avec une horloge système interne ou externe. L'horloge système utilisée au démarrage est une horloge interne (16 MHz). Une fois le système initialisé, une source d'horloge externe peut être sélectionnée via le logiciel.
La broche d'horloge du stm32f4 peut piloter un quartz externe de 4 à 26 MHz (voir X1 sur la figure 1) ou utiliser une source d'horloge externe jusqu'à 50 MHz.
La configuration des cristaux doit suivre strictement les instructions sur la fiche technique. En général, le câblage doit être court et la capacité de charge sur le cristal doit être la même que celle recommandée par le fabricant du cristal.
La société GPIO
Les broches d'entrée et de sortie universelles (GPIO) du microcontrôleur sont programmables et peuvent être configurées en entrée ou en sortie via le logiciel.
Par example, S1 sur la figure 1 est un bouton relié à une broche GPIO programmée en entrée. Le stm32 offre une résistance de pull - up intégrée, ce bouton ne nécessite donc pas l'installation d'une résistance de pull - up externe. La sortie GPIO dans cet exemple est utilisée pour piloter la LED.
La plupart des broches GPIO ont également d'autres fonctions et divers composants périphériques de la puce communiquent avec le monde extérieur via ces broches multifonctions.
Toutes les fonctions internes ne sont pas disponibles via chaque broche GPIO, et un mappage de broches strict doit être respecté, alors assurez - vous de consulter la fiche technique lorsque vous choisissez quelles broches utiliser.
Les broches GPIO peuvent être utilisées pour piloter une grande variété de charges et la plupart peuvent fournir ou résister à des courants allant jusqu'à 25 ma. Cependant, en général, l'utilisation d'un circuit de pilotage externe pour réduire la charge du pilote GPIO du microcontrôleur est une meilleure conception. Voir la figure 1 pour un exemple de LED de conduite mn1.
Chaque broche du stm32 a une limite supérieure de courant nominale, ainsi qu'une limite supérieure de courant total pour toutes les broches GPIO.
Connecter les composants périphériques
Le stm32 offre une connexion de signal série via les interfaces UART, I2C, SPI et USB.
Par example, sur la figure 1, un capteur de température (U2 - lm75bdp) est relié au microcontrôleur par un bus I2C. Deux résistances pull - up (R2, R3) sont nécessaires sur le bus I2C pour être connectées au conducteur à drain ouvert.
Pour la plupart des applications, comme les capteurs à basse vitesse, je préfère utiliser I2C comme protocole série, car il utilise seulement deux fils pour communiquer. En outre, contrairement à SPI, qui nécessite des puces supplémentaires pour sélectionner les ports de travail pour gérer chaque composant périphérique, I2C utilise une seule adresse.
Le bus SPI est connecté au capteur de mouvement neuf axes MPU - 9250 produit par invensensense. Le MPU - 9250 contient un accéléromètre triaxial, un gyroscope triaxial et un magnétomètre triaxial.
Connecteur de programmation
Le stm32f4 offre deux interfaces d'édition de programme (ISP) dans le système: Serial Line debug (swd) et JTAG. La version moins chère de stm32 n'offre qu'une interface swd. Swd et JTAG sont les deux interfaces de programmation les plus utilisées par les microcontrôleurs.
Conclusion
Dans cet article, nous discutons de la conception du circuit PCB du microcontrôleur et présentons le stm32f4, qui peut lire les boutons d'entrée, piloter les LED et communiquer avec les capteurs de température I2C et les capteurs de mouvement SPI.