Kurs AVR dla języka C – przygotowania

Witam w pierwszej części kursu AVR dla języka C, w której zajmiemy się przygotowaniem do praktyki – programowania.  Kurs ten jest oparty na moich doświadczeniu – nie jestem specjalistą w dziedzinie mikrokontrolerów AVR, lecz na pewno nie będę „kursantów” wprowadzał w błąd, ponieważ wszystko co piszę jest sprawdzone w praktyce, jak i w teorii.

Mikrokontroler

Czym jest mikrokontroler? Pozwolę sobie na zaczerpnięcie definicji z Wikipedii:

Mikrokontroler (skrót ang. MCU lub µC) – system mikroprocesorowy zrealizowany w postaci pojedynczego układu scalonego, zawierającego jednostkę centralną (CPU), pamięć RAM oraz na ogół pamięć programu i rozbudowane układy wejścia-wyjścia. Określenie mikrokontroler pochodzi od głównego obszaru zastosowań, jakim jest sterowanie urządzeniami elektronicznymi.

Kurs AVR dla języka C będę opierał o mikrokontroler ATmega8 – przynajmniej na razie. Potrzebna w ramach kursu będzie również płytka stykowa i programator. Nie będę wszystkiego dokładnie wypisywać, ponieważ zrobiłem to w artykule Jak tanio zacząć przygodę z mikrokontrolerami AVR. Wszystkie części potrzebne do kursu można zakupić w sklepie internetowym www.lispol.pl.

Przygotowanie

Pierwsza część kursu jest przygotowaniem do drugiej, w której zaczniemy już programować i bawić się z diodami LED. A więc, mając już płytkę stykową (zakładam, że wiecie jak budować na niej układy :) ) należy złożyć następujący schemat:
Schemat
Zasilacz najlepiej złożyć na płytce drukowanej, lecz jeśli ktoś nie czuje się na siłach w wytrawianiu, może zmontować zasilacz na płytce stykowej.

Mając już złożony schemat, musimy pobrać z internetu środowisko + kompilator (program do tłumaczenia kodu źródłowego w języku programowania na język maszynowy), oraz aplikację przez którą będziemy programować nasz mikrokontroler. Tworzymy również folder, w którym będziemy trzymać wszystkie pliki, które potrzebne będą podczas naszego kursu.

Oto linki do stron, z których możemy pobrać potrzebne nam oprogramowanie:

WinAVR – http://sourceforge.net/projects/winavr/files/WinAVR/20100110/WinAVR-20100110-install.exe/download

MkAvrCalculator (program w wersji darmowej z ograniczeniami), można wykorzystać inny do zaprogramowania pamięci mikrokontrolera, lecz ten program jest bardzo wygodny dla początkujących  – http://atnel.pl/oprogramowanie-pc/mkavrcalculator

 

Gdy mamy już potrzebne oprogramowanie, należy je zainstalować. WinAVR instalujemy jak każdy inny program – zalecam zainstalować na partycji C, a MkAvrCalculator wypakowywujemy do folderu np. gdzieś na pulpicie. Do pełni szczęścia, czyli możliwości programowania potrzebujemy jeszcze AVRDUDE. W tym celu włączamy program MkAvrCalculator, oraz wystarczy użyć klawisza „Instaluj” znajdującego się w zakładce
„Ustawienia” i ramce „AVRDUDE”. Zakładam, że sterowniki do programatora są zainstalowane.

Konfiguracja

Gdy mamy wszystko zainstalowane i przygotowane, zabieramy się za konfigurację.
Z Menu Start wybieramy Wszystkie programy → WinAVR → MFile. W programie wybieramy Makefile → Main file name…, gdzie wprowadzamy nazwę pliku z kodem C bez rozszerzenia .c . Na potrzeby wpisujemy w okno dialogowe „kurs“. Następnie wybieramy Makefile → MCU Type→ ATmega → atmega8 (oczywiście jeśli akurat ATmega8 jest naszym mikrokontrolerem, na potrzeby kursu to właśnie ten model jest nam potrzebny).

Przyszedł czas na ustalenie jakiego typu programatora używamy. Ja zakładam, że wszyscy kursanci będą używać USBasp. Jeśli będą problemy z powodu użycia innego programatora, proszę pisać swoje uwagi w komentarzach.
W programie MFile, wybieramy Makefile → Port -> usb oraz Makefile→ Enable Editing of Makefile. Nie wybieramy za to typu programatora, lecz szukamy w tekście w okienku MFile fragmentu „AVRDUDE_PROGRAMMER = …“,  gdzie wpisujemy po znaku równości:
„usbasp“ (bez cudzysłowiu). Ostatni krok – wybieramy File → Save as… i zapisujemy w folderze przeznaczonym na potrzeby kursu.

Podsumowanie

To by było na tyle w tej części kursu. W następnej przejdziemy do praktyki, czyli programowania i mrugania diodami LED. Zapewniam, że następna część kursu będzie bardziej pasjonująca niż ta. :)  Ciąg dalszy wkrótce nastąpi… :)