• 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
UNU CH340 - problem z wgraniem bootloadera
#33
Rozumiem, że podłączasz płytkę pojawia się port COM. Wgraj jakiś szkic z obsługą komunikacji z UART, sprawdź czy UART działa prawidłowo w obie strony na prędkości 115200. Może nie tylko procek dostał strzała. Sprawdź czy działa automatyczny reset, a właściwie czy wgrywanie  działa gdy reset wciśniesz ręcznie.   Dalej możesz sprawdzić czy jak podłączysz płytkę z innego konwertera USB-UART to nawiążesz komunikację/uda się wgrać kod przez bootloader. Stary procek 328 masz w jednym kawałku to możesz go wrzucić na jakąś płytkę i zobaczyć czy działa.
Niestety sam tego nigdy nie robiłem akurat z tym procesorem. Jak będę miał chwilę to sobie zlutuję taki układ i sprawdzę czy są tu jakieś niespodzianki. Z informacji ogólnych na sprawnej płytce po wgraniu bootloadera i ustawieniu fuses powinna działać od strzału jak oryginał. Mam płytki jednak zlutowane tylko z 168 i 328.
AVR LAB też umie komunikować się z bootloaderem, wybierz programator Arduino, port com i odczytaj AVR. Nano z procesorem 168 odczytuje, nie pokazuje jednak fuses prawidłowo, bo ich nie odczytuje jak przez USBASP. Jakby nie działało to wciśnij reset, może tu coś kuleje.
Edit:
No akurat dzisiaj przyszły wynalazki z Chin 5 m88p za 3$. Są niespodzianki. Po zlutowaniu podłączyłem USBASP, odpaliłem AVRLAB, ładnie wykrył, zmieniłem mu tylko bit ckdiv8  by leciał na wewnętrznym 8MHz i nie było problemu w Arduino z przełączaniem na SLOW. Ale w Arduino łatwo nie było, też się pluł o te ATMega88 i p na końcu. Dodałem więc nową płytkę:
Kod:
atmega88p.name=[Optiboot] ATmega88p 16MHz
atmega88p.upload.tool=avrdude
atmega88p.upload.protocol=arduino
atmega88p.upload.maximum_size=7680
atmega88p.upload.speed=115200
atmega88p.bootloader.tool=avrdude
atmega88p.bootloader.low_fuses=0xff
atmega88p.bootloader.high_fuses=0xdd
atmega88p.bootloader.extended_fuses=0x04
atmega88p.bootloader.path=optiboot
atmega88p.bootloader.file=optiboot_atmega88.hex
atmega88p.bootloader.unlock_bits=0x3F
atmega88p.bootloader.lock_bits=0x0F
atmega88p.build.mcu=atmega88p
atmega88p.build.f_cpu=16000000L
atmega88p.build.core=arduino:arduino
atmega88p.build.variant=arduino:standard
No i wgrał nawet fuses, ale bootloadera nie - nie mógł znowu znaleźć hexa z bootloaderem, jest niby podany path optiboot i wszystkie bootloadery są w tym katalogu, a ten wyskoczył, że nie może go znaleźć w katalogu wyżej, no to mu skopiowałem tam dwa pliki z 88 wyżej i w końcu wgrał.
Teraz mam już bootloader, ale nie wgrywa mi przez niego - twierdzi, że teraz wykrywa procek m88. 

No to dodałem kolejną płytkę z m88, ale teraz to mi kazał spadać na drzewo, bo takiej nie zna podczas kompilacji. Po prostu teraz wykrywa to co podaje bootloader, czyli rozwiązaniem jest powrót do płytki zdefiniowanej oryginalnie przez OPTIBOOT bez p. I działa. Trochę kulawo, bo żeby wgrać bootloader trzeba zmienić na płytkę z p, gdyż:
Kod:
Error while burning bootloader.
Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e930f (probably m88p)
avrdude: Expected signature for ATmega88 is 1E 93 0A
        Double check chip, or use -F to override this check.

avrdude done.  Thank you.
Rozwiązaniem jest zdobycie bootloadera do 88p, tak by USBASP wykrywał to samo co wysyła bootloader przy starcie. Pewnie wystarczy sobie to skompilować, ale do tego wrócę w jakiś długi zimowy wieczór.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Wiadomości w tym wątku
RE: UNU CH340 - problem z wgraniem bootloadera - przez kaczakat - 19-07-2018, 00:06

Skocz do:


Przeglądający: 1 gości