Koszyk Twój koszyk jest pusty ...
wyszukiwanie zaawansowane
Strona główna1 » Programowanie AVR w C2 » Pierwszy krok, czyli budujemy układ do ćwiczeń

Pierwszy krok, czyli budujemy układ do ćwiczeń

Data dodania: 17-10-2018Praktyczne poznawanie nowego mikrokontrolera przebiega zwykle tą samą ścieżką. Najpierw buduje się minimalny układ testowy. W skład takiego prototypu wchodzi moduł mikrokontrolera, czyli mikroprocesor z niezbędnymi elementami towarzyszącymi takimi jak kwarc i układ resetu,  moduł zasilania oraz programator. Do mikrokontrolera podłącza się element sygnalizujący w postaci diody led. Następnie tworzy się program, którego jedynym zadaniem będzie zaświecenie diody.

Wydaje się proste ?
Pewnie tak, ale w praktyce jest to jeden z trudniejszych etapów do pokonania. Przeanalizujmy dlaczego.  Aby zapalić diodę led musimy najpierw zbudować prawidłowy układ. Nie zawsze dostępny jest gotowy moduł mikrokontrolera , który wystarczy jedynie zasilić. Ale powiedzmy, że ten krok szczęśliwie udało nam się rozwiązać. Mamy moduł i wiemy jak go zasilić. Dochodzimy do momentu podłączenia programatora i tutaj zaczynają się pytania. Jaki typ programatora należy użyć, w jaki sposób go podłączyć oraz jaką aplikację do wgrywania plików wsadowych zastosować.  

Jeśli już to wszystko mamy, trzeba wgrać odpowiedni plik do procesora i tą naszą diodę zapalić. Tym samym pojawia się kolejny problem, czyli w jakim oprogramowaniu uzyskać taki plik. Jak napisać program i w czym go skompilować.

Są trzy główne niewiadome tj. zbudowany układ sprzętowy z podłączonym programatorem, którego jeszcze nie sprawdziliśmy w działaniu bo nie mamy pliku wsadowego do mikrokontrolera. 
Aplikację obsługującą programator, którą trzeba odpowiednio skonfigurować dla konkretnego typu układu.
A także kompilator, który ma wygenerować plik wynikowy z naszego programu. Jednak nie ma pewności czy dobrze ten program napisaliśmy i czy ustawione parametry kompilacji są prawidłowe.
Wszystko okaże się dopiero po wgraniu pliku do mikrokontrolera.

Podsumowując, jeśli uda nam się napisać program, prawidłowo go skompilować, następnie wgrać  do procesora a układ faktycznie zapali diodę to możemy sobie pogratulować. Najgorszy etap mamy za sobą. Od tego momentu możemy się  skupić na samym programowaniu i poznawaniu możliwości mikrokontrolera.  
Jesteśmy pewni, że kompilator prawidłowo tworzy plik wynikowy a programator dobrze go wgrywa. Mikrokontroler wykonuje operacje zgodnie z instrukcjami programu, więc jego działanie zależy wyłącznie od tego jaki kod stworzymy.

Przejdźmy zatem do praktyki i zbudujmy naszą bazę sprzętową.

Elementy i narzędzia, które będą nam potrzebne:

- płytka stykowa 830pkt.
- moduł zasilania
- zasilacz stabilizowany 12VDC
- moduł mikrokontrolera ATmega328p
- zestaw przewodów połączeniowych
- programator AVR  USBasp (wygodnie pracuje się z przedłużaczem USB widocznym na poniższych zdjęciach)
- zestaw podzespołów elektronicznych
- miernik cyfrowy


Montujemy moduł zasilania na płytce stykowej. Należy zamontować go po lewej stronie płytki. Zapewni to zgodność polaryzacji napięcia wyjściowego modułu z opisem na płytce stykowej. W efekcie przy linii czerwonej będzie plus a przy linii niebieskiej minus (masa GND). Jeśli zamontujemy go po drugiej stronie płytki polaryzacja nie będzie zgadzała się z opisem.

Dodatkowo należy zwrócić uwagę na prawidłowe umieszczenie żółtych zworek na module. Konfigurują one napięcie wyjściowe modułu.
Muszą być ustawione tak samo jak na zdjęciu, aby moduł dostarczał 5V

Po prawej stronie płytki stykowej umieszczamy moduł mikrokotrolera ATmega328p.
Moduł zasilania zamontowany na płytce stykowejModuł mikrokontrolera avr ATmega328p zamontowany na płytce stykowej

Moduły montujemy przy skrajnych krawędziach płytki ze względów praktycznych.
Do obu układów musimy doprowadzić przewody z zewnętrznych urządzeń tj. z zasilacza oraz z programatora.
Przy takim zamontowaniu modułów przewody będą leżały poza płytką i nie zasłonią nam użytecznej powierzchni płytki stykowej.
Moduły na płytce stykowej 830

Podłączamy zasilacz stabilizowany 12VDC do modułu zasilania.
Po wciśnięciu wyłącznika umieszczonego na płytce modułu powinna zapalić się zielona dioda led sygnalizująca obecność napięcia.
Moduł zasilacza sygnalizujący napięcie

Teraz podpinamy czerwony przewód do linii określonej na płytce stykowej jako plus oraz niebieski przewód do linii określonej jako minus.
Warto trzymać się ustalonych kolorów przewodów, aby później łatwiej odnajdywać się w połączeniach układu.
Przewody podłączone do linii zasilającej na płytce stykowej 830 pkt

Zanim doprowadzimy zasilanie do modułu AVR ATmega328p proponuję sprawdzić prawidłowość napięcia.
Jest to dobry nawyk, który warto w sobie wyrobić. Sprawdzanie wartości napięcia zasilającego przed podłączeniem go do kolejnego modułu uchroni nas przed ewentualną pomyłką i uszkodzeniem podłączanego układu.

Jeśli z jakichś przyczyn na końcówkach przewodów będzie napięcie większe od 5,2V to takiego zasilania nie podłączamy.
Wtedy należy przyjrzeć się modułowi zasilania i poszukać przyczyny problemu. To samo w przypadku, gdy napięcie będzie niższe niż 4,8V
Kontrola napięcia miernikiem cyfrowym

Jak widać miernik pokazuje dokładnie 5V, czyli napięcie jest idealne i można bezpiecznie zasilić moduł mikrokontrolera.
Oczywiście podłączenie wykonujemy przy wyłączonym zasilaniu.

Czerwony przewód należy podłączyć do pinu opisanego jako RAW na płytce modułu mikrokontrolera.
Niebieski przewód podłączamy do pinu opisanego jako GND.
Po wykonaniu połączenia załączamy zasilanie układu.
Moduł mikroprocesora powinien się uaktywnić zapalając diodę led umieszczoną w środku płytki. Druga dioda zamontowana obok przycisku reset powinna cyklicznie mrugać.
Podłączenie zasilania do płytki pro-mini ATmega328pZasilony moduł AVR ATmega328p pro-mini

Skoro wszystko działa to teraz możemy podłączyć programator AVR USBasp.

Odłączamy jasnoszarą taśmę przewodów od programatora.

Wybieram z zestawu kabelków 5 przewodów o kolorach: biały, żółty, pomarańczowy, zielony i niebieski.
Wtykamy je do złącza IDC taśmy programatora AVR USBasp, dokładnie tak jak na zdjęciu.
Przewód żółty ma być połączony z pinem nr 1.
Kolorowe przewody do płytki stykowejPodłączenie przewodów do programatora USBasp

Pin numer jeden znajduje się po stronie czerwonego przewodu w taśmie.
Na złączu IDC jest oznaczony trójkącikiem. Widać go mniej więcej w połowie wysokości złącza.
Takie oznaczenie znajduje się zarówno na wtyku IDC jak i na gnieździe. Warto o tym wiedzieć, gdyby kiedyś zaszła konieczność samodzielnego zaciśnięcia złącza  IDC na taśmie przewodów. Czerwony przewód taśmy ma być po tej samej stronie co trójkącik określający pin nr 1.
Symbol wskazujący pin numer jeden w złączu IDC

Gdy już podłączyliśmy przewody do złącza IDC to teraz ich drugie końce podłączamy do modułu ATmega328p.
Oczywiście wyłączamy zasilanie modułu na czas wykonywania połączeń. Po podłączeniu zasilanie ponownie załączymy.

Lista połączeń:
żółty - pin 11
biały - pin 12
pomarańczowy - pin 13
zielony - pin RST
niebieski - podłączyć do linii masy GND
Podłączenie programatora do procesora avrPodłączenie programatora AVR do modułu pro-mini ATmega328p 16MHz

Teraz podłączamy programator AVR USBasp do komputera przez złącze usb.
Do tego celu wygodnie jest zastosować przedłużacz usb np. taki jak pokazany na zdjęciu.
Programator avr USBasp i przedłużacz usb
Programator podłączony do komputera z aktywną diodą led1

Po podłączeniu powinna zaświecić się czerwona dioda led opisana na programatorze jako LED1. Jednocześnie system Windows rozpocznie poszukiwanie sterownika. Jeśli go znajdzie to automatycznie zainstaluje, a jeśli nie to musimy zrobić to ręcznie.

Samodzielna instalacja sterownika wygląda następująco.
Uruchamiamy aplikację Zadig pobraną z linku poniżej lub ze strony producenta (http://zadig.akeo.ie)

Instalator sterowników USBasp dla Windows - Zadig

W górnym pasku wyboru odszukujemy "USBasp" a następnie wybieramy driver "libusb-win32(v1.2.6.0)"
Jeśli górny pasek wyboru będzie pusty należy wejść do menu "Options" i zaznaczyć "List All Devices"

Po wybraniu USBasp i wskazaniu sterownika naciskamy przycisk "Install Driver".
Proces instalacji zakończy się komunikatem potwierdzającym wykonanie zadania. Aplikację "Zadig" możemy zamknąć.
Aplikacja Zadig instalująca sterownik dla programatora USBasp

Pozostaje nam sprawdzić, czy programator prawidłowo ładuje pliki do mikrokontrolera.
Pobieramy aplikację "AVRdude"  oraz testowe pliki HEX umieszczone w folderze "AJAWeTest"

Aplikacja dla programatora - AVRdude 6.3

Pliki testowe HEX dla mikrokontrolera ATmega328p - AJAWeTest

Oba foldery po rozpakowaniu umieszczamy na dysku C:\
Foldery AVRdude i AJAWeTest umieszczone na dysku C

Podłączamy taśmę AWG do gniazda IDC w programatorze.
Podłączona taśma AWG do złącza IDC w programatorze AVR USBasp

Wchodzimy do folderu "AJAWeTest" i uruchamiamy plik "write_pulsowanie.bat".
Rozpocznie się proces programowania mikrokontrolera, po którym dioda led umieszczona na płytce modułu będzie pulsować - cyklicznie się rozjaśniać i ściemniać.
Proces programowanie będzie wyglądał tak jak poniżej i zajmie około 1 sekundy.

Okno konsoli w systemie Windows - programowanie avr

Uruchomienie drugiego pliku tj. "write_mruganie.bat" zaprogramuje mikroprocesor innym programem testowym, w którym dioda będzie pracować w cyklu trzy szybkie mrugnięcia i przerwa.

Jeśli wszystko działa tak jak w opisie to moduł bazowy mamy gotowy.
W następnym artykule przygotujemy kompilator i skonfigurujemy środowisko programistyczne do tworzenia i kompilowania programów dla AVR.

Andrzej Weidemann
AJAWe

Przejdź do strony głównej
Oprogramowanie sklepu shopGold.pl