Spisu treści:

Towarzysz Atmega328p: 6 kroków (ze zdjęciami)
Towarzysz Atmega328p: 6 kroków (ze zdjęciami)

Wideo: Towarzysz Atmega328p: 6 kroków (ze zdjęciami)

Wideo: Towarzysz Atmega328p: 6 kroków (ze zdjęciami)
Wideo: Towarzysz (Companion) [+ spontaniczna modlitwa] | SOWINSKY & Kahal.U 2024, Listopad
Anonim
Towarzysz Atmega328p
Towarzysz Atmega328p

Towarzysz ATMEGA328P: moduł bootloadera i programatora

Jeśli jesteś podobny do mnie, jesteś uzależniony od projektów i Arduino. Jeśli jednak wykonałeś wiele projektów z Arduino jako mózgiem, prawdopodobnie zacząłeś mieć dość patrzenia na płytę Arduino jako całość, zaśmiecając swój projekt i ogólnie po prostu wyglądając źle. W związku z tym zdecydowałem, że chcę przejść od płyt Arduino do używania samego układu scalonego.

Wpisz atmega328p.

Atmega328p jest prawdopodobnie najbardziej płodnym układem scalonym kompatybilnym z Arduino na rynku. W żadnym wypadku nie jest najtańszy ani najmocniejszy, jednak biorąc pod uwagę oba te czynniki, jest to moim zdaniem najlepsza wydajność w przeliczeniu na dolara. Czy jesteś więc gotowy, aby Twoje projekty wyglądały bardziej profesjonalnie i mniej jak konglomerat gotowych modułów? Jeśli tak, przeczytaj tę instrukcję, a otrzymasz informacje niezbędne do zbudowania własnego modułu, który pozwoli ci flashować bootloader do docelowego atmega328p, przesłać szkic migający, aby upewnić się, że wszystko działa, i na koniec przesłać własne szkice dla Twoich indywidualnych projektów.

Krok 1: BOM i narzędzia

Po pierwsze, ta instrukcja nie będzie krok po kroku, jak zbudować instrukcję, ale zamiast tego zakładam, że wiesz, jak czytać schemat i możesz go przetłumaczyć na tablicę. Mając to na uwadze, oto niezbędne materiały i narzędzia:

Materiały:

  • 1x płyta prototypowa lub płytka drukowana 40x60mm
  • 1x 6-pinowy męski nagłówek (użyłem męskiego kąta prostego)
  • 2x 14-pinowe złącze żeńskie
  • 1x 6-pinowy nagłówek żeński
  • 1x 2-pinowy nagłówek żeński
  • Kondensator 2x 22pF (22)
  • 1x kondensator 0,1uF (104)
  • 1x rezystor 10kohm
  • Rezystor 2x 330ohm
  • 1x LED (dowolny kolor dla wskaźnika zasilania - 3mm dla projektu PCB)
  • 1x LED (dowolny kolor dla cyfrowego pinu 13 dla szkicu migającego - 3mm dla projektu PCB)
  • 1x16 MHz kryształ
  • 1x przełącznik suwakowy
  • 1x chwilowy przycisk

Narzędzia:

  • Arduino Uno
  • Lutownica
  • 6x swetry M-M
  • Programista FTDI
  • Kabel USB pasujący do twojego programatora FTDI
  • IDE Arduino

Krok 2: Schemat/układ

Schemat/Układ
Schemat/Układ
Schemat/Układ
Schemat/Układ

Do tego kroku dołączone są pliki eagle, których użyłem. Możesz je dowolnie modyfikować i zmieniać w dowolny sposób. Zaprojektowałem jednak płytkę tak, aby wszystkie ślady znajdowały się na dolnej warstwie, aby można je było łatwo wytworzyć na frezarce PCB (jeśli masz do niej dostęp) z płytką jednostronną. Jest również na spodzie, co ułatwia lutowanie elementów.

Jeśli jednak chcesz PCB, po prostu uruchom CAM, aby uzyskać niezbędne pliki gerber dla swojego ulubionego producenta. Lubię OSH Park, ponieważ po prostu dajesz im plik tablicy, a oni uruchamiają niezbędne moduły CAM, aby uzyskać potrzebne pliki.

Krok 3: Lutowanie

Lutowanie
Lutowanie
Lutowanie
Lutowanie

Są więc trzy sposoby na zrobienie tej tablicy:

  • Zapełnianie PCB
  • Wypełnianie frezowanej płyty
  • Zapełnianie płyty prototypowej

Zapełnianie PCB jest dość proste i nie powinno sprawić żadnych problemów, ponieważ wszystko jest oznaczone.

Zapełnianie frezowanej płytki również nie powinno być zbyt trudne, ponieważ jest ona modelowana dokładnie tak samo jak płytka drukowana, z wyjątkiem tego, że nie masz oznaczeń, więc postępuj zgodnie z plikiem płytki w Eagle, aby upewnić się, że umieszczasz rzeczy we właściwym miejscu (szczególnie polaryzacja diod LED).

Wreszcie, zaludnienie tablicy prototypowej jest najbardziej wymagające, jednak nie jest strasznie trudne. Mam kilka zdjęć na tym kroku, pokazujących moją wersję prototypową i jak wszystko pasuje. Zauważ, że LM7805, dwa kondensatory 4,7 uF i zaciski śrubowe nie będą na twojej płycie. Bawiłem się pomysłem, aby to miało możliwość zasilania zewnętrznego, ale kiedy zacząłem o tym myśleć, zdecydowałem, że ostatecznie jest to strata miejsca na planszy.

Krok 4: Ładowanie

Ładowanie
Ładowanie

Konfiguracja rozruchowego Arduino:

Więc tutaj będziesz potrzebować swojego drugiego Arduino. Najpierw wejdź tutaj i pobierz pliki od tego gościa. W tym momencie pliki mają już kilka lat, ale nadal działają świetnie. Po ich pobraniu otwórz optiLoader.ino, a Twoje Arduino IDE powinno poprosić o umieszczenie go w folderze. Zrób to, a następnie umieść plik optiLoader.h w folderze z.ino. Teraz jesteś gotowy do wgrania tego szkicu do ładującego się Arduino. Użyłem Arduino Uno, więc wiem, że działa z tym, ale jestem pewien, że będzie działać również z innymi płytkami.

Po przesłaniu optiLoader.ino do Arduino, wszystko jest skonfigurowane do ładowania wielu różnych układów Arduino. Zrobiłem to tylko z atmega328p, jednak kod jest skonfigurowany do wykrywania docelowego MCU i flashowania prawidłowego bootloadera, co jest całkiem miłe. Więc teraz, za każdym razem, gdy podłączysz to Arduino do płyty towarzyszącej Atmega z zainstalowanym chipem i włączysz ją, automatycznie wykryje, że celem jest atmega328p i automatycznie sflashuje odpowiedni bootloader. Bez resetowania skoków, bez dziwnych rzeczy; po prostu podłącz i graj.

Podłączanie bootloadera do płyty towarzyszącej:

[Bootloader Arduino] [Płytka towarzysząca Atmega328p]

  • D10 Reset / pin 1
  • D11 MOSI / pin 17
  • D12 MISO / pin 18
  • D13 SCK / kołek 19
  • 5V Vcc / pin 20 lub 21
  • GND Masa / pin 22

Piny odnoszą się do nóg samego układu scalonego. Jeśli jest to mylące, spójrz na zdjęcie płytki z etapu schematu/układu, gdy szpilki na płytce towarzyszącej są oznaczone.

Flashowanie bootloadera:

Teraz, gdy masz już konfigurację Bootloadera Arduino ze szkicem optiLoader.ino i jest ona teraz również podłączona do płyty towarzyszącej, upewnij się, że przełącznik płyty towarzyszącej jest ustawiony na „bootload” zamiast „upload”, a następnie podłącz swoją Arduino do komputera. Powinieneś zobaczyć, jak kontrolki na Arduino i na tablicy pomocniczej migają kilka razy. Po kilku sekundach oba powinny zgasnąć i przestać migać. To prawdopodobnie oznacza, że pomyślnie sflashował twój atmega328p IC za pomocą bootloadera. Aby upewnić się, że wszystko poszło dobrze, podłącz go do komputera i otwórz Arduino IDE, a następnie monitor szeregowy. Zmień szybkość transmisji na 19200. Następnie, jeśli nie uruchomi się automatycznie, naciśnij przycisk resetowania na Arduino. Powinieneś zobaczyć garść tekstu opisującego, co robi skrypt. Na końcu nie powinien zawierać żadnych komunikatów o błędach i powinien informować o zakończeniu procesu.

Jeśli pojawi się błąd, sprawdź przełącznik i upewnij się, że korzystasz z „bootload”. Jeśli w tym momencie nadal pojawiają się błędy, sprawdź całe okablowanie i upewnij się, że jest poprawne.

Krok 5: Przesyłanie

Przesyłanie
Przesyłanie

To jest łatwy krok.

Odłącz wszystkie przewody z poprzedniego kroku i przełącz przełącznik z „bootload” na „upload”. Podłącz swój moduł FTDI. Podoba mi się Adafruit CP2104 i SparkFun CH340G głównie dlatego, że są stosunkowo tanie, a pinout pasuje do pinów FTDI wychodzących z płytki towarzyszącej.

Po podłączeniu FTDI do płyty towarzyszącej, podłącz ją do komputera. Stamtąd prześlij przykładowy szkic migania, aby upewnić się, że bootloader został poprawnie sflashowany. Wybierz Arduino/Genuino Uno z menu tablic. Po przesłaniu szkicu migania powinna być widoczna migająca dioda LED zgodnie z oczekiwaniami. Jeśli to zadziała, możesz przesłać własne niestandardowe szkice do układu scalonego, tak jak w przypadku każdego innego Arduino.

Krok 6: Przyszła praca

W przyszłości planuję zrobić z tego nakładkę Arduino Uno. Nie powinno to zająć dużo czasu, a jeśli ludzie chcą, mogę również przesłać pliki Eagle tutaj. Uprościłoby to etap ładowania systemu, ponieważ nie musiałbyś się martwić o nieprawidłowe okablowanie. Jestem również otwarty na inne propozycje ulepszeń, jednak nie podejrzewam, że będę robił z tym o wiele więcej, ponieważ był to tylko niezbędny krok w przygotowaniu moich przyszłych projektów.

Jeśli chcesz zobaczyć więcej moich przyszłych projektów, daj mi znać, a postaram się na bieżąco informować społeczność.

Zalecana: