1 / 35

POLITECHNIKA POZNAŃSKA

POLITECHNIKA POZNAŃSKA. STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH LAB. WBMiZ Zakład Urządzeń Mechatronicznych. GRZEGORZ.PITTNER@PUT.POZNAN.PL. Urządzenia mechatroniczne. Mechanika. Elektronika. ?. Co nimi steruje?. Co to jest mikrokontroler?. Co to jest mikroprocesor?. 0 1. ?. 0 1.

tocho
Télécharger la présentation

POLITECHNIKA POZNAŃSKA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. POLITECHNIKA POZNAŃSKA STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH LAB WBMiZZakład Urządzeń Mechatronicznych GRZEGORZ.PITTNER@PUT.POZNAN.PL

  2. Urządzenia mechatroniczne Mechanika Elektronika ?

  3. Co nimi steruje?

  4. Co to jest mikrokontroler?

  5. Co to jest mikroprocesor? 0 1 ? 0 1 ?

  6. Co to jest mikroprocesor? • Mikroprocesor przetwarza sygnały wejścia na sygnały wyjścia według wcześniej zdefiniowanego programu • Sam mikroprocesor jest zdolny jedynie do cyfrowych operacji logicznych, nie jest on zdolny do sterowania maszynami mechanicznymi ani nie cyfrowymi układami elektronicznymi • Aby mikroprocesor mógł sterować maszyną należy doposażyć go w tzw. peryferia • Mikroprocesor + peryferia = mikrokontroler

  7. Standardowe peryferia wewnętrzne mikrokontrerów • Zegar wewnętrzny (generator RC) • GPIO • TIMER/COUNTER • INT (zwane także EXTI) • ADC • PWM • Pamięć RAM • Pamięć Flash • Pamięć EEPROM • Interface’y komunikacyjne (SPI, UART, USART, I2C, CAN) • Watchdog • DAC • I inne…

  8. Harmonogram Laboratorium 0) Zajęcia organizacyjne • GPIO • INT (EXTI) • TIM/CNT • PWM • ADC • Kolokwium • www.zum.put.poznan.pl

  9. Ocena • Wejściówki: • mogą pojawić się na każdym ćwiczeniu w formie ustnej bądź pisemnej • Osoba, która z uwagi na nieobecność nie pisała wejściówki jest zobligowana do napisania jej w terminie późniejszym • Sprawozdania: • indywidualnie • Sprawozdanie jest przyjmowane, na „+”, na „-” bądź na „0”. • Plusy za aktywność oraz za samodzielność podczas ćwiczeń • Kolokwium końcowe z całości materiału poznanego na lab. • Ocena końcowa to średnia ważona ocen z wejściówek z wagą 1 oraz oceny z kolokwium z wagą 2 • W sytuacjach wyjątkowych dopuszczane jest zwolnienie z kolokwium na podstawie ocen z wejściówek i zebranych plusów z ćwiczeń.

  10. Ocena c.d. • Nie możliwe jest ocenienie działania software’u bez wiedzy o działaniu hardware’u. Dlatego też prawidłowa odpowiedź na wejściówce bądź kolokwium musi zawierać pełne informacje o obu sferach aplikacji. • Na zajęciach obowiązuje podstawowa znajomość języka C (a ściślej ANSI C) • Na zajęciach programujemy w języku GCC.

  11. Literatura: Wydawnictwo BTC: • „Mikrokontrolery AVR ATmega w praktyce” • „Mikrokontrolery AVR w praktyce” • „Mikrokontrolery AVR - niezbędnik programisty” • „Mikrokontrolery dla początkujących” • „Sztuka programowania mikrokontrolerów AVR – podstawy” • „Sztuka programowania mikrokontrolerów AVR – przykłady”

  12. MCU na zajęciach • 8 bit • Producent MCU: ATMEL • Rodzina MCU: AVR • Podrodzina MCU: ATmega • Model MCU: ATmega128 • Środowisko IDE: • AVR studio (freeware) • WinAVR : AVR-GCC for Windows (freeware) • Nota katalogowa • google:„ATmega128.pdf” • pobrać:„doc2467.pdf” (ENG, 386str.)

  13. Pytania odnośnie zaliczenia bądź formy prowadzenia zajęć?

  14. GPIO • General PurposeInput / Output • GPIO w mikrokontrolerze podzielone są na grupy logiczne zwane PORT • Pojedynczą nóżkę GPIO nazywamy PIN • Porty znakowane są literami np.: PORTA, PORTB, itd… • Piny są numerowane od 0 do 7 (dla MCU 8 bit) • Aby zaadresować GPIO podaje się port i pin np.: PORTA, pin1 lub prościej PA1 (czyli druga nóżka portu A) • GPIO może przyjąć jedynie 2 stany logiczne 0 lub 1 • Dla stanu 0 potencjał na danej nóżce wynosi 0[V], a dla stanu 1 potencjał wynosi 5[V] (wg. standardu TTL)

  15. GPIO • Aby sterować GPIO ustawia się tzw. 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=0b00000010; • Decymalnie: REJESTR=10; • Heksadecymalnie: REJESTR=0x10;

  16. software: 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=0b00011000;

  17. software: 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])

  18. software: 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.

  19. hardware: Podłączenie WYJŚCIA • Maksymalna obciążalność prądowa GPIO dla ATmega128 wynosi 40mA • Suma wszystkich prądów mikrokontrolera ATmaga128 nie może przekroczyć 200mA • PORTA=0b00000010; • PORTA=0b00000100; • PORTA=0b00000000; • PORTA=0b00000110; ? +5V R D1 PA1 PA2 R D2 GND

  20. hardware: Podłączenie WEJŚCIA • Maksymalna obciążalność prądowa GPIO dla ATmega128 wynosi 40mA • Pin 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” +5V PA3 R GND

  21. R Rwew. +5V +5V R R≈0 PA3 PA3 Rwew. GND GND

  22. Przykład: przycisk + LED Software: voidmain(void) { DDRA=0b00000100; DDRB=0; • PORTA=0b00000000; • PORTB=0b00000000; • while(1) • { • if(PINB!=0) PORTA=0b00000100; • else PORTA=0b00000000; • } } Hardware: R D1 SW1 +5V PA2 PB3 R GND GND

  23. Maski bitowe • & iloczyn bitowy • | suma bitowa • ~ negacja • ^ XOR • << przesuwanie bitowe w prawo • >> przesuwanie bitowe w lewo

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

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

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

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

  28. << (przesuwanie bitowe) >> Bitowo: X<<Y = Z 145dec 2dec 68dec • Bitowo: • 145<<2=145*4=580=68 (przepełnienie unsigned char)

  29. Dostęp bitowy • PORTA=0b000001000; //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^=0b00001111; //neguje 4 piny źle //nie kasuje pinu

  30. Przykład 2 Software: Hardware: voidmain(void) { DDRA=0b00000110; //we/wy • PORTA=0b00000000; //stan pocz. • while(1) • { //pętla główna • if(PINA&0b00000001==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 R R D1 D2 +5V PA0 PA1 PA2 R GND GND GND

  31. ułatwienie • Zapis „PINA&0b00000001” 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 <avr/io.h>

  32. Przykład 2 Software: #include <avr/io.h> voidmain(void) { DDRA=0b00000110; //we/wy • PORTA=0b00000000; //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 • } • } } Hardware: SW1 R R D1 D2 +5V PA0 PA1 PA2 R GND GND GND

  33. programowanie PC Program *.c biblioteki *.h kompilacja Kod maszynowy *.hex USB PCB MCU Programator JTAG lub ISP Pamięć FLASH Interface JTAG lub ISP

  34. Pytania? www.zum.put.poznan.pl

  35. dziękuję I proszę o sporządzenie listy osób wg poniższego przykładu

More Related