Spisu treści:
Wideo: Jak zaprogramować AVR (arduino) z innym Arduino: 7 kroków
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Ta instrukcja jest przydatna, jeśli:
* masz arduino z atmega168 i kupiłeś atmega328 w lokalnym sklepie z elektroniką. Nie ma bootloadera arduino * chcesz stworzyć projekt, który nie używa arduino - tylko zwykły układ AVR (np. USBTinyISP) - masz czysty attiny2313/attiny48 itp., Na którym chcesz wypalić oprogramowanie układowe. Normalnie musiałbyś mieć ISP (In System Programmer), taki jak USBTinyISP, aby zaprogramować swój nowy układ. Mając arduino możesz nauczyć go być programistą dzięki wspaniałej pracy wykonanej przez Randalla Bohna. Stworzył Mega-ISP - szkic arduino, który działa jak programista.
Krok 1: Czego potrzebujesz?
* działające Arduino (lub klon - używam BBB - BareBonesBoard i RBBB - RealBareBonesBoard firmy ModernDevices) * chip, który chcesz zaprogramować (testowane z atmega8, atmega168, atmega368, attiny2313, attiny13) * płytka stykowa lub płytka z nagłówkiem ISP * 3 diody led + 3 rezystory * przewody płytki stykowej
Krok 2: Tworzenie programatora Mega-ISP na płycie do krojenia chleba
Istnieją dwa sposoby podłączenia Arduino w celu zaprogramowania układu.
Możesz podłączyć swój układ avr do płytki stykowej i podłączyć 5V i GND do odpowiednich pinów (sprawdź w arkuszu danych!) + rezystor pullup do resetowania i podłączyć piny z arduino do układu. Są to linie Arduino i ich funkcja. 13 - SCK 12 - MISO 11 - MOSI 10 - RST (Reset) Lub możesz zrobić 2x3pinowe złącze ISP, które możesz podłączyć do płyty, która je zapewnia (inna płyta arduino). Pinout nagłówka ISP znajduje się na trzecim obrazie. Są 3 diody LED wskazujące stan programatora. pin 9 - niebieska dioda - to bicie programatora. pin 8 - czerwona dioda - sygnalizuje błąd pin 7 - zielona dioda - wskazuje, że trwa programowanie (byłem leniwy, więc nie dopasowałem kolorów w mojej konfiguracji) Oto rysunki wykonane we Fritzing Możesz również wykonać Tarcza MEGA-ISP. Tarczę w orle zaprojektował Jarosław Osadchyj. Pliki eagle można znaleźć na jego stronie:
Krok 3: Przesyłanie szkicu
Pobierz szkic z mega-isp google code.(avrisp.03.zip w momencie pisania). Rozpakuj i uruchom arduino ide i otwórz avrisp.pde. Prześlij go na swoją płytkę arduino. Dioda bicia serca powinna zacząć bić.
Krok 4: Korzystanie z Avrdude
Aby używać z avrdude (i wszystkimi GUI, które go używają) musisz wybrać programator 'avrisp'. najbezpieczniejszy bitrate to 19200.
Aby przetestować swój nowy atmega168 z wiersza poleceń, spróbuj: $ avrdude -p m168 -P /dev/ttyUSB0 -c avrisp -b 19200 /dev/USB0 to port, przez który arduino jest podłączony do mojego komputera z Linuksem (Twój może być com5). Można to sprawdzić w arduino IDE w Narzędzia -> Port szeregowy. Powinieneś otrzymać: [kabturek@hal-9000 ~]# avrdude -p m168 -P /dev/ttyUSB0 -c avrisp -b 19200 avrdude: urządzenie AVR zainicjowane i gotowe do przyjęcia instrukcji Czytanie | ################################################## | 100% 0.13s avrdude: Sygnatura urządzenia = 0x1e9406 avrdude: safemode: Bezpieczniki OK avrdude done. Dziękuję Ci. To znaczy, że wszystko jest w porządku. Jeśli pojawią się błędy - sprawdź ostatni krok.
Krok 5: Nagrywanie oprogramowania układowego USBtinyISP na Attiny2313
USBTinyISP to świetny programator od LadyAdy, który jest naprawdę tani - 22$. Miałem zapasowy attiny2313 i kilka części, więc postanowiłem zrobić to sam. Jeśli nie masz doświadczenia w wykonywaniu PCB, radzę kupić zestaw, ponieważ jest wyższej jakości niż sam możesz wykonać:). Przynajmniej kup płytkę PCB, jeśli chcesz ją zbudować. Możesz go zdobyć od Adafruit. Podłącz ATtiny2313Na ostatnim zdjęciu widać attiny2313 z pinami używanymi dla ISP w kolorze czerwonym. Zdjęcie pochodzi z samouczka LadyAda avr. Nagrywanie oprogramowania: Rozpakuj oprogramowanie USBTinyISP. Przejdź do katalogu spi i uruchom $ avrdude -p pt2313 -P /dev/ttyUSB0 -c avrisp -b 19200, aby sprawdzić, czy wszystko jest w porządku z chipem. Teraz ustaw bezpieczniki: $ avrdude -P /dev/ttyUSB0 -c avrisp -b 19200 -pt2313 -U hfuse:w:0xdf:m -U lfuse:w:0xef:m Teraz powinieneś podłączyć zewnętrzny oscylator 12mhz do układu. I wypal firmware: $ avrdude -B 1 -pt2313 -U flash:w:main.hex -P /dev/ttyUSB0 -c avrisp -b 19200 Voila. Twój attiny2313 ma oprogramowanie układowe USBTinyISP.
Krok 6: Nagrywanie bootloadera Arduino
ConnectingI trochę oszukiwałem, ponieważ użyłem RBBB, aby uprościć połączenia. Schemat znajduje się na obrazku #2. Jeśli używasz 2 arduino, użyj zdjęcia nr 3 i podłącz pin ISP do ICSP 2x3header na drugim (slave) arduino. Podłącz zasilanie USB tylko do pierwszej płyty. Sposób GUI Jest to trochę trudne, ponieważ nie możesz po prostu użyć Narzędzia-> Nagraj Bootloader -> z AVR ISP, ponieważ domyślna prędkość jest zbyt duża dla mega-ISP. Znajdź avrdude.conf, który jest dostarczany z arduino IDE (w arduino/hardware/tools/avrdude.conf) i zmień granicę dla programatora avrisp z 115200 na 19200 (około linii 312) Znajdź i zmień w avrdude.conf programmer id = "avrisp"; opis = "ISP Atmel AVR"; szybkość transmisji = 115200; # domyślnie 115200 type = stk500;; do: id programisty = "avrisp"; opis = "ISP Atmel AVR"; szybkość transmisji = 19200; # domyślnie 115200 type = stk500;; Teraz możesz użyć Tools -> Burn Bootloader -> w/ AVR ISP (po wybraniu odpowiedniej płyty z menu Tools)Commanline Możesz również użyć wiersza poleceń: Edit arduino/hardware/bootloaders/atmega/Makefile i zmień ISPTOOL/PORT /SPEED do: # wpisz parametry narzędzia avrdude isp ISPTOOL = avrisp ISPPORT = /dev/ttyUSB0 ISPSPEED = -b 19200 no możesz napisać $ make diecimila_isp do wypalenia bezpieczników i bootloadera. Test Teraz podłącz nowe arduino do usb i spal migotanie!
Krok 7: Rozwiązywanie problemów
Błędy Avrdude: avrdude: ser_open(): nie można otworzyć urządzenia "/dev/ttyUSB0": Brak takiego pliku lub katalogu Masz określony zły port (-P) lub twoje arduino nie jest podłączone. sprawdź połączenie avrdude: Sygnatura urządzenia = 0x000000 avrdude: Ups! Nieprawidłowy podpis urządzenia. Sprawdź dwukrotnie połączenia i spróbuj ponownie lub użyj -F, aby pominąć to sprawdzenie. To rodzaj ogólnego błędu. Twój chip nie został rozpoznany. Sprawdź połączenie na płycie (GND/5V podłączone do pinów?) Ten błąd pojawi się, gdy twój układ jest skonfigurowany do korzystania z zewnętrznego oscylatora i nie działa (nie ma go lub nie oscyluje prawidłowo - czapki 22pf zaginiony ?)