Test mini płytki AVR z ATtiny2313 – pierwszy program

Płytka i diodyW poprzednich wpisach zamieściłem garść informacji, gdzie zaopatrzyć się w płytkę z mikroprocesorem AVR ATtiny2313 z 4 wyświetlaczami 7-segmentowymi LED, jak ją zmodernizować, jak wykonać samemu bardzo prosty programator AVR i jak zainstalować w Linuksie niezbędne pakiety i wygodne środowisko Eclipse by móc komfortowo pisać programy. Lista powiązanych wpisów znajduje się na końcu tego tekstu.
Dzisiaj pokażę prościutki program, który przetestuje naszą płytkę i przy okazji opiszę podstawową obsługę IDE Eclipse. Z części sprzętowej będzie potrzebna płytka stykowa (można się bez  niej obejść, ale będzie mało wygodnie), 6 diod led – ja użyłem pomarańczowe o średnicy 3mm, sześć rezystorów o oporności z przedziału 470Ω…1kΩ, zasilacz o napięciu 5V, programator AVR i oczywiście mini płytka testowa z kabelkiem.

Podłączenie programatora i płytki

Opis podłączenia programatora do płytki można znaleźć w tym wpisie Najprostszy programator AVR za 3zł do mini płytki testowej. Kabelki z wtyczką, odzyskane z dekodera DSB-616 są różnokolorowe, opisałem je, zakładając, że biały kabel jest założony na pin 1 (czyli znajduje się najbliżej kondensatorów elektrolitycznych płytki). Pierwsza kolumna to numery pinów w gniazdku płytki, druga to kolory kabli, trzecia to ich przeznaczenie, czwarta zawiera tylko niezbędne do programowania:

Jeśli mamy już prawidłowo podłączony programator i zasilanie do płytki, to w linuksie trzeba nadać uprawnienia do portu LPT, poprzez wydanie komendy w terminalu:

Po wpisaniu hasła roota, zalogowany użytkownik dostanie odpowiednie prawa i będzie można bez przeszkód programować mikrokontroler.

Pierwszy program w Eclipse

Kolejny etap to uruchomienie Eclipse. O jego instalacji i konfiguracji pisałem tutaj: Instalacja narzędzi dla AVR i IDE Eclipse w Linux Mint. Podczas startu standardowo zostaniemy zapytani o domyślną ścieżkę dla projektów – można ustawić swoją lub zostawić domyślną. Gdy środowisko się uruchomi, wybieramy z górnego menu File->New…->C Project, w oknie jak niżej, w polu Project name wpisujemy nazwę projektu – będzie ona jednocześnie nazwą folderu – tutaj nie używamy polskich znaków i spacji:

C Project

Zatwierdzamy przyciskiem [Next >]. W następnym oknie Select Configurations odznaczamy opcję Debug, pozostawiamy tylko zaznaczoną pozycję Release. Po wciśnięciu [Next >] możemy zatwierdzić ustawienia przyciskiem [Finish] mimo iż wybrany jest zły MCU – ustawimy to później. W okienku po lewej o nazwie Project Explore powinniśmy widzieć swój projekt. Podświetlamy go klikając lewym klawiszem myszy, a z górnego menu wybieramy Project->Properties. W kolumnie po lewej rozwijamy grupę AVR i wybieramy AVRDude. W zakładce Programmer, klikamy na [New…] w polu Programmer Configuration. W polu Configuration Name wpisujemy nazwę dla tworzonej konfiguracji, np: Bascom_prog. Z lewej kolumny Programmer Hardware (-c) wybieramy posiadany programator, w naszym przypadku Bascom SAMPLE programming cable. Przycisk [OK] zamknie to okno, sprawdzamy czy konfiguracja jest ustawiona i wciskamy [Apply]. Teraz w kolumnie po lewej wybieramy Target Hardware – w polu MCU Type ustawiamy ATtiny2313, a w MCU Clock Frequence wpisujemy 8000000. Zatwierdzamy przyciskiem [Apply] [OK].

Teraz klikając prawym myszy na naszym projekcie w lewej kolumnie wybieramy New…->Source File, wpisujemy nazwę pliku (bez spacji i polskich znaków) z rozszerzeniem .c:

Source File

Zatwierdzamy przyciskiem [Finish], w Eclipsie pojawi się edytor, w którym możemy pisać kod.

Napisałem kilka linijek w C. Jest to bardzo prosty program, jego zadaniem jest przetestowanie wszystkich portów pod kątem prawidłowego połączenia i braku zwarć. Oto cały kod:

Kod w takim zapisie jak wyżej jest średnio czytelny. Edytor w Eclipse posiada kolorowanie składni, dzięki czemu wszystko staje się o wiele bardziej przejrzyste. Plik mini_test.c i mini_test.hex można ściągnąć korzystając z linku na końcu tekstu.

Kod źródłowy w języku C musi zostać skompilowany i przetłumaczony na język maszynowy zrozumiały dla mikroprocesora. W tym celu upewniamy się, że nasz plik jest podświetlony w kolumnie po lewej, zapisujemy go ikonką dyskietki lub skrótem [CTRL]+[S] i wciskamy ikonkę młotka z menu w górnej części lub korzystamy z wygodnego skrótu [CTRL]+[B], przeglądamy okienko Console w poszukiwaniu ewentualnych problemów:

Okienko Console po kompilacji

Załadowanie programu do mikroprocesora jest również łatwe – za pomocą ikony z napisem AVR* i strzałką w dół, lub wygodniej, skrótem [CTRL]+[ALT]+[U]. Również wynik działania otrzymamy w konsoli:

Upload programu

Jak widać, wszystko się powiodło i program został załadowany. Teraz od płytki koniecznie trzeba odłączyć zasilanie i programator oraz podłączyć diody LED plusem do portów mikrokontrolera i przez rezystor do masy. Poniżej schemat, który to ułatwi – dodatkowo przewody zostały oznaczone kolorami, tak jak w oryginale:

Płytka i diody

 

Po dwukrotnym sprawdzeniu poprawności połączeń – szczególnie zasilania, można podłączyć napięcie +5V do płytki. Jeśli wszystko jest OK, powinny zapalać się pojedyncze segmenty pierwszego wyświetlacza, później drugiego itd., a na końcu diody LED. Jeśli podczas całego testu świeci się jednocześnie tylko jeden segment lub tylko jedna dioda, to płytkę możemy uznać za w pełni sprawną.

Poniżej krótki filmik z działania mojego programu (diody LED nie zapalają się w kolejności, bo tak zostały podłączone):

Przydatne linki

Jak pisałem na wstępnie, podaję linki do poprzednich wpisów związanych z płytką testową:

Jeśli chciałbyś szybko przyswoić język C i programować mikroprocesory AVR, polecam ten kurs: KURS C programowania mikrokontrolerów AVR.

Kod źródłowy i plik wynikowy użyty w tym wpisie pobierzesz tu:
>> POBIERZ pliki mini_test

W kolejnym wpisie dotyczącym mini płytki AVR udostępnię program termometru z wykorzystaniem popularnego czujnika DS18b20.

Wpis “Test mini płytki AVR z ATtiny2313 – pierwszy program” komentowano 5 razy

Dodaj komentarz