La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 II2/AVR II2 - Microcontroleur  Introduction  Famille ATMEL AVR8bits  ATMega16  Organisation Mémoire  Architecture CPU  Modes d'adressage et jeu.

Présentations similaires


Présentation au sujet: "1 II2/AVR II2 - Microcontroleur  Introduction  Famille ATMEL AVR8bits  ATMega16  Organisation Mémoire  Architecture CPU  Modes d'adressage et jeu."— Transcription de la présentation:

1 1 II2/AVR II2 - Microcontroleur  Introduction  Famille ATMEL AVR8bits  ATMega16  Organisation Mémoire  Architecture CPU  Modes d'adressage et jeu d'instructions  Interface Mémoire  Port d'E/S, //, timer, périphériques....  Liaison série  Fonctions, Interruptions,...

2 2 II2/AVR Périphériques  E/S numériques  Timers/counters/PWM/RTC  Liaison sarie  SPI,I2C, RS232, USB  E/S analogique  Watchdog  Eeprom...  Périphériques dédiés à des applications (DALI, Radio Zigbee 2.4Ghz, LCD,

3 3 II2/AVR Principes généraux  Tous les périphériques internes sont « configurables » par l'intermédiaire des registres d'I/O (0x20 0x5F)  Plusieurs périphériques peuvent partager une même pin  La plupart des périphériques peuvent fonctionner en mode d'interruption :  Le périphérique peut « interrompre » le CPU pour signaler un événement Par exemple :  Un front descendant est arrivé sur une entrée numérique  Un timer à expiré, une donnée est arrivée sur un port série etc....

4 4 II2/AVR ATMega 16

5 5 II2/AVR Ports entrées/sorties 8 bits Bidirectionnels bits a bits Résistance de Pull up internes 4 ports (Port A.. Port D) sur un Atmega 16

6 6 II2/AVR Ports E/S numériques  3 registres PORTx, DDRx, PINx par port  Bit 0 des registres => PORTx0,DDRx0, PINx0  @ des registres définies dans

7 7 II2/AVR Ports E/S numériques  DDRx = Data Direction Register (R/W)‏  Bit DDRxn= '1' ==> la pin correspondante est une sortie  Bit DDRxn= '0' ==> la pin correspondante est une entrée  PORTx = Registre de PORT(R/W)‏  Si le port est configuré en sortie (DDRx=1)‏  PORTxn ='1' ==> +5V  PORTxn ='0' ==> 0V  Si le port est configurée en entrée (DDRx=0)‏  PORTxn ='0' ==> Entrée haute impédance  PORTxn ='1' ==> Résistance pull up  PINx = registre PIN (R seulement)‏  Si PINxn = '1', la pin est au niveau 5V  Si PINxn = '0', la pin est au niveau 0V  ATTENTION : C'est vrai aussi si PORTxn est une sortie

8 8 II2/AVR Ports E/S numériques  Exemples DDRB = 0x0F;  PB7 à PB4 en entrées  PB3 à PB0 en sorties PORTB = 0x0C;  Vpin3 = Vpin2 = 5V  Vpin1 = Vpin1 = 0V

9 9 II2/AVR Ports E/S numériques  Exemple sortie  Vpin3 = Vpin2 = 5V Id = 0mA, LED éteintes  Vpin1 = Vpin1 = 0V Id = (5-2)/470 =6mA LED allumées Remarque :  Max 20mA/pin  Max 100mA/port  Max 200mA pout Boitier DIP  PORTB = 0x0C;

10 10 II2/AVR Ports E/S numériques  Exemple entrée unsigned char etat ; DDRD = 0x00; etat = PIND;  PB7 à PB0 en entrées  etat_x = 1 si 5V  etat_x = 1 si 0V  Si BP enfoncé 0V OK  Si BP relâché  5V pour PD0 (Résistance Pull Up)‏  ???? pour PD1 a PD3 !!!!

11 11 II2/AVR Résistance de pull UP  Si nécessaire (BPoussoirs) mais pas obligatoire (tension entrée imposée par un signal)‏  Résistance de pull up interne  Activable bit a bit PORTx='1'  Désactivables globalement (4ports*8bits) par le bit PUD (PullUp Disable) du registre SFIOR

12 12 II2/AVR Port E/S

13 13 II2/AVR DDRxn=1,PORTxn=0 1 1 0 1 DDRxn='1' PORTxn='0' 1 0 000 0V

14 14 II2/AVR DDRxn=0,PORTxn=0 0 0 1 DDRxn='0' PORTxn='0' 0 0 5V Etat =PINxn 1

15 15 II2/AVR Timers/Counters  Gestion du temps /Compteurs/Génération signaux périodiques  ATMega 16  3 Timers/Counters  Timer 0,Timer 2 => 8bits  Timer 1 => 16bits  Entrée de comptage choisie parmi 7  5 internes (Clk,clk/8,clk/64, clk/256, clk/1024)‏  1 externe (front montant ou descendant)‏  Nombreux modes de fonctionnement  Génération de signaux possible (OC0, OCA1,OCB1...)‏

16 16 II2/AVR Timers/Counters 0

17 17 II2/AVR Timers/Counters  4 Registres IO pour Timer 0  TCCR0 = Timer Counter Control Reg0  Contrôle les modes de fonctionnement  TCNT0 = TimerCouNTer 0  Registre de comptage  OCR0 = Output Compare Reg 0  Valeur de comparaison (avec TCNT0)  TIFR = Timer Interrupt Flag Register  2 bits importants :  TOV0 : TCNT0 vient de déborder 0xFF-->0x00  OCF0 : TCNT0 = OCRS0

18 18 II2/AVR Timers/Counters  TCCR0 = Timer Counter Control Reg0  Contrôle les modes de fonctionnement  CS02:CS00  Sélection de l'horloge de comptage

19 19 II2/AVR Timers/Counters  WGM01:WGM00  Modes de fonctionnement Mode 0 : Delai (TCNT0-->0xFF) Mode 2 : Horloge périodique (0-->OCR0

20 20 II2/AVR Timer 0 MODE 0 WGM00=WGM01=0  CS02:CS00 = '011' => Fclk/8 0xFF0x010x000xFE OVERFLOW 1

21 21 II2/AVR Timer 0 MODE 0 WGM00=0,WGM01=0  CS02:CS00 = '011' => Fclk/8  OCR0=0x53 0x53 0x55 0x540x52 COMPARE OCR=TCNT = 1 =0x53

22 22 II2/AVR Timer 0 MODE 2 (CTC) WGM00=0,WGM01=1  CTC = Clear Timer on Compare  OCR0=0x53 0x53 0x01 0x000x52 COMPARE OCR=TCNT = 1 =0x53

23 23 II2/AVR Timer 1  Idem Timer 0 sauf  Timer 16 bits  2 unités de comparaison 16 bits  10 registres de configurations

24 24 II2/AVR Timer 1


Télécharger ppt "1 II2/AVR II2 - Microcontroleur  Introduction  Famille ATMEL AVR8bits  ATMega16  Organisation Mémoire  Architecture CPU  Modes d'adressage et jeu."

Présentations similaires


Annonces Google