Club robotique de Sophia-Antipolis

Accueil > Projets et études > Nos réalisations > Carte Numérique Polyvalente > Micro-contrôleur

Micro-contrôleur

le µC et ses périphériques

jeudi 2 février 2006, par Gilles S.

 Le Micro-Contrôleur

Pour des raisons historiques, le micro-contrôleur choisi appartient la famille AVR d’Atmel. En effet, tous les développements précédents ont été effectués sur ce type de micro-contrôleurs et nous pourrons aisément réutiliser tout ce qui a déjà été fait.

Etant donné que nous voulons pouvoir re-programmer le µC sur la carte, nous devons avoir une mémoire programme en technologie Flash, Cette technologie permet d’avoir une mémoire non volatile et réinscriptible, c’est-à-dire une mémoire possédant les caractéristiques d’une mémoire vive (RAM) mais dont les données ne se volatilisent pas lors d’une mise hors tension (ROM). Ainsi la mémoire flash stocke les bits de données dans des cellules de mémoire, mais les données sont conservées en mémoire lorsque l’alimentation électrique est coupée.

D’autre part, le µC doit être évolutif, c’est à dire que l’on doit pouvoir facilement le changer pour un µC possédant plus de mémoire programme et/ou plus de mémoire données afin d’écrire des programmes plus complexes.

Pour toutes ces raisons, nous avons choisi le ATMega16-16PU : boîtier DIP 40 pattes, mémoire Flash 16Ko, Mémoire RAM 1Ko, Eeprom intégrée de 512 octets.
Si cette capacité ne suffisait pas, ce µC pourra être remplacé "Plug & Play" par le ATMega32-16PU (32Ko Flash, 2Ko RAM & 1Ko Eeprom) ou le ATMega644-20PU (64Ko Flash, 4Ko RAM & 2Ko Eeprom).

Il pourra éventuellement être également remplacé par le futur ATMega324-20PU, qui devrait contenir (entre autre) une deuxième liaison série et des interruptions externe sur tous les ports E/S,

Ce micro-contrôleur va avoir besoin de trois périphériques pour fonctionner :
- Un Quartz,
- Un circuit de Reset,
- Une logique de re-programmation.

 Le Quartz

Un Quartz sert à faire fonctionner le µC en lui dictant la cadence, nommée "cycle d’horloge", à laquelle il exécute les ordres. Ce quartz est flanqué de deux condensateurs (valeurs recommandées par le fabricant du quartz) lui permettant d’osciller dans de bonne conditions.

Comme la référence du µC l’indique, il peut avoir une horloge de 16 MHz au maximum. Evidemment, plus le µC fonctionne vite, plus il consomme, Ainsi, nous avons une consommation de 12mA à 8 MHz et 20mA à 16 MHz. Etant donné la faible différence de consommation par rapport à la consommation globale de la carte, nous allons donc mettre un quartz de 16 MHz flanqué de deux condensateurs 15 pF.

L’ATMega étant un processeur RISC (Reduced Instruction Set Computer), il exécute une instruction assembleur par cycle d’horloge. Sa vitesse d’exécution maximum est donc d’une instruction toutes les 62.5 nS à 16 MHz, ce qui est plus que suffisant pour l’utilisation prévue.

 Le circuit de Reset

Un circuit de Reset a un double usage :
Lors de la mise sous tension, il s’assure que la patte ’Reset’ du µC (qui indique au µC qu’il peut démarrer) ne s’active pas tant que la tension d’alimentation n’a pas atteint un seuil défini et n’est pas stabilisée durant un certain laps de temps (une centaine de millisecondes). Cet usage se nomme "Power On Reset" ou POR.

Lors du fonctionnement, il s’assure que la tension d’alimentation ne passe pas, même brièvement, sous un seuil défini. Si c’est le cas, le circuit désactive la patte Reset et ne la réactive qu’avec les mêmes conditions que lors de la mise sous tension. Cet usage se nomme "Brown-Out Detect" ou BOD.

Un circuit de reset est particulièrement recommandé lors de l’utilisation de batteries : ainsi, ce circuit s’assure d’une part que le µC ne démarre pas intempestivement lors de la connexion des batteries (ce qui génère des micro-coupures) et d’autre part il arrête le µC lorsque la batterie devient trop faible pour assurer le fonctionnement de la carte numérique,

L’ATMega16 possède son propre circuit de Reset, incluant POR et BOD. Cependant, l’expérience montre que les seuils intégrés pour l’activation ou la désactivation de la patte Reset ne sont pas très précis et peuvent donc beaucoup varier d’un µC à l’autre. C’est pour cette raison que nous allons intégrer un Reset externe, beaucoup plus précis et fiable.

D’autre part, la logique de re-programmation utilise également la patte Reset. Il faut donc utiliser une sortie en Collecteur Ouvert (ou Open Drain) combinée à une résistance de tirage (ou Pull-Up).

Nous avons donc choisi le MCP121-450E/TO de MicroChip, qui possède à la fois un seuil de détection à 4.5V, une sortie Reset en Open-Drain, un boîtier DIP 3 pattes (TO-92) et un faible prix.

  La logique de Re-Programmation

Les µC Atmel peuvent se reprogrammer via une liaison synchrone, nommée SPI (Serial Periphal Interface). Cette liaison se compose de deux signaux de données, un dans chaque sens : MOSI (Master Out Slave In) et MISO (Master In Slave Out) et un signal d’horloge : SCK permettant de synchroniser les données. De plus, comme il s’agit de reprogrammer le µC, le signal Reset est également utilisé.

Atmel fourni un logiciel et une sonde permettant de reprogrammer leur µC à partir du port parallèle (ou Centronic) d’un PC et arrivant sur la carte fille via un connecteur HE10. Malheureusement, ce port n’est pas forcément capable de fournir un signal compatible avec le µC (niveaux TTL).

C’est pour cela que nous avons inséré, entre le µC et le connecteur une diode et une résistance de Pull-Up pour les signaux arrivant du PC : la résistance va polariser les signaux à Vcc, et donc imposer un ’1’ logique. Si le signal en provenance du port parallèle est supérieur à la tension de seuil de la diode (soit 0.6V), le µC croira recevoir un ’1’. Si ce signal est égal à GND, le port du µC sera donc à 0.6V, ce qu’il interprétera comme un ’0’ logique.

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document