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

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

Podstawy systemów mikroprocesorowych

2. Architektura mikrokontrolerów PIC16F8x... 13

SYSTEM PRZERWAŃ ATmega 32

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

Mikrokontrolery AVR. Konfigurowanie mikrokontrolera ATMEGA16

Mikrokontroler AVR ATmega32 - wykład 9

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

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

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

Wstęp Architektura... 13

Inne układy peryferyjne AVR

Mikroprocesory i Mikrosterowniki

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Wbudowane układy peryferyjne cz. 2 Wykład 8

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

MIKROKONTROLERY I MIKROPROCESORY

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

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

Hardware mikrokontrolera X51

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

Układy zegarowe w systemie mikroprocesorowym

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

Mikrokontrolery AVR Wprowadzenie

Instytut Teleinformatyki

SML3 październik

Mikroprocesory i Mikrosterowniki

WYKORZYSTANIE WEWNĘTRZNYCH GENERATORÓW RC DO TAKTOWANIA MIKROKONTROLERÓW AVR

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

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Dokumentacja mikrokontrolera Atmega16 firmy Atmel

Programowanie mikrokontrolerów. 5 grudnia 2007

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

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

PROGRAMOWALNE SYSTEMY MECHATRONIKI

Programowanie mikrokontrolerów. 8 listopada 2007

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Pobór mocy przez układy mikroprocesorowe

Stanowisko laboratoryjne dla mikrokontrolera Atmega16 firmy Atmel

WPROWADZENIE Mikrosterownik mikrokontrolery

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

2.1 Przesył danych między procesorem a tabelą zmiennych

Programator ICP mikrokontrolerów rodziny ST7. Full MFPST7. Lite. Instrukcja użytkownika 03/09

Mikroprocesory i mikrosterowniki

Uproszczony schemat blokowy zespołu 8-bitowego timera przedstawiono na rys.1

Technika Mikroprocesorowa

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Mikrokontrolery AVR ATmega

Cechy: - zaawansowana architektura AVR instrukcji wikszo jednocyklowych - 32 x 8-bit rejestry ogólnego przeznaczenia - moliwo pracy statycznej

Układy czasowo-licznikowe w systemach mikroprocesorowych

Mikrokontrolery AVR ATmega

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Systemy wbudowane Mikrokontrolery

Moduł prototypowy X3-DIL64 z procesorem ATxmega128A3U-AU

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM

MSP430 w przykładach (2)

Projektowanie urządzeń mikroprocesorowych cz. 2 Wykład 4

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Programowanie mikrokontrolerów 2.0

MODUŁ UNIWERSALNY UNIV 3

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Mikrokontrolery AVR techniczne aspekty programowania

Programowanie mikrokontrolerów 2.0

Programowanie mikrokontrolerów 2.0

Układy zegarowe w systemie mikroprocesorowym

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

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

ISP ADAPTER. Instrukcja obsługi rev.1.1. Copyright 2009 SIBIT

Pobór mocy przez układy mikroprocesorowe

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

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

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

Metody obsługi zdarzeń

KAmduino UNO. Rev Źródło:

LITEcomp. Zestaw uruchomieniowy z mikrokontrolerem ST7FLITE19

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu.

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

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

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

KAmduino UNO. Płytka rozwojowa z mikrokontrolerem ATmega328P, kompatybilna z Arduino UNO

MIKROPROCESORY architektura i programowanie

Uniwersalny sterownik silnika krokowego z portem szeregowym RS232 z procesorem AT90S2313 na płycie E200. Zestaw do samodzielnego montażu.

Porty GPIO w mikrokontrolerach STM32F3

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

MCAR Robot mobilny z procesorem AVR Atmega32

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

Układy czasowo-licznikowe w systemach mikroprocesorowych

ZL10PLD. Moduł dippld z układem XC3S200

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Szkolenia specjalistyczne

Przerwania, polling, timery - wykład 9

Układy czasowe / liczniki (timers/counters)

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

Transkrypt:

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

Wbudowane układy peryferyjne UWAGA Nazwy rejestrów i bitów, ich lokalizacja itd. odnoszą się do mikrokontrolera ATmega32 i mogą być inne w innych modelach! Ponadto jeśli nie jest napisane inaczej, włączenie funkcji za pomocą zmiany wartości bitu jest równoważne z ustawieniem jego wartości na 1. 2

Fusebity Fusebity 3

Fusebity Fusebity są specjalnymi bitami, definiującymi tryby pracy niskopoziomowych elementów mikrokontrolera Ich nazwy i funkcje są zależne od modelu mikrokontrolera Ich modyfikacja wymaga użycia programatora Mogą być zaprogramowane (wartość 0) lub niezaprogramowane (wartość 1) 4

Fusebity bajt H Nazwa Pozycja Funkcja Wartość domyślna OCDEN 7 OCD włączone 1 (OCD wyłączony) JTAGEN 6 JTAG włączony 0 (JTAG włączony) SPIEN 5 SPI włączone 0 (SPI włączone) CKOPT 4 Opcje oscylatora 1 EESAVE 3 Wyłączone kasowanie EEPROM 1 (EEPROM jest kasowany) BOOTSZ1 2 Rozmiar sekcji bootloadera 0 BOOTSZ0 1 Rozmiar sekcji bootloadera 0 BOOTRST 0 Wektor resetu 1 5

Fusebity bajt L Nazwa Pozycja Funkcja Wartość domyślna BODLEVEL 7 Poziom wyzwolenia BOD 1 BODEN 6 BOD włączony 1 (BOD wyłączony) SUT1 5 Czas startu 1 SUT0 4 Czas startu 0 CKSEL3 3 Źródło zegara 0 CKSEL2 2 Źródło zegara 0 CKSEL1 1 Źródło zegara 0 CKSEL0 0 Źródło zegara 1 6

Bootloader Bootloader 7

Bootloader Bootloader umożliwia modyfikację (np. aktualizację) zawartości pamięci FLASH Sekcja bootloadera położona jest na końcu pamięci FLASH Jej rozmiar definiują fusebity BOOTSZx 8

Bootloader - działanie Jeśli bootloader jest aktywny, w momencie resetu zaczyna się wykonywać kod z sekcji bootloadera Kod ten ma możliwość modyfikacji kodu znajdującego się pamięci FLASH pod adresami mniejszymi niż początek sekcji bootloadera Sekcja bootloadera nie może zostać zmodyfikowana z poziomu programu 9

BOOTRST Fusebit BOOTRST definiuje adres w pamięci FLASH, od którego rozpocznie się wykonywanie programu BOOTRST Adres 1 Sekcja apikacji (adres $0000) (RWW) 0 Sekcja bootloadera (NRWW) 10

BOOTSZ Rozmiar sekcji bootloadera określają fusebity BOOTSZx BOOTSZ1 BOOTSZ0 Rozmiar sekcji bootloadera Strony Sekcja aplikacji Sekcja bootloadera Koniec sekcji aplikacji Początek sekcji bootloadera 1 1 256 słów 4 $0000 - $3EFF $3F00 - $3FFF $3EFF $3F00 1 0 512 słów 8 $0000 - $3DFF $3E00 - $3FFF $3DFF $3E00 0 1 1024 słów 16 $0000 - $3BFF $3C00 - $3FFF $3BFF $3C00 0 0 2048 słów 32 $0000 - $37FF $3800 - $3FFF $37FF $ $3800 11

Lockbity Lockbity 12

Lockbity Lockbity pozwalają zabezpieczyć pamięć mikrokontrolera przed niepowołanym odczytem Od strony technicznej ich koncepcja i działanie jest podobne do fusebitów Próba modyfikacji stanu lockbitów mająca na celu zdjęcie zabezpieczeń prowadzi do wykasowania pamięci EEPROM i FLASH 13

Lockbity Nazwa Pozycja Funkcja Wartość domyślna - 7-1 - 6-1 BLB12 5 Boot Lock bit 1 BLB11 4 Boot Lock bit 1 BLB02 3 Boot Lock bit 1 BLB01 2 Boot Lock bit 1 LB2 1 Lock bit 1 LB1 0 Lock bit 1 14

Lockbity LB2 LB1 Rodzaj ochrony 1 1 Brak zabezpieczeń 1 0 Zapis FLASH i EEPROM jest zablokowany dla programatorów równoległych, SPI i JTAG. Modyfikacja fusebitów również nie jest możliwa. 0 0 Zapis i odczyt (weryfikacja)flash i EEPROM jest zablokowany dla programatorów równoległych, SPI i JTAG. Modyfikacja fusebitów również nie jest możliwa. 15

Lockbity BLB02 BLB01 Rodzaj ochrony 1 1 Instrukcje SPM (zapis) i LPM (odczyt) mają dostęp do sekcji aplikacji 1 0 Brak uprawnień dla SPM do zapisu w sekcji aplikacji 0 0 Brak uprawnień dla SPM do zapisu w sekcji aplikacji oraz LPM uruchomionego z sekcji bootloadera do odczytu danych z sekcji aplikacji. 0 1 SPM ma uprawnienia zapisu w sekcji aplikacji, LPM uruchomiony z sekcji bootloadera nie ma uprawnień do odczytu w sekcji aplikacji 16

Lockbity BLB12 BLB11 Rodzaj ochrony 1 1 Instrukcje SPM (zapis) i LPM (odczyt) mają dostęp do sekcji bootloadera 1 0 Brak uprawnień dla SPM do zapisu w sekcji bootloadera 0 0 Brak uprawnień dla SPM do zapisu w sekcji aplikacji oraz LPM uruchomionego z sekcji aplikacji do odczytu danych z sekcji bootloadera. 0 1 SPM ma uprawnienia zapisu w sekcji bootloadera, LPM uruchomiony z sekcji aplikacji nie ma uprawnień do odczytu danych z sekcji bootloadera 17

Układy zegarowe Układy zegarowe 18

Taktowanie mikrokontrolerów AVR Mikrokontrolery AVR mogą być taktowane zegarem od 0 do 20MHz (zależnie od modelu i zasilania) Sygnał taktujący może pochodzić z wbudowanego lub zewnętrznego generatora Różne wbudowane układy peryferyjne mogą być taktowane sygnałem pochodzącym z różnych źródeł 19

Schemat układu dystrybucji sygnału taktującego 20

Źródła sygnału taktującego Wbudowane Wbudowany kalibrowany generator RC Zewnętrzne Oscylator kwarcowy Generator kwarcowy Generator RC Sygnał prostokątny z osobnego układu 21

Konfiguracja źródła zegara Ustawienia fusebitów CKSEL odpowiedzialnych za źródło sygnału zegarowego Układ taktujący CKSEL3..0 Zewnętrzny rezonator kwarcowy/ceramiczny 1111-1010 Zewnętrzny rezonator niskiej częstotliwości 1001 Zewnętrzny oscylator RC 1000-0101 Kalibrowany wewnętrzny oscylator RC 0100-0001 Zegar zewnętrzny 0000 22

Oscylator kwarcowy/ceramiczny W zależności od częstotliwości oscylatora i jego typu wymagane jest ustawienie bity CKOPT i SUTx, zmieniający tryb pracy generatora CKOPT CKSEL3..1 Zakres częstotliwości (MHz) 1 101 0.4-0.9-1 110 0.9-3.0 12-22pF 1 111 3.0-8.0 12-22pF 0 101,110,11 1 1.0<= 12-22pF Zalecane kondensatory rezonatora kwarcowego (pf) 23

Oscylator kwarcowy/ceramiczny CKSEL0 SUT1..0 Czas startu ze stanu power-down i power-save Dodatkowe opóźnienie (zasilanie 5V) Zalecany przypadek użycia 0 00 258 CK 4.1ms Rezonator ceramiczny, szybkie narastanie napięcia 0 01 258 CK 65ms Rezonator ceramiczny, wolne narastanie napięcia 0 10 1K CK - Rezonator ceramiczny, BOD włączony 0 11 1K CK 4.1ms Rezonator ceramiczny, szybkie narastanie napięcia 24

Oscylator kwarcowy/ceramiczny CKSEL0 SUT1..0 Czas startu ze stanu power-down i power-save Dodatkowe opóźnienie (zasilanie 5V) Zalecany przypadek użycia 1 00 1K CK 65ms Rezonator ceramiczny, wolne narastanie napięcia 1 01 16K CK - Rezonator kwarcowy, BOD włączony 1 10 16K CK 4.1ms Rezonator kwarcowy, szybkie narastanie napięcia 1 11 16K CK 65ms Rezonator kwarcowy, wolne narastanie napięcia 25

Wbudowany generator RC Mikrokontrolery AVR oferują kilka predefiniowanych częstotliwości wbudowanego generatora RC CKSEL3..0 Częstotliwość nominalna (MHz) 0001 1.0 0010 2.0 0011 4.0 0100 8.0 26

Preskalery Niektóre mikrokontrolery AVR posiadają wbudowany preskaler częstotliwości głównego zegara przez 8, włączany fusebitem CKDIV8 Niezależnie od tego, większość wbudowanych układów peryferyjnych wymagających sygnału taktującego posiada własne dzielniki 27

Układy zarządzania energią Układy zarządzania energią 28

Informacje ogólne Mikrokontrolery AVR posiadają rozbudowane układy zarządzania energią, pozwalające ograniczyć zużycie energii i zmniejszyć emitowane zakłócenia Poszczególne tryby różnią się liczbą usypianych bloków mikrokontrolera i sposobem wybudzania 29

Układ BOD Zadaniem układu BOD (Brown-out Detection) jest reset mikrokontrolera w przypadku spadku napięcia poniżej określonego progu BODLEVEL min Typ. max 1 2.5V 2.7V 2.9V 0 3.6V 4.0V 4.2V 30

Przejście w tryb oszczędzania energii Bity konfiguracyjne trybu oszczędzania energii konfigurowane są przez bity w rejestrze MCUCR SE: 1-włączenie trybu oszczędzania energii SM2..0: wybór trybu 31

Tryby oszczędzania energii SM2 SM1 SM0 Tryb oszczędzania energii 0 0 0 Idle 0 0 1 ADC noise reduction 0 1 0 Power-down 0 1 1 Power-save 1 0 0 Zarezerwowany 1 0 1 Zarezerwowany 1 1 0 Standby 1 1 1 Extended standby 32

Tryb Idle Aktywne: SPI, USART, komparator analogowy, ADC, TWI, timery, watchdog, przerwania Wyłączone: CPU Pozostałe peryferia Wybudzanie przez: Reset, dowolne przerwania 33

Tryb ADC noise reduction Aktywne: ADC, TWI, przerwania zewnętrzne, watchdog, asynchroniczny timer2 Wyłączone: CPU Pozostałe peryferia Wybudzanie przez: Reset, przerwanie od aktywnych peryferiów 34

Tryb power-down Aktywne: Przerwania zewnętrzne, TWI, watchdog Wyłączone: CPU Pozostałe peryferia Wybudzanie przez: Reset, przerwanie od aktywnych peryferiów 35

Tryb power-save Aktywne: Jak w trybie power-down + asynchroniczny timer2 Wyłączone: CPU Pozostałe peryferia Wybudzanie przez Reset, przerwanie od aktywnych peryferiów 36

Tryb standby Tryb możliwy do wybrania podczas korzystania z zewnętrznego oscylatora Identyczny jak power-down, za wyjątkiem aktywnego w czasie uśpienia oscylatora 37

Tryb extended standby Tryb możliwy do wybrania podczas korzystania z zewnętrznego oscylatora Identyczny jak power-save, za wyjątkiem aktywnego w czasie uśpienia oscylatora 38

Tryby oszczędzania energii - podsumowanie 39

Watchdog Watchdog 40

Watchdog Mikrokontrolery AVR wyposażone są w układ automatycznego restartu, pozwalający zrestartować mikrokontroler w przypadku nieprawidłowego działania programu Układ ten działa na zasadzie licznika, którego przepełnienie powoduje reset. Zadaniem poprawnie działającego programu jest jego okresowe zerowanie Taktowany jest z autonomicznego generatora 41

Watchdog 42

Watchdog - rejestry WDTCR: WDTOE: 1 - pozwolenie na wyłączenie watchdoga WDE: 1 - włączenie watchdoga WDP2, WDP1 i WDP0: preskaler watchdoga 43

Watchdog - preskaler WDP2 WDP1 WDP0 Liczba taktów oscylatora watchdog Typowy timeout przy napięciu 5V 0 0 0 16K (16,384) 16.3ms 0 0 1 32K (32,768) 32.5ms 0 1 0 64K (65,536) 65ms 0 1 1 128K (131,072) 0.13 s 1 0 0 256K (262,144) 0.26s 1 0 1 512K (524,288) 0.52s 1 1 0 1,024K (1,048,576) 1.0s 1 1 1 2,048K (2,097,152) 2.1s 44

Przerwania Przerwania 45

Przerwania informacje ogólne Mikrokontrolery AVR posiadają możliwość wykonywania fragmentów programu asynchronicznie w stosunku do głównej pętli programu dzięki obsłudze przerwań Liczba i rodzaje przerwań są zależne od modelu mikrokontrolera 46

Lista przerwań mikrokontrolera Atmega32 47

Globalna obsługa przerwań Globalna obsługa przerwań może być aktywowana poprzez ustawienie bitu IVCE w rejestrze GICR. W rejestrze GICR znajduje się również bit IVSEL definiujący lokalizację wektorów przerwań (początek pamięci programu domyślnie, lub początek sekcji bootloadera) 48

Porty I/O Porty I/O 49

Porty I/O informacje ogólne Porty I/O umożliwiają dwukierunkową komunikację mikrokontrolera z układami zewnętrznymi Każda linia portu może być wejściem (domyślnie) lub wyjściem, posiada ponadto włączane programowo rezystory podciągające 50

Porty I/O Linie I/O są grupowane po 8 (w niektórych modelach mikrokontrolerów grupy nie są pełne) i nazwane kolejnymi literami A, B, C, D, Każda grupa jest obsługiwana własnym zestawem rejestrów 51

Porty I/O - nazewnictwo W odniesieniu do linii I/O wykorzystywana jest nazwa port i pin Port Pin Grupa linii I/O, np. PORTA (lub PA), PORTB (lub PB) Pojedyncza linia I/O, np. PORTA0 (lub PA0), PORTB1 (lub PB1) Fizyczne wyprowadzenie linii I/O (nóżka układu) 52

Porty I/O rejestry Każdy port A, B, itd. jest kontrolowany przez 3 rejestry: DDR, PORT i PIN, np. dla portu A są to DDRA, PORTA, PINA Każdy z rejestrów posiada bity sterujące poszczególnymi liniami I/O, np. dla portu A są do odpowiednio bity: DDA0 7, PORTA0 7, PINA0 7 53

Porty I/O - rejestry DDR: kierunek portu Bity DDRxn: 0 - wejście, 1 wyjście PORT: stan wyjściowy portu (wyjście) Bity PORTxn: 0 stan niski, 1 stan wysoki PORT: stan rezystorów podciągających (wejście) Bity PORTxn: 0 rezystor wyłączony, 1 rezystor włączony 54

Porty I/O - rejestry PIN: stan wejściowy portu Bity PINxn: 0 stan niski, 1 stan wysoki 55

Porty I/O funkcje alternatywne Większość linii I/O może pełnić alternatywną funkcję, zależną od konfiguracji innych układów peryferyjnych Pierwszeństwo w takiej sytuacji posiada układ peryferyjny, manualne sterowanie stanem takich linii jest ograniczone lub niemożliwe 56

Przerwania zewnętrzne INTx Przerwania zewnętrzne INTx 57

Przerwania zewnętrzne - informacje ogólne Mikrokontroler ATmega32 posiada 3 przerwania zewnętrzne: INT0 (na PD2), INT1 (na PD3) i INT2 (na PB2) Przerwania zewnętrzne mogą reagować na określone zmiany stanu na wejściu, dostępne tryby nie muszą być identyczne dla wszystkich przerwań 58

Przerwania zewnętrzne - rejestry MCUCR: ISC10 i ISC11: tryb pracy INT1 ISC01 i ISC00: tryb pracy INT0 MCUCSR: ISC2: tryb pracy INT2 GICR: INT0, INT1, INT2: 1 - włączenie obsługi przerwań GIFR: INTF0, INTF1, INTF2: flagi wystąpienia przerwań 59

Przerwania zewnętrzne tryby pracy Tryb (reakcja) ISC01 ISC00 ISC11 ISC10 ISC2 Stan niski 0 0 0 0 - Dowolna zmiana stanu 0 1 0 1 - Zbocze opadające 1 0 1 0 0 Zbocze narastające 1 1 1 1 1 60