poniedziałek, 16 lipca 2012

Część 5 - Wprowadzenie do mikrokontrolerów

Hej

Oto kolejna, prawdopodobnie najważniejsza część kursu elektroniki. Oczywiście nie ostatnia :)
Dowiesz się stąd w jaki sposób podłączyć i wykorzystać prosty mikrokontroler. W dalszej części tekstu będę korzystał ze skrótu uC. ( u - oznaczenie micro, C - pierwsza litera słowa Controller)



1. Czym jest mikrokontroler?

uC jest nazywany inaczej komputerem jednoukładowym. Dlaczego tak?
Wyobraź sobie komputer/ tablet/ telefon , przed którym właśnie siedzisz czytając ten artykuł. Z czego się składa? Więc po kolei:
- procesor z super szybką pamięcią cache
- RAM
- dysk twardy
- ekran
- karta graficzna
- karta dźwiękowa (zintegrowana zazwyczaj z płytą główną)
- porty pozwalające urządzeniu komunikować się z innym sprzętem (USB, stacja CD, czytnik kart SD itd.)
- klawiatura i myszka pozwalające człowiekowi sterować działaniem maszyny

Tak to wygląda w skrócie. Zadaj sobie teraz proste pytanie. Jakiej funkcjonalności potrzebuje robot pracujący w fabryce?
- musi przechować swój program
- musi dawać możliwość modyfikacji programu
- powinien posiadać możliwość komunikowania się z dodatkowym sprzętem (spawarką, szczypcami itd.)
- musi być w stanie poruszać się w swojej strefie pracy
- powinien informować człowieka o swoich działaniach
- człowiek musi w pewnym stopniu kontrolować jego działanie (wyłącznik zwykły, awaryjny, zmiana trybów pracy bez uciążliwego modyfikowania programu itd.)

Więc jakie podzespoły znane ze zwykłego komputera będą takiemu robotowi potrzebne?
- Procesor z niezbędną otoczką sprzętową
- RAM
- trwała pamięć nieulotna (w przypadku uC jest to pamięć flash)
- lampki lub ekran sygnalizujące pracę
- przyciski, klawiatury lub inne sposoby kontrolowania pracy maszyny

Mikrokontroler zawiera w sobie procesor, pamięć RAM i pamięć flash. Jest to więc samodzielny komputer, który można zaprogramować i wykorzystać do sterowania skomplikowanymi układami.

Jesteś tam jeszcze?
Tak?
To idziemy dalej.

Jest bardzo wiele rodzin mikrokontrolerów produkowanych przez różne firmy. Różnią się od siebie praktycznie wszystkim poza podstawowymi funkcjami i zasadą działania.

Rodzina mikrokontrolerów, którą zajmiemy się na tym kursie to AVR AtMega. Jest to popularna rodzina ośmiobitowych uC produkowanych przez firmę Atmel. Znajdują zastosowanie w wielu amatorskich konstrukcjach, ponieważ są wyjątkowo przyjazne dla początkujących, a to dzięki następującym cechom:
- podstawowy model - AtMega8a dostępny jest w cenie 5-6 zł
- w internecie jest ogrom materiałów dotyczących tej rodziny mikrokontrolerów
- specyfikacje udostępnione przez Atmel są przejrzyste i zrozumiałe nawet dla początkujących
- dostępne są środowiska pozwalające programować AVR w wielu językach ( C, Pascal, BASCOM, asembler)
- AVR posiadają bardzo wiele przydatnych i prostych w obsłudze funkcji
- programatory do tej rodziny uC można dostać w cenie 10-35zł lub złożyć samemu ,,na kolanie" z kilku oporników i kabelków, dostępne są programatory dla portów LPT, USB i RS.

Tak wygląda interesujący nas kontroler:

Jak widać jest to blok czarnego tworzywa wypakowany po brzegi elektroniką. Najbardziej interesująca nas część to wystające z niego ,,nóżki". Ten konkretny model posiada 28 wyprowadzeń. O funkcji pełnionej przez każde z nich dowiadujemy się z takiego oto schematu:


Czarna magia? 
Teraz odczytamy podstawowe oznaczenia i wszystko się rozjaśni. 

Mikrokontrolery zasilane są prądem stałym. W przypadku rodziny AVR jest to +5V (są modele zasilanie napięciami niższymi, ale nie będziemy się nimi teraz zajmować) . 

VCC - jest to wyprowadzenie zasilania uC, podłączamy tu +5V
GND - masa, czyli inaczej uziemienie; podłączamy tu 0V
AREF - jest to wyprowadzenie związane z przetwornikami analogowo-cyfrowymi (ADC) , zazwyczaj podpinamy przez kondensator 100nF do masy
AVCC - kolejne wyprowadzenie powiązane z przetwornikami (o nich później), musimy podpiąć tu dobrze filtrowane +5V, do filtrowania używamy kondensatora 100nF i dławika 10uH (dławik to mały element indukcyjny służący do filtrowania napięcia)
RESET - na tym wejściu musimy utrzymywać stan wysoki, pojawienie się stanu niskiego spowoduje reset uC
OCxx ( OC1A, OC1B, OC2) - są to wyjścia timerów mikrokontrolera, timery to układy posiadające olbrzymią ilość funkcji, podstawowy cel do jakiego będziemy ich używać to sterowanie wypełnieniem, czyli inaczej utrzymywanie stanów 0 i 1 w odpowiednim stosunku do siebie, na przykład 75% czasu stan wysoki a 25% to niski. Można w ten sposób kontrolować na przykład prędkość z jaką kręci się silnik. Można nimi również generować sygnały o określonej częstotliwości, na przykład 36kHz wykorzystywaną między innymi w pilotach do TV. 
XTALx - wyprowadzenia te służą do podpięcia zewnętrznego źródła taktowania (na przykład rezonatora kwarcowego), pozwala to nawet podwoić szybkość przetwarzania uC. AtMega posiada również wewnętrzne źródło taktowania o częstotliwości do 8 MHz, zewnętrzny kwarc może mieć do 16MHz. 
ADCx - wyprowadzenia te to 10-bitowe przetworniki analogowo-cyfrowe, oznacza to że pozwalają zmierzyć i odczytać podawane na nie napięcie. Wynik zwracają w zakresie od 0 do 1024. Można ustawić je w tryb 8-bitowy i wówczas jest to 0-255. Są to jedne z najbardziej przydatnych wyprowadzeń stosowanych w robotyce amatorskiej. 
SCK,MISO,MOSI - są to trzy wyprowadzenia służące do programowania uC; pracują w standardzie ISP (In System Programming), oznacza to, że nie musimy wyjmować mikrokontrolera z układu aby go zaprogramować, wystarczy wpiąć wtyczkę i wgrać program. 

Tyle chwilowo wystarczy. Do zobaczenia w kolejnej części kursu! 








Brak komentarzy:

Prześlij komentarz