Komunikacja w mikrokontrolerach. Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski

Podobne dokumenty
Mikroprocesory i Mikrosterowniki

Mikroprocesory i Mikrosterowniki

Mikroprocesory i mikrosterowniki

Komunikacja w mikrokontrolerach. Podstawy programowania. Wydział Elektroniki Mikrosystemów i Fotoniki dr inż. Piotr Markowski

Podstawy Techniki Mikroprocesorowej

SYSTEM PRZERWAŃ ATmega 32

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

Mikrokontrolery AVR Wprowadzenie

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

Wbudowane układy peryferyjne cz. 1 Wykład 7

PROGRAMOWALNE SYSTEMY MECHATRONIKI

Komunikacja w mikrokontrolerach Laboratorium

MIKROKONTROLERY I MIKROPROCESORY

2. Architektura mikrokontrolerów PIC16F8x... 13

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Systemy wbudowane Mikrokontrolery

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

System mikroprocesorowy i peryferia. Dariusz Chaberski

Wykład Mikroprocesory i kontrolery

Wstęp Architektura... 13

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Mikroprocesory i Mikrosterowniki Analog-Digital Converter Konwerter Analogowo-Cyfrowy

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

WPROWADZENIE Mikrosterownik mikrokontrolery

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Komunikacja w mikrokontrolerach Laboratorium

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Mikrokontroler AVR ATmega32 - wykład 9

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Wykład 3. Przegląd mikrokontrolerów 8-bit: STM8

Dokumentacja mikrokontrolera Atmega16 firmy Atmel

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Wykład Mikrokontrolery i mikrosystemy Cele wykładu:

Wykład 2. Mikrokontrolery z rdzeniami ARM

Układy zegarowe w systemie mikroprocesorowym

Programowanie mikrokontrolerów. 5 grudnia 2007

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Mikroprocesory i Mikrosterowniki Laboratorium

Technika Mikroprocesorowa

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Programowanie Mikrokontrolerów

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

Komunikacja w mikrokontrolerach Laboratorium

Podstawy techniki mikroprocesorowej. Dr inż. Grzegorz Kosobudzki p.311a A-5. Tel

Systemy wbudowane. Paweł Pełczyński

Schemat blokowy procesora rdzeniowego ATmega16. Głównym zadaniem JC jest zapewnienie poprawnego i szybkiego wykonywania programu.

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Elementy składoweµc - przypomnienie

MCAR Robot mobilny z procesorem AVR Atmega32

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

ŚRODOWISKO PROTOTYPOWANIA SP AVR

Programowanie mikrokontrolerów. 8 listopada 2007

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

Charakterystyka mikrokontrolerów

Metody obsługi zdarzeń

Szkolenia specjalistyczne

Układy zegarowe w systemie mikroprocesorowym

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Organizacja typowego mikroprocesora

Przerwania, polling, timery - wykład 9

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Stanowisko laboratoryjne dla mikrokontrolera Atmega16 firmy Atmel

Instytut Teleinformatyki

Programowanie mikrokontrolerów AVR

Techniki mikroprocesorowe i systemy wbudowane

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Komunikacja w mikrokontrolerach Laboratorium

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Hardware mikrokontrolera X51

Opis funkcjonalny i architektura. Modu³ sterownika mikroprocesorowego KM535

Wbudowane układy peryferyjne cz. 3 Wykład 9

Architektura systemów komputerowych

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Systemy wbudowane. Wprowadzenie. Struktura. Mikrokontrolery AVR. Wprowadzenie do programowania w C

Rok akademicki: 2013/2014 Kod: EEL s Punkty ECTS: 2. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

11.Mikrokomputeryjednoukładowe

2. Budowa układów procesorowych rodziny TMS320C

LEKCJA TEMAT: Zasada działania komputera.

Systemy wbudowane. Mikrokontrolery cz. 1. Opracowano na podstawie (

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

MIKROKONTROLERY AVR JĘZYK C WYDAWNICTWO ATNEL PODSTAWY PROGRAMOWANIA. Miros aw Kardaś. Szczecin Mojej Żonie Kasi

Systemy Wbudowane. Arduino, AVR. Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler. Mikrokontroler Platforma Arduino. Arduino IDE: Arduino C:

7. Technika mikroprocesorowa test

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Maszyny liczace - rys historyczny

Podstawowa struktura systemu mikroprocesorowego

Systemy mikroprocesorowe

Układy czasowo-licznikowe w systemach mikroprocesorowych

Technika mikroprocesorowa

MIKROKONTROLERY FIRMY ATMEL. dr inż. Wiesław Madej

1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15

Transkrypt:

Komunikacja w mikrokontrolerach Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski

Treść kursu Programowanie mikrokontrolerów AVR (ATMEL) Orientacja na komunikację międzyukładową w C

Literatura M. Kardaś Mikrokontrolery AVR, język C podstawy programowania R. Pełka Mikrokontrolery architektura, programowanie, zastosowania J. Doliński Mikrokontrolery AVR w praktyce R. Baranowski Mikrokontrolery AVR ATmega w praktyce www.atmel.com (dokumentacja!) (dokumentacje układów zewnętrznych)

Materiały http://www.w12.pwr.wroc.pl/pmarkowski

Warunki zaliczenia kolokwium (punkty: Kol) kartkówki na wykładzie (punkty: Kart) PUNKTY KOŃCOWE = Kol + (20% z Kart) PRÓG ZALICZENIA: 60% punktów końcowych

Plan wykładu Mikrokontrolery wiadomości podstawowe Urządzenia peryferyjne AVR (np. ATmega8535) wiadomości podstawowe Programowanie AVR w języku C podstawy Praca w trybach oszczędzania energii Interfejsy komunikacyjne (SPI, I2C, UART, 1-wire) Układy zewnętrzne (czujniki temperatury, wilgotności, HyperTerminal)

Mikrokontroler (mikrosterownik) definicja Jest scalonym układem cyfrowym, który oprócz wbudowanej jednostki centralnej CPU posiada zintegrowaną pamięć oraz układy wspomagające. Mikrokontroler stanowi całkowicie autonomiczny system mikroprocesorowy, który do pracy nie wymaga układów zewnętrznych. Ma rozbudowany system komunikacji z otoczeniem.

Mikrokontroler - budowa RESET K W A R C ZASILANIE

Mikrokontroler - budowa CPU Central Processing Unit mikroprocesor jednostka centralna serce MCU mogą być różne CPU: architektury magistrale (8,16-bit...) rodziny MCU Magistrala danych Magistrala instrukcji Magistrala sterująca Pamięć: - programu - danych Porty WE / WY do komunikacji z otoczeniem np. 32 nóżki podzielone na 4 porty (4 x 8) Układ taktujący Układy peryferyjne ADC czujniki komparator obsługa przerwań interfejsy komunikac. pamięć ROM liczniki RTC WDT

Mikrokontroler - budowa Pamięć programu (dysk twardy MCU) program Pamięć danych (RAM) rejestry + RAM np. 8 kb 32 kb H A R V A R D np. 32 rej. uniwersalne 8-bitowe np. 64 rej. specjalne 8-bitowe np. 512 bajtów SRAM RAZEM 608 B

ATmega8535

Specyfikacja ATmega8535 Mikrokontroler 8-bitowy Architektura RISC ~130 instrukcji w większości wykonywane w 1 cykl zegarowy 32 8-o bitowe rejestry uniwersalne - 64 rejestry specjalne ponad 16 MIPS wbudowany układ mnożący RISC (Reduced Instruction Set Computer) - architektura typu Harvard (oddzielone szyny danych i rozkazów) - przetwarzanie potokowe - zredukowana lista instrukcji - instrukcje mogą operować na dowolnym rejestrze uniwersalnym - ograniczenie komunikacji pomiędzy pamięcią, a procesorem

Specyfikacja ATmega8535 c.d. Nieulotna pamięć programu i danych 8 KB pamięci Flash EEPROM Wytrzymałość: 10 000 cykli zapis/odczyt Obszar pamięci bootowalnej 512 bajtów EEPROM Wytrzymałość: 100 000 cykli zapis/odczyt 512 bajtów SRAM Programowalne zabezpieczenie kodu programu (Lock Bits) 32 programowalne wejścia/wyjścia (porty I/O)

Specyfikacja ATmega8535 c.d. Urządzenia peryferyjne Dwa 8-o bitowe liczniki (Timer/Counters) 2^8 Jeden licznik 16-o bitowy 2^16 Programowalny Watchdog (licznik specjalny) PWM (Pulse Width Modulation) 10-o bitowy konwerter analogowo-cyfrowy (ADC) Komparator analogowy Magistrala szeregowa Two-wire (I2C) Magistrala szeregowa USART Magistrala szeregowa SPI (tryby Master/Slave)

Specyfikacja ATmega8535 c.d. Opcje specjalne Brown-out Detector Wewnętrzny oscylator RC Możliwość taktowania ze źródła zewnętrznego Przerwania wewnętrzne i zewnętrzne Sześć trybów uśpienia Napięcia zasilania: 2,7 5,5V dla ATmega8535L 4,5 5,5V dla ATmega8535

Budowa mikrokontrolera ATmega8535

ATmega8535 - CPU CPU: Jednostka Arytmetyczno-Logiczna (ALU) Rejestry uniwersalne Status Register (SREG) Wskaźnik Stosu (SP) Licznik rozkazów (PC)

Programowanie KOD MASZYNOWY 11100100010101 01110010010101 11010110010001 00101011100101 ASEMBLER Ldi R16, 100 Ldi R17, 50 Add R16, R17 Out PORTA, R16 C int a, b; PORTA:= a+b; LISTA INSTRUKCJI µp.... asemblacja kompilacja

Programowanie PROGRAM (PC) Kompilacja Asemblacja µc FLASH EEPROM ELECTRICAL ERASABLE PROGRAMABLE READ ONLY MEMORY PAMIĘĆ PROGRAMU

ATmega8535 wyprowadzenia Wejścia I/O Wejścia ADC We/wy liczników SPI USART I2C Przerw. zewn.

Pamięć

ATmega8535 - pamięć Pamięć programu FLASH EEPROM, 8 kb kod programu Pamięć danych SRAM, 512 B bieżące dane tymczasowe rejestry Pamięć dodatkowa, użytkownika EEPROM, 512 B

Pamięć programu licznik rozkazów Program Counter wskazuje adres, spod którego pobierane są kolejne instrukcje 11 10 9 8 7 6 5 4 3 2 1 0 PC (FLASH EEPROM $000 - $FFF)

Pamięć danych SRAM, rejestry 32 rej. uniwersalne 64 rej. specjalne Mapa pamięci danych 512 bajtów SRAM

Rejestry

Rejestry Podstawowe elementy mikrokontrolera. Każde urządzenie wewnętrzne μc ma przypisane do siebie specjalne rejestry sterujące jego pracą. Przykładowy rejestr specjalny: start/stop prescaler ExaReg 1 1 0 1 0 0 - - on/off przerwanie on/off

Rejestry specjalne SREG = Status Register DDRA = Data Direction Register TCCR0 = Timer/Counter Control Register 0 GICR = General Interrupt Control Register

Porty I/O

PA0 PA7,, PD0 PD7 Porty I/O A: B: C: D: DDRA DDRB DDRC DDRD PORTA PORTB PORTC PORTD PINA PINB PINC PIND DDR Data Direction Register (1=WY, 0=WE) PORT gdy WY (wysyłanie 1 lub 0) PIN gdy WE (tylko do odczytu)

Jak to zrobić, żeby: 1) wysłać z μc na zewnątrz sygnał 10101010 (port C)? DDRC: PORTC: PINC: 2) sczytać sygnał podany z zewnątrz na port C? DDRC: PORTC: PINC: 3) ustawić 6 najstarszych jako WY, reszta jako WE; wysłać 000111 i sczytać PC0, PC1? DDRC: PORTC: PINC: 11111111 10101010-00000000 - zajrzeć do środka 11111100 000111xx zajrzeć do środka

Porty I/O Port wejściowy (DDR 0) minimalna wydajność prądowa pobiera informacje wymaga zabezpieczenia przed zakłóceniami nóżka w trybie Hi-Z (tri-state) lub pull-up Port wyjściowy (DDR 1) wydajność prądowa 20 ma wysyła informacje

PULL-UP Wejścia są podciągnięte do 1 logicznej C: Vcc DDR 0 PORT 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 DDRC PORTC pull-up register MCU PINC I/O logic

Lista instrukcji ATmega8535

Lista instrukcji ATmega8535 (1) Arytmetyczne i logiczne

Przerwania (ISR) Interrupt Service Routines

Przerwania Wykonywanie programu głównego zostaje natychmiast przerwane; rozpoczyna się podprogram obsługi przerwania 21 przerwań ułożonych priorytetowo Reset, 3 zewnętrzne, 17 wewnętrznych Tabela przerwań str. 45 Podprogram obsługi przerwania kończy instrukcja RETI Przerwania muszą być aktywowane. Aby działały: 1) flaga I w SREG (lub instrukcja SEI) przerwania globalnie 2) flaga w rejestrze odpowiednim dla wybranego przerwania

Przerwania

Przerwania

Przerwania biblioteka

Przerwania - biblioteka http://www.atmel.com/webdoc/avrlibcreferencemanual/ #include <avr/interrupt.h> ISR() {} TIMER0_COMP_vect TIMER0_OVF_vect TIMER1_COMPA_vect TIMER1_COMPB_vect TIMER1_OVF_vect TIMER1_CAPT_vect TIMER2_COMP_vect TIMER2_OVF_vect

Przerwania - biblioteka http://www.atmel.com/webdoc/avrlibcreferencemanual/ ADC_vect ANA_COMP_vect EE_RDY_vect SPM_RDY_vect INT0_vect INT1_vect INT2_vect SPI_STC_vect TWI_vect USART_RX_vect USART_TX_vect USART_UDRE_vect

Obsługa przerwania dr inż. Piotr Markowski 2015 Konkretne przerwanie: SREG:... (ustawienie (sprawdzenie Skok Zablokowanie Wykonanie Powrót Wykonanie

Przerwania zewnętrzne

Przerwania zewnętrzne INT0 priorytet 2, pin PD2, wektor $001 INT1 priorytet 3, pin PD3, wektor $002 INT2 priorytet 19, pin PB2, wektor $012 Działają nawet jeśli piny PB/PD ustawione jako WY Reakcja na zbocze lub na stan: INT0, INT1 na dowolne zbocze lub stan niski INT2 na dowolne zbocze Reakcja na stan niski oraz INT2 asynchroniczne Stan niski przerwanie trwa tak długo, jak stan niski

Przerwania zewnętrzne General Interrupt Control Register GICR INT2 włączenie przerwania 2 INT0 włączenie przerwania 0 INT1 - włączenie przerwania 1 Przy reakcji na zbocze impulsy powinny trwać min. 1 cykl zegarowy (INT0, INT1) lub min. 50 ns (INT2) Przy reakcji na poziom niski impuls powinien trwać na tyle długo, by zakończyła się obecnie wykonywana instrukcja

Przerwania zewnętrzne General Interrupt Flag Register GIFR INTF2 ustawiana gdy żądanie przerwania 2 INTF0 ustawiana gdy żądanie przerwania 0 INTF1 - ustawiana gdy żądanie przerwania 1 Flagi czyszczone gdy rozpoczęło się przerwanie lub gdy zostanie wpisane 1

Przerwania zewnętrzne MCU Control Register MCUCR ISC11, ISC10 ustawienia reakcji INT1 ISC01, ISC00 ustawienia reakcji INT0 ISC01 ISC00 Reakcja 0 0 Poziom niski na INT0 generuje przerwanie 0 1 Dowolna zmiana na INT0 generuje przerwanie 1 0 Zbocze opadające na INT0 generuje przerwanie 1 1 Zbocze narastające na INT0 generuje przerwanie

Przerwania zewnętrzne MCU Control Status Register MCUCSR ISC2 ustawienia reakcji INT2: 1 zbocze narastające 0 zbocze opadające

Podstawy programowania