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

Slides:



Advertisements
Podobne prezentacje
Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Advertisements

Teoria układów logicznych
Język ANSI C Funkcje Wykład: Programowanie komputerów
Architektura systemów komputerowych
PRZERZUTNIKI W aktualnie produkowanych przerzutnikach scalonych TTL wyróżnia się dwa podstawowe rodzaje wejść informacyjnych: - wejścia asynchroniczne,
Układy komutacyjne.
Wykład 4 Przetwornik Analogowo-Cyfrowy
Układy cyfrowe Irena Hoja Zespół Szkół Łączności
Język ANSI C Operacje we/wy
Praca dyplomowa inżynierska
Architektura komputerów
1-Wire® Standard 1-Wire®, zwany też czasami siecią MicroLAN, oznacza technologię zaprojektowaną i rozwijaną przez firmę Dallas Semiconductor polegającą.
Bramki Logiczne.
Elektronika cyfrowa i mikroprocesory
Kod Graya.
Podstawy programowania
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
MCS51 - wykład 2.
Podstawy układów logicznych
Programowalny układ we/wy równoległego.. Wyprowadzenia układu.
POLITECHNIKA POZNAŃSKA
Wyświetlacze LED.
Układy rejestrów cyfrowych
Funkcje logiczne i ich realizacja. Algebra Boole’a
POLITECHNIKA POZNAŃSKA
Opracował : Przemysław Drzymała
Cyfrowe układy logiczne
W układach fizycznych napięcie elektryczne może reprezentować stany logiczne. Bramką nazywamy prosty obwód elektroniczny realizujący funkcję logiczną.
Sekwencyjne bloki funkcjonalne
Zasada działania komputera
PEŁNA KONTROLA NAD POBOREM MOCY
MAGISTRALE: - ISA - EISA - PCI - SCSI GARSKI KAROL ŁOSIK PAWEŁ.
Podstawy programowania w języku C i C++
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Systemy liczbowe.
Elżbieta Fiedziukiewicz
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
12. Input Capture – Wejście przechwytywania
Składnia pętli do … while do instrukcja while (wyrażenie); gdzie: instrukcja – instrukcja pojedyncza lub blok instrukcji wyrażenie – wyrażenie przyjmujące.
PODSTAWOWE BRAMKI LOGICZNE
Złożone układy kombinacyjne
Jak komputer dane mieli
Zintegrowany sterownik przycisków. Informacje podstawowe Każdy przycisk jest podłączony do sterownika za pośrednictwem dwóch przewodów, oraz dwóch linii.
URZĄDZENIA TECHNIKI KOMPUTEROWEJ
T. 3. Arytmetyka komputera. Sygnał cyfrowy, analogowy
Konstrukcja i oprogramowanie
Przerzutniki Przerzutniki.
Struktura wewnętrzna mikrokontrolera zamkniętego
Zasady arytmetyki dwójkowej
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH LAB CMBiN p.209.
STM32F429I Discovery WARSZTATY DLA STUDENCKIEGO KOŁA NAUKOWEGO CHIP.
Przerwania timera i przerwania zewnętrzne
Stworzenie projektu w cubemx i kontunuacja w sw4stm32
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
PWM, obsługa wyświetlacza graficznego
1 Opisy funkcji Adres strony WWW : html (należy odszukać hyperlink Function Index) (
Sumator i półsumator.
POLITECHNIKA POZNAŃSKA
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH
Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C
POLITECHNIKA POZNAŃSKA
Wstęp do Informatyki - Wykład 6
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Moduły Telemetryczne Pierwsze Kroki
Opisy funkcji Adres strony WWW :
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Transmisja radiowa Arduino & nRF24L01P
Zapis prezentacji:

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

GPIO

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).

Budowa GPIO

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)

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;

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:

Budowa GPIO

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:

Budowa GPIO

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:

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

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

Budowa GPIO

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

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

PA3 R +5V GND

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

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

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

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

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

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

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

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

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

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

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

Synchronizacja wejścia

Synchronizacja wyjścia

Funkcje alternatywne

zwłoka

Pytania?

Dziękuję (lista)