1 Partie3 : B : Le microcontrôleur : Nous avons choisi le microcontrôleur Atmeg
1 Partie3 : B : Le microcontrôleur : Nous avons choisi le microcontrôleur Atmega328 d’atmel autour duquel est réalisée la carte arduino uno que nous avons utilisé en travaux pratiques d’initiation aux systèmes programmables. Un microcontrôleur est un circuit intégré (VLSI :Very Large Scale Integration) qui regroupe à lui seul un microprocesseur, des mémoires est des circuits interfaces pour le dialogue ou échanges d’informations avec ses périphérique (le monde extérieur). 1- Caractéristique techniques générales du circuit : C’est un microcontrôleur ATMEL de la famille AVR 8bits, il a les caractéristiques suivantes: 1 mémoire FLASH = mémoire programme de 32Ko 1 mémoire SRAM = mémoire données (volatiles) 2Ko 1 mémoire EEPROM = données (non volatiles) 1Ko 3 Ports entrées-sorties Tout Ou Rien = PortB, PortC, PortD (soit 23 broches en tout E/S ou (I/O). 3 Timers/Counters : Timer0 et Timer2 (comptage 8 bits), Timer1 (comptage 16bits) Chaque timer peut être utilisé pour générer deux signaux PWM. (6 broches OCxA/OCxB) , x=0 ou 1 ou 2. 1Convertisseur analogique numérique 10bits à canaux multipléxés. Gestion de l’interface I2C (TWI Two Wire Interface) Gestion de l’interface (USART) = émission/réception série via les broches TXD/RXD Gestion de l’interface SPI Comparateur Analogique qui peut déclencher des interruptions. Watchdog Timer (chien de garde) programmable. 2- Synoptique interne du circuit Atmega328: 2 3- Boitier (vue externe): a- Boîtier Port C Port B Port D 3 Descriptions des broches Certaines broches peuvent avoir plusieurs fonctions différentes choisies par programmation : PWM = 6 broches OC0A(PD6), OC0B(PD5), OC1A(PB1), OC1B(PB3), OC2A(PB3), OC2B(PD3) Port B (PB7.. PB0) : le Port B est un port d'entrée-sortie à 8 bits bidirectionnel. Il sert aussi comme oscillateur pour le Timer/Compteur2 sur les broches PB6, PB7 ou de port pour la communication serie SPI (sur les broches PB3, PB4) ; SPI veut dire Serial Peripheral Interface : c’un protocole de communication série synchrone utilisé pour la communication du microcontrôleur avec un autre composant (ou un autre microcontrôleur) sur des courtes distances. La liaison SPI utilise 3 lignes : MISO (patte PB4) : Master Input Slave Output, PB4 est une entrée. MOSI (patte PB3) : Master Output Slave Input, PB3 est une sortie. SCK (patte PB5) : Serial Clock horloge générée par le Master ici le microcontrôleur. Port C (PC6.. PC0) le Port C est un port d'entrée-sortie à 7 bits bidirectionnel. Il sert aussi comme oscillateur pour le Timer/Compteur2 et d’interface I2C. L’interface I2C est une interface qui sert pour la communication entre le microcontrôleur et un autre composant en mode série synchrone en utilisant que 2 fils : SCL Serial Clock (patte PC5) générée par le maitre ici c’est toujours le microcontrôleur et le fil SDA Serial Data (patte PC4) bidirectionnel pour la transmission et la réception. Le port C sert aussi d’entrées analogiques au convertisseur analogique numérique de 10 bits. Ce CAN peut recevoir 8 voies analogiques multiplexées. Port D (PD7.. PD0) le Port D est un port d'entrée-sortie à 8 bits bidirectionnel. Il sert aussi d’USART et d’entrées pour les interruptions externes. RESET déclenché par un front descendant maintenue plus de 50 ns il produira le Reset du microcontrôleur, même si l'horloge ne court pas. XTAL1 Entrée de l'oscillateur externe ou libre pour l'horloge interne. XTAL2 Production de l'amplificateur d'oscillateur. AVCC est une broche de tension d’alimentation pour le Convertisseur A/D qui doit être connectée à VCC via un filtre passe-bas pour éviter les parasites. AREF est l'entrée de référence analogue pour le Convertisseur A/D avec une tension dans la gamme de 2 V à AVCC avec filtre passe bas. AGND masse Analogique. Si la masse analogique est séparée de la masse générale, brancher cette broche sur la masse analogique, sinon, connecter cette broche à la masse générale GND. b- Spécification des broches 4 VCC broches d'alimentation du microcontrôleur (+3 à +5V). GND masse de l’alimentation. En annexe vous trouverez dans des tableaux la signification des différentes utilisations des broches de Atmega328. 4- Le AVR CPU: Le ATmega328P est un microcontrôleur 8 bits, d’architecture RISC et à technologie CMOS, à faible consommation en puissance. Le noyau AVR CPU combine un riche jeu d’instruction et 32 registres de travail à usage général. Tous les 32 registres sont directement connectés à l'unité arithmétique et logique (ALU) , permettant à deux indépendants registres d’être accessible en une seule instruction exécutée en un seul cycle d'horloge. Schéma bloc de la structure interne du AVR CPU : 5 5- Le WDT : Watchdog timer : ATmega328P possède une horloge de surveillance renforcée (WDT). Le WDT est une minuterie à compter des cycles de 128 kHz délivrés par un oscillateur réalisé sur une puce interne. Le WDT génère une interruption ou une réinitialisation du système lorsque le compteur atteint une valeur de délai d'attente donnée. En mode de fonctionnement normal, il est nécessaire que le système utilise l’instruction WDR: Watchdog Timer Reset pour redémarrer le compteur avant que la valeur de délai d'attente est atteinte. Si le système ne redémarre pas le compteur, une interruption ou une réinitialisation du système sera émise. 6- Programmation du microcontrôleur : La programmation en assembleur du microcontrôleur nécessite de bien maitriser le fonctionnement des différents registres internes au CPU et les registres de configuration des port E/S (DDRX, PORTX, PINX) et leurs adresses, les registres de programmation des timers/compteurs, des registres de validation des interruptions de différente nature, l’horloge de l’oscillateur à quartz, le watchdog….. Pour une cela on s’intéressera à la programmation de ce microcontrôleur dans l’environnement Arduino. 7- Correspondance microcontrôleur et brochages sur la carte arduino : 6 8- Structure d’un programme écrit en langage Arduino : Un programme utilisateur Arduino est une suite d’instructions élémentaires sous forme textuelle, ligne par ligne. La carte lit puis effectue les instructions les unes après les autres, dans l’ordre défini par les lignes de code. Pour écrire un programme on suit les étapes suivantes : 1) déclaration des constantes et des variables : int ledPin=13 ; // LED connectée à la broche 13 : ce qui se trouve à prés le point virgule précédé par // constitue un commentaire sur une ligne. Si on a besoin d’un commentaire sur plusieurs lignes, on écrit au début de la ligne ceci : /*ce programme fait clignoter une LED branchée sur la broche 13 *et fait également clignoter la Led test de la carte */ 2) la configuration des entrées et sorties : void setup() : exemple void setup() { pinMode(ledPin, OUTPUT) ; //configure la ledPin comme une sortie } 3) la programmation des interactions et comportements : void loop() exemple void loop() { digitalWrite(ledPin,HIGH) ;// met la sortie à l’état haut (led allumée) delay(3000) ; //attente de 3 secondes digitalWrite(ledPin,LOW) ; //met la sortie à l’état bas (led éteinte) delay(1000) ; //attente de 1 seconde } Une fois la dernière ligne exécutée, la carte revient au début de la troisième étape et recommence sa lecture et son exécution des instructions successives. Et ainsi de suite. Cette boucle se déroule des milliers de fois sans arrêt. 2ème exemple de commande par microcontrôleur : 7 3ème exemple : commande du moteur mais alimenter par 220V 4ème exemple : commande d’un moteur pas à pas unipolaire Séquence de commande pour pas entier Position angulaire du rotor Bobine1 Bobine2 Bobine3 Bobine4 0 degré 0 0 0 1 90 degré 0 0 1 0 180 degré 0 1 0 0 270 degré 1 0 0 0 Remarque : ici on a considéré qu’un pas correspond à 90 degrés, en pratique on peut aller jusqu’à 400 pas par tour ce qui donne 0.9degré par pas. 8 ANNEXE 9 uploads/Management/ partie3-microcontroleur-s4-e2i.pdf
Documents similaires










-
23
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 23, 2021
- Catégorie Management
- Langue French
- Taille du fichier 0.6156MB