Mikrokontrolery AVR część 1 – wprowadzenie

Przeglądając internet, zaobserwowałem, że nie ma artykułu opisującego dokładnie w szczegółach kontrolery z rodziny AVR. Postanowiłem zlikwidować tę dziurę w publikacjach internetowych i napisać kilkuczęściowy artykuł na temat tych kontrolerów. Postaram się przedstawić coś w stylu noty katalogowej kontrolera, wraz z prostymi przykładami w języku C.

Artykuł będzie bazował na kontrolerze Atmega8A, który jest nową wersją, chyba najpopularniejszego z AVRów. Jednak zanim przejdę do sedna artykułu, najpierw omówię, podstawowe pojęcia z techniki cyfrowej.

Zacznijmy od tego, co to jest układ cyfrowy, a co układ analogowy.

Układ analogowy – jest to układ elektroniczny przetwarzający sygnały o wartości ciągłej, czyli wszystkie wartości jakie mieszczą się w pewnym przedziale. Na przykład, wszystkie wartości napięć pomiędzy 0V, a 5V. Może to być na przykład 2V, ale także 1,34532V, jest tych wartości, w tym przedziale nieskończenie wiele.

Układ cyfrowy – to taki układ, który przetwarza sygnały dyskretne, czyli takie, które mają z góry określoną wartość, np. 0 i 1, przy czym te wartości(0 i 1) są tylko symbolami dla napięć z pewnych przedziałów.

Kolejnymi ważnymi definicjami są pojęcia procesora i mikrokontrolera.

Procesor – to układ, który pobiera rozkazy z pamięci programu, a następnie wykonuje te rozkazy.

Mikrokontroler – to taki układ elektroniczny, który w swojej strukturze zawiera procesor, pamięć programu i pamięć danych oraz układy wejścia wyjścia, a także takie struktury jak liczniki, oraz przetworniki.

Pojawiło się tutaj kilka nie znanych jeszcze pojęć takich jak pamięć danych, czy programu, oraz rozkazy procesora. Zaraz je wyjaśnię.

Rozkaz – to ciąg zer i jedynek, mówiący procesorowi co ma dokładnie robić.

Pamięć programu – to blok pamięci, w którym, jak sama nazwa wskazuje, mieści się program, który ma zostać wykonany przez procesor. Ten program składa się z wielu rozkazów. Przeważnie jest to pamięć typu flash, dawniej stosowano pamięci EPROM, oraz EEPROM.

Pamięć danych – to pamięć typy RAM, gdzie są przechowywane dane generowane podczas wykonywania programu, możemy coś tam zapisać lub odczytać. W tej pamięci znajduje się też blok konfigurujący prace naszego kontrolera(mikrokontrolera).

W kontrolery wbudowane są, jak już wspominałem, układy takie jak liczniki, układy wejścia wyjścia (we/wy, lub z angielskiego in/out), przetworniki (A/D, oraz D/A), komparatory analogowe, układy transmisji, watchdogi oraz wiele innych. Te układy nazywa się układami peryferyjnymi.

Liczniki to układy zliczające impulsy z zewnątrz układu scalonego lub z wewnątrz. Pozwalają odmierzać czas, zliczać impulsy, porównywać częstotliwości, generować przebiegi PWM (modulacja szerokości impulsu).

Układy wejścia/wyjścia to dzięki nim kontroler może kontaktować się z otoczeniem. Na przykład czytać stan klawiatury, sprawdzać czujniki, wyświetlać komunikaty na różnego rodzaju wyświetlaczach, generować sygnały dźwiękowe.

Przetworniki a/d to układ zamieniający wartość sygnału analogowego na sygnał cyfrowy, wyrażony w określonym kodzie.

Przetwornik d/a jest to układ, który służy do przeważania wartości cyfrowej na wartość analogową.

Komparator analogowy służy do porównywania dwóch sygnałów analogowych. Zwraca odpowiednią wartość binarną (cyfrową), zależnie od tego, który z podając sygnałów analogowych jest większy, a który mniejszy.

Układy transmisji służą do komunikowania się z otoczeniem, np. z innym układem scalonym lub z komputerem PC. Są to takie transmisje jak: RS, SPI, I2C(czytaj i kwadrat c).

Watchdog jest bardzo przydatnym układem, jeżeli nasz kontroler ma być bardzo stabilny. Zadaniem watchdoga jest czuwanie, czy procesor się nie zawiesił. Watchdog to licznik, który nigdy nie może zliczyć do końca, a w zasadzie opróżnić się, bo zlicza w dół. W chwili kiedy ten licznik się opróżni procesor zostanie zresetowany. Aby się nie opróżnił należy go co jakiś czas napełniać.

Co to jest rejestr?

Jest to komórka pamięci, w której jest przeznaczone miejsce na umieszczenia tam jakiejś konfiguracji (procesora, bądź układów peryferyjnych), jest to po prostu komórka pamięci, o przewidzianym zastosowaniu.

Wydaje mi się, że w tym momencie, mogę przystąpić do opisywania kontrolerów AVR. W następnej części zajmę się już dokładnie rodziną AVR. Opisze podstawowe parametry oraz zaganiania potrzebne do rozpoczęcia pracy z tymi układami.

Facebook Comments

Komentarze do „Mikrokontrolery AVR część 1 – wprowadzenie

  1. Na taki język i sposób „nauczania” czekałem! Wspaniała robota. Czekam na więcej. Przewaliłem już sporo takich treści w internecie i uważam, że ten artykuł nadaje się na szerszy „kursik”. Tym bardziej, że jest milion stron na których ludzie ambitnie planują dalsze części ale wszystko umiera na pierwszym artykule… Trzymam kciuki i czekam 🙂

  2. Dzięki za dobre słowa 🙂 Kurs powstałe już dawno, a już w przygotowaniu są następne części, może jeszcze dzisiaj, albo jutro będzie następna.

      • A to przepraszam bardzo 🙂 swoją drogą w tamtym czasie też szukałem dobrego kursu i właśnie na abcxyz zaczynałem. Szkoda że na te stronę nie trafiłem. Pozdrawiam.

  3. Kursów jest w sieci sporo ale jeśli ktoś zielony przeglądnął przynajmniej kilka z nich – nadal szuka takiego, który napisany jest przystępnym językiem, operuje przykładami, a przede wszystkim krok po kroku rozwija teorię. Zaczynam zabawę elektroniką (podkreślam – „zabawę”). Niestety albo jestem wiekowo tępy albo pewne sprawy są ciężkawo tłumaczone… Zdaję sobie sprawę, że profeski z elektroniki już nie zrobię ale nigdzie w polskiej sieci nie znalazłem na przykład dobrze wytłumaczonej pracy przerwaniami – których za fixa nie mogę zrozumieć 🙂 Najlepszy jak na razie, to kurs na Forbocie. Niestety wiele z tych „kursów” jest sponsorowanych. Kupujesz zestaw i na nim się bawimy. Nie masz zestawu – przykro nam nie możemy ci pomóc…

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.