Programowanie mikrokontrolerów za pomocą programatora USBasp

Programowanie mikrokontrolerów za pomocą programatora USBasp

Od momentu pojawienia się w Majsterkowie pierwszego postu poświęconego Arduino dotarło do mnie wiele sygnałów od ludzi, którzy bardzo by chcieli zacząć przygodę z mikrokontrolerami, ale nie mogą sobie pozwolić na wydanie 100zł na Arduino. Niby nie jest to duża kwota, ale zdaję sobie sprawę, że dla młodszych, jeszcze niepracujących majsterkowiczów może być ona sporą barierą.

Na szczęście wcale nie trzeba wydawać aż tyle kasy, żeby wykonać wszystkie opisywane w Majsterkowie projekty. Owszem – sama płytka Arduino bardzo ułatwia prototypowanie i testowanie różnych wariantów układu, ale spokojnie można się bez niej obyć. Wystarczy zaopatrzyć się w programator USBasp, którego cena stanowi zaledwie ¼ ceny Arduino:

Programator ICSP typu USBasp

Najpiękniejsze w tym wszystkim jest to, że mając ten programator nadal możemy pisać programy w Arduino IDE, wykorzystując wszystkie dobrodziejstwa, jakie ono oferuje. Oczywiście jak ktoś czuje się na siłach, może także pisać programy w czystym C i wrzucać je za pomocą dowolnego oprogramowania.

Jak zainstalować programator ICSP typy USBasp?

Na początek trzeba ściągnąć z tej strony najnowszą paczkę ze sterownikami i rozpakować ją gdzieś na dysku. Następnie można podłączyć programator do komputera za pomocą dołączonego kabla USB i postępować zgodnie z poniższym filmikiem:

Filmik nagrywałem na anglojęzycznym systemie (do Windowsa 8 nie ma jeszcze paczki z polskim językiem), ale mam nadzieję, że nie będzie to stanowiło dla Was problemu. Oporni mogą po prostu klikać w tym samych miejscach, co ja, i też powinno się udać ;)

Jak zaprogramować mikrokontroler programatorem USBasp?

Podobnie, jak przy programowaniu mikrokontrolerów za pomocą Arduino, tutaj także trzeba po prostu za pomocą kilku kabelków połączyć programator z programowanym układem. W poniższym przykładzie zaprogramuję ten sam mikrokontroler, który Maciej programował w swoim poście, czyli ATtiny2313.

Całą operację zaczynamy od podłączenia programatora wg następującego schematu:

Podłączenie programatora ICSP typu USBasp do mikrokontrolera ATtiny2313

Opis poszczególnych wyprowadzeń układu ATtiny2313 znajdziecie w karcie katalogowej.

Żeby nie było żadnych wątpliwości, przewody w powyższym schemacie zostały wpięte do programatora trzymanego w ten sposób:

ICSP w programatorze USBasp

Jeżeli przewody podłączacie do taśmy, zamiast bezpośrednio do programatora, musicie “odbić” całość w pionie.

Podłączenie programatora do mikrokontrolera ATtiny2313

Uzbrajamy Arduino IDE w obsługę mikrokontrolerów ATtiny

Do katalogu z Arduino IDE musimy dorzucić jeszcze kilka plików, które pozwolą nam programować za jego pomocą inne mikrokontrolery. Ściągnijcie sobie plik tiny.zip i rozpakujcie jego zawartość do folderu /hardware/ znajdującego się w katalogu z Arduino IDE. Dzięki temu nasze IDE zyskało właśnie możliwość programowania różnych mikrokontrolerów z rodziny ATtiny (ATtiny25, ATtiny45, ATtiny4314, ATtiny84, ATtiny85 oraz ATtiny2313).

Wgrywamy Bootloader

Przed wgraniem właściwego programu musimy jeszcze wrzucić na nasz mikrokontroler tak zwany Bootloader. To właśnie dzięki niemu będziemy mogli korzystać z przyjaznej składni kodu i wszystkich funkcji dostępnych dla Arduino.

Na początek musimy wybrać z menu Tools/Programmer nasz programator, czyli USBasp:

Arduino IDE - Tools/Programmer

Teraz z menu Tools/Board wybieramy mikrokontroler, który będziemy programować:

Arduino IDE - Tools/Board

Następnie w menu Tools klikamy Burn Bootloader. Po kilku sekundach Bootloader będzie już na pokładzie, a my będziemy mogli wrzucać już normalne programy. Pamiętajcie, że Bootloader wgrywa się na dany mikrokontroler tylko raz!

Programujemy mikrokontroler ATtiny2313

Skopiujcie sobie ten przykładowy program i wklejce go do Arduino IDE:

Jeżeli nie rozumiesz zasady działania powyższego programu, zajrzyj do tego postu, w którym wszystko dokładnie opisywałem :)

Teraz wystarczy kliknąć przycisk ze strzałką, aby wrzucić powyższy program do naszego mikrokontrolera:

Arduino IDE - blink

Powyższy program będzie mrugał diodą LED podłączoną pod wyjście cyfrowe 0. W przypadku ATtiny2313 wejście cyfrowe 0 znajduje się pod pinem 2, więc diodę możemy podłączyć w ten sposób:

Dioda LED podłączona do ATtiny2313

I to wszystko – dioda powinna już mrugać :)

Mam nadzieję, że ten tutorial pomoże Wam wejść w świat mikrokontrolerów, które dają naprawdę olbrzymie możliwości :)

A – i jeszcze jedno. Jak pewnie zauważyliście, nakleiłem sobie na swojego ATtiny etykietkę z oznaczeniami wszystkich wyjść. Takie etykietki dla kilku popularnych mikrokontrolerów możecie sobie pobrać tutaj. Niby banalna rzecz, ale bardzo ułatwia pracę z mikrokontrolerami.

I standardowo, w razie jakichkolwiek problemów zapraszam na nasze forum dla majsterkowiczów :)

Ocena: 4.77/5 (głosów: 35)

Podobne posty

134 komentarzy do “Programowanie mikrokontrolerów za pomocą programatora USBasp

  • Tekst jak na zamówienie bo akurat kupiłem ten programator i skromne attiny :) Tylko mam problem, bo u mnie w windowsie po podłączeniu mam tylko dodane ‘Unknown device’ a aktualizacja prowadzi do komunikatu: System ustalił, że oprogramowanie sterownika do ‘unknown device’ jest aktualne’ :) Dobre sobie.. Czy ktoś ma pomysł jak go ugryźć, żeby działał?

    Odpowiedz
    • @Tomek: Teoretycznie już działa. Próbowałeś po prostu użyć programatora z IDE Arduino lub programem do wgrywania wsadu np. avrdude?

      Spróbuj też wgrać sterownik http://www.fischl.de/usbasp/. We wszystkich tutkach dla USBasp pod Windows widziałem, że był etap instalacji sterownika. Niestety więcej nie pomogę bo nie używam. Pod Linuksem i Mackiem działa z buta.

      Odpowiedz
      • @Łukasz Więcek:
        Udało mi się poskładać, kabelki poprawnie (zdjęcia robisz super dokładne, zawsze wiadomo co i jak i w którą stronę :) ), drobne problemy z arduino ide, ale po ściągnięciu go jeszcze raz ruszyło, problem przy klikaniu tools/ burn bootloader wyskoczył mi taki:

        avrdude: error: could not find USB device “USBasp” with vid=0x16c0 pid=0x5dc

        Więc jest tak jak myślałem, winows nie widzi tego usbasp, to i nie podziała na nim. (zworek na slwclk jest). Czy da się jakoś sprawdzić czy ten usbasp jest dobry/zresetować go jakoś, czy coś? W tym temacie jestem totalnym laikiem, to i pytania mam laickie, wybaczcie.

        Odpowiedz
        • @Tomek: Zdjęcia są dla mnie priorytetem :) I cieszę się, że udaje mi się to wszystko opisywać tak, że nikt nie ma żadnych wątpliwości.

          Jak masz na dwóch kompach to samo, to może trafił Ci się jakiś skopany egzemplarz programatora?

          Jakie USB masz w tych kompach? 2.0, czy starsze? Próbowałeś wpinać do różnych gniazd?

          Odpowiedz
            • @Tomek: A przyglądałeś się płytce programatora, czy wszystkie luty wyglądają dobrze? I czy sprawdzałeś może wszystko z jakimś innym kablem USB?

              Chociaż tak podejrzewam, że szlag mógł trafić program w tym µC ATmega, który jest na pokładzie. Może da się go jakoś prosto przeprogramować…

              Odpowiedz
              • @Łukasz Więcek: wiesz co, miernika pod ręką nie mam, a nawet jakbym miał, to nie za bardzo wiem co i jak sprawdzić :) Kabelki mam dwa, na obu to samo. Po niedzieli postaram się wymienić programator.

                Odpowiedz
                • @Dondu: Jak mu wywala “could not find USB device”, to sposób podłączania staje się raczej mniej istotny ;)

                  @Tomek: Spróbuj jeszcze napisać do supportu producenta: support@propox.com (możesz śmiało pisać po polsku). Jest szansa, że wystarczy wgrać nowy program do ATmegi, a to mógłbyś zrobić w kilka minut sam i nie musiałbyś czekać tydzień na nowy egzemplarz :) Spróbować na pewno warto.

                  Odpowiedz
                    • @Dondu: Zdjęcia wieczorem wrzucę, z tym, że u mnie problem jest taki, że od początku USBasp jest niewidzialny dla systemu.
                      Zanim cokolwiek podłączyłem do niego, próbowałem tylko zainstalować sterowniki do niego. Efekty opisałem wcześniej.
                      Kabelki podłączyłem dopiero wczoraj rano, zgodnie z Waszym poleceniem.

                      Odpowiedz
                        • @tomek: Tak samo, tylko moim zdaniem szkoda wydawać kasę na takie podstawki. To jest cofanie się o 10 lat wstecz ;) Teraz po prostu robiąc jakieś urządzenie wlutowujesz sobie w płytkę złącze ICSP, do którego po prostu później podpinasz tą szarą taśmę i możesz zmieniać program. Nie ma sensu za każdym razem wyciągać procka z podstawki :)

                          Odpowiedz
                        • @tomek: Dokładnie tak samo (też kupiłem ten programator razem z podstawką).

                          @Łukasz Więcek: Bo ja wiem czy cofanie się o 10 lat wstecz… Taka podstawka robi za dokładnie to samo co Arduino.

                          IMO bez sensu marnować czas na lutowanie mikrokontrolera, złącz na płytce jeśli chcesz na szybko robić prototyp, a jak spalisz niechcący kontroler to wypinasz stary i wpinasz nowy. No i jest na pokładzie od razu rezonator, kondesatory, praktycznie nie ma możliwości pomylenia nóżek, a na płytce stykowej zostaje więcej miejsca na resztę rzeczy.

                          Ale to kwestia gustu. Można zrobić to samo na płytce, chociaż osobiście wygodniej mi się łączy peryferia z wyprowadzeniami na pinach przy użyciu tej podstawki. Ale jeśli podstawka ma być zamiast płytki stykowej, to lepiej na początek kupić sobie płytkę stykową.

                          Poza tym z tym złączem ICSP też nie jest tak hop siup jeśli pod piny będą podpięte elementy mogące zakłócić pracę programatora. To też wymaga dodatkowego nakładu pracy, może się po prostu nie opłacać lub zwyczajnie zajmować za dużo miejsca (samo 6-pinowe złącze zajmuje prawie tyle miejsca co najmniejsze ATiny).

                          Odpowiedz
                      • Diagnoza i naprawa USBasp to jak na razie zbyt wysokie progi dla mnie, programator zareklamuję u sprzedawcy, ale nic straconego, bo właśnie pakują dla mnie arduino :)

                        PS. Dondu, masz świetną stronkę, czytam od kilku dni i się naczytać nie mogę :)

                        Odpowiedz
                        • Proponuję kilka kroków:

                          1. Sprawdzenie w menedżerze urządzeń, czy cokolwiek jest wykrywane
                          2. Instalacja najnowszych sterowników ze strony autora projektu: http://www.fischl.de/usbasp/
                          3. Instalacja libusb dla Windows

                          Najlepiej sprawdzić na Linuksie poleceniem lsusb – niezależnie od posiadanych sterowników zostaną wylistowane wszystkie podpięte urządzenia.

                          Odpowiedz
                          • Witam ponownie :)
                            mam prośbę/pytanie/błagam o litość
                            posiadam taki sam programator jak w poście.
                            chciałbym do niego podłączyć atmege8 i tu jest pytanie jak ?
                            znalazlem milion opisow kazdy inny :(
                            mogłby ktoś narysować schemat ??
                            bardzo prosze i pozdrawiam

                            P.S. Zaje…isty blog :)

                            Odpowiedz
  • Jestem generacje w tył; u mnie xp i win 7 na obu to samo, a na programatorze świeci czerwona dioda (to dokładnie ten sam, który Ty masz)

    Odpowiedz
  • Na początku zaczęłam czytać i stwierdziłam, że chyba by mnie to przerosło. Potem obejrzałam zdjęcia i pomyślałam, że chyba nie jest to znów takie trudne, bo bardzo fajnie wytłumaczone. Jak kiedyś mnie napadnie coś, żeby za to się wziąć to na pewno ponownie przeczytam tego posta :)

    Odpowiedz
  • AVRy można programować nawet bez użycia programatora, jedynie potrzebny jest port równoległy (drukarkowy) w komputerze, więc w programowanie można bawić się jeszcze taniej. Ale chyba toto nie podziała z Arduino IDE.
    No i co też trzeba dodać, mimo że usbasp + attiny jest tańszy niż arduino, to i tak dochodzą wydatki – drobnica typu kondensatory, rezystory, jakieś czujniki by się przydały, bo tylko diodą migać to bzdurka. No i kaska leci…

    Odpowiedz
    • @piotrek: Dokładnie – z LPT, to już w ogóle jest bajka :) Niestety port LPT jest już rzeczą strasznie rzadko spotykaną. Nawet ja, posiadacz stacjonarki, nie mam LPT ;)

      A co do dodatkowych wydatków – mając Arduino te wydatki wcale nie maleją :)

      Odpowiedz
  • Fajny artykuł. Próbowałeś tak programować jakiś układ z rodziny atmega?
    Masz w planach artykuł opisujący programowanie przy pomocy Atmel Studio 6?

    Odpowiedz
    • @Dawid: Właśnie dopiero wczoraj rozpracowałem ATmega8a, ATmega328 i ATmega328P. Dzisiaj jeszcze z Maciejem będziemy walczyć z ATmega16a :) Jak zbierzemy gotową paczkę dla najpopularniejszych ATmeg, na pewno o tym napiszemy. Problemem jest głównie znalezienie dobrych bootloaderów i wpisów do boards.txt :)

      A Atmel Studio 6 raczej nie planuję na razie ruszać. Sam z µC dopiero raczkuję i wolałbym się skupić na Arduino IDE, w którym czuję się w miarę dobrze :)

      Odpowiedz
      • @Łukasz Więcek:
        Zainteresuj się Atmel Studio. Środowisko generuje dużo mniejsze kody wynikowe niż Arduino IDE. Sam niestety poległem na obsłudze wyświetlacza LCD. Nie chciało mi kompilować programu z biblioteką do obsługi LCD. Dlatego obecnie używam Bascoma. Ale docelowo chciałbym programować w C.

        Odpowiedz
      • @Łukasz Więcek: Nie jest dobrze. Reset (pin 5) jest w standardzie ISP/KANDA przy wycięciu/wpuście niezależnie, z której strony się patrzy. Taśma jest 1:1. Jeśli ten sposób podłączenia działa – albo dwukrotnie się pomyliłeś i wyszło na jedno, albo masz odwrotnie zaciśniętą taśmę – co w zestawach z allegro się zdarzało.

        Podstawki/płytki prototypowe mają sens, gdyż w ich przypadku łatwo podpiąć nowe urządzenie, lub odpiąć stare. Moim zdaniem podstawki powinno się lutować nawet w gotowych układach – zepsuć mikrokontroler nietrudno, a wylutować – już tak.

        Osobiście polecam pisanie w C (może być AVR Studio), gdyż Arduino niepotrzebnie wprowadza dodatkową warstwę abstrakcji. Pisanie w C pozwala łatwiej zrozumieć zasadę działania procesora.

        Hm, na zdjęciu wygląda dobrze. Zgadzam się z Łukaszem wyżej, schemat jest do góry nogami.

        Natomiast: gdzie jest poprowadzone zasilanie do wszystkich pinów? Gdzie kondensatory odsprzęgające? Gdzie pullup przy resecie? Potem pojawiają się na forach lawiny pytań pt. “nie umiem zaprogramować atmegi”. Rozumiem, że to jest tylko instruktaż, ale pokazywanie podłączenia bez krytycznie ważnych elementów ma przeciętną wartość edukacyjną.

        Odpowiedz
        • @MMMK: Dobra – przeanalizowałem to jeszcze raz i jednak było źle ;) Schemat już podmieniłem.

          Do czystego C próbowałem podejść, ale póki co mnie przerasta. Pisanie w Arduino powoli staje się dla mnie przyjemnością i nie mam żadnych problemów ze zrozumieniem czegokolwiek.

          Gdyby te elementy były krytycznie ważne, to by się nie udało bez nich programować ;) Umówmy się, że są po prostu ważne. Z tego, co wyczytałem, podpinanie napięcia do AVCC w czasie programowania nie jest konieczne. Bez kondensatorów też u mnie poszło gładko (nie raz). Nawet nikt w komentarzach nie pisał, że coś mu nie gra :)

          Odpowiedz
          • @Łukasz Więcek: @Łukasz Więcek:
            Co do kondensatorów, to na 99,9% zaprogramujesz prawidłowo.

            Jednak co do braku podłączenia AVcc podczas programowania, to już zdecydowanie odradzam. Podłączenie jednego pinu więcej nie jest problemem, a zabezpieczy przed niespodzianką jaką jest np. a Atmega8:

            “… AVCC must be connected during Programming mode.”

            Więcej na ten temat w punkcie 1.1: http://mikrokontrolery.blogspot.com/2011/04/problemy-z-zaprogramowaniem.html

            Odpowiedz
            • @Dondu:

              Przez ostatnie kilka dni zaprogramowałem megę8 w sumie około 100 razy i jakoś niepodłączony pin AVCC w niczym nie przeszkadzał.

              Nie mówię, że datasheeta nie należy się słuchać, ale przez przesady, w niektórych przypadkach można sobie odpuścić.

              Przykład: mega128A: wg datasheet: MOSI = PB2, MISO = PB3, a tak na prawdę jest: MOSI = PE0, MISO = PE1.

              Odpowiedz
              • @brado: Ten artykuł Łukasz pisał dla początkujących, a nie dla Ciebie, a początkujących trzeba uczyć, że co w datasheet naskrobał producent, to jest święte, ponieważ gdy postępują niezgodnie z datasheet, nie mając jednocześnie doświadczenia pakują się w kłopoty. Co więcej Ty ich pakujesz w te kłopoty.

                Tobie wydaje się, że masz wiedzę i doświadczenie. Ale niestety jest inaczej:

                cyt: brado: “Przykład: mega128A: wg datasheet: MOSI = PB2, MISO = PB3, a tak na prawdę jest: MOSI = PE0, MISO = PE1.”

                Jak rozumie miał to być przykład, iż datasheet się myli?

                Weryfikuję więc co napisałem na początku tego postu – ten artykuł także jest dla Ciebie, ponieważ niestety jest to przykład poważnych braków w Twojej wiedzy, ponieważ nie rozróżniasz pinów MOSI i MISO od PDI i PDO, które służą do programowania w tym mikrokontrolerze.

                By tę wiedzę nabyć przeczytaj datasheet uważnie, albo punkt 1.4 z linku, który podam jeszcze raz specjalnie dla Ciebie:
                http://mikrokontrolery.blogspot.com/2011/04/problemy-z-zaprogramowaniem.html

                A dlaczego Twoja mega się zaprogramowała dowiesz się sprawdzając multimetrem rezystancję pomiędzy Vcc, a AVcc o czym już niedługo napiszę artykuł, dzięki między innymi Łukaszowi.

                Reasumując, apeluję do Ciebie, byś dla dobra Majsterkowa i Łukasza, zastanowił się nad tym, co masz zamiar napisać, tym bardziej gdy chcesz polemizować z datasheet, mając jednocześnie poważne braki w podstawowej wiedzy dot. mikrokontrolerów.

                @Łukasz Więcek: Datasheet = święta wiedza
                I takie podejście Łukaszu zawsze stosuj, by nie utrudniać drogi początkującym, którzy i tak mają ciężko :-)

                Odpowiedz
                • @Dondu: z tym przykładem to chodziło mi bardziej o niekonsekwencję w oznaczaniu. Seria atmeg ma standardowe wyprowadzenia do programowania wspólne z interfejsem SPI, a tutaj nagle zachaiło im się wyprowadzić to na innych pinach.

                  I teraz nie wiem co znaczy wg. Ciebie podstawowa wiedza dot. mikrokontrolerów – jeśli lubisz znać na pamieć wszystkie datasheety to podzwiam, jak takich ambicji nie mam i nigdy nie będe miał. Dla mnie wystarczy sam pinout i rozpiska rejestrów – jak coś nie działa to dopiero wtedy sprawdzam przyczynę (jak w przypadku tej nieszczęsnej megi128a).

                  “… AVCC must be connected during Programming mode.”
                  “A dlaczego Twoja mega się zaprogramowała dowiesz się sprawdzając multimetrem rezystancję pomiędzy Vcc, a AVcc o czym już niedługo napiszę artykuł, dzięki między innymi Łukaszowi.”

                  Wyczuwam tu pewną niekonsekwencję. Dla mnie jak coś MUSI być podłączone to znaczy, że bez tego działać nie będzie. A tu proszę.

                  Odpowiedz
              • Wielkie dzięki za wpis.

                Przed chwilą przeszedłem powyższy tutorial i jak już udało mi się sprowokować diodę do migania, cieszyłem się jak dziecko ;).
                Uzupełnię jeszcze, że w przypadku wersji 2313V (jest o tyle fajna, że do pracy wystarcza jej 1,8V) 8MHz to za dużo… Tak więc w programatorze trzeba dorzucić zworkę na “SlowSCK”, a w IDE wybieramy ATTiny2313 @ 1MHz. No i potrzebujemy innego bootloadera, więc zaciągamy sobie pełną wersję paczki do programowania z http://code.google.com/p/arduino-tiny/

                Odpowiedz
  • Mam mały problem, poustawiałem wszystko tak, jak napisałeś, a przy wykonywaniu polecenia “Burn Bootloader” IDE zwraca mi cuś takiego:
    “avrdude: error: programm enable: target doesn’t answer. 1
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.”
    o co może chodzić?

    Odpowiedz
  • dlaczego u mnie narzędzia>płytka ta cała lista
    wygląda inaczej w sensie że ja mam na początku arduino uno i nie mam mikrokontrolerów takich jak attiny czy atmega

    Odpowiedz
  • Czy ktoś wie może dlaczego, gdy próbuje wgrać program na Attiny2313 to wywala taki kominukat :
    C:\Users\Adam\Desktop\arduino-1.0.3\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=attiny2313 -DF_CPU=1000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=103 -IC:\Users\Adam\Desktop\arduino-1.0.3\hardware\tiny\cores\tiny C:\Users\Adam\AppData\Local\Temp\build3515773357671766905.tmp\sketch_jan29c.cpp -o C:\Users\Adam\AppData\Local\Temp\build3515773357671766905.tmp\sketch_jan29c.cpp.o
    sketch_jan29c.ino:3:21: error: Arduino.h: No such file or directory
    processing.app.SerialNotFoundException: Port szeregowy ‘COM1’ nie został znaleziony. Czy wybrałeś prawidłowy z menu Narzędzia (Tools) > Port szeregowy (Serial Port) ?
    at processing.app.Serial.(Serial.java:191)
    at processing.app.Serial.(Serial.java:92)
    at processing.app.SerialMonitor.openSerialPort(SerialMonitor.java:207)
    at processing.app.Editor.handleSerial(Editor.java:2481)
    at processing.app.EditorToolbar.mousePressed(EditorToolbar.java:353)
    at java.awt.Component.processMouseEvent(Component.java:6260)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6028)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4235)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2475)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

    Odpowiedz
  • Cześć,
    Mam takie pytanie dotyczące powyższego programatora – otóż nieszczęśliwie zwarłem wyjścia napięcia z programatora, no i zgasła dioda, komputer nie wykrywa nic po podpięciu do kompa – czy to już jego koniec czy coś da się zrobić? Może jest jakiś bezpiecznik na płytce, który można by wymienić i ożywić programator?
    Pozdrawiam

    Odpowiedz
  • Witam, dziękuje bardzo za film, na którym jest przedstawione jak podłączyć diodę do mikroprocesora. Strasznie się naszukałem gotowego rozwiązania, bo wszędzie są pokazane schematy, a jak dla laika to takie schematy są niezrozumiałe. Dużo czytałem i czytałem w końcu do Pana trafiłem i stała się jasność.. Dziękuję.

    Odpowiedz
  • Witam

    Potrzebuję pomocy z instalacją tego programatora pod linux (ubuntu 12.04).
    podpiąłem, zainstalowałem co kazał producent (czyli tylko skopiowałem plik .rules), uruchomilem ponownie komputer… Potem odpaliłem Arduino IDE jako root (sudo arduino) i wciąż nie mogę wybrać portu szeregowego z menu Narzędzia.

    po wpisaniu polecenia dmesg mamy taki wynik dotyczący tego urządzenia. Jest tam jakiś błąd niepokojący:

    [ 161.763602] usb 3-4: USB disconnect, device number 4
    [ 171.056340] usb 3-4: new low-speed USB device number 5 using xhci_hcd
    [ 171.079081] usb 3-4: New USB device found, idVendor=16c0, idProduct=05dc
    [ 171.079093] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [ 171.079099] usb 3-4: Product: USBasp
    [ 171.079104] usb 3-4: Manufacturer: http://www.fischl.de
    [ 171.079381] ACPI Exception: AE_AML_PACKAGE_LIMIT, Index (0x0000000000000008) is beyond end of object (20120320/exoparg2-418)
    [ 171.079396] ACPI Error: Method parse/execution failed [\_SB_.PCI0.XHC_.RHUB.HSP4._PLD] (Node ffff880128e8bca8), AE_AML_PACKAGE_LIMIT (20120320/psparse-536)

    Czy zatem robiłem wszystko odpowiednio? Niczego nie pominąłem? Co mam dalej robić ? Proszę o pomoc…

    Odpowiedz
  • Witam
    Mój problem jest taki:

    avrdude: error: programm enable: target doesn’t answer. 1
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override this check.

    Mam program arduino 1.0 rc2 wszystko ustawione jak w poradniku powyżej.
    błąd wyświetla się zarówno ze zworkami Slow_SCK i VCC. jak i z samą Vcc.(usbasp)
    dowiedziałem się trochę o błędzie rc=-1 ale nic nie pasuje.

    Może mi ktoś pomóc??

    Odpowiedz
    • post wyżej nieaktualny bo jakimś sposobem w mkavrcalculator coś kliknąłem i bootloader się wgrał tak jak w poradniku.
      Ale występuje inny błąd:

      error: Arduino.h: No such file or directory

      miał tak ktoś ??

      Plik “Arduino.h” podmieniałem na różne wersje ale żadna nie działała.

      Odpowiedz
  • Jeżeli ten programator USBasp kosztuje ok. 25zł + około 10zł za procesor, to czy mógłby mi ktoś wytłumaczyć jaki jest sens kupowania Arduino za ponad 100zł? Chciałbym zacząć się bawić mikrokontrolerami i nie wiem co będzie dla mnie lepsze i bardzie opłacalniejsze.

    Odpowiedz
  • Według mnie lepszym rozwiązaniem będzie usbasp (można np. obsługiwać inne języki prog. a z samym arduino pi jest za dużo)
    Po za tym tańsze i można się więcej nauczyć(o prockach).
    :)

    Odpowiedz
  • Podczas wgrywania Bootloadera wyskakuje mi błąd:

    avrdude: can’t open input file C:\Documents and Settings\Właściciel\Moje dokumenty\Pobieranie\arduino-1.0.1\hardware\tiny\bootloaders\empty\empty2313at1.hex: No such file or directory
    avrdude: read from file ‘C:\Documents and Settings\Właściciel\Moje dokumenty\Pobieranie\arduino-1.0.1\hardware\tiny\bootloaders\empty\empty2313at1.hex’ failed

    Proszę o pomoc. Bardzo mi zależy.

    Odpowiedz
  • Mam taki problem i nie do końca wiem jak go rozwiązać
    otóż podłączam mój procek do programatora i lampka programatora się świeci. na 1 s. zapala się lampka podłączenia układu i nagle wszystko gaśnie
    zasilanie mam z programatora a gaśnie zapewne przez bezpiecznik co na to poradzić ?

    Odpowiedz
  • Załadowałem bootloader wszystko OK, tylko jak próbuje wgrać ten program to wyskakują mi błędy
    sketch_aug26a.ino:1:21: error: Arduino.h: No such file or directory
    sketch_aug26a.ino: In function ‘void setup()’:
    sketch_aug26a:4: error: ‘OUTPUT’ was not declared in this scope
    sketch_aug26a:4: error: ‘pinMode’ was not declared in this scope
    sketch_aug26a.ino: In function ‘void loop()’:
    sketch_aug26a:8: error: ‘HIGH’ was not declared in this scope
    sketch_aug26a:8: error: ‘digitalWrite’ was not declared in this scope
    sketch_aug26a:9: error: ‘delay’ was not declared in this scope
    sketch_aug26a:10: error: ‘LOW’ was not declared in this scope

    mam to podłączone przez specjalną płytkę która była dołączona do usbasp

    Odpowiedz
    • naprawiłem sam, zainstalowałem arduino ide od nowa skopiowałem pliki tiny pierwsze te które były w opisie artykułu, potem te oto http://code.google.com/p/arduino-tiny/ wszystko kopiowałem do dwóch miejsc, pierwsze to folder hardware, drugie to w folderze hardware folder arduino

      płytka ustawiona w opcjach attiny2313 1Mhz

      Odpowiedz
  • Mam problem z zaprogramowaniem Attiny2313 przez programator USBasp. Po uruchomieniu avrdude zawsze wyskakuje błąd zwracający uwagę na błędne podłączenie. Myślałem, że faktycznie coś pomyliłem, ale po sprawdzeniu woltomierzem – połączenie wydaje się być ok (1 rząd: GND x x x Vcc 2r: MISO SCK RST x MOSI), zakładając że nadlewka plastiku jest na dole. Z drugiej strony, udało mi się wgrać jakiś program programując przez arduino, jako programator ISP. No i…. szczerze mówiąc nie wiem o co chodzi.
    Czy może być to kwestia avrdude? Czy może windows 8.1 blokuje nie tylko instalację, ale i uruchomienie sterowników bez podpisu cyfrowego?

    Odpowiedz
      • W razie jakbyś dalej miał wątpliwości, to z całego serca polecam, zamówiłem swoje arduino leonardo za 10$ i do tego płytkę stykową z modułem zasilającym oraz 65 przewodów za dodatkowe 7.90$. Dostawa darmowa, czas oczekiwania ~15 dni.

        Odpowiedz
  • Witam Państwa. Zgodnie z tym co napisano próbowałem wypalić bootloadera na ATmega8a. Wyskakuje taki komunikat: avrdude.exe: error: could not find USB device “USBasp” with vid=0x16c0 pid=0x5dc. Dodam tylko, że przy pomocy tego samego programatora ładuję programy przez avrdude skompilowane w Atmel Studio bez żadnego problemu. Ktoś wie co może być nie tak?

    Odpowiedz
  • Witam potrzebuję pomocy w zaprogramowaniu dwóch procków… są to atmegi 328p-pu kompletnie nie mam pojęcia jak to zrobić… próbowałem już różnych sposobów. :/ Posiadam programator usbasp… czy jest jakaś możliwość by wgrać bootloader tylko przez niego..? posiadam mkavrcalculator, procki są wykrywane… (wiem że wgrywamy bootloader na pamięć flash). Odwdzięczę się za pomoc… :)

    Odpowiedz
  • Okej, wszystko super.
    A jak wgrać bootloader na Atmege, jesli posiadam zarówno Arduino (w starej wersji jeszcze ze portem szeregowym RS) oraz programator z taśmą??

    Na płytce arduino jest złącze 6 pinowe ICSP, a taśma z programatora ma 10 pinów.
    Które piny należy ze sobą połączyć i czy procedura programowa jest taka sama??

    Odpowiedz
  • Cerca de Ohio university en Atenas est el rstico Strouds Run State Park. Aqu, shedd visitantes pueden tomar mas de 2.500 hectreas environnant les vida salvaje, Incluyendo colinas, Arroyos ful barrancos. Dow river ofrece navegacin y pesca, Aunque existen un lmite de 10 caballos de fuerza para barcos en el lago. are generally pesca incluyen trucha, Lubina b el pez gato. El parque tambin permite la caza minus un permiso vlido y cuenta con abundantes pavos salvaje y ciervos. crecen varias caminatas, Bicicleta de montaa y senderos de herradura que van desde un moderada milla (1,5 kilometer) Beaver Pond piste a las 6,6 millas (11 kilometre) Sundown walk. Para shedd visitantes durante la noche hay 78 campamentos con el acceso a 10 mascotas.

    Odpowiedz
  • This bag is created in soft nylon fabric, Easy to neat and breezy to matching. Seven colors ranging from light fashion to toned down elegance are lush to choose. additionally, it is exactly what Miuccia Prada did at all. If you must find out any aristocratic scent in it, Just Saffiano calf leather flaps add more intrigue to this deft researching bag. A call for austerity rules clearly echo on it. Miuccia Prada is mean to offer up her a touch of drive to this economical bag.

    Odpowiedz
  • Wszystko ładnie, pięknie, tylko moje IDE za diabła nie “widzi” tej paczki… Podaną w tutorialu rozpoznaje od razu, ale po wgraniu tej nie mam do wyboru żadnej płytki ATTINY…

    Przy użyciu paczki z tutoriala udaje się wgrać bootloader i program, oczywiście przy tym mikrokontroler nie wykonuje programu :) testowane na przykładzie blink, ATTINY2313V 10pu

    Odpowiedz
  • Witam! Panowie byłby ktoś w stanie mi pomóc? :( mam Arduino Uno, oraz USBasp i próbuje zaprogramować ten mikrokontroler ATTtiny2313. i ni huhu nie umiem tego zrobic ;/ Wykonuje wszystko tak jak opisane wyżej i w innych artykółach masjerkowo i cały czas wywala mi albo błąd, bo nie umiem wgrać bootloadera, a jak mi się już uda to niechce mi wgrać programu np: właśnie tej zwyczajnej migającej diody. Może mi ktoś poradzić albo pomóc co robię źle?

    Odpowiedz
  • Wszystko fajnie ale poradnik jest nie aktualny, w nowej wersji po wrzuceniu tiny do \hardware nie widać ich na liście, trzeba wypakować je do \hardware\arduino\ i dopiero je widać lista wygląda całkiem inaczej niż pokazana na zdjęciu. A kompletnie nie wiem gdzie wypakować już pliki do z innego poradnika do atmegi 8 i 32 ponieważ zwyczajnie nie ma takich folderów, nie jest napisane czy trzeba je stworzyć samemu. Prosi się o aktualizację

    Odpowiedz
  • Dlaczego podczas wgrywania programu na mikrokontroler wyskakuje mi taki błąd: “Błąd przy wgrywaniu; brak ‘upload.tool’ parametru konfiguracji” ?
    wydaje mi się, że brakuje jakiegoś wpisu z ‘tool’ w pliku boards.txt.
    Oto moja zawartość w tym pliku odnośnie ATmegi328P:
    majsterkowo_atmega328p16.name=ATmega328P @ 16 MHz
    majsterkowo_atmega328p16.upload.maximum_size=30720
    majsterkowo_atmega328p16.upload.using=arduino:arduinoisp
    majsterkowo_atmega328p16.bootloader.low_fuses=0xE2
    majsterkowo_atmega328p16.bootloader.high_fuses=0xDA
    majsterkowo_atmega328p16.bootloader.extended_fuses=0x05
    majsterkowo_atmega328p16.bootloader.file=atmega/ATmegaBOOT_328.hex
    majsterkowo_atmega328p16.bootloader.unlock_bits=0x3F
    majsterkowo_atmega328p16.bootloader.lock_bits=0x0F
    majsterkowo_atmega328p16.build.mcu=atmega328p
    majsterkowo_atmega328p16.build.f_cpu=16000000L
    majsterkowo_atmega328p16.build.core=arduino
    majsterkowo_atmega328p16.build.variant=standard

    Odpowiedz
  • Wielka prośba do Łukasz Więcka, autora tego artykułu.
    Od publikacji tego materiału minęły prawie 3 lata, a to sporo czasu w świecie elektroniki.
    Czy byłby Pan tak uprzejmy, zaprogramować ATtiny2313 na Arduino Leonardo w najnowszym Arduino IDE 1.6.1?
    Pomogło by bardzo, gdyż wiele rozwiązań użytych przez Pana są już nieaktualne, i z tego co widzę, wielu odwiedzających to miejsce nie jest już w stanie skorzystać z Pana pomocy sprzed prawie 3 lat.
    Serdecznie dziękuję za pomoc.

    Odpowiedz
  • Ja też mam problem z czystymi AVR pod Arduino 1.6.1
    z tego co już sam doszedłem sam należy dodać w boards linijkę:

    • .upload.tool=avrdude

    np.
    majsterkowo_atmega328p16.upload.tool=avrdude

    Odpowiedz
  • Mam problem. zrobilem tak jak jest napisane i wyskakuje mi:Third-party platform.txt does not define compiler.path. Please report this to the third-party hardware maintainer.
    Błąd przy wgrywaniu; brak ‘recipe.cpp.o.pattern’ parametru konfiguracji

    Co mam robić???
    Pomóżcie

    Odpowiedz
  • Witam.

    Bardzo fajny i przydatny temat, jeśli jest gdzieś dostępny pliczek boards.txt z danymi dla atmega8 to bardzo chętnie bym do chciał. chcę przegrać soft z arduino za pomocą stk500v2 na procek atmega8 i nie jestem w stanie tego zgrać ze sobą. Proszę o pomoc

    Odpowiedz
  • W momencie kiedy klikam wypal bootloader wyskakuje mi taki komunikat.
    Co może być nie tak???

    java.lang.NullPointerException
    at cc.arduino.packages.uploaders.SerialUploader.burnBootloader(SerialUploader.java:314)
    at processing.app.Editor.lambda$handleBurnBootloader$42(Editor.java:2754)
    at java.lang.Thread.run(Thread.java:745)
    Błąd przy wgrywaniu bootloadera.

    Odpowiedz
  • Czyli według tego zdania “Przed wgraniem właściwego programu musimy jeszcze wrzucić na nasz mikrokontroler tak zwany Bootloader. To właśnie dzięki niemu będziemy mogli korzystać z przyjaznej składni kodu i wszystkich funkcji dostępnych dla Arduino.” mam rozumieć, że Bootloader jest tylko po to, aby używać Arduino IDE. A np. z WinAVR mógłbym korzystać bez wgrywania bootloadera?

    Odpowiedz
    • Seba: Kolego, nie przeanalizowałeś podanego materiału:
      “-c arduino – typ programatora (korzystamy z protokołu bootloadera Arduino)”,
      “Wykorzystując powyższy plik Makefile, kompilacja i nagranie programu na płytkę Arduino UNO sprowadza się do wykonania jednego polecenia”.
      I tak wszystko sprowadza się do Arduino lub innych pochodnych USB. Dodatkowo poradnik dotyczy zapewne Linux’a Ubuntu, ale nie każda jego wersja i pochodna zawsze tak sapo odpowiada na polecenie.
      A swoją drogą – przetestowałeś opisany w linku sposób i wiesz na pewno że działa? Bo niestety Moderatorzy/autorzy artykułu o nim i o innych czytelnikach zapomnieli, a mi samemu ATT2313 sypie błędami jak szalone podczas kompilowania (że niby stare biblioteki) i nigdzie pomocy ani nowszych sterowników do AtTiny nie ma.
      Pozdro

      Odpowiedz

Odpowiedz

anuluj

Masz uwagi?