poniedziałek, 16 lipca 2012

Arduino Nano po polsku

W ostatnim poście pisałem o tanim Arduino na mikrokontrolerze Atmega8. Moduł jest tani, bo koszt całości zamyka się w 20 zł, ale nieco bardziej uciążliwy w użyciu, jeśli chcemy szybko prototypować. Na szczęście AVT wypuściło inny kit - AVT 1622 - Minimoduł z Atmega8
Układ ten, w odróżnieniu od poprzedniego, posiada wbudowany konwerter UART<->USB, zatem może być używany prawie jak oryginalne Arduino Nano.

Decydując się na zakup kitu, wybieram samą płytkę. Choćby dlatego, że finalnie będzie to minimoduł z Atmegą 328.

Lista potrzebnych elementów:
  • płytka drukowana modułu
  • Atmega328
  • FT232RL
  • 78M05 (TO252)
  • 3x 470om 0805
  • 10k 0805
  • 2x 1k 0806
  • 2x 10mikroF . 16V
  • 4x 100nF 0805
  • 2x 22pF 0805
  • niski kwarc 16 MHz
  • diody led smd 0805 - zielona, czerwona, żółta
  • gniazdo mini usb
  • goldpiny

Instrukcja kitu zaleca rozpoczęcie montażu od mikrokontrolera, kondensatorów i diod LED na jednej stronie. W kolejnym kroku FT232, stabilizator, rezystory i kontensatory po drugiej stronie, a na końcu gniazdo USB i goldpiny.
Lutowanie elementów smd jest relatywnie proste, nawet dla takiego początkującego jak ja, jeśli się ma pod ręką plecionkę lutowniczą:



Po zlutowaniu moduł wygląda tak:

Jeszcze można zauważyć mnóstwo kalafonii po "odsączaniu" nadmiaru cyny. Ważne, że sposób działa...
Po zakończeniu lutowania można moduł podłączyć do komputera - powinna świecić się zielona dioda (PWR), a diody RX i TX pobłyskiwać od czasu do czasu. Dodatkowo, w IDE powinien pojawić się nowy port. Jeśli nic takiego się nie dzieje, trzeba sprawdzić, czy np drobinki lutu nie zwierają pinów złącza USB czy też układów sclaonych. Nim wgramy bootloader sprawdźmy FUSE bity:
avrdude -p m328p -c stk500v2 -P /dev/ttyACM0 -U lfuse:r:-:h -U lfuse:r:-:b -U hfuse:r:-:h -U hfuse:r:-:b 
i otrzymujemy:
avrdude: Device signature = 0x1e950f 
reading lfuse memory: 0x62 
reading hfuse memory: 0xd9 

Teraz możemy wgrać bootloader. Podłączamy moduł do programatora i za pomącą IDE ładujemy oprogramowanie. Możemy sprawdzić FUSE bity ponownie. To co powinniśmy otrzymać to 0xff (lfuse) i 0xda (hfuse).
Mogłoby się wydawać, że to już koniec. Niestety nie. Próba załadowania programu z IDE z reguły skończy się komunikatem:
Binary sketch size: 1,084 bytes (of a 30,720 byte maximum) avrdude: stk500_recv(): programmer is not responding 
  Nasze nowe Arduino będzie trudno programować przez USB, gdyż moduł dostarczany przez AVT nie posiada możliwości autoresetu, co więcej przycisku RESET też na płytce nie ma. O ile drugi problem można usunąć przez podłączenie zewnętrznego przycisku do resetowania układu, o tyle ja osobiście wolę nic nie naciskać. Prostym rozwiązaniem jest dodanie połączenia pinu DTR# układu FT232RL poprzez kondensator 100nF z pinem RESET mikrokontrolera. Do tego celu najlepiej użyć bardzo cienkiego przewodu, choć jak nie ma nic pod ręką, można użyć przewodu ze skrętki:
Moje lutowanie wygląda tak:

Może nie najwyższych lotów, ale nie ma zwarć, a wgrywanie programów nie stanowi już żadnego problemu.

Mapa pinów modułu:

Brak komentarzy:

Prześlij komentarz