Programator AVR-ISP MKII

Programator AVR-ISP MKII
Pobierz PDF Download icon
Do zapisu pamięci mikrokontrolerów AVR najczęściej są stosowane programatory z interfejsem szeregowym ISP. Są one tanie i nieskomplikowane. Jednak te programatory straciły swoją uniwersalność, ponieważ firma Atmel wprowadziła do sprzedaży nowe mikrokontrolery, programowane za pomocą interfejsów PDI i TPI. Programator zaprezentowany w artykule jest uniwersalny, przyda się zarówno do starszych, jak i nowszych AVRów.

Tab. 1. Wykaz mikrokontrolerów AVR w zależności od typu interfejsu programującego

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

Rysunek 1. Schemat ideowy uniwersalnego programatora dla mikrokontrolerów AVR

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.

Rysunek 2. Schemat montażowy uniwersalnego programatora dla mikrokontrolerów AVR

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.

Rysunek 3. Instalowanie drivera programatora przed wgraniem firmware

Rysunek 4. FLIP – wybór mikrokontrolera do zaprogramowania

Rysunek 5. Okno informujące o poprawnym wgraniu firmware

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ów

Rezystory:
R1: 1 kΩ SMD
R2,R3: 27 Ω SMD
R4 - R6,R9: 1 kΩ SMD
R7,R8: 470 Ω SMD

Kondensatory:
C1,C5,C7,C8: 100 nF SMD
C2: 1 uF SMD
C3,C4: 33 pF SMD
C6: 10 µF/16V SMD

Półprzewodniki:
U1: 90USB162-16AU SMD
U2: MAX3002 SMD
D1: LED SMD GREEN
D2: LED SMD RED
X1: Kwarc 16 MHz

Inne:
S1, S2: Przycisk Microswitch
J1: Gniazdo USB mini typu B
J2: Gniazdo 2x5 pinów
Z1 - Z3: Gniazdo ISP6
JP1: goldpin 1×2 + zworka

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.

Rysunek 6. Programator rozpoznany przez Windows jako AVRISP mkII

Rysunek 7. Wybór typu programatora

Rysunek 8. Okno interfejsu programatora środowiska AVR Studio

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

Artykuł ukazał się w
Elektronika Praktyczna
marzec 2013
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik styczeń 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio styczeń 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje styczeń 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna styczeń 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich styczeń 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów