background image

Programowanie mikrokontrolerów

Wstęp

Marcin Engel

Marcin Peczarski

Instytut Informatyki Uniwersytetu Warszawskiego

4 października 2011

background image

Co to jest mikrokontroler?

Układ integrujący w sobie następujące elementy (w zależności od
modelu):

I

jednostkę obliczeniową (8-, 16- lub nawet 32-bitową),

I

pamięć danych (SRAM, EEPROM),

I

pamięć programu (FLASH, ROM, EEPROM),

I

układy taktujące (RC),

I

kontroler przerwań,

I

liczniki,

I

przetworniki analogowo-cyfrowe,

I

przetworniki cyfrowo-analogowe,

I

interfejsy szeregowe (UART, SPI, I2C, 1WIRE, USB),

I

układ nadzorujący (watchdog),

I

zegar czasu rzeczywistego.

mikrokontroler = komputer w jednym układzie

background image

Popularne mikrokontrolery

I

8051 firmy Intel i jego liczne klony

I

PIC firmy Microchip Technology

I

68HC firmy Motorola (obecnie Freescale Semiconductor)

I

Z8 firmy Zilog

I

AVR firmy Atmel

I

MSP430 firmy Texas Instruments

I

ARM produkowane przez wiele firm, np.:

I

Atmel

I

NXP Semiconductors (dawniej Philips)

I

Samsung

I

STMicroelectronics (dawniej SGS Thomson)

I

. . .

background image

Mikrokontrolery firmy Atmel

I

8-bitowa architektura 8051

I

AT80. . .

I

AT83. . .

I

AT87. . .

I

AT89. . .

I

8-bitowa architektura AVR

I

AT90. . .

I

ATtiny. . .

I

ATmega. . .

I

ATxmega. . .

I

32-bitowa architektura AVR

I

AT32. . .

I

32-bitowa architektura ARM

I

AT91. . .

background image

Jak zacząć zabawę?

Trzeba zakupić:

I

mikrokontroler (ATmega16 kosztuje ok. 10 PLN),

I

troszkę innych elementów elektronicznych (diody LED,
mikroswitche, rezystory, kondensatory, złącza, . . . ).

Ponadto należy przygotować:

I

najprostszy programator dołączany do złącza LPT (cena
ok. 26 PLN za gotowy, poniżej 5 PLN przy samodzielnym
montażu) lub

I

programator dołączany do USB (ceny od ok. 70 PLN),

I

komputer z oprogramowaniem (darmowe programy PonyProg,
AVR Studio, VMLAB, . . . ).

A także:

I

laminat, wytrawiacz, lutownicę i inne narzędzia lub

I

płytkę uniwersalną, lutownicę lub

I

płytkę stykową lub . . .

background image

Zestaw uruchomieniowy

I

Umożliwia szybkie tworzenie układów testowych.

I

Zawiera na pokładzie wszystkie niezbędne podzespoły, które
łączy się za pomocą przewodów.

background image

Zestaw uruchomieniowy – typowe wyposażenie

I

wyświetlacz LCD i/lub segmentowy LED

I

zestaw przycisków lub klawiatura matrycowa

I

układ zasilający, kwarc, złącze programatora

background image

Zestaw uruchomieniowy – dodatkowe wyposażenie

I

wyprowadzenia interfejsów szeregowych (z ew. konwersją
napięć)

I

ciekawe peryferia (termometr, odbiornik i nadajnik IR,
akumulator, pamięć Flash, zegar RTC, . . . )

background image

Zestaw uruchomieniowy – własne wyposażenie

I

pole lutownicze do wlutowania własnych układów

background image

Programatory

Programator:

I

składa się z dwóch części: sprzęt (interfejs PC–mikrokontroler)
i oprogramowanie,

I

dwa tryby programowania: równoległy i szeregowy,

I

wśród nich też istnieje wiele różnych rozwiązań.

Programator równoległy (ang. parallel programming ):

I

jest szybki,

I

zawsze jest aktywny,

I

daje (prawie) pełny dostęp do mikrokontrolera,

I

programowany mikrokontroler trzeba wyjąć z układu,

I

jest niezależny od układu, w którym zastosowano
mikrokontroler,

I

jest skomplikowany i drogi.

background image

Programatory, cd.

Programator szeregowy (ang. in system programming ):

I

umożliwia programowanie bez wyjmowania mikrokontrolera
z układu (projektując układ, trzeba przewidzieć taką
możliwość, dodając co najmniej dodatkowe rezystory),

I

może zostać zablokowany programowo,

I

programowany mikrokontroler musi być prawidłowo taktowany,

I

jest tani i prosty w budowie.

Programator wysokonapięciowy szeregowy (ang. high voltage serial
programming 
):

I

ma te same własności co programator równoległy,

I

jest stosowany w mikrokontrolerach o małej liczbie
wyprowadzeń, np. 8.

background image

Programator szeregowy

I

Jest przyłączany do wyprowadzeń MOSI, MISO, SCK, RESET
mikrokontrolera.

I

Pobiera zasilanie z programowanego układu.

I

Współpracuje z darmowym oprogramowaniem np. PonyProg.

Standardy złącza programatora ISP:

I

ATMEL

I

KANDA

background image

Interfejsy do programowania i debugowania w układzie

JTAG:

I

Jest przyłączany do wyprowdzeń TDI, TDO, TMS, TCK,
RESET mikrokontrolera.

I

Firmowy interfejs jest drogi.

I

Można go wykonać samodzielnie na podstawie opisów
z Internetu.

I

Blokuje port mikrokontrolera.

dW (debugWIRE):

I

Jest przyłączany do wyprowdzenia RESET mikrokontrolera.

I

Jak na razie interfejs trzeba zakupić od firmy Atmel, np. AVR
Dragon.

I

Nie blokuje portów mikrokontrolera.

I

Jest obecny tylko w najnowszych mikrokontrolerach.

background image

Symulator VMLAB

I

Jest to darmowe środowisko do programowania i wykonywania
symulacji.

I

Używa zewnętrznego asemblera (domyślnie firmowego) lub
kompilatora C.

I

Posiada bardzo dobrą wizualizację stanu mikrokontrolera.

I

Ostrzega o wielu potencjalnych błędach, np. czytanie
niezainicjowanych danych.

I

Niestety zawiera drobne błędy i przestał być rozwijany.

I

Można doprogramować w C++ symulację własnych
komponentów.

I

Obsługuje tylko niektóre mikrokontrolery, ale w tym
ATmega16.

I

Jest to bardzo wygodne środowisko dla początkujących.

background image

Środowisko AVR Studio

I

Jest to darmowe zintegrowane środowisko programistyczne
udostępniane przez firmę Atmel.

I

Regularnie publikowane są uaktualnienia.

I

Obsługuje wszystkie aktualnie dostępne mikrokontrolery.

I

Obsługuje JTAG i dW.

I

Posiada nienajlepszą wizualizację.

I

Zawiera symulator, ale jest on (chyba intencjonalnie)
niedopracowany.

background image

Co możemy podłączyć do mikrokontrolera?

Jako wyjście:

I

diody świecące – LED (ang. Light Emitting Diode)„

I

wyświetlacz segmentowy LED,

I

wyświetlacz ciekłokrystaliczny – LCD (ang. Liquid Crystal
Display),

I

komputer, inny mikrokontroler (np. po złączu szeregowym),

I

inny układ (np. po złączu I

2

C),

I

nadajnik podczerwieni – IR (ang. Infra Red),

I

nadajnik radiowy,

I

. . .

background image

Co możemy podłączyć do mikrokontrolera?

Jako wejście:

I

przycisk,

I

klawiaturę matrycową,

I

klawiaturę PC lub myszkę,

I

komputer, inny mikrokontroler,

I

odbiornik IR lub radiowy,

I

termometr analogowy,

I

. . .

background image

Diody świecące, LED

background image

Charakterystyka diody

I

Typowe parametry pracy

I

prąd od kilku do kilkudziesięciu mA,

I

spadek napięcia od 0,2 V do 3,5 V.

I

Jasność diody świecącej zależy od prądu przez nią płynącego.

I

Żywotność też!

I

Nadmierny prąd może uszkodzić diodę.

I

Dioda przewodzi prąd w jednym kierunku (kierunek
przewodzenia).

I

Zbyt duże napięcie przyłożone w kierunku zaporowym może
uszkodzić diodę.

background image

Jak przyłączyć diodę do mikrokontrolera?

I

Prawo Ohma: RI .

I

Dla założonego prądu płynącego
przez diodę:

I

sprawdzamy, jaki będzie spadek
napięcia na niej,

I

włączamy w obwód rezystor
dobrany tak, aby spadki napięcia
na nim i na diodzie sumowały się
do napięcia zasilania.

I

Przykład:

I

prąd diody 5 mA,

I

spadek napięcia na diodzie 1,7 V,

I

napięcie zasilania 5 V,

I

wartość rezystora:

5 V − 1,7 V

5 mA

=

3,3 V

5 mA

= 660 Ω.

I

Wybieramy rezystor 680 Ω.

background image

LED – podsumowanie

Dioda świecąca:

I

przewodzi prąd w jednym kierunku (i wtedy świeci),

I

wymaga ograniczenia prądu za pomocą rezystora.

W zestawie uruchomieniowym:

I

odpowiednie rezystory są wlutowane.

I

po połączeniu diody z portem procesora dioda będzie świecić
po podaniu stanu 0 na odpowiednią nóżkę.

W symulatorze VMLAB:

I

nie trzeba używać rezystorów (ale będą problemy
z oglądaniem przebiegów),

I

dioda będzie świecić po podaniu stanu 0 na odpowiednią
nóżkę.

background image

Jak podłączyć inne układy?

I

Będziemy to poznawać sukcesywnie na kolejnych zajęciach.