Skocz do zawartości

USBASP firmware uptade by arduino


Paulo

Pomocna odpowiedź

Witam, potrzebuje się was poradzić, bo już mi ręce opadają 🙂

Staram się zaktualizować oprogramowanie USBASP v2.0

Podam tylko kod jaki oddaje mi avrdude, myślę, że w całości widać gdzie leży problem. Przeszukałem pół internetu i nigdzie nie znalazłem rozwiązania.

Na polecenie:

avrdude -C ../etc/avrdude.conf -c avrisp -P COM4 -b 19200 -p m8 -v

Oddaje:

C:\Programy\Arduino\hardware\tools\avr\bin>avrdude -C ../etc/avrdude.conf -c avr
isp -P COM4 -b 19200 -p m8 -v

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
        Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
        Copyright (c) 2007-2014 Joerg Wunsch

        System wide configuration file is "../etc/avrdude.conf"

        Using Port                    : COM4
        Using Programmer              : avrisp
        Overriding Baud Rate          : 19200
        AVR Part                      : ATmega8
        Chip Erase delay              : 10000 us
        PAGEL                         : PD7
        BS2                           : PC2
        RESET disposition             : dedicated
        RETRY pulse                   : SCK
        serial program mode           : yes
        parallel program mode         : yes
        Timeout                       : 200
        StabDelay                     : 100
        CmdexeDelay                   : 25
        SyncLoops                     : 32
        ByteDelay                     : 0
        PollIndex                     : 3
        PollValue                     : 0x53
        Memory Detail                 :

                                 Block Poll               Page
     Polled
          Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  Max
W   ReadBack
          ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ---
-- ---------
          eeprom         4    20   128    0 no        512    4      0  9000  90
00 0xff 0xff
          flash         33    10    64    0 yes      8192   64    128  4500  45
00 0xff 0x00
          lfuse          0     0     0    0 no          1    0      0  2000  20
00 0x00 0x00
          hfuse          0     0     0    0 no          1    0      0  2000  20
00 0x00 0x00
          efuse          0     0     0    0 no          0    0      0     0
0 0x00 0x00
          lock           0     0     0    0 no          1    0      0  2000  20
00 0x00 0x00
          calibration    0     0     0    0 no          4    0      0     0
0 0x00 0x00
          signature      0     0     0    0 no          3    0      0     0
0 0x00 0x00

        Programmer Type : STK500
        Description     : Atmel AVR ISP
        Hardware Version: 2
        Firmware Version: 1.18
        Topcard         : Unknown
        Vtarget         : 0.0 V
        Varef           : 0.0 V
        Oscillator      : Off
        SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e9307 (probably m8)
avrdude: safemode: hfuse reads as D9
avrdude: safemode: Fuse reading not support by programmer.
             Safemode disabled.

avrdude: safemode: hfuse reads as D9
avrdude: safemode: hfuse reads as D9
avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and
exited programming mode

avrdude done.  Thank you.


C:\Programy\Arduino\hardware\tools\avr\bin>

Widać, że nie odczytuje lfuse i ma problem z safemode.

Co ciekawe na polecenie:

avrdude -C ../etc/avrdude.conf -c avrisp -P COM4 -b 19200 -p m8 -U hfuse:r:-:h -U lfuse:r:-:h

Już odczytuje lfuse:

C:\Programy\Arduino\hardware\tools\avr\bin>avrdude -C ../etc/avrdude.conf -c avr
isp -P COM4 -b 19200 -p m8 -U hfuse:r:-:h -U lfuse:r:-:h

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.04s

avrdude: Device signature = 0x1e9307 (probably m8)
avrdude: reading hfuse memory:

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

avrdude: writing output file "<stdout>"
0xd9
avrdude: reading lfuse memory:

Reading | ################################################## | 100% 0.01s

avrdude: writing output file "<stdout>"
0x9f

avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and
exited programming mode

avrdude done.  Thank you.

Lecz dalej ma problem z safemode.

Jakieś porady? Dziękuję z góry za pomoc.

Link do komentarza
Share on other sites

Kabelki zmieniałem i sprawdzałem miernikiem, czy jest ciągłość, podłączenie też sprawdzałem chyba z 10 razy, więc problem nie leży po tej stronie.

Dodanie opóźnienia taktowania opcją -B również nie przynosi żadnych rezultatów.

Generalnie to programator działa i da się z jego pomocą wgrywać program do mikrokontrolera, lecz za każdym razem wywala błąd "cannot set sck period. please check for usbasp firmware update", niby nie przeszkadza, ale chciałem się go pozbyć 🙂 Jakieś dalsze pomysły?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

No wiem, szukałem, znalazłem kilka poradnikow i robiłem według instrukcj. Ten temat jest właśnie tym, bo po drodze napotkałem ten problem z odczytaniem fusebitów. To, że wrzuciłem odpowiedź na pierwszą komendę to spowodowane jest tym, że różnica w komendzie na wgranie firmware różni się tylko od niej o wskazanie pliku z tym softem, a reszta opcji jest taka sama. Mogę wrzucić odpowiedź avrdude na tska komendę, ale próbowałem i jest taka sama - problem z safemode i odczyt fusebitów. Ta druga komenda wykazuje, że jednak ten odczyt jest możliwy,
Dlatego potrzebuje waszej pomocy jak sobie z tym uporać?

Link do komentarza
Share on other sites

Jest postęp, po wielu próbach udało mi się wgrać nowe oprogramowanie do programatora, lecz czy do końca wszystko przebiegło poprawnie to pewności nie mam. Oto okno dialogowe przy wgrywaniu:

C:\Programy\Arduino\hardware\tools\avr\bin>avrdude -C ../etc/avrdude.conf -c avr
isp -P COM4 -b 19200 -p m8 -U flash:w:usbasp.atmega8.2011-05-28.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.06s

avrdude: Device signature = 0x1e9307 (probably m8)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be perform
ed
        To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "usbasp.atmega8.2011-05-28.hex"
avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: writing flash (4700 bytes):

Writing | ################################################## | 100% 7.54s

avrdude: 4700 bytes of flash written
avrdude: verifying flash memory against usbasp.atmega8.2011-05-28.hex:
avrdude: load data flash data from input file usbasp.atmega8.2011-05-28.hex:
avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: input file usbasp.atmega8.2011-05-28.hex contains 4700 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.22s

avrdude: verifying ...
avrdude: 4700 bytes of flash verified

avrdude: safemode: Sorry, reading back fuses was unreliable. I have given up and
exited programming mode

avrdude done.  Thank you.

Niby wszystko się wgrało, lecz dalej problem z safemode i odczytaniem fusebitów się pojawia.

Teraz, gdy próbuję wgrać program do Arduino przez programator wyskakuje mi komunikat:

avrdude: error: program enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
        Double check connections and try again, or use -F to override
        this check.

wybrany port szeregowy 
nie istnieje albo Twoja płytka nie jest podłączona

mkAVRCalculator również nie odnajduje urządzenia, lub wyświetla komunikat rc=-1

Jakieś pomysły?

Powiem jeszcze, że przed wgraniem zapisałem do pliku bin oryginalny software, który był na programatorze tak na wszelki wypadek. Po wgraniu nowego softa i pojawieniu się tych błędów stwierdziłem, że wgram poprzedni (orginalny) soft. Po wgraniu, różnica w komunikacie co do arduino była taka, że wyświetlany był dodatkowo komunikat "cannot set sck period. please check for usbasp firmware update" także powróciłem do nowego softu i problem jest taki jaki opisałem, czyli sławne rc=-1.

Link do komentarza
Share on other sites

Płytki stykowej używałem tylko do wyprowadzenia diod sygnalizujących programowanie, lub błąd, ale odrzuciłem ją, pozmieniałem również wszystkie przewody, a zworkę JP2 zlutowałem krótkim przewodem(przedtem był skręcona przewodem) i sukces. Zakłóceń się pozbyłem i programowanie przebiegło prawidłowo.

C:\Programy\Arduino\hardware\tools\avr\bin>avrdude -C ../etc/avrdude.conf -c avr
isp -P COM4 -b 19200 -p m8 -U flash:w:usbasp.atmega8.2011-05-28.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude: Device signature = 0x1e9307
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: reading input file "usbasp.atmega8.2011-05-28.hex"
avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: writing flash (4700 bytes):

Writing | ################################################## | 100% 7.50s

avrdude: 4700 bytes of flash written
avrdude: verifying flash memory against usbasp.atmega8.2011-05-28.hex:
avrdude: load data flash data from input file usbasp.atmega8.2011-05-28.hex:
avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: input file usbasp.atmega8.2011-05-28.hex contains 4700 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 4.20s

avrdude: verifying ...
avrdude: 4700 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Compiled special for http://forum.atnel.pl (v5.11.1)

Ale co z tego skoro programator dalej jest niesprawny.

mkAVRCalculator przy próbie sprawdzenia dalej oddaje:

avrdude.exe: set SCK frequency to 2000 Hz
avrdude.exe: error: programm enable: target doesn't answer. 1 
avrdude.exe: initialization failed, rc=-1
avrdude.exe: AVR device initialized and ready to accept instructions
avrdude.exe: Device signature = 0x000000
avrdude.exe: Yikes!  Invalid device signature.
avrdude.exe: Expected signature for ATMEGA8 is 1E 93 07

avrdude.exe done.  Thank you.

Compiled special for http://forum.atnel.pl (v5.11.1)

A ArduinoIDE przy próbie programowania dalej z tym samym błędem co poprzednio(nie znajduje portu szeregowego).

Wiem, że przyczyn błędu rc=-1 nie jest dużo, ale myślę, że:

- błędne podłączenie można odrzucić, bo chociażby wgranie firmware przebiegło prawidłowo

- nie sprawdzam gołego AVR, tylko wprost na arduino uno/pro mini, a tam zewnętrzny kwarc jest dołączony

-zasilanie mikroprocesora jest również na poprawne, wprost z programatora usb(wystarczające 4.9V pomiędzy pinem 5V i GND), dawałem również zewnętrzne zasilanie 5V(oczywiście masy połączyłem) i bez różnicy

Co do sterowników to też są raczej poprawne, zainstalowane wprost z mkAVRCalculator. Jakieś pomysły co dalej z tym począć?

PS: wiem, że to programator za parę zł i mogę kupić bez problemu nowy, lepszy, ale chodzi o to, że on po prostu powinien działać. Chodzi też o samo rozwiązanie problemu 🙂

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.