Partie3 Microcontroleur s4 e2i

Embed Size (px)

DESCRIPTION

utilisation du microcontrôleur atmeg328 dans la carte arduino uno

Citation preview

  • 1

    Partie3 : B : Le microcontrleur : Nous avons choisi le microcontrleur Atmega328 datmel autour duquel est ralise la carte arduino uno que nous avons utilis en travaux pratiques dinitiation aux systmes programmables.

    Un microcontrleur est un circuit intgr (VLSI :Very Large Scale Integration) qui regroupe

    lui seul un microprocesseur, des mmoires est des circuits interfaces pour le dialogue ou

    changes dinformations avec ses priphrique (le monde extrieur).

    1- Caractristique techniques gnrales du circuit :

    Cest un microcontrleur ATMEL de la famille AVR 8bits, il a les caractristiques suivantes:

    1 mmoire FLASH = mmoire programme de 32Ko

    1 mmoire SRAM = mmoire donnes (volatiles) 2Ko

    1 mmoire EEPROM = donnes (non volatiles) 1Ko

    3 Ports entres-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 gnrer deux signaux PWM. (6 broches OCxA/OCxB) , x=0 ou 1

    ou 2.

    1Convertisseur analogique numrique 10bits canaux multiplxs.

    Gestion de linterface I2C (TWI Two Wire Interface)

    Gestion de linterface (USART) = mission/rception srie via les broches TXD/RXD

    Gestion de linterface SPI

    Comparateur Analogique qui peut dclencher des interruptions.

    Watchdog Timer (chien de garde) programmable.

    2- Synoptique interne du circuit Atmega328:

  • 2

    3- Boitier (vue externe):

    a- Botier

    Port C

    Port B

    Port D

  • 3

    Descriptions des broches Certaines broches peuvent avoir

    plusieurs fonctions diffrentes

    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'entre-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 : cun protocole de communication srie synchrone utilis pour la communication du microcontrleur avec un autre composant (ou un autre microcontrleur)

    sur des courtes distances.

    La liaison SPI utilise 3 lignes :

    MISO (patte PB4) : Master Input Slave Output, PB4 est une entre.

    MOSI (patte PB3) : Master Output Slave Input, PB3 est une sortie.

    SCK (patte PB5) : Serial Clock horloge gnre par le Master ici le microcontrleur.

    Port C (PC6.. PC0) le Port C est un port d'entre-sortie 7 bits bidirectionnel. Il sert aussi

    comme oscillateur pour le Timer/Compteur2 et dinterface I2C. Linterface I2C est une interface qui sert pour la communication entre le microcontrleur et un autre composant en mode srie synchrone en utilisant que 2 fils :

    SCL Serial Clock (patte PC5) gnre par le maitre ici cest toujours le microcontrleur et le fil

    SDA Serial Data (patte PC4) bidirectionnel pour la transmission et la rception.

    Le port C sert aussi dentres analogiques au convertisseur analogique numrique de 10 bits. Ce CAN peut recevoir 8 voies analogiques multiplexes.

    Port D (PD7.. PD0) le Port D est un port d'entre-sortie 8 bits bidirectionnel. Il sert aussi

    dUSART et dentres pour les interruptions externes.

    RESET dclench par un front descendant maintenue plus de 50 ns il produira le Reset du

    microcontrleur, mme si l'horloge ne court pas.

    XTAL1 Entre de l'oscillateur externe ou libre pour l'horloge interne.

    XTAL2 Production de l'amplificateur d'oscillateur.

    AVCC est une broche de tension dalimentation pour le Convertisseur A/D qui doit tre connecte VCC via un filtre passe-bas pour viter les parasites.

    AREF est l'entre de rfrence 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 spare de la masse gnrale, brancher

    cette broche sur la masse analogique, sinon, connecter cette broche la masse gnrale GND.

    b- Spcification des broches

  • 4

    VCC broches d'alimentation du microcontrleur (+3 +5V).

    GND masse de lalimentation.

    En annexe vous trouverez dans des tableaux la signification des diffrentes utilisations des

    broches de Atmega328.

    4- Le AVR CPU:

    Le ATmega328P est un microcontrleur 8 bits, darchitecture RISC et technologie CMOS, faible consommation en puissance.

    Le noyau AVR CPU combine un riche jeu dinstruction et 32 registres de travail usage gnral. Tous les 32 registres sont directement connects l'unit arithmtique et logique

    (ALU) , permettant deux indpendants registres dtre accessible en une seule instruction excute en un seul cycle d'horloge.

    Schma bloc de la structure interne du AVR CPU :

  • 5

    5- Le WDT : Watchdog timer :

    ATmega328P possde une horloge de surveillance renforce (WDT). Le WDT est une

    minuterie compter des cycles de 128 kHz dlivrs par un oscillateur ralis sur une puce

    interne. Le WDT gnre une interruption ou une rinitialisation du systme lorsque le

    compteur atteint une valeur de dlai d'attente donne.

    En mode de fonctionnement normal, il est ncessaire que le systme utilise linstruction WDR: Watchdog Timer Reset pour redmarrer le compteur avant que la valeur de dlai

    d'attente est atteinte. Si le systme ne redmarre pas le compteur, une interruption ou une

    rinitialisation du systme sera mise.

    6- Programmation du microcontrleur :

    La programmation en assembleur du microcontrleur ncessite de bien maitriser le

    fonctionnement des diffrents 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 diffrente nature, lhorloge de loscillateur quartz, le watchdog..

    Pour une cela on sintressera la programmation de ce microcontrleur dans lenvironnement Arduino.

    7- Correspondance microcontrleur et brochages sur la carte arduino :

  • 6

    8- Structure dun programme crit en langage Arduino : Un programme utilisateur Arduino est une suite dinstructions lmentaires sous forme

    textuelle, ligne par ligne. La carte lit puis effectue les instructions les unes aprs les autres,

    dans lordre dfini par les lignes de code.

    Pour crire un programme on suit les tapes suivantes :

    1) dclaration des constantes et des variables :

    int ledPin=13 ; // LED connecte la broche 13 : ce qui se trouve prs le

    point virgule prcd par // constitue un commentaire sur une ligne. Si on a besoin

    dun commentaire sur plusieurs lignes, on crit au dbut de la ligne ceci :

    /*ce programme fait clignoter une LED branche sur la broche 13

    *et fait galement clignoter la Led test de la carte

    */

    2) la configuration des entres 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 ltat haut (led allume)

    delay(3000) ; //attente de 3 secondes

    digitalWrite(ledPin,LOW) ; //met la sortie ltat bas (led teinte)

    delay(1000) ; //attente de 1 seconde

    }

    Une fois la dernire ligne excute, la carte revient au dbut de la troisime tape et

    recommence sa lecture et son excution des instructions successives. Et ainsi de suite. Cette

    boucle se droule des milliers de

    fois sans arrt.

    2me

    exemple de commande par

    microcontrleur :

  • 7

    3me

    exemple : commande du moteur mais alimenter par 220V

    4me exemple : commande dun moteur pas pas unipolaire

    Squence 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 considr quun pas correspond 90 degrs, en pratique on peut aller jusqu 400 pas par tour ce qui donne 0.9degr par pas.

  • 8

    ANNEXE

  • 9