Rekomendacje: urządzenie niezbędne w warsztacie każdego elektronika zajmującego się urządzeniami mikrokontrolerowymi.
W tabeli 1 umieszczono wykaz najbardziej popularnych mikrokontrolerów AVR z określeniem typu interfejsu służącego do ich programowania. Jak można zauważyć, większość mikrokontrolerów AVR jest programowanych za pomocą interfejsu ISP, ale niektóre (np. nowe, w obudowach 6-wyprowadzeniowych) z rodziny ATtiny są programowane za pomocą interfejsu TPI, a mikrokontrolery z rodziny ATXmega za pomocą interfejsu PDI.
Opisywany programator jest kompatybilny z AVR-ISP mk.II i umożliwia programowanie wszystkich 8-bitowych mikrokontrolerów AVR za pomocą interfejsów ISP, PDI i TPI. Współpracuje z najnowszą wersją programu AVR Studio (który można bezpłatnie pobrać ze strony firmy AVR), kompilatorami ImageCraft oraz Codevision AVR.
Od strony wyjścia programator ma specjalny bufor, za pomocą którego jest możliwe programowanie mikrokontrolerów zasilanych rożnymi napięciami, przy czym programowany mikrokontroler może być zasilany napięciem z programatora lub napięciem z programowanego systemu. Wybór napięcia zasilania umożliwia zworka. Komunikacja programatora z komputerem odbywa się za pomocą interfejsu USB. Komputer może pracować pod kontrolą systemu operacyjnego Windows XP, Vista, 7.
Opis działania układu
Na rysunku 1 pokazano schemat ideowy programatora. Jego sercem jest mikrokontroler AT90USB162 taktowany za pomocą rezonatora kwarcowego X1 o częstotliwości 16 MHz. Zasilanie programatora jest pobierane ze złącza USB komputera PC. Napięciem z interfejsu USB może być również zasilany programowany układ, co umożliwia zworka JP1.
Rezystory R2 i R3 są wymagane dla prawidłowego działania interfejsu USB programatora. Przyciskiem zerowania S1, rezystor R1 i kondensator C1 tworzą obwód zerowania mikrokontrolera. Przycisk S2 służy do wywoływania bootloadera w celu zmiany firmware programatora (wywołuje bootloader DFU). Dioda D1 wskazuje status programowania, natomiast D2 załączenie napięcie zasilającego programator. Rezystory R7 i R8 ograniczają prąd diod D1 i D2.
Linie interfejsów programujących wyprowadzono na złącza Z1...Z3 za pomocą translatora napięć U2. Pełni on podwójną rolę, ponieważ oprócz konwersji poziomów napięć zabezpiecza również mikrokontroler programatora przez uszkodzeniem. Kondensatory C5...C8 filtrują napięcie zasilające programator.
Przy założonej zworce JP1 programowany układ jest zasilany napięciem 5 V z interfejsu USB, natomiast przy zdjętej musi być zasilany z systemu, w którym został zamontowany.
Interfejs programujący ISP został wyprowadzony na złącze Z1. Składa się on z następujących linii:
- MOSI - linia wyjściowa.
- VCC - zależnie od położenia zworki JP1 jest linia zasilaną lub zasilającą programowany układ.
- GND - masa.
- RST - reset.
- SCK - sygnał zegarowy.
- MISO - linia wejściowa.
Interfejs PDI został wyprowadzony na złącze Z2. Składa się on z następujących linii:
- DATA - dwukierunkowa linia danych.
- CLK - sygnał zegarowy.
- VCC - jak dla interfejsu ISP.
- GND - masa.
Interfejs PDI w mikrokontrolerach Xmega nie jest przystosowany do poziomów logicznych 5 V. Podczas korzystania ze złącza PDI zworka JP1 powinna być zdjęta, natomiast napięcie doprowadzone do pinu VCC mikrokontrolera nie powinno przekraczać 3,6 V.
Interfejs TPI został wyprowadzony na złącze Z3. Składa się on z następujących linii:
- DATA - dwukierunkowa linia danych.
- CLK - sygnał zegarowy.
- RST - sygnał zerowania.
- VCC - jak dla interfejsu ISP.
- GND - sygnał masy.
Montaż i uruchomienie
Schemat montażowy programatora mikrokontrolerów AVR przedstawiono na rysunku 2. Większość elementów użytych w jego konstrukcji to komponenty SMD. Do ich montażu jest wymagana lutownica z cienkim grotem oraz cyna o średnicy 0,25 mm. Po poprawnym zmontowaniu i sprawdzeniu czy nie występują zwarcia, programator jest gotowy do uruchomienia. Przed użyciem do programowania mikrokontrolerów AVR należy wgrać firma wre programatora - bez niego programator nie zadziała.
Do wgrania firmware będzie niezbędne program FLIP dostępny na stronie internetowej firmy Atmel, który należy zainstalować przed pierwszym dołączeniem programatora do komputera. Aby wprowadzić programator w tryb aktualizacji firmware, należy przycisnąć przycisk S2 i trzymając go wciśniętym - podłączyć programator do komputera PC.
Komputer wykryje programator i zainstaluje go pod nazwą AT90USB162 (rysunek 3). Sterowniki są dostępne w katalogu oprogramowania FLIP (AtmelFlip...usb). Po uruchomieniu programu FLIP należy wybrać urządzenie do zaprogramowania (Device → Select). Należy zaznaczyć AT90USB162 i kliknąć OK., jak na rysunku 4. Następnie należy kliknąć na ikonkę symbolizującą kabel USB, wybrać USB i w okienku USB Port Connection, które zostanie wyświetlone na ekranie, wybrać Open.
Dalej należy wskazać docelowy plik AVRISP.hex z menu File → Load HEX File... i nacisnąć przycisk Run. Po skończonej aktualizacji należy zamknąć program oraz odłączyć programator lub przycisnąć przycisk S1 (Reset). Okno informujące o poprawnie wgranym firmware pokazano na rysunku 5.
Wykaz elementówRezystory: Kondensatory: Półprzewodniki: Inne: |
Programowanie mikrokontrolerów z użyciem AVR Studio
Programator z poprawnie wgranym firmware powinien zostać rozpoznawany i zainstalowany w systemie jako AVRISP mkII (rysunek 6). Sterowniki dla programatora są instalowane wspólnie z AVR Studiem. Są one dostępne w katalogu AtmelAVR Toolsusb. W celu połączenia z programatorem wybieramy AVR Studio → Tools → Program AVR → Connect.
W oknie Select AVR Programmer wybieramy AVRISP mkII, port USB i naciskamy Connect, jak na rysunku 7. Po kliknięciu klawisza Connect powinno pojawić się okno obsługi programatora pokazane na rysunku 8. Za jego pomocą można wykryć typ programowanego mikrokontrolera, co będzie dobrym testem dla programatora.
Marcin Wiązania, EP