pusty pusty pusty
pusty
pusty pusty forum szukaj książki linki artykuły
home c c c c c c c c c
teoria dla początkujących schematy elektronika retro mikrokontrolery pusty
na dół

Mikrokontrolery - od czego zacząć?

Bez elektroniki analogowej świat procesorów i techniki cyfrowej nie ma żadnego znaczenia ...
To zdanie jest według mnie prawdziwe ale prawdą jest też, że w 2003 roku trudno sobie wyobrazić układy elektroniczne bez zaangażowania techniki cyfrowej, a w szczególności mikrokontrolerów. Aby więc być na bieżąco z rozwojem elektroniki i ułatwić sobie życie przy projektach postanowiłem również bliżej zapoznać się z tymi cudami techniki.
   Nie jestem znawcą tematu, więc w dużej mierze opisując budowę i działanie mikrokontrolerów będę wspomagał się informacjami z książek oraz artykułów z czasopism fachowych. Zapoznanie się z budową tych układów to dopiero początek, prawdziwą sztuką jest zmusić je do pracy zgodnie z naszym życzeniem, czyli po prostu trzeba nauczyć się pisać programy, które zmuszą te cudeńka do działania.
   Spróbuję na tej stronie opisać jak radziłem sobie z problemami i pytaniami jakie miałem, i mam nadal przy opanowywaniu umiejętności programowania mikrokontrolerów AVR firmy Atmel.
Atmel Pierwsze pytanie - jaki mikrokontroler ? Jakoś tak się złożyło, że zainteresowały mnie mikrokontrolery AVR, być może z powodu ich popularności i wielu publikacji na ich temat, jak również stosowania ich w projektach, w których brałem i biorę udział. Wybór mikrokontrolerów mam więc już za sobą.

   Drugie pytanie - skąd zdobyć niezbędną wiedzę ? Pierwszym odruchem było szukać informacji w internecie, tu okazało się, że przeważają materiały w języku angielskim, co może stanowić pewną trudność dla nie znających biegle języka. Ja wolałem poszukać źródeł w języku polskim. Aby poznać budowę mikrokontrolerów AVR kupiłem książkę "Mikrokontrolery AVR w praktyce" J. Dolińskiego, również świetną książką dla początkujących może być "Zrozumieć małe mikrokontrolery" J.M. Sibigtroth - wprawdzie omawia ona zagadnienie w oparciu o mikrokontrolery Motoroli z serii M68HC05 ale jest godna uwagi.
Bogatym źródłem wiedzy na temat mikrokontrolerów AVR i ich aplikacji jest oczywiście strona internetowa producenta czyli www.atmel.com.
Pierwszy kurs programowania mikrokontrolerów AVR w języku polskim na jaki się natknąłem, pojawił się w czasopiśmie "Elektronika dla wszystkich". Tytuł tego kursu "Mikroprocesorowa ośla łączka", autorstwa Piotra Góreckiego, mówi sam za siebie. Podobno ma zostać wydana książka tegoż autora poświęcona programowaniu mikrokontrolerów AVR w Bascom-AVR. Z kursu tego można zdobyć nieco wiedzy również na temat budowy mikrokontrolera AT90S2313. Następnym źródłem okazała się książka "Mikrokontrolery AVR w praktyce" autorstwa Jarosława Dolińskiego. Rzecz w tym, że teraz stanąłem przed wyborem Bascom-AVR, asembler czy C, ponieważ książka Dolińskiego proponuje naukę na przykładach napisanych w języku C i asemblerze. Postanowiłem więc, że będę się uczył wszystkich trzech języków naraz, próbując pisać te same ćwiczenia. Może karkołomne ale mnie odpowiada. Do kompletu potrzebowałem jeszcze książki, z której uczyłbym się samego C i tu mój wybór padł na "Język ANSI C" autorów B.W.Kerninghan i D.M.Ritchie.
Ponieważ trochę czasu upłynęło od momentu gdy pisałem powyższy tekst muszę więc zaktualizować niektóre informacje. Na rynku pojawiła się długo oczekiwana pozycja w języku polskim dotycząca Bascom-AVR czyli "Programowanie mikrokontrolerów AVR w języku Bascom". Dla chcących opanować ten język ta książka powinna stać się obowiązkową lekturą (takie jest moje zdanie). W zapowiedziach tego samego wydawnictwa pojawiła się również pozycja którą należałoby się zainteresować czyli "Programowanie mikrokontrolerów w języku C".
Mamy już więc skąd czerpać wiedzę i tu rodzi się następne pytanie.

   Trzecie pytanie - jakie oprogramowanie ? No właśnie, przecież sama teoria nie wystarczy i nie da efektów w postaci opanowania umiejętności pisania programów. Trzeba więc zaopatrzyć się w programy, które umożliwią i ułatwią naukę. Potrzebny jest więc kompilator i środowisko uruchomieniowe. W przypadku języka BASCOM, to dla procesorów AVR będzie to kompilator BASCOM-AVR, który jest kompilatorem i jednocześnie środowiskiem uruchomieniowym z wbudowanym symulatorem. Wersję demo, która z powodzeniem może służyć do nauki można ściągnąć ze strony Marka Albertsa, jeżeli kogoś nie zadowala wersja demo to może na tej samej stronie dokonać zakupu pełnej wersji w cenie 79 euro. Ze strony www.mcselec.com można również ściągnąć pomoc do BASCOM-AVR w języku polskim autorstwa Zbigniewa Gibka. Wydaje się, że dobrym rozwiązaniem jest skorzystanie z oferty wydawnictwa BTC w postaci kompilatora BASCOM-AVR za jedyne 199 zł - szczegóły można znaleźć na stronie www.btc.pl. Ja dokonałem zakupu pełnej wersji u Marka Albertsa.
Dla języka C możliwości jest więcej. Darmową opcją jest skorzystanie z kompilatora AVR-GCC, który jest do ściągnięcia np. ze strony wydawnictwa BTC lub ze strony AVR Freaks. Do tego trzeba jeszcze zaopatrzyć się w jakieś środowisko uruchomieniowe np. AVR Studio, który zawiera w sobie symulator. Program ten można ściągnąć ze strony firmy Atmel. Przy planowanej integracji AVR Studio z AVR-GCC zalecana jest wersja 3.56 (dlaczego? - tego tak naprawdę nie wiem). Opis integracji AVR-GCC z AVR Studio znaleźć można w wymienionej i polecanej przeze mnie książce "Mikrokontrolery AVR w praktyce". Inną darmową opcją jest AVRSide, który można ściągnąć ze strony www.avrside.ep.com.pl. AVRSide jest uproszczonym środowiskiem ułatwiającym wykorzystanie windowsowej wersji bezpłatnego kompilatora avr-gcc. Pozwolę sobie zacytować słowa autora ..."Gdy zaczynałem zapoznawać się z rodziną AVR i avr-gcc najbardziej popularnym rozwiązaniem była dystrybucja AvrFreaks zintegrowana z AVR Studio 3.5. Gdy jednak wypróbowałem ten zestaw stwierdziłem, że jest on mało przyjazny dla - zwłaszcza początkującego - użytkownika. Wtedy zapadła decyzja o dopisaniu własnej nakładki ułatwiającej uczenie się avr-gcc. ..." Czy tak jest należy samemu sprawdzić.
   Inną opcją jest zakup zintegrowanego środowiska uruchomieniowego (IDE) dla mikrokontolerów AVR. Zwykle IDE (Integrated Development Environment) zawiera w sobie kompilator C (lub odwołanie do zewnętrznego kompilatora), edytor i symulator. Tutaj sensowny wybór jest moim zdaniem między kompilatorem ICC-AVR firmy IMAGEcraft, CodeVisionAVR z HP InfoTech i zintegrowanym środowiskiem uruchomieniowym Visual Micro Lab firmy Advanced Micro Tools.
W pierwszej chwili wybrałem ICC-AVR, którego w pełni funkcjonalną 45 dniową wersję można ściągnąć z www.imagecraft.com. Po pierwszych próbach stwierdziłem, że ten kompilator mi odpowiada, bo nie musiałem szukać przyczyn niepowodzeń poza błędami, które sam popełniłem przy pisaniu programu, jednak zakup pełnej wersji to spory wydatek. Ostatecznie najbardziej przekonał mnie Visual Micro Lab, który jest programem IDE, integruje on asembler, zewnętrzny kompilator np. AVRGCC, linker i debuger. Ma kapitalnie rozbudowany symulator łącznie z symulacją zewnętrznych elementów i układów peryferyjnych dołączanych do mikrokontrolera takich jak: rezystor, kondensator, dioda LED, klawiatura 4x4, wzmacniacz operacyjny, przetworniki C/A i A/C, funktory logiczne, generatory różnych przebiegów, potencjometry, monitor I2C, wyświetlacz LCD, terminal komunikacyjny TTY. Na koniec dodam, że ma wbudowany wielokanałowy oscyloskop wirtualny, co jest jak dla mnie kapitalną sprawą.
   Darmową wersję demonstracyjną programu VMLAB można ściągnąć ze strony www.amctools.com, natomiast kompilator CodeVisionAVR ze strony www.hpinfotech.ro.
   Wszystko co napisałem wyżej, to są odczucia subiektywne, każdy musi dokonać wyboru na własną rękę.
   Książki są, oprogramowanie też się znalazło - przydałyby się więc jeszcze jakieś narzędzia, którymi to wszystko można sprawdzić doświadczalnie, zatem czas odpowiedzieć na kolejne pytanie.

Mikrokontrolery AVR w praktyce
J. Doliński
www.btc.pl
Zrozumieć małe mikrokontrolery
J. M. Sibigtroth
www.btc.pl
Elektronika dla wszystkich
Miesięcznik dla elektroników
www.edw.com.pl
Język ANSI C
B.W.Kerninghan, D.M.Ritchie
www.wnt.com.pl
Programowanie mikrokontrolerów AVR w języku BASCOM
M.Wiązania
www.btc.pl
BASCOM-AVR
AVR Freaks
AVR Studio
AVRSIDE
IMAGEcraft
CodeVision
VMLAB
AVT-3500    Czwarte pytanie - jakie narzędzia ? Nawet najlepsze symulatory programowe nie zastąpią rzeczywistego układu, w którym będzie można sprawdzić doświadczalnie wyniki swojej pracy. Dlatego jestem zdania, że niezbędnym dla każdego chcącego dobrze poznać mikrokontrolery jest wyposażenie swojego warsztatu w odpowiednie narzędzia, takie jak zestawy uruchomieniowe i programatory. Jak je zdobyć? Dla elektroników mających pewne doświadczenie i czas rozwiązaniem jest zaprojektowanie samemu takiego zestawu. Uważam jednak, że lepiej zaopatrzyć się w gotowe układy (najbardziej kosztowna opcja) lub kupić same obwody drukowane pozostawiając sobie montaż i uruchomienie. Ja skorzystałem z ostatniej możliwości czyli kupiłem obwody opracowane pod konkretne zestawy uruchomieniowe, następnie zaopatrzyłem się w potrzebne elementy i wykonałem montaż we własnym zakresie. Zestawy przy poprawnym montażu nie wymagały żadnych zabiegów przy uruchamianiu. Dokładniejszy opis tych zestawów uruchomieniowych (pokazane są na zdjęciach obok) wraz ze schematami znajduje się tutaj.
   Na potrzeby nauki BASCOM-AVR zdecydowałem się na wykonanie zestawu jaki zaproponował Piotr Górecki w swoim cyklu artykułów "Mikroprocesorowa ośla łączka" publikowanym na łamach "Elektroniki dla wszystkich". Płytkę drukowaną lub zestaw (płytka + elementy) można kupić w sklepie internetowym wydawnictwa AVT. Można ewentualnie pokusić się o wykonanie wszystkiego samemu według opisu, który zamieściłem tutaj.
   Ucząc się pisania programów w C dla mikrokontrolerów AVR korzystam z kolei z zestawu uruchomieniowego jaki został opracowany na potrzeby książki "Mikrokontrolery AVR w praktyce". Konstrukcję tego zestawu zoptymalizowano pod kątem eksperymentów z mikrokontrolerem AT90S2313, ale można w jego miejsce zastosować inne mikrokontrolery AVR, w tym ATtiny 2313.
Podstawowe właściwości zestawu:
- zastosowano popularny mikrokontroler z pamięcią Flash programowaną w systemie (ISP),
- wbudowana prosta klawiatura,
- wbudowane pole sygnalizacyjne na diodach LED,
- dołączany wyświetlacz LCD,
- płytkę drukowaną wyposażone w duże, uniwersalne pole montażowe,
- wbudowany konwerter poziomów RS232 - TTL/CMOS,
- mikrokontroler można programować za pomocą standardowych programatorów ISP firmy Atmel oraz programatora ZL2PRG (na zdjęciu obok),
- wbudowane złącza z wyprowadzonymi wszystkimi portami mikrokontrolera,
- wbudowany stabilizator napięcia zasilającego umożliwia zasilanie dodatkowych układów, zamontowanych na uniwersalnej części płytki.
Do kompletu dokupiłem jeszcze obwód drukowany programatora ZL2PRG. Programator ZL2PRG jest zbudowany w oparciu o dwustronną płytkę drukowaną. Atutem programatora ZL2PRG jest możliwość współpracy z wieloma bezpłatnymi programami sterującymi jego pracą. Jednym z lepszych jest program PonyProg 2000. Za pomocą tego programu można obsługiwać następujące mikrokontrolery z rodziny AVR: AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4434, AT90S8515, AT90S8534, AT90S8535, ATmega8, Atmega16, Atmega64, ATmega103, ATmega128, ATmega161, ATmega163, ATmega 323, ATtiny12 i ATtiny15.
   Obwody drukowane zestawu ZL1AVR i programatora ZL2PRG można kupić w sklepie internetowym wydawnictwa BTC. Elementy kupujemy i montaż wykonujemy we własnym zakresie. Problemów z uruchomieniem nie ma, pomijając drobny bląd na rys. 5 dokumentacji ZL1AVR, który został już poprawiony.

Co dalej ? Teraz należy już zacząć naukę   .  Wróć do góry, a następnie z umieszczonego tam rozwijanego "menu mikrokontrolery" wybierz interesujący Cię temat, możesz nacisnąć również strzałkę "dalej" - w tym przypadku przejdziesz do następnego tematu w ustalonej kolejności.

ZL1AVR
ZL2PRG
do góry
WsteczMenuDalej
pusty

UWAGA: Wszystkie umieszczone schematy, informacje i przykłady mają służyć tylko do własnych celów edukacyjnych i nie należy ich wykorzystywać do żadnych konkretnych zastosowań bez przeprowadzenia własnych prób i doświadczeń, gdyż nie udzielam żadnych gwarancji, że podane informacje są całkowicie wolne od błędów i nie biorę odpowiedzialności za ewentualne szkody wynikające z zastosowania podanych informacji, schematów i przykładów.


Wszystkie nazwy handlowe, nazwy produktów oraz znaki towarowe umieszczone na tej stronie są zastrzeżone dla ich właścicieli.
Używanie ich tutaj nie powinno być uważane za naruszenie praw właściciela, jest tylko potwierdzeniem ich dobrej jakości.

All trademarks mentioned herein belong to their respective owners.
They aren't intended to infringe on ownership but only to confirm a good quality.


Strona wygląda równie dobrze w rozdzielczości 1024x768, jak i 800x600.
Optymalizowana była pod IE dlatego polecam przeglądanie jej w IE5.5 lub nowszych przy rozdzielczości 1024x768.


© Copyright 2001-2005   Elektronika analogowa
pusty
pusty pusty pusty