Liczba postów: 14
Liczba wątków: 7
Dołączył: Jun 2017
Reputacja:
0
Witam,
Mam problem z wgraniem programu i bootloader'a posiadam Arduino UNO R3 z ATmega328P-PU na pokładzie i programator USPasp i wszystko jest w porządku mogę wgrać program normalnie i przez programator potem mogę wgrać bootlader za pomocą programatora i wszystko jest super. Niestety Atmega328P U(inny chip) nie działa w ogóle. Arduino IDE zachowuje się tak jakby płytka nie była podłączona do komputera, nie mogę wgrać bootloadera, otrzymuję błąd że port COM nie jest podłączny. Wydaje mi się że muszę coś zmienić, że potrzebuje innego bootloader'a ale niestety w sieci nie mogę znaleźć niczego pomocnego.
Jeśli się kotoś spotkał z tym problem proszę o pomoc.
PS. mikrokontrolory kupiłem na botland.com.pl
Liczba postów: 2,371
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
Jak rozumiem masz płytkę UNO z Atmega THT, wyjmujesz jedną z gniazda, wkładasz drugą i UNO nie jest widziane wtedy w ogóle jako podłączone urządzenie pod USB PC. Jeśli tak to niestety chip jest uszkodzony. Mooże coś nie łączy, ale najprawdopodobniej pierwszy raz włożyłeś odwrotnie lub kupiłeś już uszkodzony (drugie mało prawdopodobne). Po włożeniu robi się zwarcie, które uniemożliwia prawidłowe zasilenie mostka USB-UART, to zupełnie osobny chip przy gnieździe USB i działałby nawet bez włożonego procesora Atmega.
To jaki procesor jest włożony do UNO nie ma znaczenia, może być i Atmega88, Atmega168 w dowolnych odmianach, SMD, THT. Powinien pojawić się port COM. Dopiero po użyciu portu COM przez jakiś program dowiedziałbyś się, że jest np. niewłaściwy bootloader, lub go nie ma.
Liczba postów: 14
Liczba wątków: 7
Dołączył: Jun 2017
Reputacja:
0
Przepraszam za nieścisłość , po włożeniu drugiego chipu płytka jest wykrywana tak jak zawsze. Przy wgrywaniu bootloadera przez USBasp pojawia się komunikat że urządzenie nie jest podłączone(z resztą nie pojawia się żaden nowy port COM, ale USBasp działa poprawnie).
Przy próbie wgrania programu na ATmege328P U Arduino IDE zatrzymuje się na "wgrywanie..." i nic się nie dzieje zupełnie jakby nie było bootloadera(bo pewnie nie ma). Zamieniając z powrotem na ATmmege328P-PU wszystko znów działa poprawnie. Zaznaczam że nie włożyłem chipu na odwrót i że posiadam dwa nowe chipy ATmega328P U i w obu występuję ten sam problem. Tak więc z płytką i programatorem oraz ze starą ATmegą jest wszystko w porządku posiadam więcej ATmeg328P-PU i one działają bez zarzutu więc po prostu czegoś nie rozumiem z ATmegą328P U.
Liczba postów: 2,371
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
Korzystając z Arduino można ich nie ruszać, wypalenie bootloadera to przede wszystkim ustawienie fuse, tak by były zgodne z definicją płytki, a przy okazji czasami wgranie również bootloadera, czyli programu do zapisu szkiców w uC.
Prosiłem o zrzut fuse, bo jeśli "po wgraniu" jest dalej ptaszek przy ckdiv8 to oznacza, że nic nie wgrał. Ten fuse odpowiada za podział zegara na 8, wbudowany oscylator ma 8MHz, przez 8 = 1MHz, fabryczne ustawienie. Można też ręcznie go odznaczyć i zapisać w AVR LAB, wtedy w Arduino nie trzeba zmieniać programatora SLOW USBASP/USBASP. Ręczna zmiana to ryzyko, że coś się zepsuje. Sygnatura to jednoznaczna definicja procesora, użyte w UNO mogą być różne typy, nawet jeśli po wgraniu bootloadera działałyby tak samo, bo różnica może być symboliczna, to niestety Arduino na to nie pozwoli - można to obejść, opcja dla tych co wiedzą co robią. Na forum jest też opisana wymiana firmware w programatorze na aktualny, trzeba mieć inny programator lub zrobić sobie z Arduino.