Aller au contenu

Comment fabriquer vos propres cartes microcontrôleur Atmel atmega

Atmel

Les ATMEGA une famille de microcontroleur conçu par ATMEL ,vous trouverez ici une liste des microcontroleurs que possède cette famille au moment ou j’écris cet article .

Je vais vous parler de l’ATMEGA324 plus précisément puisque c’est celui que j’utilise le plus dans mes montages .Il s’agit d’un circuit a 40 pattes dans sa version DIL .Son brochage est par ailleurs compatible avec la plupart des modèles aillant ce boitier , il faut comprendre les chiffres « 324 » comme 32k de flash ( place pour votre programme ) et 4 k de SRAM ( taille maximale de vos variables ) . Si nous avions un ATMEGA644 vous comprenez donc 64K de flash et 4K de SRAM .Ces significations sont bien pratique lorsque l’on ne se rappelle plus quel modèle contient quoi.

Voici a quoi ça ressemble :

 

 Ci- dessus un Atmega en boitier PDIP vue de dessus avec son brochage .On distingue ici:
  •  Les 4 PORT de 8 pattes PA,PB,PB,PD
  •  Les pattes XTAL pour le quartz
  •  Le /RESET, sachez que le trait dessus signifie que la fonction est active au niveau logique 0
  •  Le VCC les GND qui sont des pattes d’alimentation
  •  Le AVCC et le AREF qui sont des pattes d’alimentation et de références pour le convertisseur analogique numérique intégré dans l’ ATMEGA

On remarque également des choses écrite entre parenthèse , ce sont des périphériques inclus dans  le microcontroleur ils sont câblés sur certaines pattes suivant ce que vous aurez besoin il faudra en tenir compte au moment du câblage de votre circuit .

Voici ce qu’il contient :

Ce schema interne change en fonction du micro contrôleur que vous aller utiliser , le nombre des PORT d’entrée sortie , les périphériques qu’il contient UART,I2C,Convertisseur , … c’est a vous de choisir celui qui vous convient en fonction de son prix et de l’utilité , personnellement j’utilise très souvent un ATMEGA 324 , parce qu’il n’est pas trop cher et que j’ai conçu autour de lui une carte électronique générique qui convient a la plupart de mes applications client .

Un peu de détail sur les pattes …

Je vais vous décrire les principales fonction mise entre parenthèses sur les pattes du microcontroleur , pas toutes pour garder un contenu léger et facile a lire , si vous souhaitez approfondir le sujet vous pouvez aller lire la documentation en PDF de chez Atmel elle est plutôt bien faite et dans un anglais simple , mais je le reconnais un peu longue a lire dans le détails .

Les PCINT :

Ce sont des fonctions d’interruptions programmables au changement de niveau , rien de compliqué ici si le niveau logique change sur une patte , le microcontroleur est mit au courant immédiatement et peu stopper ce qu’il est en train de faire pour exécuter une fonction que vous aurez programmé .

Les INT0 ,INT1,INT2 :

Ce sont également des pattes d’interruptions , elles sont plus complète que les PCINT et programmable front montant , front descendant , j’utilise généralement ses pattes pour faire du comptage par exemple , pour être sûr de ne pas perdre d’impulsions .

Les ADC0,ADC1,ADC2, …:

Ce sont les pattes d’entrées du convertisseur analogique numérique , il y en a 8  elles vous permettent de convertir une entrée analogique en un nombre numérique , très utile lorsque l’on a des capteurs a mesurer type température , humidité , …

Les RX0,TX0,RX1,TX1 :

Ce sont les pattes des ports séries , il y en a 2 et sont utilisable de façon indépendante ,cela permet de contrôler des modules que l’on peut commander sur ce protocole ou plein d’autres choses .

Les SCL,SDA

Il s’agit ici du bus I2C , un autre système de communication , quelques circuits très intéressant utilisent ce protocole comme les mémoires série de type 24CXX .

il y a bien d’autres choses a l’intérieur de ce circuit mais je ne vais pas entrer trop dans le détail nous auront l’occasion d’y revenir !

D’autant que le but ici est de vous expliquer comment créer votre circuit pour utiliser un ATmega .

 

Le port de programmation

J’utilise habituellement un AVRDRAGON , c’est une carte électronique plutôt bien faite permettant de programmer des microcontroleurs ATMEGA mais pas seulement , la série des Xmega et des 32bits type AT32 peuvent également être programmés avec un AVRDRAGON .

Voici a quoi il ressemble :

On va s’intéresser au JTAG dessus il se trouve ici :

Voici son brochage :

Pour l’utiliser sur une de vos carte il suffira de reproduire ce connecteur , de relier les pattes du microcontroleur avec les pattes du port et de mettre une nappe de liaison comme ici :

 

Vous pouvez également le connecter en fil volant c’est moins esthétique mais ça fonctionne . Il y a quand même une petite subtilité , c’est la patte nSRST , il s’agit vous l’aurez comprit du reset de notre microcontroleur , patte sur laquelle vous aurez a ajouter une résistance de mise au plus pour que votre microcontroleur puisse fonctionner .

Il faut se méfier de cette résistance de mise au plus , en effet si elle est trop basse en Ohm l’ AVR dragon ne pourra pas utiliser le RESET a sa guise et donc ne pourra pas programmer votre microcontroleur . Si vous n’en mettez pas vous pourrez programmer mais vous ne pourrez plus l’utiliser votre microcontroleur .

Il y a une « bonne  » valeur de résistance qui permet a la fois a l’AVR dragon de programmer votre microcontroleur et d’être en même temp assez mis au plus pour désactiver le RESET , cette valeur c’est 100K OHM  . Prennez l’habitude de connecter une résistance de 100K du plus vers le reset lorsque vous routez votre carte électronique .

Pour ce qui est du VTref connectez le simplement au +VCC , le reste des pattes est facile a récupérer sur le brochage du composant.

Avec quoi le programmer ?

J’utilise beaucoup CODEVISION , il contient des bibliothèques pour les périphériques standards écran LCD , bus I2C , … mais il est payant , sinon vous pouvez utiliser AVR STUDIO. Le logiciel du constructeur permet de programmer en assembleur et en C votre microcontroleur et a de quoi injecter le programme dans le microcontroleur .A vous de voir ce qui vous plait , si vous souhaitez rester sur des solutions gratuites AVR STUDIO est une bonne solution !

Comment câbler votre carte ?

Vous commencez a comprendre qu’il n’y a rien de compliqué dans le câblage de l’un de ces microcontroleurs , nous avons vu le bus de programmation et la resistance de mise au plus sur le RESEY .Pour le reste des ports il faut savoir ce que vous voulez faire avec , si par exemple vous avez une valeur analogique a récupérer comme un capteur , vous devez réserver au moins une patte du PORT A à cet effet . Le convertisseur n’est disponible que  sur les pattes du PORT A , de même si vous devez utiliser le bus I2C vous savez que vous devez réserver 2 pattes du PORT D a cet effet .J’évite également d’utiliser les pattes de programmation même si je peux le faire , ça m’évite les conflits si je veux que mon JTAG reste branché pour mettre a jour mon programme .

Reste le quartz , il y a deux pattes XTAL sur lesquelles connecter votre quartz et cadencer votre microcontroleur sur un ATMEGA324 vous pouvez monter a 20 MHz il faudra mettre deux condensateur de découplage , un pour chacune des pattes vers la masse , sur la documentation constructeur on trouve un tableau nous indiquant les bonnes valeurs a mettre .

Au moment de la programmation il faudra dé-valider le diviseur 8 de l’horloge et sélectionner la plage du quartz que vous allez utiliser . Si vous n’avez pas besoin de vitesse sachez que vous pouvez également utiliser l’horloge interne et ne pas mettre de quartz !

Voici comment retirer le diviseur sous Atmel studio 7 :

Il suffira de décrocher l’option sous fond jaune .

Et voici comment sélectionner votre type de quartz ou l’horloge interne :

Ici pour un quartz de 8 MHz et plus  , ne vous inquiétez pas trop du « Fuses  » il s’agit de la programmation du registre CKSEL donc vous pourrez revenir en arrière si vous faites le mauvais choix , ou si vous voulez en tester un autre .

 

Pour finir voici a quoi peut ressembler une carte dessinée avec TCI autour d’un ATMEGA324 :

Ici un exemple de carte standard que j’implante chez mes clients , vous voyez le quartz et ses deux condensateurs de découplage placé ici en dessous C5 et C6 , le JTAG qui est ici CN5 . Pour le reste j’utilise 4 pattes du PORTD ( 0,1,2,3 ) pour récupérer les entrées venue de CN7 . IC1 étant un optocoupleur pour isoler et IC5 un inverseur pour récupérer un signal non inversé ( l’optocoupleur inverse le signal d’entrée ici )  .j’utilise le PORTB pour un écran LCD HD44780 comme celui – ci :

un standard 2 ligne 16 caractères , on remarque que la ligne de connection est droite , j’ai fabriqué une petite carte adaptatrice pour pouvoir le brancher directement sur l’écran parcequ’une fois soudé ou avec un connecteur ce n’est ni solide , ni esthétique .

Voici a quoi ça ressemble :

Sur le PORT A un LM324 (IC4) et 4 entrées analogiques venu de CN1 et deux pattes de sortie pour piloter les relais RL1 et RL2 via des transistors . CN4 étant un port d’extension permettant par exemple le renvoi d’informations sur d’autre cartes du même genre si elle n’était pas suffisante .

Mais la encore ce n’est qu’un exemple de construction , tout dépend de votre besoin final .

J’espère vous avoir éclairé un peu avec ces quelques lignes sur les ATMEGA , d’autres articles viendront avec des exemple de fonctionnement .

 

 

 

 

 

 

 

 

 

 

 

1 commentaire pour “Comment fabriquer vos propres cartes microcontrôleur Atmel atmega”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *