Jako, że konfiguracja Smoczka z lochów pod ATMELEM nastręcza sporo problemów postaram się
pokrótce pokazać jak to ugryźć.
1. libUSB dla Windows czyli jak można sobie narobić problemów.
O co więc chodzi ?? ano panowie to wyjątkowo proste , kupiliśmy Dragona
zainstalowaliśmy i w AS działa super .... tak ale nigdzie indziej nie będzie
Dlaczego ... to proste żaden normalny program poza chińskim AS nie będzie rozmawiać ze smokiem
w jego języku czyli na poziomie driverów Jungo. Zamiast tego, musisz zainstalować libusb-win32
i poprosić o podanie alternatywnego dostępu do USB dla WinAVR. No ale nie jet tak kolorowo jak się
wam wydaje
Trudność po zainstalowaniu libusb polega na tym że:
-- jeśli driver Jungo nie jest aktywny, AVR Studio nie działa ze Smoczkiem.
Więc jeśli jesteś podobny do mnie i chcesz zachować popping między środowiskami,
to masz zonka bo trzeba ciągle zmieniać sterowniki. Dobre jest to przynajmniej, że jest łatwe do
zrobienia, ale trzeba wykonać niepotrzebne ruchy .
Nie alternatywnego sposobu na to, albo tylko ja nie mogłem go znaleźć.
--- JEDZIEMY
Więc trzeba nam libusb-win32 do tego. Użyłem wersji 1.2.6 . Istnieje wersja, która jest wewnątrz katalogu WinAVR, ale nie udało się zmusić jej do pracy.
AVR studio zainstalowany i smok też , można sprawdzić w Menedżerze urządzeń systemu Windows, że masz sterownik "Jungo", a AVR Dragon jest z nim związany.Teraz rozpakuj libusb-win32, i zajrzyj
do pliku "install-inf.exe". Inf instalatora dla Smoka, który wykorzystuje libusb.
Możesz nacisnąć przycisk "Zainstaluj teraz", aby właściwie zainstalować sterownik.
Od tej, jeśli masz zamiar iść tam i z powrotem między AVR Studio i WinAVR musisz nauczyć się jak
przełączać między Jungo, a libusb. Jest to dość łatwe. Z podłączonym Dragonem odpalamy
menedżera urządzeń. Wybieramy sterownik jaki jest zainstalowany, klikamy prawym przyciskiem
gryzonia i wybieramy "odinstaluj."
Nie martwcie się, nic się nie usuwa, sterownik jest dalej w systemie komputera jedynie zniknie z listy
Menedżera urządzeń. Odłączamy i ponownie podłączamy Smoka do USB i Windows nas poinformuje iż
"Znaleziono nowy sprzęt". Teraz Spacer po kreatorze instalacji nowego sprzętu, ale nie pozwólmy
na to by automatycznie zainstalował cokolwiek. Wybieramy "Zainstaluj z listy lub określonej lokalizacji" i "Nie szukaj. Wybiorę sterownik do zainstalowania ". Teraz możesz wybrać między sterownikiem Jungo i sterownikiem libusb.
No dobra wybraliśmy libUSB to teraz patrzymy czy działa z avrdude to co nas interesuje:
Do kompa ze Smokiem podłączamy kabel ISP, przełączamy się na libusb , jak opisałem wcześniej.
Otwieramy wiersz polecenia (Start -> Uruchom -> cmd). Przechodzimy do folderu avrdude. WinAVR, zwykle ustawia zmienną PATH, więc można wpisać avrdude polecenia z dowolnego katalogu.
ale znając życie 3ch będzie kombinować z WinAVR i nic nie będzie działać:P
Teraz sprawdzimy , czy nasz smok odpowiada. Użyjemy konfiga dragon_isp z avrdude:
Kod:
avrdude -p atmega168 -c dragon_isp -P usb
efektem tego wpisu powinno być coś takiego:
Kod:
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.17s
avrdude: Device signature = 0x1e9406
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Czasem trzeba wywołać komendę kilka razy, zanim smok zacznie mówić <wyjątkowo wredne i uparte bydle z niego>
Usłyszysz dźwięk "ding" to Dragon się resetuje , a jeśli spróbujesz wywołać avrdude zbyt szybko to nie odpowie poprawnie.
Zainstalowany sterownik libusb pozwala podłączyć / odłączyć Smoka kiedy chcecie i będzie zawsze korzystał z libusb.
Nie wróci do Jungo o ile nie zostanie odinstalowane libusb ręcznie
Jak zobaczycie coś takiego:
Kod:
avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.conf"
Using Port : usb
Using Programmer : dragon_isp
avrdude: usbdev_open(): did not find any USB device "usb"
wielu zobaczy tylko to
To oznacza, że macie problemy z USB. Sprawdźcie , sterownik libusb. Spróbujcie wykonać replugging smoka i zobaczyć czy to pomaga.
Dla jeszcze bardziej szczegółowych informacji, należy użyć flagi -v w avrdude:
Kod:
avrdude -p atmega168 -c dragon_isp -Pusb -v
Otrzymacie więcej informacji np takich:
Kod:
avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.conf"
Using Port : usb
Using Programmer : dragon_isp
avrdude: usbdev_open(): Found AVRDRAGON, serno: 00A200011176
JTAG ICE mkII sign-on message:
Communications protocol version: 1
M_MCU:
boot-loader FW version: 255
firmware version: 7.21
hardware version: 1
S_MCU:
boot-loader FW version: 255
firmware version: 7.21
hardware version: 7
Serial number: 00:a2:00:01:11:76
Device ID: AVRDRAGON
AVR Part : ATMEGA168
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 5 4 0 no 512 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 16384 128 128 4500 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : DRAGON_ISP
Description : Atmel AVR Dragon in ISP mode
Vtarget : 5.0 V
SCK period : 8.00 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.16s
avrdude: Device signature = 0x1e9406
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as 0
avrdude: safemode: lfuse reads as FF
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Jeśli wszystko zrobiliście wszystko jak opisałem to będziecie mieli działającego Smoka
pod Avrdude , a co za tym idzie i w eclipse i w mkCalkulatorze we wszystkich trybach
czyli :
ISP/JTAG/PDI
P.S ... do malkontentów --- nie kupujcie dragona wystarczy wam stk200 lub Baskom programer