• 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
#11
Znalazłem w google podobne komunikaty i z nich wynika, że problemem jest zasilanie, np. przetarty kabelek w programatorze do GND. Jeśli na płytce masz coś nie halo to zasilanie z programatora USBASP też może kuleć. Weź jakikolwiek kondensator elektrolityczny np. 1000u (ale to na prawdę nie ma różnicy, masz 500 lub 5000 to OK) i jakiś typu ceramicznego, pomarańczowa/żółta pastylka 100n (10? 1000?  - OK Big Grin) i włącz do pinów VCC i GND. Oczywiście napięcie powinno być >6V dopuszczalne dla tych kondensatorów, ale ciężko znaleźć przypadkowe w domu na niższe napięcie. Elektrolityczny ma znaczenie - (minus) do GND, drugi do VCC, dla ceramicznych polaryzacja jest obojętna. A program jest tu: http://rctruck.pl/forum/viewtopic.php?f=...7&start=80
Instalowanie sterowników nie pomogło w czym? Jaki masz aktualnie sterownik, jak jest widoczny programator po podłączeniu do USB w managerze urządzeń, próbowałeś wgrać bootloader w arduino IDE do sprawnej płytki?
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#12
Wybacz to pytanie, ale na tym etapie nie chce już uceglić płytki, głupim błędem Smile Kondensator wpinam po prostu w piny na płytce np. VIN i GND? Czy może w piny VCC i GND w złączu ISPI?

Dzięki za link do programu. Nawet jak wpisałem w google "rctruck avr lab" to mi nie znalazło tej strony Smile dziwne, ale to tylko google. Ten program przestał sie wykrzaczać na jakimś błędzie Visual Studio Smile

Instalowanie driverów nie pomogło, tzn. że których bym driverów nie załadował, zawsze IDE, AVEDUDE, AVRLAB, nie umiały wrzucić niz przez USBasp.

Teraz odnośnie samej płytki, pod nowym avrlab, wyrzuca błąd przy nadpisaniu fuse high

EDIT//
Z nowym AVR LAB oraz driverami pod windows, nie mam już problemów z komunikacją z płytki i do płytki. Jednak nadal nie mogę zapisać fusów. Dodatkowo, zauważyłem, że potwornie grzeje się stabilizator AMS1117.

EDIT2//
Wykąpałem płytkę Arduino i programator w myjce ultradźwiękowej, co skutkowało tym, że po podłączeniu programatora, świeci mi się tylko dioda ON, a dioda L już nie. Wcześniej świeciła cały czas.

EDIT3//
Dorzuciłem kondensatory 100uF oraz pomarańczowy 103, ale nic to nie zmieniło. Płytka nadal nie wstaje
 
Odpowiedź
#13
Pacjent jest w stanie stabilnym - krytycznym. No po tym myciu to nie wiem czego się spodziewałeś.
Po pierwsze, jeśli już USBASP działa i z innymi płytkami wgrywasz/czytasz co chcesz, a z tą jedną nie to jest uszkodzona i mając już taką wiedzę, nie podłączaj jej do czegoś co możesz uszkodzić również. A przynajmniej do czegoś cennego. Kondensator do GND/VCC(lub opisane 5V), tu jest spodziewane napięcie 5V, na Vin może być i 12V dlatego tu nie proponowałbym kondensatora poniżej 16V. To może pomóc, jak coś podkrada prąd i zaburza pracę procesora. Nie wiem co znaczy strasznie się grzeje. To tak jak eskimos ma 10 psów to nie wiem czy jest bogaty czy biedny. Jak masz możliwość zasilić płytkę w sposób kontrolowany (z USB przez USBDOCTOR, z zasilacza laboratoryjnego (stabilizator może być uszkodzony, więc zacznij o 5V i podnoś do góry sprawdzając co jest na pinie 5V UNO), z baterypacka/zasilacza przez miernik mierzący prąd) to czysta płytka powinna brać nie więcej niż 50mA. I zwykle jest to tak mało, że mój USBDOCTOR nawet tego nie wykrywa, coś tam mignie czasem 0,01A - kiepski jest, ale zwarcie bym zauważył. Jeśli jest więcej, to szukaj ciepłego miejsca na płytce. Stabilizator może się grzać już przy 50mA. Ale tylko jeśli zasilasz płytkę z gniazda jack lub vin z zasilacza np. 12V. Jeśli się grzeje podczas zasilania z USB lub USBASP to jest tu coś nie tak, możesz go wylutować i sprawdzić poza układem, ale pewnie coś mu się odkleiło.
Typowo programator USBASP podczas programowania zapewnia zasilanie programowanego układu, jednak jak przyjrzysz się jego płytce to jest tam zworka i po jej zdjęciu zasilania dla programowanego układu nie ma. Jest to bezpieczniejszy sposób w tym przypadku. Możesz wziąć jakąś ładowarkę USB i zasilić UNO (sprawdź jakie ma napięcie na 5V a jakie daje sama ładowarka), podłączyć się programatorem do ISP (masy będą wspólne) podłącz programator do komputera i w taki sposób można przeprowadzić próbę programowania.
Teraz jednak na nowo oceń co jest sprawne a co nie. Programator przeżył prysznic?
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#14
Trochę czasu minęło, ale chciałbym wyciągnąć pacjenta ze śpiączki i postawić na nogi (o ile się da).

Po kolei:
USBASP działa, bo po moich zabawach NANO też straciło bootloader, ale z użyciem programatora, odwróciłem ten stan i działa po dziś dzień.

Gdy zasilę UNO z kabla USB podłączonego do laptopa, to na 5V i GND mam 4.97V. USBDOCTOR pokazuje mi 0.04A, ale bez obciążenia pokazuje 0.01A więc można przyjąć że płytka bierze 30 mA.

Zasiliłem ją przez porty 5V i GND, poprzez 104n i 470uF akurat były na stole po walce z RF, z ładowarki od telefonu, przez USBDOCTOR, który pokazał 0.03A, czyli płytka bierze jakieś 0.02A.
Nic się nie zaczęło grzać w obu przypadkach zasilania.

Przy zasilaniu przez piny 5V i GND, programator prawidłowo rozpoznaje płytkę w mkAVR. Program przy próbie wgrania flash:
Kod:
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
        To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: set SCK frequency to 750000 Hz
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "C:\Arduino\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex"
avrdude: writing flash (32768 bytes):

Writing | ################################################## | 100% 19.00s

avrdude: 32768 bytes of flash written
avrdude: verifying flash memory against C:\Arduino\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex:
avrdude: load data flash data from input file C:\Arduino\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex:
avrdude: input file C:\Arduino\Arduino\hardware\arduino\avr\bootloaders\optiboot\optiboot_atmega328.hex contains 32768 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 17.69s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x7e00
        0x11 != 0xff
avrdude: verification error; content mismatch

avrdude: safemode: Fuses OK

avrdude done.  Thank you.
Fuse bity nie są zgodne z fabrycznymi dla tego kontrolera, ale gdy chcę je nadpisać:
Kod:
avrdude: set SCK frequency to 750000 Hz
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f
avrdude: reading input file "0x62"
avrdude: writing lfuse (1 bytes):

Writing |  ***failed;  
################################################## | 100% 0.11s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0x62:
avrdude: load data lfuse data from input file 0x62:
avrdude: input file 0x62 contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% -0.00s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
        0x62 != 0xff
avrdude: verification error; content mismatch

avrdude done.  Thank you.

Jestem otwarty na sugestie Smile
 
Odpowiedź
#15
To ja sugeruję wymienić procesor.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#16
Czyli jednak uszkodzony procesor, mimo że identyfikuje się?? Wymiana raczej się nie opłaca niestety
 
Odpowiedź
#17
Z opisu wynika, że wgrywasz wszystko OK oprócz fusebit. To sugeruje uszkodzenie procesora. Teoretycznie można spróbować programatorem wysokonapięciowym, on jest jednak bardziej używany gdy właśnie sobie coś przestawisz - złe źródło taktowania, wyłączenie programowania ISP. To nie ma zastosowania tutaj, bo przecież programujesz. Niestety nie znam atmeg na tyle, by stwierdzić kategorycznie do kosza - to właśnie sugestia, taniej kupić jakiegoś procka niż programator extra do tego celu. Mi przez parę lat żadna atmega nie padła (no mam jakieś niepewne, nie łączy usb, od wczoraj jakaś płytka gdzie nie jestem pewien działania SPI), także to urządzenie nie przydaje się często laikom. A tak można się pobawić w trenowanie lutowania SMD. Nie musisz tam wstawiać atmegi 328, można kupić atmega88 5szt za 3$ na ali, w PL przy okazji innych zakupów za 4zł szt, taki procek spokojnie wystarcza do sterowania LED, alarmu, czujka ruchu. Jeśli da się zrobić 100 projektów na attiny13 to na 8x większym procku pewnie też więcej. Od 328 różni się tylko ilością pamięci Flash, RAM, EEPROM. Przy okazji po wylutowaniu można go przenieść na osobną płytkę i zbadać "na stole operacyjnym". Może coś mu tam gdzieś zwiera jednak na płytce Arduino. Do wyjęcia najlepszy byłby hotair, przylutować można spokojnie kolbą, płynnym maźnięciem szerokim grotem po nóżkach.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#18
Hotair mam, wystarczy taki bez podgrzewacza od spodu?? Stacja lutownicza też się znajdzie, więc raczej z przylutowaniem nowego nie będzie problemu.
Ten procesor będzie ok?:
http://allegro.pl/mikrokontroler-avr-atm...58509.html

Mam też stare arduino leonardo z MEGA32U4-AU, które wcale nie komunikuje się przez USB z kompem, po awarii stabilizatora 5V. Może tam też bym procek zmienił na ten:
http://allegro.pl/atmega32a-au-tqfp44-i7074211412.html
no i uszkodzony stabilizator 5v Smile

Wygrzebałem swoje stare MEGA2560 i zachowuje się dokładnie jak UNO. Program rozpoznaje płytkę, pomieszane są FUSY, lista błędów przy ładowaniu flash czy fuse jest identyczna :/
 
Odpowiedź
#19
No to może jednak nie wszystko jest OK z programatorem. Na pewno podpinasz dobrze? Orientacja pinów SPI jest inna w UNO i NANO.
Wgraj sobie nowy firmware do programatora https://www.fischl.de/usbasp/ (musisz mieć drugi programator lub zrobiony z Arduino) i ewentualnie sterowniki do USBASP https://forum.arduinopolska.pl/watek-ste...y85?page=2 . AVR LAB 2.4 na pewno obsługuje Arduino AS ISP, są linki w tamtym wątku. Wybierasz Arduino i port COM gdzie ono jest. Na programatorze masz zworkę ustawiającą opcję selfprogram, wtedy wgrywa flasz do siebie, jeśli programatorem jest arduino to podłączasz obie płytki razem tak jakbyś programował Arduino, Arduino przez USB do komputera, flash leci po prostu w drugą stronę.
Jak masz Arduino z prockiem w obudowie TQFP to możesz sobie tam wlutować 48, 88, 168 i 328. Natomiast akurat na tej aukcji w opisie jest starsza wersja 8A, nie wiem czy to literówka, czy gość nie wie co sprzedaje. Pinowo też jest OK, ale 8a można kupić za 3zł, MARKG_2006 ma za 4zł 88 i towaru mnóstwo dla elektroników, także można rozłożyć koszt przesyłki. Atmega 32a ma więcej pinów (44vs32) i pasować nie będzie, zresztą to już zupełnie inny procek niż MEGA32U4.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#20
Próbowałem już podnieść sobie firmware w programatorze, ale jakoś nie idzie mi z tym Arduino as ISP.
Wgrywam ten sketch z exampla do np. Nano, podpinam przez złącze SPI programator i mam error odczytu z COM8 (na tym mi się identyfikuje Arduino). Oczywiście ustawiam program na Arduino i COM8.
Próbowałem też przez PINy, czyli
10 > RST,
11 > 11,
12 > 12,
13 > 13,
5V > 5V,
GND > GND

W programatorze mam zworkę na 5V, zworkę na SCK i zworkę na SelfPrograming (dolutowałem sobie goldpiny).

Za każdym razem mam error. Po zakończeniu prób, przy użyciu mojego USBASP musiałem sobie wgrać ponownie bootloader do NANO, bo przestało przyjmować sketche (nie wiem czy to normalne).

Co mogę robić źle??

//EDIT:
Próbowałem użyć jako AVRISP swojego klona UNO, ale również się nie udało. Później miałem problem, żeby postawić na nim ponownie bootloader, ale zauważyłem, że sypało takimi samymi błędami fusów jak to "uszkodzone". Dopiero jak załadowałem mu "Arduino Nano 328" to poszło i działa bootloader bez problemu..
Może problem leży w tym, że uparcie i bezustannie, próbuję wgrać w swoje UNO, złą wersję flasha??

Uszkodzony klon to ATMEL MEGA328P AU 1632
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości