Płytka do szybkiego programowania Arduino

Płytka do szybkiego programowania Arduino

Witam Was drodzy Majsterkowicze! Jako, że wykonuję ostatnio dość dużo projektów opartych o Arduino zrobiłem sobie płytkę do wgrywania bootloadera na czystą AtMegę oraz późniejszego jej programowania bez plątanin kabelków na płytce stykowej. Takie rozwiązanie pomaga mi zaoszczędzić pieniądze (nie trzeba kupować nowego Arduino do każdego projektu) oraz zwiększa estetykę projektów (moim zdaniem dedykowane płytki drukowane wyglądają dużo zgrabniej niż pająki z Arduino Nano w roli głównej). Przede wszystkim jednak pomaga to zaoszczędzić czas. Wystarczy włożyć procesor w podstawkę na płytce stykowej, podłączyć całość jednym kablem do Arduino i szybko wgrać bootloader. Moja płytka pozwala programować wpięty w nią układ na 4 sposoby:

  • Przez złącze ICSP zewnętrznym programatorem np. USBASP
  • Przez złącze ICSP za pomocą Arduino
  • Przez złącze szeregowe za pomocą Arduino UNO z wyjętym uC (lub konwerterem USB-TTL z pinem DTR)
  • Przez złącze szeregowe za pomocą najtańszego chińskiego konwertera USB-TTL (bez pinu DTR)

Tak prezentuje się gotowa płytka. Niestety nie zauważyłem na niej jednego drobnego błędu. Przy wyprowadzeniu pinów portu szeregowego brakuje VCC, więc programując układ przez owy port trzeba będzie zasilanie +5V podłączyć do odpowiedniego pinu w złączu ICSP. 3 piny ze zworką na skraju płytki służą do wyboru źródła RESETu. W jednym ustawieniu RESET jest pobierany ze złącza ICSP (np. jeśli programujemy przez programator USBASP), w drugim przypadku pin RESET jest podłączony do pojedynczego gniazda wyprowadzonego zaraz obok zworki (w przypadku, kiedy chcemy wypalić bootloader przez Arduino działające jako programator). To tyle ze wstępnej prezentacji układu. Przejdźmy więc do skompletowania potrzebnych części i zmontowania układu :)

Potrzebne części

Schemat oraz projekt płytki PCB

schemat

PCB

 

Rezonator 16 MHz oraz kondensatory C4 i C5 są opcjonalne. Możemy zamiast nich wlutować żeńskie złącza w płytkę i dobierać je do naszych potrzeb w danym momencie lub wlutować i programować tylko mikrokontrolery z fusebitami zgodnymi z tymi w Arduino.

Pobierz pliki EAGLE oraz PDF z projektem PCB

Płytkę możemy wytrawić domowymi metodami, które były już opisywane na Majsterkowie np. tu

Opis działania układu

Opis

Opis wyprowadzeń (piny czytane od lewej do prawej):

Sekcja czerwona (TTL):

[RESET] [RXD] [TXD] [GND]

 

Sekcja niebieska (ICSP):

[VCC] [MOSI] [GND]

[MISO] [SCK] [RST]

 

Sekcja zielona (wybór źródła RESETu)

[Z ICSP] [RESET Z uC] [Z PINU PO PRAWEJ]

 

A jak to programować hmm?

Na początku wypalamy bootloader. W tym celu w Arduino IDE wybieramy Przykłady > 11. ArduinoISP > ArduinoISP i wgrywamy na nasze Arduino. Następnie podłączamy złącze ICSP z Arduino do złącza ICSP na naszej płytce. Ustawiamy zworkę na reset z pinu po prawej i podłączamy go do pinu 10 w Arduino. Teraz z menu Narzędzia > Programator wybieramy ArduinoISP ponownie wchodzimy w menu Narzędzia tym razem wybierając opcję Wypal bootloader.

Kiedy mamy już wypalony bootloader możemy np. włożyć układ do Arduino i prototypować na nim, a po skończonej pracy zrobić dla naszego urządzenia dedykowaną płytkę i włożyć do niej nasz zaprogramowany układ.

Możemy też skorzystać z tego poradnika i programować Atmegę za pomocą konwertera PL2303. Oczywiście zamiast układać to na breadboardzie podłączamy konwerter bezpośrednio pod naszą płytkę.

Mam nadzieję, że mój projekt zaoszczędzi Wam nudnego podłączania kabelków, liczenia pinów i marnowania czasu na coś, co teraz możecie zrobić podłączając wszystkie wymagane kabelki w kilka sekund.

Ocena: 4.57/5 (głosów: 56)

Podobne posty

6 komentarzy do “Płytka do szybkiego programowania Arduino

Odpowiedz

anuluj

Masz uwagi?