Qu`est ce qu`un uC (micro-contrôleur)
Transcription
Qu`est ce qu`un uC (micro-contrôleur)
Qu’est ce qu’un uC (micro-contrôleur) ? Un uC est un composant électronique dit « actif » c'est-à-dire qu’il participe de manière intense et conditionnée au système (contrairement à une résistance qui est dite « passive »). Le uC comporte plusieurs sous-parties, chacune jouant un rôle précis dans son fonctionnement : Le CPU : C’est le cœur du uC, le cerveau, c’est lui qui va « calculer » et gérer les communications entre les différentes sous-parties. Il en existe différents type, en fonction de leur puissance de calcul (en bits) et de leur vitesse de travail (en Hz ou plus souvent en MHz) ou encore de leur architecture interne. La mémoire : C’est là ou serra stockée à la fois le programme (mémoire morte) et les variables (mémoire vive ou RAM). Les entrées/sorties : C’est le module qui permet de communiquer avec l’extérieur (afficheurs, boutons, relais, moteurs, leds…..). Les modules de conversion A/N : Ce module interne permet de transformer une tension d’entrée en une valeur numérique. Les modules de communication : Ceux-ci permettent de faire communiquer le uC avec d’autres composants du système par l’intermédiaire de différents protocoles (SCI, SPI, I2C, USB, WIFI…). Chaque modèle de uC comporte un certain nombre de ces modules suivant leur gamme, leur utilisation. Par exemple un petit uC bas de gamme va comporter : un CPU (c’est un minimum….), de la mémoire (Flash ou eeprom pour le programme, RAM pour les variables) en « petite » quantité (4 à 8 ko pour le programme et 256 à 512 octets pour la RAM ), de 4 à 12 entrées/sorties, éventuellement un module A/N (généralement 8 entrées analogiques) et SCI et/ou SPI. Au contraire un haut de gamme, va comporter 1 voir 2 CPU, de la mémoire flash (de 16 à 512 ko) pour le programme, de la RAM (1024 à 4096 octets ) pour les variables, éventuellement de l’eeprom (1 à 4 ko) pour stocker des variables même en coupant l’alimentation. 32 à 120 E/S, jusqu'à 24 entrées analogiques, 1 à 2 modules SCI et SPI, 1 à 2 modules I2C…. Et entre les deux il existe toute une gamme de uC de taille, de forme, de prix, de performances variables, le jeu consiste aussi à choisir lequel ferra l’affaire dans l’application sans dépenser trop d’argent dans des modules inutiles (mais ce n’est pas notre soucis pour l’instant). Commençons par décrire les différentes familles de uC fabriqués par FREESCALE. Tout d’abord les plus petits : les 8 bits. Cette famille dérive d’une ancienne génération de uC les 68hc05. Elle se caractérise par un faible coût de ses composants, une grande facilité d’approvisionnement, de performances tout à fait honorables pour leur taille et leur prix, et surtout d’une grande facilité et souplesse d’utilisation qui la place sur le marché des uC destinés à un usage privé (dit de « domotique ») et aux débutants. C’est celle que nous utiliserons. Ensuite une taille au dessus, les 16 bits. Ils sont les dignes successeurs des célèbres 68hc11. Ils sont plus puissants, plus rapides, possédant plus de modules internes, plus de mémoire. En contre partie, leur emploie est plus contraignant, et moins à la portée du débutant, son domaine d’application se situe dans l’industrie, l’automatisation, l’automobile, aux professionnels. Leur prix est supérieur au hc08, mais leurs performances sans communes mesures. Pour finir le haut du tableau, les 32 bits, ou Coldfire. Alors là c’est de la Formule 1, les performances sont largement supérieures à celles des hc12 et sans comparaisons avec les hc08, mais le prix aussi…. Revenons à ce qui nous intéresse, les « petits » hc08. Apparue il y a quelques années, cette gamme de uC s’est progressivement étoffée, améliorée et diversifiée. Au point que maintenant elle compte 3 sous familles, chacune ayant des caractéristiques différentes et ses avantages et inconvénients. Voyons ça en détail : • La plus ancienne : les hc08 ou hc908 : Cette famille comporte 25 modèles différents !!!! La programmation se fait par port série à l’aide d’un programmateur relativement simple, mais est assez lente, pas très sûre et le debuggage n’est pas ce qu’on peut dire des plus pratique. Ils ne sont pas très pratiques à mettre en œuvre, utilisation d’un quartz spéciale pour la programmation, d’un autre pour le fonctionnement normal…. Son avantage est qu’il est très diffusé, et je crois que c’est le seul, mis à part le prix des petits modèles Ils sont en voie de disparition. • En suite, est arrivée la famille des hcS08. Alors là c’est la révolution, la programmation se fait par USB à l’aide d’un programmateur vendu dans le commerce pour environ 100€, mais que l’on peut réaliser sois même pour moins de 10€… Là le debuggage est beaucoup plus pratique et fiable. Ils ne nécessitent pas de quartz (sauf certains modèles peu diffusés), sont 2.5 fois plus rapides. Et surtout 2 fois moins chers…. • Pour finir les hcRS08 Arrivés en même temps que les S08, ils n’ont pas eut le succès de leurs cousins, pas pratiques à mettre en œuvre (format tout petit) ils ne sont presque pas utilisés. Dénomination des uC : Les uC sont référencés de cette manière : Exemple : 68hcS08QG8 Le 68hc : veut dire que c’est un uC Le S : veut dire qu’il s’agit de la famille qui se programme par USB Le 08 veut dire qu’il s’agit d’un 8 bits Le QG : il est de la famille des QG (logique !!!) Le 8 c’est la taille de la mémoire flash, ici 8 ko S’il y a encore d’autres lettres après, elles correspondent au type de boitier, aux performances de résistance en température, et éventuellement, s’il est conforme aux dernières normes anti-plomb. La programmation : Le plus facile consiste à utiliser le logiciel développé par le même fabriquant, se nommant CODEWARRIOR. Il est disponible au téléchargement gratuit après inscription sur le site www.freescale.com https://www.freescale.com/webapp/Download?colCode=CWX-H08-PROED-EX&prodCode=CWX-H08SE&nodeId=01272694011860&location=psp Bien que son téléchargement et son utilisation soit gratuite, elle limite la taille des programmes (en C) à 32ko (ça fait déjà pas mal….) et en assembleur, là c’est illimité.