Arduino Leonardo (ATmega 32U4) bootloader mode - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Instalacja i rozwiązywanie problemów (https://forum.arduinopolska.pl/dzial-instalacja-i-rozwi%C4%85zywanie-problem%C3%B3w) +--- Wątek: Arduino Leonardo (ATmega 32U4) bootloader mode (/watek-arduino-leonardo-atmega-32u4-bootloader-mode) |
Arduino Leonardo (ATmega 32U4) bootloader mode - banan_56 - 27-10-2018 Witam serdecznie. Chciałem przerobić swoją kierownicę (180 stopni) na wieloobrotową używając arduino leonardo i enkodera. Na YT znalazłem filmik, który pokazuje krok o kroku jak to zrobić. Jednak przystawiło mi w pewnym momencie. Poradnik pokazuje, jak Arduino Leonardo przechodzi w tryb Bootloader, po naciśnięciu przycisku reset. Tryb ten trwa ok. 8 sekund i wtedy ma się również zmienić port COM. No niestety u mnie to tak nie działa. Po prostu po naciśnięciu komputer przerywa połączenie z arduino i cisza (urządzenie znika rónież z menedżera urządzeń). Jak puszczę przycisk to płytka łączy się na nowo z PC (w menedżerze urządzeń wskakuje nowa pozycja z takim samym portem COM jak przed resetem). Czy każda płytka arduino leonardo się tak zachowuje, czy coś z moją jest nie tak? Czy rozwiązaniem tego problemu może być wgranie bootloadera na nowo za pomocą np. USB ASP? Płytkę kupiłem na aliexpress, wygląda jak oryginał, produkcja włoska. Na końcu chciałbyć zaznaczyć, iż korzystałem z wyszukiwarki i nie udało mi się znaleźć wątku z podobnym problemem. RE: Arduino Leonardo (ATmega 32U4) bootloader mode - error105 - 27-10-2018 A jesteś pewny że potrzebujesz enkoder ? może jest ruch kierownicy realizowany na potencjometrze po prostu i wystarczy dać wieloorotowy ? RE: Arduino Leonardo (ATmega 32U4) bootloader mode - es2 - 27-10-2018 (27-10-2018, 13:19)error105 napisał(a): A jesteś pewny że potrzebujesz enkoder ? może jest ruch kierownicy realizowany na potencjometrze po prostu i wystarczy dać wieloorotowy ?Do kompletu liczydło lub kalkulator, bo jak dojdzie do10 czy 15 obrotów w jednym kierunku, to kręcenie sie skończy. Nie dość, że pomysł głupi, to nie o to pyta autor wątku. Leonadro nie ma mostka USB-UART, sam jest mostkiem, do użyty tam uC ma sprzętowe USB. Gdy resetujesz uC,to USB nie działa, tak więc układ zachowuje się tak jak wynika to z budowy uC. W stanie reset, uC nie odpowiada/potwierdza pakietów, choćby SOF, które są wysyłane co 1ms, nawet jak nic się nie dzieje. Brak potwierdzenia chyba 5 SOF i HOST uznaje, że urządzenie USB zostało odłączone. Po ponownym podłączeniu, zostanie więc przeprowadzona enumeracja itp. W Windozie trochę to trwa, nawet 5 sekund (tak twierdzi u$), z praktyki wiem, ze potrafi i ponad 20. Oczekiwanie 8 sekund nie jest dobrym pomysłem, na jednym sprzęcie zadziała na innym nie. Najlepiej rozwiązać to przez reakcję na GPIO, gdzie np jego zwarcie, powoduje wejście w bootloader (poczytaj o programie FLIP). RE: Arduino Leonardo (ATmega 32U4) bootloader mode - banan_56 - 27-10-2018 Poszperałem trochę w necie i źle robiłem, ale poprawka też nie rozwiązała problemu. Ponoć trzeba nacisnąć reset (nie trzyma się przycisku) i wtedy w menedżerze powinien wskoczyć na listę portów COM Leonardo bootloader, ale u mnie nie wskakuje. No i pytanie czemu ten bootloader nie wskakuje na listę w menedżerze urządzeń? Czy wgranie na nowo bootloadera np. przez USB ASP naprawi ten problem? RE: Arduino Leonardo (ATmega 32U4) bootloader mode - kaczakat - 27-10-2018 Po pierwsze jak masz USBASP to możesz tak od razu wgrać program. A typowo Leonardo nie wymaga żadnego wciskania resetu, tak jak zwykłe UNO/NANO robi to program w Arduino IDE, klikasz wgraj, on kompiluje, po skończeniu resetuje płytkę i szuka portu do wgrania, jak się nie pojawia to jest fail i tyle. Normalnie oczywiście się pojawia, wgrywa, resetuje się w trybie normalnego portu COM. Jak nie jesteś pewien, czy działa prawidłowo to oczywiście możesz też wgrać bootloader od nowa przez USBASP. RE: Arduino Leonardo (ATmega 32U4) bootloader mode - banan_56 - 27-10-2018 Problem w tym taki, że mam plik .hex, którego Xloader nie może załadować na płytkę. Próbowałem również przez Arduino Builder i też failed. RE: Arduino Leonardo (ATmega 32U4) bootloader mode - kaczakat - 28-10-2018 Jak masz tylko HEX to wgrywanie go przez bootloader do Leonardo czy Micro faktycznie może być upierdliwe. Ja mam np. Micro, które w ogóle nie ma przycisku RST (oczywiście kabelek do masy to rozwiązał). Albo wgraj sobie przez USBASP programem AVR LAB++ , albo zrób sobie programator z wolnego Arduino NANO/UNO i tym samym programem wgraj sobie wybierając AVR ISP. Program jest tu: https://rctruck.pl/forum/viewtopic.php?f=77&t=3950&sid=4f1abc66075c3557de2bd841e0af95b7&start=80 Wgranie przez bootloader jest możliwe używając z linii poleceń AVRDUDE, ale trochę trzeba się nagimnastykować. Jak masz włączone pełne komunikaty to zauważysz, że jak Arduino zlokalizuje port COM bootloadera (pojawia się po resecie na kilka sekund) to wysyła specjalną linijkę do AVRDUDE i proces wgrywania na ten port. Słyszałem, że porty powyżej COM10 mogą mieć problemy, więc jak wyskoczył mi na 73 to wszedłem szybko w opcje i przełączyłem go na COM3, teraz już tak się zgłasza. Zrobiłem sobie katalog Leonardo na dysku D, skopiowałem tu wszystkie pliki z katalogu AVRDUDE z instalki Arduino. W nim utworzyłem plik start.bat z komendą: Kod: avrdude -CD:\Leonardo\avrdude.conf -v -patmega32u4 -cavr109 -PCOM3 -b57600 -D -Uflash:w:"D:\Leonardo\BlinkLeonardo.hex":i Kod: d:\Leonardo>avrdude -CD:\Leonardo\avrdude.conf -v -patmega32u4 -cavr109 -PCOM3 - Możesz sobie sprawdzić zresztą ten port com bez zmieniania. O problemach pisał ktoś z forum linuksa. Skoro Arduino to wgrywa w windows to pewnie jest OK, mnie się nie chciało modyfikować z powrotem. RE: Arduino Leonardo (ATmega 32U4) bootloader mode - banan_56 - 28-10-2018 Na dniach kupię USB asp i będę wgrywał za jego pomocą, bo inaczej się nie da. Jakieś uparte to Arduino mi się trafiło. RE: Arduino Leonardo (ATmega 32U4) bootloader mode - muczak - 10-08-2019 Jak to mówią lepiej późno niż wcale, dla potomnych zostawię jak rozwiązałem identyczny problem u siebie. Wystarczyło przestawić w xloaderze baud na 1200 po czym leonardo przeszło w tryb bootloader. Zaprogramowałem softem kierownica po tym zabiegu. |