(9 głosujących) 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: 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. 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 2x 22pF 1x Rezonator Kwarcowy 12MHz 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 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) Fuse low byte: 0x9f (szesnastkowo) Rysunek poniżej przedstawia ustawienia fusebitów (Screen z programu BASCOM AVR): Ustawienia fusebitów w programie Burn-O-Mat przedstawione są poniżej: Obsługa:a) Linux1. 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) Windows1. 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: "m8" musimy zamienić na odpowiedni typ mikrokontrolera, który chcemy programować (najczęściej jest to: t2313, m8, m16, m32 lub m162) Zdjęcia Projektu:
|
|||||||||||||||||||||||||||||||||||||||||
Bascom
Przepraszam już doczytałem sam. :) Notka mi umkła
Pytanie
Wiem że zadam głupie pytanie, ale jak to ja. Czy po złożeniu można zaprogramować bezpośrednio U1 od USB?
Re: USBASP
Mikrokontroler do programatora trzeba zaprogramowac gdzie indziej... bez niego usb nie działa więc nic nie zaprogramujesz
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
zwora
czy mnie się wydaje czy tam pod U1 jest zwora?
zwora
Powielam pytanie czy pod U1 jest zwora?
U mnie wyskakuje "Nie
U mnie wyskakuje "Nie rozpoznano urządzenia"... Może zmienić zenerki na 3v3? I tak btw po wgraniu programu na Atmege straciłem z nią kontakt przez programator, jest na to jakaś rada?
Zenerki
wymiana zenerek raczej nic Ci nie da, są one tylko zabezpieczeniem aby nie popłynął prąd o napięciu większym niż 3,6 V.
1 rada zobacz płytkę czy niczego nie pominąłeś i czy nie masz zimnych Lutów bądź odparzonych ścieżek lub mikroprzerwan
2rada
A zainstalowałeś stery z katalogu?
Re: Usbasp
Tak pod układem jest zworka
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Hmm, procek zaprogramowany
Hmm, procek zaprogramowany jest z uwzględnieniem fusebit-ów w programie MkAvrCalculator. (ATmega8-8pu, na płytce nie mam zwarć, sprawdziłem wielokrotnie miernikiem. Co robię źle? Sterowników nie potrafię zainstalować dla "nierozpoznanego urządzenia", które wg. Windowsa jest uszkodzone.
Jeszcze jedno pytanie, to
Jeszcze jedno pytanie, to normalne, że po zaprogramowaniu układu nie mam już do niego "dostępu"? Rozumiem, że to zasługa Fusebitów?
No chyba, że układ ATmega8P
No chyba, że układ ATmega8P jest za wolny do obsługi tego programatora (8MHz)?
Prawdopodobnie źle
Prawdopodobnie źle zaprogramowany uC lub fusebity źle ustawione
Dzięki za pomoc,
Dzięki za pomoc, zaprogramowałem innym programatorem i działa jak marzenie. ;) Dzięki za pomoc i wspaniały projekt, nie musze juz biegac od pokoju do pokoju, tylko moge się uczyć przy laptopie. ;) Jeszcze raz dzięki ;)
Witam mam problem posiadam
Witam mam problem posiadam Programator usbasp kupiony na aukcji, zawsze działał, a teraz nie chce programować, obecnie mam Windows 7 ale próbowałem też na xp na którym nigdy nie było problemu i to samo się dzieje nie programuje wywala błąd error writing eeprom, fusebity odczytuje programuje bez problemu. Ale programu żadnego nie chce czy to na atmege 8 czy na attiny 2313 to samo się dzieje, w MKAVR calculator wykrywa odczytuje AVR ale nie programuje błąd weryfikacji, co może być nie tak ??? Czekam na pomoc
wklejam co wywala podczas
wklejam co wywala podczas programowania w mkavr
pytanie
zrobiłem programator wg tego przepisu. na starym laptopie toshiba tecra s1 z winxp jest wykrywany. w trochę nowszym acerze z win vista pojawia się komunikat o awarii urządzenia usb. bez diod zenera to samo. jakiś przepis ? pozdrawiam.
problem rozwiązany
wystarczyło użyć diod innego producenta, zapewne pojemność albo jakiś inny parametr. nie wnikam bo działa :)
Re: Lampka
Sprawdź rozmiar programu.... zawsze wgrywaj kod skompilowany pod konkretny procesor tylko do tego procesora.... spróbuj tez inny plik hex wgrać, tylko skompilowany pod konkretny procek
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Unknown device.
Witam,
Wykonałem wszystko według schematu ale po podłączeniu do usb wyszło kilka nieprawidłowości i nie wiem jak je naprawić.
1. Czerwona dioda led się nie świeci chociaż powinna. Sprawdzam miernikiem napięcie na nóżkach mikrokontrolera VCC i GND jest 5,06V. Napięcie pracy tej diody to 3,2V domyślam się że muszę zmienić w tym wypadku rezystor ??
2. Zamiast uC atmega8 zastosowałem atmega8A, czy to coś zmienia w programie który powinienem mu wrzucić do pamięci??
3. Pomimo punktu 1 i 2 po podłączeniu do USB komputer rozpoznał układ jako USBasp zainstalowałem sterowniki, które znalazłem w necie ( Windows7 x64). Wszystko było w porządku ale do czasu, po paru podłączeniach komputer zaczął krzyczeć, że nie rozpoznaje urządzenia, miernikiem sprawdzam czy wszędzie tam gdzie powinny być zwarcia nadal są i nie doszukałem się przerwania obwodu, ma ktoś może jakiś pomysł co mogło się stać ??
usbasp
1. Wymień rezystor i sprawdź diodę czy wogóle świeci
2. nie
3. sprawdź na innym kompie, w innym wypadku pewnie coś się zwarło albo nie styka... mogłeś też uszkodzić uC podłączając do programatora coś w zły sposób.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
problemy
W razie problemów proponuje spróbować zmienić diody - wstawiłem 3,3 v ale tez nie działało - wywaliłem całkiem i ruszyło od razu
Hm zrobiłem całą płytkę ale
Hm zrobiłem całą płytkę ale nie chce ruszyć czy wina leży po stronie scalaka atmega8a-pu
ustawiles fusebity? atmege
ustawiles fusebity?
atmege zaprogramowales?
programator
ustawiles fusebity?
atmege zaprogramowales?
instaluje sterownik z folderu
instaluje sterownik z folderu i wyskakuje mi komunikat 'W podanej lokalizacji nie ma infromacji o używanym sprzęcie 'to wygląda jakby komputer nie do końca 'wierzył' mi że to właśnie ten sterownik :P Dodam, że nie mam jeszcze podłączonego złącza KANDA. Czy to może być powów braku rozruchu z kompem ? Któraś z diod powinna się świecić mimo braku połaczenia ? Jedna z nóżek Atmegi lekko się oberwała ale uzupełniłem ją inną nóżką.
Podesłać zdjęcie płytki ?
bardzo dobry projekt,
bardzo dobry projekt, wszystko działa od razu :) dobrze opisane i nawet ktoś bez dużego doświadczenie jest w stanie sam zrobić ten programator :)
pozdrawiam
Re: Sterowniki
Wchodzisz do folderu bin/win-driver? może plik był uszkodzony i źle się rozpakował, skutkiem czego nie ma sterowników w folderze. Ściągnij archiwum ponownie i rozpakuj
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
ATTINY2313
Czy na tym programatorze można też zaprogramować mikrokontroler ATTINY2313 do wytrawiarki którą zrobiłeś we wcześniejszych projektach? Pozdro :)
Odp. ATTINY2313
Oczywiście, że zaprogramuje. Ten programator jest chyba najbardziej popularnym. Obsługuje go wiele programów. Np. Burn-O-Mat...tylko Ty najpierw musisz zaprogramować czymś ATmega8 ..u kolegi, albo w serwisie RTV/GSM ..potem już z górki :)
BARTek
Moja strona
ATTINY2313
A czy programator będzie działał z programem takim jak MkAVRCalculator albo Eclipse? Jestem początkującym więc proszę o wyrozumiałość :)
ATTINY2313
A czy programator bedzie współpracował z takimi programami jak MkAVRCalculator albo Eclipse?
Odp. Attiny2313
Będzie. Każdy szanujący się program teraz ma już ten programator w swojej obsłudze.
AVRdude potrafi obsłużyć najwymyslniejsze programatory, z tym o który pytasz na czele.
MkAVRcalculator korzysta do komunikacji z procesorami i programowania z AVRdude właśnie. Ma w sobie nawet jego instalator.
Za ten czas który piszesz miałbyś to już gotowe :D Atmega8 5zł..
Programując Atmege nie zapomnij o FuseBit`ach (ktoś kto Ci to będzie programował będzie wiedział o co chodzi)
Miłego dnia i zabawy ;)
BARTek
Moja strona
Attiny2313
W tym problem że nikt mi tego nie zaprogramuje... Muszę sobie poradzić sam. Widzę że mam doczynienia z doświadczonym człowiekiem. Ach... Czeka mnie jeszcze dużo pracy ale mam nadzieje ze mi się uda :)
Odp.Attiny2313
Ściągnij sobie tego MkAVRcalculator bo i tak Ci się przyda. W środku w zakładce "Narzędzia" jest schemat najprostszego programatora pod złacze drukarki LPT (raptem 4 rezystory 330 Ohm) i nawet pokazane jak do Atmega8 się podłączyć.
Zajrzyj też tu http://mirley.firlej.org/jak_zaprogramowac_pierwszy_avr
Powodzenia :)
BARTek
Moja strona
ATTINY2313
Bardzo dziękuję za pomoc :) Dam znać jak wszystko będę miał już gotowe. Pozdrawiam serdecznie i również życzę miłego dnia :)
Odp.Attiny2313 - FuseBit - uwagi
Uważaj tylko z tymi FuseBit`ami. Ważne jest żeby zawsze najpierw odczytać FuseBity z mikrokontrolera (MkAVRcalculator robi to w standardzie). Patrzysz wtedy czy zaznaczone masz SPIEN, bo powinno być zaznaczone i to znak że odczytałeś te bity konfiguracyjne. Chodzi o to, że większość programatorów pozwala programować FuseBity "od razu" i jeśli tylko zaznaczysz to co Cię interesuje, a zapomnisz zahaczyć to co tam jest zaznaczone fabrycznie to stracisz możliwość programowania tego mikrokontrolera. Po prostu programator wgra to co ustawisz.
Jeśli jednak najpierw odczytasz FuseBit`y , a potem tylko zmieniasz to co Cię interesuje i wgrywasz reszte nie zmienioną, masz dużą szansę na powodzenie operacji :D
Przed programowaniem FuseBit warto przetestować stabilność połaczenia. Wgrać coś do procesora i sprawdzić używając opcji "verify" "weryfikuj". Jeśli zakończy sie niepowodzeniem nie próbuj zmieniać Fusów.
BARTek
Moja strona
ATTINY2313
Czyli mam rozumieć że pomylić mogę się tylko jeden raz? :/
Odp. Attiny2313
Jeśli masz tylko jedną ATmega8 to wychodzi na to że tak :D
Nic się nie martw. Zdarza się to tylko tym którzy o tym nie wiedzą, a ja Cię ostrzegłem.
Więc zanim będziesz zmieniał FuseBit to sprawdź czy możesz bezproblemowo tym programatorem który teraz masz zapisać do ATmegi8 plik programujący ją jako USB ASP i go od razu "Verify".
Może najbezpieczniej wybierz właśnie MkAVRcalculator i z niego programuj, ale w jego opcjach pogrzeb chwile i ustaw "Wyświetlanie konsoli AVRdude = przy pierwszym błędzie" a w opcjach programowania zaznacz "weryfikuj" - to odczyta z procesora z powrotem wpisany w niego plik i porówna czy wszystko się zgadza.
Na końcu nie spiesz się i wiedz że procesora niewłąściwą konfiguracją nie uszkodzisz a jedynie utrudnisz sobie do niego dostęp :P
Jak coś źle zrobisz to kupisz nowy za 5zł i naprawisz przy okazji ten pierwszy. Będziesz miał dwa :)
Dwa razy sprawdzaj i myśl zanim klikniesz "Programuj"
BARTek
Moja strona
ATTINY2313
Czyli fusebity dla atmega8 w programie Burn-O-Mat mają być ustawione tak jak na rysunku powyżej czyli zaznaczone ma być : SPIEN, CKOPT, BOOTSZ1, BOOTSZ0, BODEN, SUT.
RS232
Ma może interfejsu RS232 na tum programatorze zbudowany ?
Odp.RS232
Ja mam 100% working z PonyProga. Nazywa się SI-Prog i działa na RS232 http://www.lancos.com/siprogsch.html. Działa bezproblemowo bez zewnętrznego zasilania. Tylko nie używam programu PonyProg a po prostu AVRdude/Burn-O-mat lub MkAVRcalculator.
Chyba że źle zrozumiałem i chodzi o interfejs RS232 na Atmega8 -> http://www.recursion.jp/avrcdc/cdc-232.html#usage
BARTek
Moja strona
USBasp :)
Mam inne programatory to jakoś nie był mi potrzebny, ale wiele programów go obsługuje a tych moich już niekoniecznie. Wczoraj sobie takie cacko zbudowałem korzystając z tego schematu tu ze strony. Jak to zwykle ze mną bywa, czasu ani chęci do budowy płytki nie miałem. Okazało się, że wystarczą cztery rezystory, dwie diody Zenera, ATmega8, rezonator 12MHz i nieużywany kabel USB z telefonu... Działanie sprawdziłem z Burn-o-mat, MkAVRcalculator i wbudowaną obsługą w BASCOM. Śmiga, czasem się zawiesi jak nic nie robi(nigdy podczas programowania), ale to podobno do przeskoczenia. Dodam sobie stabilizator na 3,3V. Polecam zbudować takie coś jak się nie ma :D Sprawdzałem na XP i Win7 , a na stronie jest instrukcja do Win8.
Miłego dnia
BARTek
Moja strona
kwarc
A czy mogę dać kwarc 11.059MHz lub 13.875MHz?
Odp. kwarc
O ile procesory może by się dogadały o tyle USB jest bardzo restrykcyjne czasowo i sadze że się to nie powiedzie sukcesem :) Mogę się mylić, jak każdy. Spróbuj i napisz :D
BARTek
Moja strona
dziwny problem
Zrobiłem na 12MHZ wrzucałem kilka firmware'ów, ale tylko przy wersji z 2009nie pokazywało błędu, że trzeba zaktualizować bo nie ma slowSCK, no i tego zostawiłem. Problem jest taki, że dwie ATtiny2313 wykrywa, a jedną nową i jedną używaną ATmegę8 nie wykrywa. Dodam, że posługuję się mkavrcalculator. Jak poradzić sobie z tym problemem?
Odp. dziwny problem
Mi śmiga na najnowszym 2011.05.28 ze strony autora USBasp tutaj u góry z linku. Ktoś ostatnio miał problem nawet z najnowszym softem zmienionym przez Atnel z połączeniem się z taką dziewiczą Mega8. Rozwiązaniem było ustawienie Slow Ack w programie, połaczenie sie i zmiana Fusebitów Megi na 8MHz bo nowe mają domyślnie, fabrycznie 1MHz.
Z własnego doswiadczenia jeszcze widziałem że inne programatory nawet mi sie krzaczyły jeśli docelowy procesor nie miał jakiegoś przyzwoitego środowiska. Czyli goły procek bez kondensatorów i innych nizbędnych peryferii nie chciał gadać "w powietrzu" natomiast śmiga w układzie docelowym.
BARTek
Moja strona
Też wrzuciłem najnowszy i
Też wrzuciłem najnowszy i dalej to samo, pewnie uC walnięte, ale dziwne, że ta dziewicza :D także.
Sprawdzałem połączenie
Sprawdzałem połączenie kilkakrotnie i zapomniałem dodać, że strasznie się grzeją tak jakbym źle podłączył zasilanie
Sorry za zaśmiecanie, ale
Sorry za zaśmiecanie, ale dodam jeszcze, że na nóżkach zasilania zamiast 5V jest 3.5V