Minimalne "Arduino" na płytce stykowej a bootloader - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Minimalne "Arduino" na płytce stykowej a bootloader (/watek-minimalne-arduino-na-p%C5%82ytce-stykowej-a-bootloader) |
Minimalne "Arduino" na płytce stykowej a bootloader - koval - 31-08-2016 Pod tak enigmatycznym tytułem chciałbym poruszyć temat bootloader'a, którego za bardzo nie rozumiem. Mam kilka (mam nadzieję że prostych) pytań i problem do rozwiązania. Chciałem zrobić sobie minimalne Arduino na płytce stykowej z pomocą Atmegi328p (wewnętrzny oscylator 8MHz). Prosta rzecz. Dodatkowo, ponieważ nie posiadam programatora chciałem użyć Arduino jako ISP - opis można znaleźć choćby tu: https://www.arduino.cc/en/Tutorial/ArduinoISP oraz https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard To również się udało. Po załadowaniu Arduino ISP skech'a założyłem kondensator na Arduino UNO (tak jak pisze w tutorialu: "you'll need to add a 10 uF capacitor between reset and ground.") i podłączyłem Atmege328p siedzącą na płytce stykowej zgodnie z obrazkiem (tutorial) , wybrałem programator "Arduino as ISP" oraz odpowiedni board (wcześniej oczywiście dodałem odpowiednie wpisy do boards.txt). Wypaliłem bootloader. Poszło. I teraz samo sedno: wydaje mi się że w przypadku używania Arduino jako ISP jest to (wypalenie bootloadera) krok zbędny (?) Mogę przecież wybrać sketch (choćby Blink z examples) i wypalić przez "Upload" - bez wypalania wcześniej bootloadera (?) To było pierwsze pytanie Teraz drugie: czym różni się opcja "Upload" od "Upload using programmer". Jak dla mnie wybranie zarówno jednej jak i drugiej skutkowało tym samym. Jeżeli są dwie opcje to chyba się czymś różnią ? I jeszcze trzecie pytanie: czym różni się opcja z menu "Arduino as ISP" od "Arduino ISP" ? Bootloader miałby dla mnie sens gdyby dało się się później wgrywać sketche za pomocą jakiegoś interfejsu FTDI - mam taki, ale po podłączeniu do mikrokontrolera (RX do TX, TX do RX, DTR do RESET przez kondensator 100nF, masa do masy) - niestety upload nie działa - mam błąd: avrdude: usbdev_open(): did not find any usb device "usb" (wybrałem domyślny programator Arduino - "AVRISP mkII" , oczywiście bootloader wcześniej został wgrany) Sugerowałem się tutorialem https://www.arduino.cc/en/Main/Standalone Czy to podejście jest OK ? Czy o czymś zapomniałem ? Używam Arduino IDE 1.6.11 RE: Minimalne "Arduino" na płytce stykowej a bootloader - koval - 01-09-2016 OK, problem rozwiązany, prawdopodobnie był to zły bootloader (znaleziony gdzieś na Majsterkowo.pl), użyłem innego i wszystko śmiga. Może komuś się przyda wpis jaki mam w boards.txt: # --- START --- atmega328bb.name=ATmega328 on a breadboard (8 MHz internal clock) atmega328bb.upload.tool=avrdude atmega328bb.upload.protocol=arduino atmega328bb.upload.maximum_size=30720 atmega328bb.upload.speed=57600 atmega328bb.bootloader.low_fuses=0xE2 atmega328bb.bootloader.high_fuses=0xDA atmega328bb.bootloader.extended_fuses=0x05 atmega328bb.bootloader.path=arduino:atmega atmega328bb.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex atmega328bb.bootloader.unlock_bits=0x3F atmega328bb.bootloader.lock_bits=0x0F atmega328bb.build.mcu=atmega328p atmega328bb.build.f_cpu=8000000L atmega328bb.build.core=arduino:arduino atmega328bb.build.variant=arduino:standard atmega328bb.bootloader.tool=arduino:avrdude atmega328bb.build.board=AVR_ATMEGA328BB # --- END --- Ale zadane pytania pozostają nadal w mocy :) RE: Minimalne "Arduino" na płytce stykowej a bootloader - JasQ - 03-09-2016 Programowanie poprzez isp nie wymaga wcześniejszego wypalania bootloadera wgrywa się poprzez "Upload using programmer" Programowanie poprzez uart wymaga wcześniej wypalania bootloadera wgrywa się poprzez "Upload" avrdude: usbdev_open(): did not find any usb device "usb" czyli nie wykrył interfejsu USB -> UART "wybrałem domyślny programator Arduino - "AVRISP mkII"" aby wgrać poprzez UART trzeba wybrać port COM a nie programator on podczas wgrywania poprzez np. FTDI nie ma żadnego znaczenia . RE: Minimalne "Arduino" na płytce stykowej a bootloader - koval - 04-09-2016 (03-09-2016, 23:13)JasQ napisał(a): Programowanie poprzez isp nie wymaga wcześniejszego wypalania bootloadera wgrywa się poprzez "Upload using programmer" Dzięki. Jeszcze jedno - widzę ze w menu "Szkic" jest opcja "Eksport skompilowanego programu" i poniżej "Pokaż folder szkicu". Gdy się tego użyje to widać że do folderu trafiają dwa pliki: <nazwa_szkicu>.arduino_standard.hex <nazwa_szkicu>.with_bootloader.arduino_standard.hex czy ten drugi plik hex zawiera skompilowany kod szkicu wraz z bootloaderem ? RE: Minimalne "Arduino" na płytce stykowej a bootloader - JasQ - 04-09-2016 Tak zobaczysz różnicę po ilości bajtów RE: Minimalne "Arduino" na płytce stykowej a bootloader - koval - 05-09-2016 (04-09-2016, 20:49)JasQ napisał(a): Tak zobaczysz różnicę po ilości bajtów zobaczyłem różnicę i tak powstało pytanie |