Programator ISP dla mikroprocesorów z rodziny AVR na USB.doc

(1607 KB) Pobierz
Programator ISP dla mikroprocesorów z rodziny AVR na USB

Programator ISP dla mikroprocesorów z rodziny AVR na USB.

 

 

 

        Z powodu zakupu nowego laptopa, który nie posiada już portów LPT byłem zmuszony do zbudowania programatora ISP działającego na porcie USB. Po kilku chwilach spędzonych w internecie wybór padł na programator zamieszczony na stronie http://www.fischl.de/usbasp/.

Na powyższej stronie widnieje kilka wersji tego programatora, niemniej są to wszystko takie same programatory tylko w inny sposób zrealizowane.

Osobiście wybrałem wersję zaprojektowaną przez J.A. de Groot.

 

 

 

Wersja ta jest zbudowana w całości na typowych elementach bez użycia elementów SMD, tym samym najprostsza w budowie.

Schemat programatora

 

 

 

Płytka programatora (3x8cm)

 

 

Schemat programatora i płytki do pobrania tutaj. (format EAGLE)

 

Ponieważ jak widać na schemacie ATMEGA8 taktowana jest kwarcem 12Mhz ważne jest aby była ona wersją pracującą do 16Mhz czyli powinna posiadać oznaczenia ATMEGA8-16AU. W innym przypadku programator nie będzie działał poprawnie.

Po wykonaniu płytki i wlutowaniu wszystkich elementów przechodzimy do programowania.

 

Programowanie mikroprocesora.

 

        Ponieważ robiłem programator na USB a poprzednio używałem programatora na LPT1 i programu Adama Dybkowskiego musiałem posłużyć się innym komputerem wyposażonym w port LPT1 do zaprogramowania nowego programatora.

Na płytce zwieramy zworkę JP1 "SELF PROGRAMMING". Podłączamy nasz programator pod USB (tylko po to aby zasilić nasz programator) oraz podłączamy złącza ISP pod port LPT1 w celu programowania.

Schemat podłączenia programatora pod LPT1

 

 

 

Opis wtyczki na programatorze USB

 

 

 

Uruchamiamy program Adama Dybkowskiego do programowania. Program trzeba skonfigurować aby poprawnie działał. Po pierwsze w oknie głównym wybrać z jakim kwarcem mamy nasz mikroprocesor, czyli 12Mhz. Następnie trzeba wskazać na jakich pinach portu LPT mamy sygnały. Wybieramy z okna "ISP cable pinout" opcję AT-Prog.

 

 

 

Następnie klikamy na przycisk "READ SIGNATURE". Po tej czynności powinniśmy widzieć sygnaturę mikroprocesora. Jeśli nie ma jej znaczy to, że albo źle podłączyliśmy kabel lub nie zasililiśmy mikroprocesora. Dalsze programowanie w takim przypadku jest niemożliwe. Zakładając, że mamy odczytana sygnaturę przechodzimy do wskazania FLASH (programu), którym zaprogramujemy Atmega8.

 

W naszym przypadku jest to flash usbasp.atmega8.2007-07-23.hex

 

Zawsze najnowszy flash dostępny jest na stronie autora.

 

Następnie klikamy na przycisk "Erase & program All" Czekamy, aż zostanie zaprogramowany mikrokontroler. W przypadku gdy program zgłosi błąd w czasie programowania należy powtórnie kliknąć przycisk "Erase & program All".

 

Ustawienia FUSE BIT w Atmega 8.

 

        Po zaprogramowaniu FLASH przystępujemy do ustawienia FUSE BIT dokładnie jak na rysunku poniżej.

 

HFUSE=0xc9

LFUSE=0xef

 

 

Po ustawieniu bitów wg rysunku klikamy w każdym wierszu w którym dokonaliśmy jakiś zmian przycisk "Program" .

 

Tak zaprogramowany mikroprocesor jest gotów do pracy.

 

Zdejmujemy zworkę JP1.

 

        Od tego momentu podłączając nasz programator do USB powinniśmy w systemie Windows dostać komunikat, że znaleziono nowy sprzęt.

 

 

 

 

 

Potem powinien pojawić się monit o podanie sterownika do naszego programatora.

 

 

Sterownik pod Windows do pobrania tutaj.

 

 

Podajemy ścieżkę gdzie mamy sterownik.

 

 

 

 

 

 

Jeśli wszystko poszło do tej pory dobrze programator jest gotów do pracy a w Menadżerze Urządzeń w Windows powinniśmy mieć taką pozycję:

 

Do programowania naszym programatorem będzie nam potrzebny program AVRDUDE koniecznie w wersji 5.2 lub nowszej! Starsze nie obsługują tego programatora!

 

AVRDUDE do pobrania tutaj.

 

Program avrdude.exe jest aplikacją konsolową, tzn. taką którą wywołuje się z wiersza poleceń. W zależności od parametrów wywołania program obsługuje różne programatory i procesory. W celu ułatwienia sobie pracy dobrze jest stworzyć plik bat i umieścić go w tym samym katalogu co program avrdude. Edycja i zmiana parametrów wywołania programu może być przeprowadzona za pomocą notatnika. Elementami niezmieniającymi się w konstrukcji linii wywołania programu są:

 

avrdude.exe -p { typ procesora } -c usbasp {dalsze instrukcje}

 

Odczyt następuje przy użyciu następującej konstrukcji:

 

Dla pamięci programu: -U flash:r:'{plik ze ścieżką dostępu}':a

Dla pamięci programu: -U eeprom:r:'{plik ze ścieżką dostępu}':a

 

Zapis następuje przy użyciu następującej konstrukcji:

 

Dla pamięci programu: -U flash:w:'{plik ze ścieżką dostępu}':a

Dla pamięci programu: -U eeprom:w:'{plik ze ścieżką dostępu}':a

 

Weryfikacja następuje przy użyciu następującej konstrukcji:

 

Dla pamięci programu: -U flash:v:'{plik ze ścieżką dostępu}':a

Dla pamięci programu: -U eeprom:v:'{plik ze ścieżką dostępu}':a

 

Ustawienie fusebitów, i bitów blokujących następuje poprzez użycie następujących instrukcji:

 

Zapis:

 

Dla low fuse:

-U lfuse:w:{wartość w kodzie heksadecymalnym np. lfuse:w:FC}

 

Dla high fuse:

-U hfuse:w:{wartość w kodzie heksadecymalnym np. hfuse:w:FF}

 

Dla lock bits:

-U lock:w:{wartość w kodzie heksadecymalnym np. lock:w:00}

 

Odczyt

 

Dla low fuse:

-U lfuse:r:{nazwa urządzenia wyjściowego do którego zostanie skierowana wartość np. nazwa pliku}

 

Dla high fuse:

-U hfuse:r:{nazwa urządzenia wyjściowego do którego zostanie skierowana wartość np. nazwa pliku}

 

Dla lock bits:

-U lock:r:{nazwa urządzenia wyjściowego do którego zostanie skierowana wartość np. nazwa pliku}

 

UWAGA! Przy ustalaniu fuse bitów należy zwrócić szczególną uwagę na wartości parametrów wysyłanych do procesora, gdyż niewłaściwe wartości mogą doprowadzić do jego zablokowania.

 

 

Są dostępne bardzo fajne nakładki graficzne umożliwiające przyjemniejszą pracę z AVRDUDE.

 

Jedną z takich nakładek graficznych jest AVR8 Burn-O-Mat do pobrania tutaj. Zawsze aktualna wersja pod tym adresem.

 

Oto jak wygląda ta nakłdaka.

 

 

Główne okno programu.

 

Okno do ustawiania FUSE BITS.

 

Programator bardzo fajnie i szybko programuje mikrokontrolery. Polecam zbudowanie go dla tych co nie posiadają w swoich komputerach portu LPT1.

Zgłoś jeśli naruszono regulamin