Programowanie Arduino Pro Mini za pomocą USB Mini

Każdy, kto robił projekt oparty na Arduino, wie, że przychodzi taki pomysł do głowy, że chciałoby się, aby Arduino było znacznie mniejsze niż podstawowa płytka.

Szybko powstały różne płytki, które oferują zgodność z Arduino ale są znacznie mniejsze. Jedną z takich jest produkowany przez SparkFun Arduino Pro Mini. Obecnie ma ono na pokładzie ATmega328 a rozmiar całej płytki to 33 mm x 18 mm. Występuje ono w dwóch wersjach. Jedna działa na obniżonym napięciu 3.3V i kosztem niższego taktowania (8 MHz) oferuje mniejsze zużycie prądu. Druga jest kopią funkcjonalną Arduino – działa na 5V i jest taktowana 16 MHz.

Jeśli rozmiar płytki jest taki niewielki to czego brakuje? Otóż brakuje konwertera USB/Serial. Dlatego do programowania musimy mieć dodatkowe urządzenie – konwerter USB/Serial TTL (dla osłody – brak tego układu na płytce oznacza niższą cenę samego Mini).

Jednym z konwerterów USB Serial w ofercie Nettigo jest Arduino Mini USB. Ponieważ połączenie i programowanie Pro Mini sprawia czasem na początku kłopoty – przedstawiam małe HOWTO:

Manualne programowanie

Po resecie urządzenia mniej więcej przez jedną sekundę aktywny jest bootloader Arduino. Oczekuje on na dane na Serialu i jeżeli rozpozna dane binarne – transmisja zostanie zapisana w pamięci Flash i uruchomiona. Dlatego najprostszy sposób to podłączyć Arduino Mini USB i Pro Mini w następujący sposób:

  • połączyć masy USB Mini z Pro Mini (GND z GND)
  • Zasilanie z USB Mini (+5V) do Vcc na Pro Mini
  • RX z USB Mini do RX1 na Pro Mini
  • TX z USB Mini do TX0 na Pro Mini

Wyjścia na USB Mini nie są opisane, więc tutaj jest schemat poglądowy wyprowadzeń (gniazdo USB jest z lewej strony rysunku):

Wyprowadzenia USB Mini
Wyprowadzenia USB Mini

Rzeczywiste podłączenie można podejrzeć na tym zdjęciu:

Układ do ręcznego resetu przy programowaniu
Układ do ręcznego resetu przy programowaniu

Szkic należy najpierw skompilować (ikonka z trójkącikiem) a następnie nacisnąć przycisk reset na Arduino Pro Mini i jednocześnie przycisk upoloadu w Arduino IDE (trzeba pamiętać o wyborze właściwej płytki w menu Tools/Board) . Diody TX i RX na USB Mini powinny zacząć migotać i szkic po chwili powinien już być na Pro Mini.

Automatyczny reset (Automatic Reset lub Software Reset)

Jednak zwykłe Arduino już od długiego czasu można programować naciskając Upload w IDE bez konieczność ręcznego resetowania płytki. W wypadku płytek Mini, które ze względu na swoje małe rozmiary często są w trudno dostępnych miejscach, takie rozwiązanie ma niewątpliwą przewagę nad ręcznym resetowaniem.

Aby skopiować to zachowanie większego Arduino wystarczy wyjście RTS na USB Mini (oznaczone 3) połączyć z którymś wejść RST na Pro Mini:

Automatyczny (programowy) reset Arduini Pro Mini
Automatyczny (programowy) reset Arduini Pro Mini

Tutaj użyłem sond z Bus Pirate, jako że ani do Pro Mini ani do USB Mini nie miałem przylutowanych goldpinów. Od teraz wystarczy tylko nacisnąć Upload w Arduino IDE i już Pro Mini po krótkiej chwili ma na sobie nowy szkic.

Pro Mini i FTDI Friend

Ponieważ pojawiają się pytania, dla rozwiania wszelkich wątpliwości pokażemy jak korzystamy zwykle z Arduino Pro Mini i FTDI Frienda. Na boku Pro Mini znajduje się miejsce na wlutowanie goldpinów. Jest na nim właśnie interfejs UART + zasilanie i pomocnicze sygnały. Układ pinów jest zgodny ze de facto standardem FTDI cable. Był to chyba pierwszy konwerter USB/Serial w formie przewodu, produkowany przez firmę FTDI. Większość konwerterów USB/Serial stara się zachować tą konwencję i jest tak też w wypadku FTDI Frienda. Spójrzmy na Arduino Pro Mini:

Złącze FTDI na Pro Mini
Złącze FTDI na Pro Mini

Jeżeli przyjrzycie uważniej z lewej strony złącza można dostrzec napis BLK a z prawej GRN. Oryginalny kabel FTDI do złącza 6-cio pinowego miał podłączone skrajne przewody w kolorach czarnym i zielonym. Dlatego te napisy są dla ułatwienia orientacji. Jednak FTDI Friend ma złącze przylutowane do płytki PCB a nie ma tam przewodów, więc jak wiedzieć która strona jest która?

FTDI Friend nałożony na Arduino Pro Mini
FTDI Friend nałożony na Arduino Pro Mini

Wystarczy spojrzeć na krawędzie płytki – już wiecie czemu są na niej napisy BLACK i GREEN. Wystarczy teraz nałożyć FTDI Frienda bezpośrednio na Arduino Pro Mini i będzie można je programować z Arduino IDE, jak „zwykłe” Arduino, przez przycisk Upload (Ctrl+U) w Arduino IDE.

Uwaga – jeżeli korzystasz z Arduino Pro Mini 3.3V nie zapomnij o przelutowaniu zworek na tyle FTDI Frienda, tak by zasilanie i poziomy logiczne pasowały do 3.3V.