Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH

Podobne prezentacje


Prezentacja na temat: "POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH"— Zapis prezentacji:

1 POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH

2 GPIO

3 General Purpose Input / Output Jest to podstawowe peryferium służące do komunikacji MCU z układami zewnętrznymi. GPIO może być wejściem lub wyjściem sygnału. GPIO jest urządzeniem cyfrowym ( 0 / 1). Spotykane są GPIO w standardzie: – TTL (0 – 5 V), – CMOS (0 – 3.3 V).

4 Budowa GPIO

5 Oznaczenia GPIO GPIO w mikrokontrolerze podzielone są na grupy logiczne zwane PORT. Pojedynczą nóżkę GPIO nazywamy pinem Porty znakowane są literami A,B,C… np.: PORTA, PORTB, itd… Piny są numerowane od 0 do 7 (dla MCU 8 bit) Aby zaadresować GPIO podaje się port i numer pinu np.: PORTA, pin1 lub prościej PA1 (czyli druga nóżka portu A)

6 GPIO Aby sterować GPIO ustawia się rejestry konfiguracyjne Rejestry konfiguracyjne dla 8 bitowych MCU są 8 bitowymi zmiennymi (unsigned char) W języku GCC zapis rejestru wygląda następująco: – Binarnie: REJESTR=0b ; – Decymalnie: REJESTR=10; – Heksadecymalnie: REJESTR=0x10;

7 DDRx: Rejestr kierunkowy 0 na danej pozycji rejestru oznacza, że odpowiadający pin jest traktowany jako WEJŚCIE 1 na danej pozycji rejestru oznacza, że odpowiadający pin jest traktowany jako WYJŚCIE DDRC=0b ; software:

8 Budowa GPIO

9 PORTx – rejestr WYJŚCIA 0 na danej pozycji rejestru oznacza, że odpowiadający pin ustawiony w stan logicznego 0 (potencjał 0[V]) 1 na danej pozycji rejestru oznacza, że odpowiadający pin ustawiony w stan logicznego 1 (potencjał 5[V]) software:

10 Budowa GPIO

11 PINx – rejestr WEJŚCIA Uwaga! Nazwa rejestru PINx może być mylona ze słowem „pin” opisującego potocznie „nóżkę” układu scalonego w j. ang. Jest to rejestr tylko do odczytu. 0 na danej pozycji rejestru oznacza, że przez odpowiadający pin nie płynie prąd. 1 na danej pozycji rejestru oznacza, że przez odpowiadający pin płynie prąd. software:

12 Podłączenie WYJŚCIA Maksymalna obciążalność prądowa GPIO jest ograniczona (dla ATmega128 wynosi 15-50mA w zależności od wersji i sposobu pracy) Suma wszystkich prądów mikrokontrolera ATmaga128 nie może przekroczyć wartości podanej przez producenta (ok mA dla ATmega128 w zależności od wersji i sposobu pracy) hardware: PA1 PA2 GND +5V R R PORTA=0b ; PORTA=0b ; PORTA=0b ; PORTA=0b ; D1 D2

13 Maksymalna obciążalność prądowa GPIO jest ograniczona. 1Pin należy podłączyć tak aby prąd przepływał bądź aby był uziemiony Istnieje kilka możliwych rozwiązań – Pull-up zewnętrzny – Pull-up wewnętrzny – Pull-down zewnętrzny – Pull-down wewnętrzny – Floating Na potrzeby zajęć będziemy używać jedynie podłączenia „pull-up zewnętrzny” hardware: Podłączenie WEJŚCIA PA3 R +5V GND

14 Budowa GPIO

15 PA3 R +5V GND PA3 R +5V GND R wew. R≈0

16 Jeśli GPIO jest wejściem i ustawimy rejestr PORTx na odpowiedniej pozycji w stan 1 to załączony zostanie pull-up wewnętrzny.

17 PA3 R +5V GND

18

19 Przykład: przycisk + LED Hardware: PA2 GND R D1 PB3 R +5V GND Software: void main(void) { DDRA=0b ; DDRB=0; PORTA=0b ; PORTB=0b ; while(1) { if(PINB!=0) PORTA=0b ; else PORTA=0b ; } SW1

20 Maski bitowe &iloczyn bitowy |suma bitowa ~negacja ^XOR >>przesuwanie bitowe w prawo <

21 & (iloczyn) Bitowo: X & Y = Z X Y Z dec 10dec 2dec Bitowo: 18 & 10 = 2 Logicznie: 18 && 10 = 1 (prawda i prawda = prawda)

22 | (suma) Bitowo: X | Y = Z X Y Z dec 9dec 25dec Bitowo: 17 | 9 = 25 Logicznie: 17 || 9 = 1 (prawda lub prawda = prawda)

23 ~ (negacja) Bitowo: ~X X ~X dec 238dec Bitowo: ~17=238 Logicznie: !17 =0 (nie prawda = fałsz)

24 ^ (XOR) Bitowo: X ^ Y = Z X Y Z dec 9dec 12dec Bitowo: 17 ^ 9 = 12 Logicznie: brak odpowiednika w języku ANSI C

25 > Bitowo: X<

26 Dostęp bitowy PORTA=0b ;//ustawia cały port PORTA=(1<<3);//ustawia cały port PORTA=PORTA|(1<<3);//ustawia jeden pin PORTA|=(1<<3);//prościej PORTA&=(1<<3); PORTA&=~(1<<3);dobrze//kasuje pin PORTA^=0xFF;//neguje cały port PORTA^=0b ;//neguje 4 piny źle//nie kasuje pinu

27 Przykład 2 Hardware: PA1 GND R D1 PA0 R +5V GND Software: void main(void) { DDRA=0b ; //we/wy PORTA=0b ; //stan pocz. while(1) { //pętla główna if(PINA&0b ==1) //warunek we. { //jeśli prawda PORTA|=(1<<1); //ustaw 1 na poz. 1 PORTA&=~(1<<2); //ustaw 0 na poz 2 } else { //jeśli fałsz PORTA&=~(1<<1); //ustaw 0 na poz. 1 PORTA|=(1<<2); //ustaw 1 na poz. 2 } SW1 PA2 GND R D2

28 ułatwienie Zapis „PINA&0b ” można zastąpić w języku GCC komendą: bit_is_set(REJESTR,POZYCJA) Np.. If(bit_is_set(PINA,0)) {…} Dostępna jest też komenda bit_is_clear(REJESTR,POZYCJA) Komendy te znajdują się w bibliotece #include

29 Przykład 2 Hardware: PA1 GND R D1 PA0 R +5V GND Software: #include void main(void) { DDRA=0b ; //we/wy PORTA=0b ; //stan pocz. while(1) { //pętla główna if(bit_is_set(PINA,0)) //warunek we. { //jeśli prawda PORTA|=(1<<1); //ustaw 1 na poz. 1 PORTA&=~(1<<2); //ustaw 0 na poz 2 } else { //jeśli fałsz PORTA&=~(1<<1); //ustaw 0 na poz. 1 PORTA|=(1<<2); //ustaw 1 na poz. 2 } SW1 PA2 GND R D2

30 Synchronizacja wejścia

31 Synchronizacja wyjścia

32 Funkcje alternatywne

33 zwłoka

34 Pytania?

35 Dziękuję (lista)


Pobierz ppt "POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH"

Podobne prezentacje


Reklamy Google