Programator USBTiny-MKII SLIM (klon AVRISP-MKII) obsługuje wszystkie µkontrolery Attiny, Atmega oraz Xmega. Posiada trzy interfejsy programowania: ISP, PDI, oraz TPI. Bezpośrednio współpracuje z AvrStudio lub AvrDude. Mała wygodna płytka zawiera dwukierunkowy translator napięć dla wszystkich interfejsów współpracujący już od 1,2V, zworkę umożliwiającą zasilanie układu docelowego 5V lub 3,3V (stabilizator LDO 3,3V) oraz diody sygnalizujące. Sercem układu jest kontroler AT90USB162 ze sprzętowym interfejsem USB, dzięki czemu prędkość programowania jest bardzo duża.
O programatorze:
Układ zbudowany w oparciu o projekt LUFA (Link), programator wzorowany na USBTiny-MKII (Link) oraz USBTiny MKII PL (Link). Zamiast oryginalnego translatora napięć GTL2003 użyłem MAX3002 tak jak autor wersji PL – układ ten jest w miarę łatwo dostępny. Taka zamiana wymaga modyfikacji kodu, którą autor opisał pod podanym linkiem – kod w załączniku jest zmodyfikowany – oryginalny będzie działał błędnie.
Programator posiada trzy złącza wannowe 6pin do obsługi trzech protokołów: ISP, PDI oraz TPI. Pozwalają one programować wszystkie dostępne układy Atmega, Attiny oraz Xmega. Płytka wygląda na skomplikowaną i ściśniętą, ale bez problemu można wykonać ją w warunkach domowych. Przelotki potrzebne do działania programatora nie znajdują się pod układami czy innymi elementami, więc można wykonać je przy pomocy drutu. Przelotki pod układem at90usb162 wyprowadzają jego pozostałe wolne piny na spód płytki, gdzie znajdują się sporych rozmiarów pola lutownicze – zatem układ może być również wykorzystywany jako płytka do testowa innych programów wykorzystujących sprzętowe USB. Zmiana programu jest bardzo prosta, bo odbywa się poprzez szybki bootloader USB i darmowe narzędzie od Atmela – FLIP.
Pod gniazdami wannowymi znajduje się zworka do wyboru napięcia, którym można zasilić układ docelowy. Położenie pin 1 i 2 – napięcie 5V. Położenie 2 i 3 – napięcie 3,3V. Do obniżenia napięcia wykorzystano stabilizator liniowy LDO typu MCP1825S-3302ED – ale można wlutować dowolny stabilizator zgodny pinowo, np LF33. Zworka całkowicie zdjęta nie poda żadnego napięcia na układ docelowy a tym samym na „wtórną” stronę translatora napięć, która musi mieć zasilanie. W takim przypadku napięcie zasilające należy doprowadzić taśmą z układu docelowego.
O samym programowaniu nie ma co się rozpisywać - programator jak programator. Wszyscy wiemy do czego służy. Może być obsługiwany bezpośrednio z AvrStudio lub pośrednio przez AvrDude. Minus jest taki, że nie może być używany w obydwu programach – trzeba się zdecydować na jeden – choć zmiana wersji to 5 minut
Uruchamianie:
Po poprawnym zmontowaniu układu podłączamy go do portu USB i naszym oczom powinien ukazać się dymek, że znaleziono nowe urządzenie „AT90USB162 DFU”. Pobieramy i instalujemy program FLIP od Atmela. Instalujemy sterownik, ręcznie wskazując folder z katalogu Atmel\Flip\usb\. Po poprawnym zainstalowaniu włączamy FLIP’a, klikamy na ikonkę z układem i wybieramy z listy at90usb162. Klikamy drugą ikonkę z przewodem USB, wybieramy z listy USB, a w następnym okienku OPEN. Program powinien wykryć układ bez oporów – jeśli jest inaczej (okienko z błędem), to znaczy, że coś źle zrobiliśmy. Można przeinstalować sterownik, podpiąć do innego portu lub ponownie uruchomić system.
Jeśli układ jest nowy (pusty), to po podłączeniu od razu wystartuje w bootloaderze – nie trzeba nic ruszać. Jeśli tylko uaktualniamy wsad, należy założyć zworkę na piny HWB, a następnie zewrzeć piny RST. Wtedy układ startuje w bootloaderze. Zworki można po tym zdjąć.
Jeśli chcemy sami skompilować kod, wystarczy do tego WinAvr w wersji 2010-01-10. Dajemy make clean a potem make all – i już. Mamy tu jednak do wyboru pod jaki program chcemy nasz kod skompilować – może działać z AvrStudio LUB z AvrDude. Jeśli chcemy używać go z AvrDude, do pliku makefile dodajemy wpis:
C$DEFS += -DLIBUSB_DRIVER_COMPAT
Kolejnym krokiem jest załadowanie pliku do pamięci. W programie FLIP naciskamy ikonę otwartej książki ze strzałką „do” i wybieramy wsad do wgrania. Następnie dajemy RUN. Powinniśmy mieć zaznaczone ptaszki przy „erase”, „program”, oraz „verify”. Program wgra się bardzo szybko. Wystarczy odłączyć i podłączyć programator lub zewrzeć piny RST, a wtedy powinny zaświecić się obydwie diody na płytce.
Po tym komputer wykryje nowe urządzenie LUFA AVRISP MkII CLONE – czas zainstalować sterownik. Jeśli chcemy, aby programator współpracował z AvrStudio, instalujemy sterownik z katalogu Atmel\AVR Tools\usb\ – katalog ten jest tworzony podczas instalacji AvrStudio. Jeśli chcemy pracować z AvrDude, instalujemy sterownik LIBUSB. Po rozpakowaniu paczki odpalamy program inf-wizard, wybieramy z listy nasz programator, zapisujemy utworzony plik i klikamy install now lub korzystamy w windowsowego instalatora. Na programatorze zaświeci się LED1, co oznacza gotowość do pracy – gratulacje, to wszystko.
W AvrStudio wystarczy kliknąć na ikonę Con, wybrać programator AVRISP mkII i kliknąć connect.
W AvrDude należy zmienić typ programatora w linii poleceń na:
-c avrisp2 -P usb lub -c avrispmkII -P usb
Działanie programatora sprawdziłem:
ISP: Atmega2560
TPI: Attiny10
PDI: AtXmega16A4
W załączniku: Pliki eagle 5.10: PCB, SCH; alternatywne PDF; Wsad HEX w dwóch wersjach, pełny kod źródłowy C – wersja 110528, pliki pomocnicze.
Kosztorys (orientacyjnie):
Płytka: 20zł
Max3002: 13zł
AT90USB162: 17zł
Gniazda, stabilizator, itd: 10zł
Strona domowa układu: http://diy.elektroda.eu/programator-usbtiny-mkii-slim/
UWAGA - układ w wersji 1.0 (z max3002) nie radzi sobie gdy linie ISP są obciążone, nawet rezystorami 10K, także nie polecam tej wersji wykonywać. Dostępna jest wersja 1.1 z układem GTL2003 która działa bardzo ładnie - aktualizacja jest TUTAJ.
Programator USBTiny-MkII SLIM (zamówienie, temat już nieaktualny, patrz niżej)
Płytki drukowane wersja 1.1 są dostępne TUTAJ
Fajne? Ranking DIY