Chciałbym użyć ATMega328P do mojego projektu, mam nadzieję, że zrobię to bez płyty Arduino.
Wiem, że z Arduino IDE i tablicą Arduino mogę zaprogramować mikrokontroler. Czy byłoby jednak możliwe po zaprogramowaniu i debugowaniu programu za pomocą Arduino IDE + Arduino, zabranie mikrokontrolera z płyty Arduino i używanie ATMega328P osobno, bez płyty?
Jeśli tak, jakie dodatkowe konfiguracje powinienem wykonać, aby ATMega328P działał poprawnie na płycie?
arduino-ide
atmega328
Jerzy
źródło
źródło
Odpowiedzi:
Możesz usunąć ATMEGA z Arduino i używać go we własnej płytce, jednak w przypadku użycia na typowej płytce Arduino układ zostanie połączony z zewnętrznym kryształem jako źródłem zegara, a nie (prostszy, ale mniej dokładny) zegar wewnętrzny.
Nie możesz zmienić źródła zegara przez ISP, chyba że źródło zegara, którego aktualnie oczekuje układ, działa, więc jeśli chcesz zmienić wybór zegara, zrób to przed usunięciem układu z Arduino.
Możesz jednak również dostarczyć kryształ zegarowy i jego dwa kondensatory (lub zastępczy rezonator, który często ma to wbudowane) na swojej płycie zewnętrznej.
Zwykle układy scalone (nawet te, które dla wygody są wstępnie flashowane za pomocą bootloadera) są tańsze niż płyty, więc nie jest jasne, dlaczego chcesz przenieść ten sam układ z Arduino, zamiast używać innego. W każdym razie będziesz potrzebować adaptera szeregowego na poziomie logicznym USB, a kiedy już to zrobisz, będziesz mógł tworzyć własne układy na płycie głównej, nawet jeśli wykonasz wstępne testy na Arduino. W skrócie, jeśli nie masz konwertera USB, możesz albo wyciągnąć układ z płyty Arduino i poprowadzić przewody z jego D1 i D0, lub przytrzymać układ wewnętrzny w resecie, aby umożliwić pożyczenie tych linii szeregowych bez ingerencja.
źródło
Tak, możesz używać
ATMega328P
bez tablicy Arduino. Zawsze używam IC bez arduino. Można to zrobić na dwa sposoby.16MHZ Oscillator
kondensatorów.USBasp
programowaćAtmega328p
. W takim przypadku nie używaj przycisku bezpośredniego przesyłania, zamiast tego użyj przesyłania za pomocą opcji programatora z menu pliku. Nie zapomnij wybrać planszy jakoArduino Pro or Pro Mini (5v, 16mhz) With ATmega328
i programisty jakoUSBasp
.UWAGA : Patrz Mapowanie pinów Atmega328p i odpowiednio zaprogramuj urządzenie. Cieszyć się!
źródło
Wyszukaj „Zbuduj Arduino” - znajdziesz mnóstwo artykułów instruktażowych na ten temat. Musisz mieć możliwość lutowania połączeń na płytce drukowanej (i nawet tego, jeśli chcesz użyć płyty lutowniczej bez lutowania), ale to naprawdę proste. Możesz go najpierw zbudować i zaprogramować MCU na płytce drukowanej za pomocą kabla FTDI. Używam płyty Arduino i płyty lutowniczej bez lutowania, aby eksperymentować z nieznanymi częściami, ale zwykle przechodzę od razu do ręcznie zbudowanej płyty, gdy tylko poznam wszystkie elementy, których będę używać.
Prototypowanie za pomocą płyty Arduino pozwala zrzucić razem kilka części i sprawić, by coś szybko działało, a jeśli Arduino jest bardziej zdolny niż twój ostateczny cel - f / ex, Mega 2650 - możesz tymczasowo zignorować ograniczenia pamięci i We / Wy mniejszego urządzenia.
źródło
Korzystanie z samodzielnego układu Arduino jest dość łatwe. Jedyną trudną rzeczą w układzie używanym do oficjalnych płyt jest to, że są one połączone w celu użycia szybszego (i dokładniejszego) zewnętrznego oscylatora, który jest zamontowany na płycie. Dotyczy to nawet zakupu luźnych układów, ponieważ większość z nich jest odsprzedawana z zamiarem zainstalowania na płycie Arduino w celu zastąpienia wypalonej płyty, z wyjątkiem być może kart Digikey.
Ostrzeżenia: Arduino zostało zaprojektowane jako płyta prototypowa i niewiele rzeczy radzi sobie lepiej niż przy tym zadaniu. Możesz zostawić układ na płycie Arduino, dopóki nie zakończysz projektowania i testowania obwodu. Dopiero wtedy podłączasz go bezpośrednio. Można go użyć na miejscu, jeśli masz obwód zegara lub możesz zmienić bezpieczniki (patrz później) i przeprogramować Arduino za pomocą adaptera ISP i częstotliwości taktowania 8 MHz (PlatformIO pozwala to zrobić ( i umożliwia bezpośrednie importu szkicu Arduino) - sprawdź na stronie z dokumentami wtyczkę Atmel AVR, ale możesz także znaleźć kilka poradników, jak dodać plik tablicy do Arduino, aby użyć opcji 8 MHz dla gołego układu)
Jeśli wyjmiesz układ w celu użycia go w innym obwodzie, musi on ponownie dodać obwód zegara lub wymienić bezpieczniki (przejdę do tego za minutę). Programowanie będzie trudne z wielu powodów, dlatego warto kupić trochę dość taniego sprzętu:
Programowanie samodzielnego układu scalonego: Procesor Arduino nie jest przeznaczony do komunikacji z komputerem. Potrzebujesz pośrednika. Na Uno odbywa się to za pośrednictwem drugiego układu Atmel, który ma możliwość USB i bootloadera na głównym układzie. To, co robi, polega na tym, że używa UART do przesyłania programu, podczas gdy układ USB konwertuje wiadomości z komputera na sygnały UART. Ponieważ bootloader jest nieco uciążliwy, gdy układ działa samodzielnie (ponieważ UART jest wybredny, a jego zainstalowanie powoduje, że chip korzysta z zewnętrznego zegara), będziesz chciał kupić programator ISP dla Arduino (lub postępuj zgodnie ze szkicem Arduino-as-ISP i instrukcjami, aby stworzyć własne, które wymagają Arduino z obecnym układem, więc musisz zaprogramować sekundę).
Mogą one zaprogramować ATMega 328 bezpośrednio przez SPI, bez bootloadera (istnieje wiele instrukcji w Internecie; na przykład wyszukaj „program goły ATMega 328P z USBAsp”). Ułatwia to zmienianie i debugowanie programu bez wyrzucania układu z powrotem do oryginalnej płyty Arduino. Potrzebujesz także jednego, aby zmienić ustawienia zegara, jeśli nie chcesz używać zewnętrznego kryształu.
Jeśli chcesz debugować układ, warto również kupić adapter FTDI lub inny konwerter USB-na-UART. Zauważ, że bez części obwodu resetu na płytce (lub ponownie, dodając własną), nadal nie pozwoli ci to zaprogramować ATMega nawet z bootloaderem. W tym celu podłącz styki uziemienia, RX i TX do adaptera. Możesz lub nie chcesz podłączyć linii VCC, ale nie zaleca się tego, jeśli do układu jest wiele rzeczy i / lub ma on własne zasilanie. Zauważ, że RX i TX muszą zostać zamienione podczas ich łączenia; to znaczy, RX na TX i TX na RX - chcesz, aby chip do RX (odbierał) czym jest adapter (transmituje) TX i na odwrót.
Układ zegara nie jest trudny do zbudowania, ale wymaga kilku elementów, których możesz nie mieć. Aby zmienić źródło zegara , przejdź do strony http://www.engbedded.com/fusecalc/ i wybierz ATMega 328P. Domyślne wartości są dobre, ale możesz chcieć włączyć EEPROM-a-wymazać i wyłączyć podział zegara przez 8 lub dostosować ustawienia wygaszania. Nie dotykaj niczego innego (wyłączenie resetowania lub SPI lub włączenie DebugWire skutkuje „zabawą” wymagającą naprawy programisty HV). Po zakończeniu wklej dostarczone polecenie do polecenia AVRDude. Będziesz musiał zmienić opcje -c (-p jest już ustawiony na ATMega 328P, ale nie powiedzie się w przypadku modeli innych niż P 328 - nie kupuj ich), i być może dodaj opcję -P (dla portu). Nie pomijaj opcji -u małych liter, ponieważ odmówi to aktualizacji bezpieczników.
Zauważ, że jeśli kupisz USBASP (upewnij się, że ma trzy zestawy zworek!), Pomimo tego, że są moim ulubionym programistą, mogą nie mieć zaktualizowanego oprogramowania, które obsługuje opcję -B (które prawdopodobnie będziesz potrzebować). Oznacza to, że musisz podłączyć go do Arduino przez sześciopinowy port programowania, dokładnie tak samo, jak przy programowaniu bootloadera Arduino, ale następnie użyj szkicu Arduino jako ISP, aby zaprogramować nowy oprogramowanie układowe do programatora (wyszukaj „zaktualizuj oprogramowanie układowe USB poprzez arduino-as-isp”)! Dla porównania, to zwykle oznacza, że kabel wychodzi z dala od ciała pokładzie, i prawdopodobnie będziesz musiał zaprogramować szkic przedpodłączenie kabla. Włącz także zworkę power-from-programmer na USBASP (5V) i zworkę „samoprogramującą”. (patrz https://forum.arduino.cc/index.php?topic=560719.0 w celu uzyskania informacji o lokalizacji zworek zasilania i programu (JP2)).
źródło