USBTiny-MkII SLIM programmer
USBTiny-MkII SLIM programmer (AVRISP-MKII clone) supports all Attiny, Atmega, and Xmega µcontrollers. It has three programming interfaces: ISP, PDI, and TPI. It works with AvrStudio or AvrDude. Small convenient board, contains double direction voltage translator for all interfaces and working from 1,2V, jumper for target chip voltage selection 5V or 3,3V (LDO stabilizer), and status LEDs. The heart of the device is a AT90USB162 controller with hardware USB, so it can provide fast programming speeds.
About:
Circuit built and based on LUFA project (link), programmer inspired by USBTiny-MKII (link), and USBTiny MKII PL (link). I used MAX3002 in place for original GTL2003 translator, exactly like author of the PL version – this chip is more available. This change also need a change of code, which is described in last link – code in attachment is already moded – original will work incorrectly.
WARNING – as it shows, MAX3002 version (1.0) is working poorly when ISP lines are loaded with some resistance or capacitance – do not copy! PCB in 1.1 version with GTL2003 chip, which works like a charm, is available as update below – this pcb works with original firmware.
Programmer has a three IDC 6pin sockets to provide support for three programming protocols: ISP, PDI, and TPI. They allows to programm all of available Atmega, Attiny, and Xmega chips. PCB just looks complicated, but it can be also homemade. Vias are not placed under chip or other elements so they can be made with a wire. Vias placed under the at90usb162 chip derives its other free pins to pads on the bottom side of pcb – so circuit can be used also as a test board for other codes using hardware USB. Code change is very simple, it is made trough built-in USB bootloader and free tool from Atmel – FLIP.
Under IDC sockets a voltage selection jumper is placed – you can select voltage which can be used to power your target chip. Short the 1 and 2 for 5V, or 2 and 3 for 3,3V. For voltage reduction, LDO MCP1825S-3302ED stabilizer is used – but you can use any pin-compatible one, like LF33. Removed jumper will disconnect voltage from the “translated” side, and you have to provide this voltage from target chip to allow programmer to work.
I won’t write about programming, everybody knows how it works. Programmer can be used from AvrStudio or AvrDude. Disadvantage is that, we must choose with which software we want to use it – but changing form one to another is just a matter of minutes :)
Launching:
After correct soldering, connect your programmer to USB port. You will see a notification that your PC found a new device called “AT90USB162 DFU”. Download and install the FLIP software from Atmel. Then, install DFU drivers from Atmel\Flip\usb\ folder. After correct install, start FLIP, click on the “chip” icon, and select at90usb162 from the list. Then, click on the 2nd “usb cable” icon, select USB, and OPEN in next window. FLIP should detect your chip with no problem – if it can’t (you get error message), it means that you did something wrong. You can reinstall the driver, connect to another usb port, or reboot your system.
If you chip is brand new (empty) then after connect it will automatically start in bootloader mode. If you want to upgrade firmware, then put the HWB jumper on, and short RST pins. Chip will start in bootloader mode. Jumper can be removed.
If we want to compile the code for our own, we will need only WinAvr in 2010-01-10 version. Select make clean and then make all – that’s it. But we can choose here the software under which we want to compile the firmware. If we want to use it with AvrDude, then open the makefile file and add following line:
CDEFS += -DLIBUSB_DRIVER_COMPAT
Next step is to send our firmware to chip. Click on the first “open book” icon and select our HEX file. Then hit the RUN button. We should have checked the “erase”, “program”, and “verify” checkboxes. Code will be written very fast. Now, just reconnect programmer to usb port – or short the RST pins, and you should get two LEDs lit.
After that, PC will detect new device LUFA AVRISP MkII CLONE – it’s time to install driver for this. If we want to use programmer with AvrStudio, install driver from Atmel\AVR Tools\usb\ folder – this folder is created when installing AvrStudio. But if we want to us it with AvrDude, then install the LIBUSB driver. Unpack files, run inf-wizard app, select our programmer from list, save created file, and click on install now or use windows installer. LED1 should light up – this means that programmer is ready to work – congratulations, that’s it.
In AvrStudio, click on the Con button, then select AVRISP mkII from list, and hit connect.
In AvrDude, change your programmer type in command line for:
-c avrisp2 -P usb or -c avrispmkII -P usb.
Update 2013-03-03:
In the AVRISP-MKII lufa project, more changes have been done, and the most important are:
-Bug fix, which was blocking USB communication after unsuccessful target communication.
-Added a function for fast switching between Jungo (Avr/Atmel Studio) and LibUSB (AvrDude) driver, in one FirmWare. Just short the reset pins (you can expand them as a switch on the casing) and device will present itself in the system with a different serial number. Two flashes of LED means that we have Jungo driver, and four, LibUSB driver. In both cases we need to install correct drivers. It is very useful function when using different development environment, previously we had to upload different firmwares to the device and use driver filter.
-In addition, programmer remembers the last used mode, and from that mode it start after reconnecting, it also remembers last used SCK speed. Below is a package with compiled code with switching functionality (LUFA 130303). In order to compile the program yourself with the above switching function, you need to define (uncomment) line RESET_TOGGLES_LIBUSB_COMPAT in the AppConfig.h file.
See also: µProg – tiny, fast, portable AVR programmer with SD
Gallery:
Files:
DOWNLOAD – Eagle 5.10 files: PCB, SCH, alternative PDFs; compiled HEX files in two versions, full C source code – 110528 version, help files. br>
DOWNLOAD – Eagle 5.10 files: PCB, SCH, and alternative PDFs for 1.1 version; compiled HEX files in two versions – 111009 version, full C source code – 111009 version, help files. br>
DOWNLOAD – Eagle 5.10 files: PCB, SCH, and alternative PDFs for 1.1 version; compiled HEX file with toggle function and full C source code – 130303 version, help files. br>
Current firmware is always available at the LUFA project at the bottom of the site, project is placed in the Projects/AVRISP-MKII, folder, and it must be compiled before burn. Attachment on my site will not be updated when new LUFA version is released.
29 July 2011
|
Posted by manekinen







Categories:
Tags:


Czy ten sprzęt potrafi zaprogramować układ AVR32?
Zdaje mi się, że na elektrodzie jest kilka postów na temat tego programatora i jeśli dobrze pamiętam kolega freddy mówił, że w schemacie z elportalu jest kilka błędów. Rozumiem, że to co zrobiłeś działa bez problemu?
Niezależnie od tego – bardzo ładna płytka :)
Możesz przytoczyć te konkretne posty?
Jak na razie wszystko pracuje dobrze, jednak kontaktowałem się już wcześniej z autorem i pisał o problemach kiedy linie ISP w układzie docelowym są obciążone. Sam tego jeszcze nie stwierdziłem, ale jeśli coś wyjdzie, to na pewno będę robił poprawkę :)
Mam jedno pytanko. Czy ten programator jest obsługiwany przez Bascoma ?
Tak na szybko sprawdziłem ze sterownikami od AvrStudio – i wywala błąd. Także nie wiem, na razie nie mam czasu się bawić. Ale zawsze można użyć avrdude w bascomie – więc nie ma problemu :)
Witam. Czy pcb można było by kupić u Pana? Jeżeli tak to za ile?
Pozdrawiam:)
Ps.W jakiej firmie Pan płytki zamawia?
Płytek nie mam. A zamawiałem na prototypy.com
Kolejny bardzo dobry i przydatny projekt w Pana wydaniu. Czekam jak zbierze się zamówienie, żebym mógł też sobie złożyć takie narzędzie. Chciałbym się dowiedzeć, czy nie ma Pan może wiedzy na temat, czy powstał, w oparciu o podobny koncept tj. procek ze stosem USB oraz translator napięć, JTAG to m.in. 8 biowych układów ATMELA? Serdecznie gratuluje projektu i podziwiam ogrom pracy jaki Pan włożył w swoje konstrukcje.
Kolejny bardzo dobry i przydatny projekt w Pana wydaniu. Chciałbym się dowiedzeć, czy nie ma Pan może wiedzy na temat, czy powstał, w oparciu o podobny koncept tj. procek ze stosem USB oraz translator napięć, JTAG to m.in. 8 biowych układów ATMELA? Serdecznie gratuluje projektu i podziwiam ogrom pracy jaki Pan włożył w swoje konstrukcje.
Inspiring work!
Can I use this programmer to flash AVR32 devices? Eg: ATngw100
Witam.
Czy w sklepiku pojawią się główne elementy potrzebne do złożenia programatora? I czy projekt uproga będzie dalej rozwijany pod kątem pdi? Chcę wykonać jakiś programator którym będę mógł programować pdi i nie wiem do którego kompletować części. Wolałbym zrobić uproga ale jeżeli nie będzie obsługi pdi to wykonam ten programator.
Pozdrawiam
Paweł
Jest już gotowa druga wersja tego programatora, na kości GTL2003 i sprawuje się bezbłędnie – niedługo dam pliki, całkiem o tym zapomniałem :)
W sklepiku będą dostępne płytki drukowane zarówno do MKII SLIM jak i uProga. Będzie można też kupić całe zestawy części do obydwu programatorów w dobrej cenie.
Co do uProga – prace nad PDI się jeszcze nie zaczęły z braku czasu, ale w planach to jest i będzie jak najbardziej dodane – o ile nic się po drodze nie skomplikuje :)
Pzdr
Niesamowita konstrukcja.
Który wsad użyć, aby można było korzystać z ECLIPSE?
Thanks so much for the great PCB files and info!!
I made both 1.0 and 1.1 versions and have one of each.
Witam, zrobiłem ten programator, płytkę sam trawiłem – nie polecam tego rozwiązania, przelotki to katorga – nie możliwe jest wyprowadzenie portów przelotkami pod prockiem, lepiej kupić płytkę od manekinena, teraz sam bym tak zrobił.
Spotkałem się też z dziwnym problemem – programator był losowo wykrywany przez komputer, czasami jako nieznane urządzenie, czasami poprawnie, a czasem wcale… Pierwsze podejrzenie padło na kwarc – na szczęście on był właśnie powodem tych problemów, po wymianie na inny na razie jest wszystko OK, co ciekawe uszkodzony kwarc wystarczyło popukać w czape i programator sie uruchamiał :D
wielkie dzięki dla manekinena za taki fajowski i mały programator :)
Ależ przelotki pod układem nie są potrzebne do działania programatora – to taki dodatek, gdyby ktoś chciał użyć płytki jako zwykłej płytki uruchomieniowej z at90usb :)
Uszkodzony kwarc to raczej trudna usterka do zdiagnozowania, sam bym się tego nie spodziewał – nigdy się nie spotkałem z takim czymś.
ja wiem że przelotki tam są niepotrzebne do działania :) ale chciałem po prostu mieć wszystko co zaplanowałeś :) no ale nie wyszło, a kwarc był nówka sztuka kupiony w zestawie elementów z polecanego przez Ciebie sklepu, możliwe że ja go uszkodziłem w jakiś sposób, ale to grosze a nerwów troche napsuły :)
Bez problemu mozna zrobić samemu płytke z przelotkami. Tutaj zaprezentowałem zdjecia swoich płytek http://www.elektroda.pl/rtvforum/topic2054775-60.html
Piękne wykonanie, pewnie trochę czasu to kosztowało :)
jajen
W jaki sposób wykonałeś cynowanie (czy to chemiczny spossób?) oraz jak zrobiłeś przelotki pod atmegą? Gratuluję, świetna robota.
Witam
a gdzie w sklepiku są dostępne płytki dla Programatora “USBTiny-MkII” ??
Tomek
Na chwilę obecną nie przewiduję ich powrotu.
Witam czy pojawi się poradnik jak zrobić solder maskę na pcb ?
Soldermaska w warunkach domowych, wg mojej opinii, to strata czasu. Dłubania dużo a efekt mizerny… Lepiej pocynować :)
Jaki element w torze F1
Witam serdecznie !
Ponieważ byłbym zainteresowany takim programatorem (1-2szt.) zwracam się z uprzejmą prośbą, czy można zakupić już złożone i uruchomione wersje tego prgramatora , Ze względu na wzrok same PCB na niewiele mi się zdadzą, ponieważ montaż drobnych SMD pozostaję poza możliwościam mojego wzroku. podobnie jak wgrywanie wsadu do mikrokontrolera sterującego całością. BArdzo proszę o poważne potraktowanie mojej prośby – pytania.
Pozdrawiam Serdecznie ! Krzysztof Graliński <>
Witam!
Czy programator powinien działać bez translatora napięć? Próbował ktoś lub spróbuje? Czy da się zrobić ten programator z jednym złączem wannowym łącząc odpowiednie linie?
Jasne że będzie działać bez translatora, ale układ docelowy także musi być zasilany z 5V. Uniemożliwi to programowanie układów Xmega których maksymalne napięcie zasilania to 3,3V.
Jeśli chodzi o złącza, być może dało by się upchnąć dwa protokoły w jedno złącze. Ale jest to niepotrzebne kombinatorstwo. Proponuję jednak pracować zgodnie ze standardem Atmela używając dedykowanych złącz, co pozwoli na uniknięcie wielu niepotrzebnych problemów.
A czy zasilając programator napięciem 3,3V układ będzie działał? Wtedy można by programować XMEGI.
Dziękuję za szybką odpowiedź.
AT90USB162 może z powodzeniem być zasilany z 3V3, jednak wymaga to niewielkiej przeróbki schematu. Noga wewnętrznego stabilizatora UCAP musi także zostać dołączona do szyny 3V3 na płytce. Patrz nota AT90USB162 rozdział Power Distribution.
Zalecają jeszcze aby wyłączyć ten stabilizator w rejestrze aby zminimalizować pobór prądu. Co wymaga rekompilacji wsadu. Nie wiem jak to wygląda w praktyce, nie próbowałem takich rozwiązań.
Proponuję jednak wykonać prosty translator na diodach zenera, nie powinno być problemów w komunikacji nawet przy wyższych prędkościach.
w wersji 1.1 rezystory r8 i r9 mają chyba po 470ohm, a rezystory od portu usb to chyba 22 ohm mają mieć tak?
Kde je možno v PL sehnat obvod GTL2003, v čechách je nedostupný.
Díky
Je u nás dostupný – http://cz.rs-online.com/web/c/?searchTerm=gtl2003&sra=oss&r=t … Právě jsem udělal jednodeskovou verzi, opticky oddělenou, která tento obvod nepoužívá. Je to vlastně kombinace USBTiny-MKII a USBAsp v opticky odděleném provedení.
Witam
Jaka jest licencja tego projektu ? Czy ten programator można skopiować i sprzedawać (firmware + pcb) ?
Kolego ekspercie.
Licencja oprogramowania LUFA jest dołączona do jego plików, oraz znajduje się na jego stronie domowej http://www.fourwalledcubicle.com/LUFA.php
Informacja na temat wykorzystywania komercyjnego projektu płytki jest również dołączona do jej plików, oraz znajduje się na stronie jej autora – czyli tej.
Jak szybko on programuje ? i ATXMegi i normalne ATMegi. Chodzi mi o KB/s.
Nie wiem, nie mierzyłem. A do czego chcesz to porównać?
Z czystej ciekawości pytam ;) Pewnie duużo szybciej niż USBasp.
Tak, UsbAsp osiąga chyba 1,5MHz na SCK o ile dobrze pamiętam. W MKII można ustawić do 8MHz.
Czyli ok. 5 razy szybciej niż USBasp ? Już go buduję :)
Nie wiem dokładnie o ile jest szybszy ale jest szybszy z pewnością kilkukrotnie. Prędkość sygnału SCK to niezbyt miarodajne porównanie, bo występują też przerwy pomiędzy wysyłanymi bajtami i zależą one od tego jak szybko można przepchać dane po kablu usb – wiadomo że przy sprzętowej obsłudze nie ma żadnego problemu, a przy softowej program zajmuje się usb a w wolnym czasie komunikacją z układem docelowym.
Witam ponownie
Czy firmware da sie wgrac do mikrokontrolera, ktory jest juz przylutowany na PCB i czy mozna to zrobic programatorem USBasp ?