Programator na USB (USBasp) Pro Nieznany

background image

Programator na USB (USBasp)

Opisywany układ jest programatorem mikrokontrolerow AVR,
wzorowanm na bardzo popularnym projekcie opracowanym przez

http://www.fischl.de/usbasp/

. Zaletą układu jest prostota (Tylko

mikrokontroler ATMEGA8 i kilka dodatkowych elementow) i łatwość
obsługi, a fakt że wspołpracuje on z komputerem przez port USB
sprawia, że bez problemu można go używać na laptopie oraz
komputerach z płytami głownymi pozbawionymi portu LPT (obecnie

coraz trudniej o dobrą płytę z portem LPT). Transmisją sygnału przez USB zajmuje się
mikrokontroler, więc nie jest wymagany żaden dodatkowy kontroler USB. Dodatkową ważną zaletą
tego projektu jest szybkość programowania dochodząca do 5KB/s oraz możliwość jej zredukowania
na potrzeby programowania mikrokontrolerow z zegarem <1.5MHz. Jedynym problemem jaki
pojawi się na początku to konieczność zaprogramowania mikrokontrolera sterującego za pomocą
dowolnego innego programatora. Najprościej jest to zrobić korzystając z opisu dostępnego

tutaj

. Do

obsługi programatora najlepiej nadaje się program avrdude, gdyż działa on na wielu systemach
operacyjnych. Testowałem go na Archlinux 64 , PLD Titanium, Windows XP i Vista.

Działanie:

Schemat ideowy programatora przedstawiony jest na rysunku poniżej:

background image

Sercem układu jest mikrokontroler U1 (Atmega8) wraz z rezonatorem kwarcowym X1 (12MHz) i
kondensatorami C1 (22pF) i C2 (22pF). Złącze RxD/TxD wraz z rezystorem R7 (1k) umożliwiają
budowę interfejsu RS232 (w tej wersji nie jest wykorzystywany). Diody D3 i D4 wraz z
rezystorami R5 (470R) i R6 (470R) stanowią kontrolkę zasilania i programowania. Rezystor R1
(10k) wymusza stan wysoki na pinie reset mikrokontrolera, gdy nie jest on wykorzystywany (po
zaprogramowaniu układu U1). Z1 jest złączem USB typu B, służącym do komunikacji z
komputerem i zasilania programatora oraz programowanego układu (gdy prąd nie przekracza
500mA). Kondensatory C3 (4,7uF) i C4 (100nF) filtrują napięcie zasilające a diody D1 (Zenera
3,6V) i D2 (Zenera 3,6V) dbają aby napięcia na liniach D+ i D- portu USB nie przekroczyły 3,6V.
Rezystory R2 (2,2k) oraz R3 (68R) i R4 (68R) są konieczne dla poprawnego działania USB. Złącze
Prog jest złączem programującym przez które w pierszej fazie programujemy układ U1 a później
stanowi ono wyjście naszego programatora. Zworka S_Prog (Self Program) umożliwia uaktalnienie
oprogramowania w układzie (zaprogramowanie U1). S_SCK (Slow SCK) zapewnia obniżenie
częstotliwości zegara taktującego programowanie i możliwość zaprogramowania mikrokontrolerów
działających na niskiej częstotliwości (<1,5MHz). Zworka S_Target (SUpply Target) podłącza
zasilanie do programowanego układu.

background image

Budowa:

Programator można zbudować w oparciu o płytkę drukowaną dostępną

tutaj

lub dowolną inną

dostępną na stronie

http://www.fischl.de/usbasp/

. Rysunek w odbiciu lustrzanym znajduje się

tutaj

.

Montaż rozpoczynamy od wlutowania jednej zworki znajdującej się pod układem scalonym U1.
Kolejność pozostałych elementów jest dowolna ale polecam rozpocząć montaż od złącza USB. Pod
mikrokontroler zalecam zastosowanie podstawki. Pomocą przy konstrukcji może okazać się
dostępny

tutaj

schemat montażowy.

Gdyby chtoś chciał wykonać wersję płytki ze złączem KANDA, poniżej znajdują się odpowiednie
wyprowadzenia tego złącza:

Wykaz Elementów:

1x Listwa Goldpin 1x2 (RxD/TxD)
3x Listwa Goldpin 1x3 + zworka
1x Listwa Goldpin 1x8
1x Złącze USB typu B (do druku)
1x Kabel USB_A - USB_B (taki jak do drukarki)
1x 1k
1x 2,2k
1x 10k
2x 68R
2x 470R
2x 22pF
1x 100nF
1x 4,7uF Elektrolit
1x Rezonator Kwarcowy 12MHz
2x Dioda Zenera 3V6
2x Dioda LED
1x Mikrokontroler ATMEGA8 + Podstawka

Programowanie:

Program do mikrokontrolera został napisany przez Thomasa Fischl'a i wszystkie jego wersje,
począwszy od tych najwcześniejszych (wraz z kodami źródłowymi) można znaleźć na

stronie

autora

. W moim projekcie zastosowałem wersję programu

usbasp.2006-12-29.tar.gz

dla

mikrokontrolera ATMega8. Do mikrokontrolera należy załadować plik usbasp.atmega8.2006-12-
29.hex
znajdujący się w katalogu "/bin/firmware/". Z nowszą wersją oprogramowania miałem

background image

pewne problemy ale może to tylko przypadek :).
Po zaprogramowaniu mikrokontrolera czas na ustawienie jego bitow konfiguracyjnych (Fuse
Bitow). Ogolnie powinno to wyglądać tak: ("1" oznacza bit niezaprogramowany, tak jak w kartach
katalogowych)
Fuse high byte: 0xc9 (szesnastkowo)
RSTDISBL = 1
WDTON = 1
SPIEN = 0
CKOPT = 0
EESAVE = 1
BOOTSZ1 = 0
BOOTSZ0 = 0
BOOTRST = 1
Fuse low byte: 0x9f (szesnastkowo)
DODLEVEL = 1
BODEN = 0
SUT 1..0 = 01
CKSEL 3..0 = 1111
Rysunek poniżej przedstawia ustawienia fusebitów (Screen z programu BASCOM AVR):

Ustawienia fusebitów w programie Burn-O-Mat przedstawione są poniżej:

background image

Obsługa:

a) Linux

1. Instalujemy program avrdude ze standardowego repozytorium
2. Podłączamy programator do portu USB (zworka S_Prog powinna być rozwarta)
3. Podstawowe komendy:
Tylko odczyt sygnatury: (m8 to typ mikrokontrolera)

avrdude -p m8 -c usbasp

Odczyt programu z pamięci mikrokontrolera do pliku *.hex

avrdude -p m8 -c usbasp -U flash:r:program.hex

Zapis programu z pliku *.hex do pamięci mikrokontrolera

avrdude -p m8 -c usbasp -U flash:w:program.hex

b) Windows

1. Włączamy programator do portu USB
2. Rozpocznie się instalacja sterownika dla USBasp. Wybieramy sterownik z folderu "/bin/win-
driver/" (znajdziemygo po rozpakowaniu pliku

usbasp.2006-12-29.tar.gz

)

3. Ściągamy skompilowaną wersję programu avrdude (patrz załączniki)
4. Uruchamiamy konsolę "cmd"
5. Dalsze czynności tak jak dla systemu Linux od punktu 2
Pod Windowsem istnieje możliwość współpracy opisywanego programatora z programem
BASCOM AVR. Aby to zrobić wykonujemy następujące czynności:
1. Klikamy Options->Programmer
2. W polu programmer wybieramy extrenal programmer
3. W części other w polu program wybieramy scieżkę do avrdude
4. W części other w polu parameter wpisujemy : "avrdude" -p m8 -c usbasp -U flash:w:"{FILE}":a

background image

-U flash:v:"{FILE}":a
"m8" musimy zamienić na odpowiedni typ mikrokontrolera, który chcemy programować
(najczęściej jest to: t2313, m8, m16, m32 lub m162)

Zdjęcia Projektu:


Document Outline


Wyszukiwarka

Podobne podstrony:
Programator na USB (USBasp), PRUSB Opis l
Programator na USB (USBasp), PRUSB Plytka l
Programator na USB (USBasp), PRUSB Plytka
Programator na USB (USBasp), PRUSB PLut
Programator na USB (USBasp), PRUSB PLut l
Programator na USB (USBasp), PRUSB Opis
Programator na USB (USBasp), PRUSB Plytka6
Programator na USB (USBasp), PRUSB Montowanie
Programator na USB (USBasp), PRUSB Opis l
algorytmy, programy, jezyki pro Nieznany (2)
Hello Android Programowanie na Nieznany
Program na kierunku Finanse i r Nieznany
Programowanie Usb C id 396388 Nieznany
14 Swiatowe programy na rzecz o Nieznany (2)
algorytmy, programy, jezyki pro Nieznany (2)
Mechanika Plynow Lab, Sitka Pro Nieznany
PROGRAM NA 24 GODZINY
Program na Zakończenie Roku Przedszkolnego, pożegnanie przedszkola
Edukacja zdrowotna program na zaliczneie

więcej podobnych podstron