1. Qu'est-ce qu'un microcontrôleur ? La figure 1 montre l'architecture simplifi

1. Qu'est-ce qu'un microcontrôleur ? La figure 1 montre l'architecture simplifiée d'un système informatique, qui comporte quatre éléments: - une mémoire morte (ROM = Read Only Memory) qui contient les instructions. Son contenu est permanent, et reste intact lorsque le système n'est plus alimenté (Généralement de type FLASH). - un processeur, qui exécute les instructions. Il est cadencé par une horloge (H). - une mémoire vivre (RAM= Random Access Memory), qui permet de stocker des données. Son contenu est perdu lorsque le courant est “coupé”. - des circuits d'Entrée-Sortie (I/O=Input/Output). Ce sont les circuits qui permettent l'interaction avec l'extérieur. Bus d'adresses Sorties PC H Horloge Processeur ROM RAM I/O Entrées Figure 1 Bus de données Une carte-mère d'un PC possède cette même architecture. La mémoire morte est appelée BIOS. C'est le premier programme qui s'exécute lorsqu'on allume le PC. Le processeur (par exemple un Pentium 4) est un circuit intégré contenant des millions de transistors, fonctionnant à une fréquence très élevée. Malgré la très faible consommation de chacun de ces transistors (technologie C-MOS), la complexité du circuit et la fréquence élevée (jusqu'à plusieurs GHz) font que le processeur consomme une énergie importante (plusieurs dizaines de Watt). Il est donc nécessaire de le refroidir avec un refroidisseur et un ventilateur. Les barrettes de mémoire vive (SD-RAM, DDR, DDR-2, etc) ont généralement des capacités exprimées en centaines de MiB (millions d'octets) ou en GiB (milliards d'octets). Les circuits d'entrées-sorties correspondent au clavier, à la souris et à l'écran (interface homme- machine), mais aussi aux lecteurs de disques, CD, DVD, etc. Un microcontrôleur est un système informatique contenu dans un seul circuit intégré. L'architecture est la même que cette présentée sur la figure 1. Par rapport à une carte-mère de PC, les éléments qui constituent un microcontrôleur sont plus simples, moins puissants, leurs capacités sont plus limitées: - la mémoire morte contient généralement de 1 à quelques dizaines de kiB. - le processeur est cadencé à des fréquences de quelques MHz ou dizaines de MHz, et ne consomme qu'une fraction de Watt. Son jeu d'instructions est plus simple. - la mémoire vivre est généralement très limitée: de quelques centaines de Bytes, à quelques dizaines de kiB, selon les modèles. Exemple :Atmega 32 EEPROM 1Ko,SRAM 2Ko, ROM 32Ko - les circuits d'entrée-sortie sont simplement des entrées logiques (pour lire une valeur binaire, par exemple un interrupteur) et des sorties logiques (capables de fournir quelques mA, par exemple pour commander une LED). Certain microcontrôleurs ont aussi des entrées analogiques: des convertisseurs analogiques-numériques (ADC= Analog to Digital Converter), et parfois des sorties analogiques: des convertisseurs numériques analogiques (DAC=Digital to Analog Converter). L'intérêt des microcontrôleurs est leur coût très faible (quelques centaines ou milliers de CFA), leur faible consommation (quelques dizaines de mA) et leur taille très réduite (un seul circuit intégré, ayant de 6 à quelques centaines de pattes). Ils sont donc utilisés dans de très nombreuses applications. Plusieurs fabricants proposent des microcontrôleurs (Microchip, Atmel, Texas-Instrument, FreeScale, NXP, Cypress, etc). Chaque fabricant propose souvent plusieurs familles de microcontrôleurs (PIC et dsPIC chez Microchip; AVR, AVR32 et ARM chez Atmel, etc). Chaque famille comporte souvent des dizaines de modèles, qui diffèrent principalement par les tailles mémoires et le nombre de pattes d'entrée-sortie. A titre d'exemple, le processeur Atmega168, de la famille des AVR d'Atmel, contient: - un processeur 8 bits, avec une centaine d'instructions, cadencé entre 1 et 20MHz (généralement 8MHz), avec 32 registre 8 bits. - une mémoire morte de type flash (technologie similaire à celle des clés USB) de 16 kiB. - une mémoire vive de 1 kiB. - une mémoire EEPROM de 512 B. - 22 pattes d'entrée-sorties, dont 6 connectées à un convertisseur analogique-numérique de 10 bits de résolution. Certaines de ces pattes ont également d'autres fonctions spécifiques (lignes séries, capture d'événements, etc). Voici le symbole utilisé dans le logiciel de dessin de schémas et de circuits imprimés KiCad: Premier schéma à microcontrôleur Voici le brochage d'un microcontrôleur, de la famille Atmel largement utilise (ATtiny2313.pdf). Chaque patte est associée à un ou plusieurs noms, tous un peu incompréhensibles pour un débutant. Nous pouvons identifier trois groupes de pattes: les alimentations, les pattes de programmation et les pattes d'entrées-sorties pour l'application proprement dite. Les microcontrôleurs sont réalisés en technologie CMOS et nécessitent une alimentation unique. Les AVR acceptent une tension comprise entre 2.7et 5.5 volt. Deux piles AA ou AAA 1.5 volt en série peuvent donc convenir. La borne négative de l'alimentation est désignée Gnd (Ground=masse). C'est la patte 10 du ATtiny2313. La borne positive est appelée Vcc, c'est la patte 20. La patte /RESET est la patte 1. Ignorons pour le moment le fait que cette patte a aussi d'autres noms (PA2, etc). Le /RESET est une entrée du circuit. La barre sur son nom signifie que l'entrée est active à zéro. On le note aussi, comme dans ce texte, avec le signe / (slash) précédent le nom. Il sera donc nécessaire de fixer à l'état 1 la patte /RESET pour le fonctionnement normal du microcontrôleur. C'est une résistance reliée au Vcc qui va jouer ce rôle. On parle de résistance de rappel (pull-up: tirer vers le haut). Une valeur d'environ 10 kOhm convient dans ce cas. La programmation des AVR se fait par l'intermédiaire de trois signaux: MOSI, MISO et SCK. Il n'est pas nécessaire de comprendre le rôle exact de ces signaux, qui sont générés par le programme AVRISP qui tourne sur le PC et transmis par le dongle de programmation. Notons toutefois qu'il s'agit du signal d'horloge (Spi ClocK), de l'entrée du microcontrôleur (Master Out Slave In) et de la sortie du microcontrôleur (Master In Slave Out). Ces trois signaux correspondent aux pattes 17 à 19. Les autres pattes de l'ATtiny2313 sont les pattes d'entrée-sortie. Elles sont regroupées en 3 ports: PORTA, PORTB et PORTD. Notez tous les ports ne sont pas complets, et que les pattes de programmation font aussi partie du PORTB. En prenant quelques précautions, on peut aussi les utiliser comme entrées-sorties. Par contre, la programmation par le connecteur AVR-ISP n'est plus possible si la patte /Reset n'est pas réservée exclusivement à cette fonction. On peut donc dire qu'en pratique, l'ATtiny2313 a 17 pattes d'entrée-sortie. 1 10k Il nous reste maintenant à choisir notre application. Prenons la plus simple: une seule patte du microcontrôleur sera utilisée, pour y brancher une diode lumineuse (LED) avec une résistance de limitation du courant reliée en série vers la masse. Nous avons donc maintenant le schéma complet de notre montage. 100nF 2 Vcc LED PD6 11 20 Vcc ATtiny2313 Reset SCK 19 Connecteu r AVR- ISP 6 /Reset 3 SCK 1k Gnd 10 MISO 18 MOSI 17 4 MISO 5 MOSI 1 Gnd Nous notons la présence d'un condensateur de découplage entre le + et le -. Les électroniciens savent qu'il est utile pour filtrer l'alimentation. On peut apprécier la simplicité: seulement 5 composants et un connecteur. Ce connecteur AVR-ISP permet à la fois d'apporter l'alimentation à notre montage, ainsi que les signaux de programmation et le Reset, dans la phase de développement du programme correspondant à l'application. Voici le schéma pour un autre processeur de la famille AVR, l'ATmega168: LE D 100n F PC5 28 1k 7 Vcc ATmega16 8 Gnd 2 0 AVcc 1 Reset SCK 19 MISO 18 MOSI 17 10 k 2 Vcc Connecteur AVR-ISP 3 SCK 4 MISO 5 MOSI 8 22 1 Gnd Notons qu'il n'y a que peu de différences. Deux pattes sont connectées à la masse. Une patte supplémentaire est présente pour alimenter la partie analogique (AVcc). Notons que, par hasard, les numéros des pattes /Reset, SCK, MISO et MOSI ont les mêmes numéros. Mais ils n'ont pas les mêmes positions sur le circuit, vu qu'il s'agit d'un DIL28 et non plus d'un DIL20 ! Les entrées-sorties des microcontrôleurs Dans les années 1970, au moment où les microprocesseurs sont apparus, des circuits intégrés logiques discrets étaient utilisée pour réaliser les entrées et les sorties du système. Pour les entrées, des passeurs permettaient de lire les données lors de la sélection de l'adresse correspondante. Pour les sorties, des registres PIPO (Parallel In Parallel Out) étaient utilisés pour mémoriser les valeurs. Entrées Sorties Registre PIPO Passeurs Bus de données Pour simplifier les schémas, les fabricants de microprocesseurs ont proposé des circuits intégrés contenant tout ce qui est nécessaire pour les entrées-sorties. Comme le nombre d'entrées et le nombre de sorties varient d'une application à une autre, ces circuits offraient la possibilité de programmer certaines pattes comme des entrées et d'autres comme des sortie. Intel a proposé son circuit 8255, où des groupes de 4 ou 8 pattes pouvaient être définis ensemble comme entrées ou comme sorties. Mais Motorola a fait école avec son PIA (MC6820), en offrant une flexibilité complète, chaque patte pouvant être définie individuellement comme une entrée ou une sortie. Nous allons ici décrire les entrées-sorties des circuits de la famille des microcontrôleurs AVR, similaires aux PIA, mais plus riches. Voici le schéma simplifié correspondant à chaque patte d'entrée-sortie, illustré pour la patte uploads/Management/ chapitre-3-mise-en-oeuvre-des-microcontroleurs-avr-copie.pdf

  • 35
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Fev 26, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.4606MB