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
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