• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ATMEGA328P U a ATMEGA328P-PU
#1
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
 
Odpowiedź
#2
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.
 
Odpowiedź
#3
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.
 
Odpowiedź
#4
Przy wgrywaniu przez USBASP powinieneś układ zasilać z USBASP i nie podłączać USB UNO. Portu COM ma więc nie być.
Skąd wniosek że USBASP działa poprawnie? Niektóre wersje AVRDUDE w Arduino nie działają poprawnie z niektórymi sterownikami programatora USBASP.
Ściągnij sobie program https://rctruck.pl/forum/download/file.php?id=35516 i zobacz co wykrywa z programatorem, pokaż zrzut ekranu z zakładki fuses.
Poza tym problem może być prostszy, zobacz czy wgrasz bootloader programatorem SLOW USBASP (jakoś tak wybierz w Arduino). Nowe procesory mają zegar na 1MHz, w Arduino może nie działać zwykłe ustawienie USBASP (AVR LAB++ z linku ma możliwość wyboru auto lub ręcznie SCK). Programator też może mieć stary firmware - chyba wszystkie z Chin mają stary, trzeba ręcznie wtedy ustawić zworką SLOW SCK.
 
Odpowiedź
#5
Dziękuję za pomoc przestawienie zworki na SLOW na programatorze przyniosło sukces Big Grin. Nawet o tym nie pomyślałem ze względu na to że na ATmegę328P-PU nie musiałem tak robić żeby wgrać bootloader. Załączam screeny z programu i proszę jeszcze o wytłumaczenie tak przynajmniej w skrócie czym są te FUSE(czy moża to przestawiać jeżeli tak to w jakim celu) oraz sygnatura. Mniej więcej się orientuje ale jestem początkującym więc każda informacja jest dla mnie na wagę złota.


Załączone pliki Miniatury
       
 
Odpowiedź
#6
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.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości