Charakterystyka mikrokontrolerów

Podobne dokumenty
Charakterystyka mikrokontrolerów

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

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

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

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

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

System mikroprocesorowy i peryferia. Dariusz Chaberski

MIKROKONTROLERY I MIKROPROCESORY

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

Technika Mikroprocesorowa

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

Wstęp Architektura... 13

WPROWADZENIE Mikrosterownik mikrokontrolery

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

2. Architektura mikrokontrolerów PIC16F8x... 13

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

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Współpraca procesora z urządzeniami peryferyjnymi

Interfejsy szeregowe TEO 2009/2010

Wykład 6. Mikrokontrolery z rdzeniem ARM

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

Zastosowania mikrokontrolerów w przemyśle

MAGISTRALE MIKROKONTROLERÓW (BSS) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Komunikacja z urzadzeniami zewnętrznymi

Wykład Mikroprocesory i kontrolery

Szkolenia specjalistyczne

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

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

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)

WYKŁAD 5. Zestaw DSP60EX. Zestaw DSP60EX

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

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

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Architektura mikroprocesorów TEO 2009/2010

Mikroprocesory i Mikrosterowniki

Arduino dla początkujących. Kolejny krok Autor: Simon Monk. Spis treści

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Zastosowania mikrokontrolerów w przemyśle

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Programowanie mikrokontrolerów. 8 listopada 2007

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

Architektura komputerów. Układy wejścia-wyjścia komputera

Współpraca procesora ColdFire z urządzeniami peryferyjnymi

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

Mikroprocesory i Mikrosterowniki

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

Komunikacja w mikrokontrolerach Laboratorium

Wykład 2. Mikrokontrolery z rdzeniami ARM

Układy czasowo-licznikowe w systemach mikroprocesorowych

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

Wykład Mikrokontrolery i mikrosystemy Cele wykładu:

11.Mikrokomputeryjednoukładowe

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

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

ZL28ARM. Zestaw uruchomieniowy dla mikrokontrolerów AT91SAM7XC

Mikrokontroler AVR ATmega32 - wykład 9

43 Pamięci półprzewodnikowe w technice mikroprocesorowej - rodzaje, charakterystyka, zastosowania

Systemy na Chipie. Robert Czerwiński

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

1.2. Architektura rdzenia ARM Cortex-M3...16

MIKROKONTROLERY - MAGISTRALE SZEREGOWE

Systemy wbudowane Mikrokontrolery

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

Układy zegarowe w systemie mikroprocesorowym

Mikrokontrolery w mechatronice. Wstępne uwagi

Zestaw uruchomieniowy z mikrokontrolerem LPC1114 i wbudowanym programatorem ISP

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

Cyfrowe układy scalone

ZL30ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Współpraca procesora z urządzeniami peryferyjnymi

Wstęp. Opis ATMEGA128 MINI MODUŁ VE-APS-1406

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168

Architektura systemu komputerowego

ZL5PIC. Zestaw uruchomieniowy dla mikrokontrolerów PIC16F887

RODZAJE PAMIĘCI RAM. Cz. 1

Organizacja typowego mikroprocesora

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Wykład 3 Technologie na urządzenia mobilne. Mgr inż. Łukasz Kirchner lukasz.kirchner@cs.put.poznan.pl

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

dokument DOK wersja 1.0

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

Karta katalogowa JAZZ OPLC JZ20-T40/JZ20-J-T wejść cyfrowych, 2 wejścia analogowe/cyfrowe, 2 wejścia analogowe. 20 wyjść tranzystorowych

Hardware mikrokontrolera X51

Teoria przetwarzania A/C i C/A.

ZL29ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Mikrokontrolery AVR techniczne aspekty programowania

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d.

Porty wejścia/wyjścia w układach mikroprocesorowych i w mikrokontrolerach

E-TRONIX Sterownik Uniwersalny SU 1.2

Cyfrowe układy scalone

Systemy wbudowane - wykład 8. Dla zabicia czasu Notes. I 2 C aka IIC aka TWI. Notes. Notes. Notes. Przemek Błaśkiewicz.

MODUŁ UNIWERSALNY UNIV 3

Cyfrowe układy scalone

Porty wejścia/wyjścia w układach mikroprocesorowych i w mikrokontrolerach

Elektronika i techniki mikroprocesorowe

Przetwornik analogowo-cyfrowy

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

Transkrypt:

Charakterystyka mikrokontrolerów 1. Historia powstania Historia mikroprocesora zaczyna się wraz z narodzinami procesora Intel 4004 w 1971 roku. Rok później wydano pierwszy 8-bitowy układ Intel 8008 stanowiący fundament dla kolejnych projektów. 8008 zaprojektowano w 10-mikronowej technologii PMOS (MOS with p-type transistors) i zawierał około 3500 tranzystorów. Miał rozmiar 4,9mm x 6,7mm, był to 18-pinowy dwustronny układ, taktowany częstotliwością 200kHz i mógł wykonywać do 60000 instrukcji na sekundę. Na architekturę 8008 składały się: pojedynczy 8-bitowy akumulator (A), sześć 8- bitowych rejestrów ogólnego przeznaczenia (B, C, D, E, H, L). Procesor zapewniał 14-bitowe adresownie, posiadał instrukcje logiczne oraz przerwania. Pierwszym mikrokontrolerem (a nie mikroprocesorem) był wyprodukowany pod koniec roku 1972 przez Texas Instruments procesor TMS1000. Łączył on w sobie prosty 4-bitowy mikroprocesor, 1KB pamięci ROM i 32B pamięci RAM w jednym chipie. Układ był niedrogi i pokazał liczne zastosowania w systemach łączonych. W 1974 roku wypuszczono na rynek konkurencyjny układ Intel 8080. Projektanci układu 8080 zawarli w nim kilka kluczowych cech zarówno procesora 8008 jak i 4004. Ulepszenia obejmowały większą ilość instrukcji, 64KB przestrzeń adresową, 256 portów we/wy, 16-bitowe instrukcje arytmetyczne, i wektorowe przerwania. Został zaprojektowany w 6-mikronowej technologii NMOS (MOS with n-type transistors) i zawierał 6000 tranzystorów. 40-pinowa kość pozwalała na oddzielne adresy i szynę danych. Pierwszy 8080 był taktowany zegarem 2Mhz. //pewnie do poprawki 2. Co to jest mikrokontroler (skład, architektury) Jest to pojedynczy układ scalony, w którego skład wchodzi mikroprocesor, pamięć RAM i pamięć programu oraz układy Wejścia/Wyjścia. Określenie mikrokontroler pochodzi od głównego obszaru zastosowań, jakim jest sterowanie urządzeniami elektronicznymi. Mikrokontroler stanowi użyteczny i całkowicie autonomiczny system mikroprocesorowy, który z reguły nie musi współpracować z układami zewnętrznymi. Wśród wbudowanych w mikrokontroler bloków funkcjonalnych można znaleźć: procesor (CPU), pamięć danych (RAM, EEPROM), programu (EPROM, EEPROM, Flash), liczniki, kontrolery przerwań, kontrolery transmisji równoległej lub szeregowej (UART, SPI, I2C, USB, CAN, 1-Wire itp.), przetworniki A/C lub C/A oraz zegar czasu rzeczywistego RTC itp. Czyli w skrócie 3 kluczowe rzeczy: procesor, pamięci i peryferia. ARCHITEKTURA VON NEUMANA Odznaczała się wspólną magistralą dla danych i instrukcji. Wszystko dostępne jest w jednej przestrzeni adresowej, tak więc bez dokładnej analizy zawartości nie jesteśmy w stanie określić co dane zawiera konkretny obszar pamięci. Program wykonywalny może zmienić sam siebie jeżeli potraktuje obszar instrukcji jako dane, a po przetworzeniu zacząć je wykonywać.

Dzięki odpowiedniemu skonfigurowaniu linkera, możliwe jest wykonywanie skompilowanego kodu z pamięci Flash lub RAM (w celu przyspieszenia działania lub w trakcie projektowania). Architektura zastosowana w układach z rdzeniem ARM7. ARCHITEKTURA HARVARDZKA Była odpowiedzią na w.w. architekturę i w odróżnieniu od niej zakładała oddzielenie pamięci danych od pamięci rozkazów. Dodatkowo prostsza budowa gwarantuje lepszą wydajność. Zmodyfikowana architektura harwardzka, znana również jako architektura mieszana, łączy w sobie cechy architektury harwardzkiej i architektury von Neumanna. Oddzielone zostały pamięci danych i rozkazów, lecz wykorzystują one wspólne magistrale danych i adresową. Przykładem rodziny w architekturze Harvardzkiej są 8 bitowe układy AVR. Zmodyfikowana architektura Harvardzka obecna jest w układach z rdzeniem ARM9. Oprócz mikrokontrolerów ogólnego przeznaczenia produkowane są specjalizowane układy do określonych zastosowań z dodatkowymi blokami analogowymi, cyfrowmi lub cyfrowoanalogowymi. Przykładem są układy integrujące dodatkowo tor radiowy wykorzystywany w bezprzewodowych modułach np. ZigBee, układy analogowe w zaawansowanych bateriach, układy sterujące napędami w przemyśle, czy oświetleniem. Oprócz tego spotkać możemy bardzo złożone układy nazywane SoC (System-on-a-Chip) zawierające wydajne jednostki centralne (lub nawet wiele rdzeni, dodatkowy np. DSP do dekodowania wideo w HD - MPSoC (Multiprocessor System-on-Chip)), wraz z zewnętrznymi magistralami danych do pamięci SDRAM lub DDR/DDR2 SDRAM czy Mobile SDRAM (LPDDR), interfejsy USB, Ethernet, czy interfejs do wyświetlaczy LCD. Przykładami takich układów są: rodzina OMAP (TI), Tegra (nvidia), Snapdragon (Qualcomm). 3. Procesory Dostępne w sprzedaży rodziny mikrokontrolerów zawierające rdzenie własnościowe firm je produkujących lub rdzenie ogólnodostępne jak np. ARM czy 8051 to: Freescale 68HC11 (8-bit) STMicroelectronics (8-bit), ST10 (16-bit) and STM32 (32-bit) Atmel AVR (8-bit), AVR32 (32-bit), and AT91 (32-bit), 8051 (8-bit) Freescale ColdFire (32-bit) and S08 (8-bit) Hitachi H8, Hitachi SuperH (32-bit) Infineon Microcontroller: 8, 16, 32 Bit NEC V850 (32-bit) NXP Semiconductors LPC1000, LPC2000, LPC3000, LPC4000 (32-bit), LPC900, LPC700 (8-bit) Microchip PIC (8-bit PIC16, PIC18, 16-bit dspic33 / PIC24) Rabbit 2000 (8-bit) Motorola M68 Texas Instruments MSP430 (16-bit)

4. Pamięci W mikrokontrolerach możemy wyróżnić kilka podstawowych typów pamięci. W zależności od zastosowania określić możemy pamięć programu zawierająca kod programu, tablice stałych, wektor przerwań. Posiadamy również pamięć danych, która przechowuje zmienne oraz stos przechowujący adres powrotny przy obsłudze przerwań i wybrane przez programistę wartości (najczęściej przy obsłudze podprogramów/funkcji). Ze względu na budowę i architekturę wyróżnić możemy pamięci: EPROM przechowujące zmienne lub tablice stałych, które po wyłączeniu zasilania nie mogą ulec skasowaniu. Pamięci EPROM dzielimy ze względu na możliwości zapisu na: OTP (One Time Programable) w obudowach bez okienka kwarcowego, przez co możliwe jest tylko jednokrotne zaprogramowanie pamięci, EPROM (Erasable Programable ROM) z możliwością kasowania dotychczasowej zawartości promieniami ultrafioletowymi i wprowadzania nowej zawartości za pomocą zewnętrznego programatora. Pamięci EEPROM odróżnieniu od pamięci EPROM może być kasowana tylko przy użyciu prądu elektrycznego. Liczba zapisów i kasowań jest ograniczona, w zależności od typu i producenta pamięci wynosi do 100,000 cykli. Przy czym liczba operacji odczytu jest nieograniczona. W przypadku ROM (Read Only Memory) pogramowanie zawartości pamięci następuje w procesie produkcyjnym i nie może być przeprowadzone przez użytkownika. FLASH (Bulk Erasable Non-Volatile Memory) pozalają na kasowanie zawartości i programowanie bezpośrednio w systemie mikroprocesorowym. Są udoskonaleniem pamięci EEPROM, w których poprzez zastosowanie buforowania zwiększono szybkość zapisu do pamięci. Jest to pamięć nieulotna. SRAM (Static Random Access Memory) czyli statyczne pamięci RAM. Są to pamięci o krótkich czasach dostępu, prostsze w obsłudze przez jednostkę centralną, ale droższe. Jest to pamięć ulotna. FRAM (Ferroelectric RAM) pamięci ferroelektryczne, nieulotne pamięci, które są dopiero wprowadzane na rynek. Pierwsze mikrokontrolery (MSP430) wyposażone w tą pamięć dostępne już są w Texas Instruments. Nośnikiem informacji jest materiał ferroelektryczny zdolny do zapamiętania kierunku pola magnetycznego. Zaletami są bardzo mały pobór energii, wysoka szybkość działania i duża trwałość (nieograniczona liczba cykli zapisu/odczytu), wadą natomiast duży rozmiar komórki. Standardowo, współczesne mikrokontrolery wyposażone są w kilka do kilkudziesięciu kb pamięci RAM, od kilku kb do kilkuset kb pamięci programu Flash oraz opcjonalnie od kilkuset B do kilku kb pamięci EEPROM. 5. Urządzenia peryferyjne i obsługa przerwań

UART/USART - (Universal A/Synchronous Receiver and Transmitter), układ scalony używany do a/synchronicznego przekazywania i odbierania informacji, konwersja pomiędzy szeregową a równoległą formą transmisji, uzywany powszechnie z takimi standardami jak RS-232, RS-422 or RS-485 (różnica pojawia się jedynie w poziomach logicznych sygnału). Format danych oraz prędkośc transmisji są konfigurowane programowo, poziom sygnalizacji elektrycznej jak i same metody sygnalizacji obsługiwane są przez specjalny zewnętrzny obwód sterujący. Używany zwykle do komunikacji pomiędzy mikrokontrolerem, komputerem (przez port szeregowy) lub innym urządzeniem np. drugim mikrokontrolerem. DUART - dwa układy UART razem na jednym chipie. Bajt pamięci rozkładany jest na pojedyńcze bity i przesyłany do odbiornika praca synchroniczna - kolejne bity są przesyłane w takt zegara sterującego transmisją, praca asynchroniczna, odbiornik USART wykrywa początek ramki transmisyjnej, a następnie próbkuje sygnał wejściowy przez ustalony przez obie strony czas trwania bitu. Budowa: generator impulsów zegarowych wyjściowy/wejściowy rejestr przesuwny sterownik transmisji/odbioru logika sterująca zapisem/odczytem bufory pamięci FIFO, transmisji/odczytu, danych I2C - (Inter-Integrated Circuit: pośredniczący pomiędzy układami scalonymi) wynaleziona przez Philipsa szeregowa, dwukierunkowa magistrala służąca do przesyłania danych w urządzeniach elektronicznych, umozliwia podłączenie peryferiów o wolnej prędkości do mikrokontrolerów, płyt głównych, telefonów oraz innych urządzeń. dwie, dwukierunkowe linie (pull up): dane - SDA, zegar - SCl; typowe napięcia +5V/+3,3V, możliwość stosowanie innych, logika dodatnia 7bitowa przestrzeń adresowa, 112 węzłów komunikacji 16 adresów rezerwowych powszechne prędkości 110 kbps lub low mode 10kbps, dla systemów wbudowanych 400 kbit/s Fast mode, 1 Mbit/s Fast mode plus i 3.4 Mbit/s High Speed mode, rozrózniamy węzły: Master (rozprowadza sygnał zegara i adresuje slavy) i Slave w dowolnej ilości, mozliwa zmiana ról,

Wszystkie nadajniki są typu otwarty kolektor lub otwarty dren, a więc na liniach występuje tzw. iloczyn na drucie ("1" jest recesywna, a "0" dominujące). Pozwala to na wykrywanie kolizji. Każde urządzenie nadając "1" jednocześnie sprawdza, czy na magistrali rzeczywiście pojawił się stan wysoki. Jeżeli tak nie jest, oznacza to, iż inne urządzenie nadaje w tym samym czasie i urządzenie zaprzestaje nadawania.ponieważ dane nadawane są w kolejności od najstarszego bitu do najmłodszego, w przypadku jednoczesnego nadawania, urządzenie nadające adres o wyższym numerze wycofa się pierwsze, co wynika z binarnego sposobu zapisywania liczb. Występuje tu zatem arbitraż ze stałym przydziałem priorytetów, określonym przez adres urządzenia typu slave. Urządzenia o niższych adresach mają wyższy priorytet od urządzeń o adresach wyższych. SPI - (Serial Peripheral Interface Bus) opatentowany przez Motorole szeregowy interfejs urządzeń peryferyjnych jeden z najczęściej używanych interfejsów komunikacyjnych pomiędzy systemami mikroprocesorowymi a układami peryferyjnymi takimi jak: przetworniki ADC/DAC, pamięci EEPROM, pamięci flash, karty MMC/SD/ itp. komunikacja full-duplex pomiędzy masterem i slavami cztery linie sygnałowe SCLK: Serial Clock (output from master); MOSI; SIMO: Master Output, Slave Input (output from master); MISO; SOMI: Master Input, Slave Output (output from slave); SS: Slave Select (active low, output from master). Timer/ Counter - cyfrowy licznik zliczający w przód/tył z daną ustawioną częstotliwością, wyzwalający pożądaną akcję, przerywający prace procesora gdy osiągnie pożądaną wartość. Porty równoległe - wejścia/wyjścia ogólnego przeznaczenia do sterowania zazwyczaj diodami LED lub obsługi przycisków, zwykle istnieje możliwość włączenia wewnętrznych rezystorów podciągających.

ADC/DAC - (analog/digital converter) układ służący do zamiany sygnału analogowego (ciągłego) na reprezentację cyfrową, Dzięki temu możliwe jest przetwarzanie ich w urządzeniach elektronicznych opartych o architekturę zero-jedynkową oraz gromadzenie na dostosowanych do tej architektury nośnikach danych. Proces ten polega na uproszczeniu sygnału analogowego do postaci skwantowanej (dyskretnej), czyli zastąpieniu wartości zmieniających się płynnie do wartości zmieniających się skokowo w odpowiedniej skali (dokładności) odwzorowania. Przetwarzanie A/C tworzą 3 etapy: próbkowanie, kwantyzacja i kodowanie. Działanie przeciwne do wyżej wymienionego wykonuje przetwornik cyfrowo-analogowy (DAC). Rozdzielczość przetwornika określa liczbę dyskretnych wartości jakie może on wytworzyć. Zwykle wyraża się ją w bitach. Przykładowo, przetwornik A/C, który potrafi przetworzyć próbkę sygnału na jedną z 256 wartości liczbowych posiada rozdzielczość równą 8 bitów, ponieważ 2^8 = 256. Rozdzielczość może być również wyrażona w woltach. Rozdzielczość napięcia przetwornika A/C jest równa jego całkowitej skali pomiaru podzielonej przez liczbą poziomów kwantyzacji częstotliwość próbkowania jest odwrotnością różnicy czasu pomiędzy dwiema kolejnymi próbkami Przetwornik o przetwarzaniu bezpośrednim (nazywany także Flash) działa na zasadzie bezpośredniego i zazwyczaj jednoczesnego porównania wartości napięcia wejściowego z szeregiem napięć odniesienia reprezentujących poszczególne poziomy kwantowania Przetwornik o przetwarzaniu analogowym działa na zasadzie zliczania impulsów z generatora wzorcowego o dużej częstotliwości (względem czasu pomiaru) w czasie proporcjonalnym do napięcia wejściowego. Czas zliczania impulsów jest szerokością impulsu bramkującego generowanego przez układ sterujący na podstawie porównania napięcia wejściowego z liniowo narastającym napięciem odniesienia przez komparator analogowy Dodatkowo USB w wersji Host lub Device, Ethernet, LCD, ISI, SD, jednostki szyfrujące, MMU itp. W mikrokontrolerach dostępnych jest zwykle kilka przerwań zewnętrznych wyzwalanych stanem lub zboczem oraz przerwania pochodzące od wbudowanych peryferiów. Dzięki temu możliwe jest podjęcie odpowiedniej akcji np. po zakończeniu konwersji ADC lub odebraniu znaku przez UART. Tablica przerwań mikrokontrolera ATmega8 wygląda następująco:

W momencie wystąpienia przerwania procesor skacze do adresu podanego w tabeli, aby obsłużyć przerwanie, pod adresem tym powinien znajdować się skok w inne miejsce w pamięci, w którym znajduje się procedura obsługi przerwania. Powrót wykonywany jest za pomocą specjalnej instrukcji RETI, która dodatkowo włącza spowrotem przerwania. Aby włączyć dane przerwanie należy ustawić odpowiednio bit I w rejestrze SREG (globalne zezwolenie na przerwania) oraz włączyć przerwania w rejestrach konfiguracyjnych urządzenia peryferyjnego, z którego przerwania mają nadchodzić 6. Programowanie (ładowanie programu) i uruchamianie Szeregowe w systemie (w przypadku rodziny AVR) - programowanie pamięci Flash za pomocą interfejsu SPI, mikrokontroler programowany jest w działającym urządzeniu docelowym, jest to tzw. ISP (In System Programming), wymagane są 3 linie (MISO, MOSI, SCK) oraz Reset i zasilanie. Programowanie za pomocą bootloadera - dostępne tylko w układach, które same mają możliwość modyfikacji programu. Program może byc przesyłany szeregowo za pomocą interfejsu UART lub USB w zależności od implementacji. Istnieją systemy, w których mikrokontroler ma możliwośc aktualizacji własnego oprogramowani przez łącze bezprzewodowe np. ZigBee. Rówoległe - rzadko stosowane w praktyce ze względu na wygode, jest metodą ratunku w przypadku zablokowania programowania szeregowego (w rodzinie AVR), JTAG - interfejs początkowo wykorzystywany w produkcji do sprawadzania poprawności montażu układów scalonych, z czasem producenci zaczęli wykorzystywać go także do programowania i debugowania układów mikroprocesorowych oraz układów FPGA.

Program i zawartość pamięci EEPROM może być zabezpieczona przed nieuprawnionym odczytem. Dokonać tego można zapisując odpowiednie Lock Bity w momencie, gdy miktrokontroler jest w trybie programowania. Oprócz tego, można skonfigurować odpowiednio inne parametry pracy układu np. źródła sygnału zegarowego, ustawienia kalibracyjne, stan watchdoga, dostępność interfejsów do programowania itp., w zależności od stosowanego układu możliwości są różne. Do pracy układu wymagane jest zasilanie wraz z kondensatorem filtrującym zasilanie (zwykle 100nF) oraz opcjonalnie kwarcem służącym do generowania sygnału zegarowego. Pod układem zalecane jest pole masy pomagające chronić układ przed zakłóceniami mogącymi spowodować nieprawidłową pracę mikrokontrolera. W przypadku wykorzystywania przetworników DAC i ADC wykorzystuje się oddzielne piny do ich zasilania wraz z odsprzęganiem w postaci kondensatorów zwykle 100nF i dławików. Istnieje kilka możliwości generowania sygnału zegarowego: zewnętrzny kwarc (do jego działania wymagane dodatkowo dwa kondensatory o wartości kilkudziesięciu pf) dostarcza stabilny sygnał zewnętrzny generator dostarczający sygnał za pomocą 1 linii wewnętrzny oscylator RC - zaletą są niskie koszty urządzenia, bo nie wymagane są żadne zewnętrzne elementy, a płytka ma mniejsze rozmiary, jednak nie jest to stabilne źródło, gdyż zależy od wielu czynników np. temperatura otoczenia, zakłucenia itp., nie nadaje się do taktowania interfejsów szeregowych zewnętrzny oscylaror RC zewnętrzny kwarc niskiej częstotliwości (kwarc zegarkowy) 7. Programowanie (tworzenie kodu) Ponieważ mikrokontrolery tworzone są z myślą o nieustannej pracy w czasie rzeczywistym oraz minimalizację kosztów produkcji i eksploatacji programiści zmuszeni są do stosowania odpowiedniej metodologi programowania. Pierwszym i najważniejszym elementem jest stosowanie zmienych o jak najmniejszym możliwym rozmiarze spełniającym wymagania funkcjonalne programu. Aby to osiagnąć można pisać programy w języku niskiego poziomu (ze wskazaniem na Assembler) aby mieć pełną kontrolę nad wykorzystaniem zasobów mikrokontrolera. Zazwyczaj kod tworzony jest w języku C, wraz z ewentualnymi wstawkami w Asemblerze. Kolejnym istotnym aspektem jest konstrukcja kodu programu w taki sposób, aby mimo wystąpienia pewnych zdarzeń losowych lub oczekiwania na przerwanie procesor wykonywał pozostałe niezbędne operacje, oraz przechodził w jeden ze stanów uśpienia w celu oszczędzania zasilania w przypadku urządzeń zasilanych bateryjnie. Cechy: zwykle brak systemu operacyjnego, bezpośredni dostęp do sprzętu, mała wydajność, konieczna kontrola zależności czasowych. Jednym ze sposobów programowania jest tzw. cooperative multitasking - wielozadaniowość bez wywłaszczania, umożliwia uzyskanie pewnego rodzaju wielozdaniowości. Polega na umieszczeniu w pętli while(1) {..} funkcji do obsługi określonych zadań, w których używane są funkcje nieblokujące. Dzięki temu różne moduły programu mogą być wywoływane w

miarę regularnie i obsługiwać określone funkcje np. obsługa stosu sieciowego czy interfejsu użytkownika. http://www.mimuw.edu.pl/~marpe/mikrokontrolery/w1_wstep.pdf http://docs.google.com/viewer?a=v&q=cache:d1cfrtxgj2ej:156.17.46.1/ pmarkowski/pliki/ wyklad2.pdf+historia+mikrokontroler%c3%b3w&hl=pl&gl=pl&pid=bl&srcid=adg EESjc3vhdjXx_I47ZvVHG7-ECiI8P8n3Qj5ikGQ7nUDkaO6gT8hg6PF8IUiZdcm2t- 5htIIOWqg3myEzP-kMsK8_AdxZ6-n3W3HMKOP-SFGISmlTPRGcErJQP_- bettbli9_xoryo&sig=ahietbtnryy0nndxdvmbylxeakve7bcepg http://www.eetimes.com/design/embedded/4025995/implementing-your-mcu-basedsystem-s-serial-uart-in-software