Programator mikrokontrolerów AVR na Arduino

Wpis w kategorii [ Arduino ]
Arduino

Platforma Arduino jest na tyle fajnie skonstruowana, że do załadowania programu do mikrokontrolera, nie wymaga dodatkowego, zewnętrznego programatora. Jest to możliwe, ponieważ do mikrokontrolera wgrany jest wstępnie bootloader, który potrafi przeprogramować układ (komunikacja z bootloaderem zrealizwana jest z wykorzystaniem portu szeregowego).

Dla mnie stanowi to ogromną wygodę i sposób taki polecam nie tylko fanom Arduino, ale również każdemu, kto zajmuje się mikrokontolerami AVR. Ja często stosuję zestaw Boarduino oraz program do wgrywania wsadu (który w zasadzie stanowi nakładkę na avrdude).

No dobrze, ale jeśli już posiadasz Arduino, a teraz chcesz zaprogramować np. ATtiny45 (mój ulubieniec), który stanowi mózg Twojego projektu. Czy musisz kupować programator? Mało tego, jak masz szczęście takie jak ja, to używasz laptopa. Czy musisz kupować wtedy programator na USB (droższy)?

Programator

Dla takich osób znalazłem fajne rozwiązanie. Na stronie http://drug123.org.ua/mega-isp-shield/ opisane jest rozszerzenie do Arduino (shield), który wraz z odpowiednim wsadem do mikrokontrolera i programem avrdude zmienia Arduino w programator!

To co bardzo podoba mi się w programatorze, to fakt uwzględnienia dwóch standardów złącz programatorów: avr isp oraz kanda isp.

Co będzie potrzebne?

Rozszerzenie zostało zaprojektowane na jednowarstwowej płytce drukowanej. Możliwe jest więc wyprodukowanie jej w warunkach domowych. Dla leniwych polecam zamówienie wykonania obwodu drukowanego w jednej z firm lub osób, które się tym zajmują. Osobiście nie przetestowałem jeszcze rozszerzenia, ale przyglądając się konstrukcji, rzuca mi się w oczy mały problem z montażem złącz (tych, które połączą rozszerzenie z Arduino). Problem polega na tym, że należy je przylutować od spodu (jednostronna płytka), co nie jest zadaniem najłatwiejszym – na szczęście wykonalnym.

Plik z projektem programu Eagle oraz wzór płytki w formacie png dostępne są na wspomnianej stronie.

Niezbędne komponenty:

  • płytka drukowana,
  • złącza (1×2, 1×2, 1×3, 1×6, 1×8, 2×6, 2×10),
  • 3 diody LED,
  • 3 rezystory o wartości 1k

Na upartego można zrobić z tego jakiegoś pająka, ale osobiście nie polecam takiego rozwiązania. Później okazuje się, że coś nie działa – szukamy błędu w układzie, który projektujemy, a okazuje się (po mozolnych poszukiwaniach), ze w konstrukcji programatora coś nie styka. Jeśli jednak nie chcesz wykonywać płytki drukowanej, to lepiej już połączyć to wszystko na płytce stykowej niż w powietrzu.

Kompatybilność

Oprogramowanie do Arduino (wsad do mikrokontrolera) dostępny jest na stronie: http://code.google.com/p/mega-isp/.

Według autora rozszerzenia programator jest kompatybilny z: avrdude oraz Eclipse. Nie jest natomiast z: AVRStudio i PonyProg (PonyProg chyba ogólnie nie współpracuje z programatorami via USB).

Podsumowanie

Prezentowane rozwiązanie to bardzo fajny sposób na wyposażenie swojego laboratorium w programator mikrokontrolerów AVR przy minimalnych kosztach (dla osób posiadających Arduino). Zwracam jednakże uwagę na fakt, że jest on udostępniany na licencji Creative Commons Attribution-Noncommercial-Share Alike 3.0, wykluczone zostało więc komercyjne wykorzystanie projektu.

Oceń ten wpis:
1 gwiazdka2 gwiazdki3 gwiazdki4 gwiazdki5 gwiazdek (Nikt jeszcze nie ocenił tego wpisu)
Loading ... Loading ...
Wyświetleń: 1 887

Podobne artykuły

Możesz śledzić komentarze do tego wpisu poprzez kanał RSS 2.0. Możesz także dodać własny komentarz, lub trackback z własnej strony WWW.

14 komentarzy do “Programator mikrokontrolerów AVR na Arduino”

  • Bartek (1 czerwca, 2010, 20:55)

    Czytałem gdzieś, że przez wbudowane złącze ICSP w arduino można bez zbędnego lutowania programować inny mikroprocesor (np. atmega) Wystarczy połączyć odpowiednie piny ICSP z pinami od procesora, lecz problem w tym, że nie wiem co zrobić dalej.

  • michal (1 czerwca, 2010, 21:16)

    Myślę, że raczej czytałeś o tym, że można zaprogramować mikrokontroler w Arduino (tzn. załadować do niego bootloader) bez korzystania ze złącza ICSP (wykorzystując do tego układ FTDI w trybie bit-bang).

    Ewentualnie był to jakiś projekt, z odpowiednim oprogramowaniem dla Arduino. „Czyste” Arduino nie jest w stanie tego zrobić.

  • Bartek (1 czerwca, 2010, 23:19)

    A czy istnieje możliwość załóżmy taka. Kupuje atmege8 z załadowanym bootloadarem arduino, którą wstadzam w arduinoi duemlanove i wrzucam oprogramowanie. Później wyciągam i wstawiam w płytkę z danym układem.

  • michal (2 czerwca, 2010, 19:21)

    Tak, istnieje taka możliwość. Niestety jej wadą jest to, że Atmega musi być wcześniej zaprogramowana bootloaderem (co wymaga programatora :) ).

  • Bartek (2 czerwca, 2010, 21:57)

    Programator na LPT nie jest dość trudny do zbudowania więc tylko muszę znaleźć bootloader i programy, którymi wrzucę na atmege.

  • Bartek (9 czerwca, 2010, 20:07)

    Witam po raz kolejny. Zwracam się z pytaniem do administratorów czy istnieje forum do portalu mikrokontrolery.info? Chciałbyś zasięgnąć fachowej porady, ponieważ dopiero zaczynam przygodę z elektronika (czyt. arduino & atmega8), a nie ma miejsca do tego przeznaczone. Pozdrawiam i dzięki za odpowiedź.

  • michal (9 czerwca, 2010, 20:13)

    W chwili obecnej forum dostępne jest tylko dla uczestników kursu Arduino dla początkujących. Tam można uzyskać odpowiedzi i szukać rozwiązań problemów.

    Możesz także pytać tutaj, na blogu, ale powinny to być tylko pytania dotyczące poruszanego we wpisie tematu.

    Ewentualnie podeślij propozycję pytania w postaci tematu wpisu na blogu (na adres admin [malpa] mikrokontroler.info), a a uzyskasz wyczerpującą odpowiedź ode mnie oraz komentujących.

  • Bartek (9 czerwca, 2010, 20:38)

    Chętnie zakupiłbym ten poradnik, lecz cena niestety zbyt duża dla mnie. Info poszło na maila. Pozdrawiam Bartek!

  • Bartek (9 czerwca, 2010, 21:24)

    No dobrze, gdy wrzuce do arduino ten wsad, to stracę możliwość pisania aplikacji w aplikacji arduino? Następna sprawa, jak podłączyć arduino z tym zewnętrznym programatorem?

  • michal (9 czerwca, 2010, 21:45)

    Opisywany tutaj programator stanowi nakładka na Arduino (tzw. shield) oraz program ładowany do procka.

    Zobacz, wygląda to tak:
    Arduino jako programator AVR

    Program wgrywany jest przez bootloader, więc po zakończeniu pracy z programatorem, można bez problemu dalej używaż Aduino do innych cełów.

  • Bartek (9 czerwca, 2010, 22:07)

    Bardzo pomogłeś mi tym zdjeciem lecz dalej nie wiem co dalej. Mam tą nakładkę i, które piny podłączyć pod atmege? Ogólnie do czego służą piny, które znajdują się na nakładce?

  • michal (10 czerwca, 2010, 16:52)

    Te złącza mają standardowy rozstaw dla standardu Kanda (2×5 szpilek) i Atmel (2×3 szpilek). Możesz zastosować taki kabelek i programować w systemie (ISP):

    ISP

  • Bartek (10 czerwca, 2010, 18:44)

    Dzięki Tobie wiem już 75% tego co chcę, lecz to nie koniec :D Do programowania atmegi8 posłuże się pinami ze złącza Atmel, lecz skąd będę wiedział, który pin to np. MOSI lub MISO?

  • michal (10 czerwca, 2010, 18:51)

    Nie wiem, czy chodzi Ci o piny na złączu czy w Atmega, więc…
    na złączu:
    AVR ISP
    W Atmega:
    Atmega pins

    Reszta zależy od Ciebie (liczę na trochę samodzielności :) ).

Dodaj komentarz