logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[AVR prog II] [avrdude] Problem przy programowaniu

Sliwhas 17 Lip 2008 16:08 9000 24
REKLAMA
  • #1 5351425
    Sliwhas
    Poziom 2  
    Witam,
    próbuję już od jakiegoś czasu uporać się z problemem, który pojawia się przy programowaniu ATmegi8 przy pomocy programatora AVR prog II i programu avrdude. Pojawia mi się następujący komunikat:

    "avrdude" -p m8 -c usbasp -P lpt1 -F

    avrdude: error: programm enable: target doesn't answer. 1
    avrdude: AVR device initialized and ready to accept instructions

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

    avrdude: Device signature = 0x0000ff
    avrdude: Expected signature for ATMEGA8 is 1E 93 07
    avrdude: current erase-rewrite cycle count is -16777216 (if being tracked)

    avrdude done. Thank you.


    Dodam, że zwarłem zworki odpowiadające za spowolnienie programowania i zasilanie układu. Problem pojawia się od momentu, gdy zmieniłem fuse bity przy programowaniu. Chociaż ściślej mówiąc samych parametrów fuse'ów nie zmieniałem, tylko przełączyłem zaznaczone (High Fuse: Read i Write, Lock Fuse: Read i Write, Extd. Fuse: Read i Write). Po przełączeniu na ustawienia domyśne przy próbach programowania pojawiają się różne herezje w raportach. Taka sama sytuacja ma miejsce przy wyłączeniu programowania fuse bitów. Ogólnie, teraz przy próbach przełączania czegokolwiek raport jest taki sam, nie różni się od tego, jaki otrzymuję, gdy włączam programowanie układu po wcześniejszym jego odłączeniu. Czy ktoś wie gdzie może leżeć przyczyna? Jest możliwość, że układ się zablokował?
  • REKLAMA
  • #2 5351713
    Dr.Vee
    VIP Zasłużony dla elektroda
    Witam,

    Sliwhas napisał:
    ... programowaniu ATmegi8 przy pomocy programatora AVR prog II i programu avrdude. Pojawia mi się następujący komunikat:

    "avrdude" -p m8 -c usbasp -P lpt1 -F

    ...



    Używasz programatora AVR prog II, ale każesz avrdude komunikować się z programatorem USBASP? Jak sama nazwa wskazuje, jest to programator USB, a Ty używasz portu LPT. Sprawdź parametry.

    Poza tym - nie używaj opcji -F jeśli nie wiesz co robisz, po to weryfikuje się sygnaturę układu, żeby przypadkiem nie namieszać (np. z fuse bits) przy błędnych parametrach czy połączeniu.

    Pozdrawiam,
    Dr.Vee
  • #3 5351917
    Sliwhas
    Poziom 2  
    Tak pisało w instrukcji - żeby port był ustawiony na lpt1. W każdym razie uruchamiając polecieniem "avrdude" -p m8 -c usbasp -P usb dało efekt


    avrdude: error: programm enable: target doesn't answer. 1
    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.03s

    avrdude: Device signature = 0x0000ff
    avrdude: Expected signature for ATMEGA8 is 1E 93 07
    Double check chip, or use -F to override this check.

    avrdude done. Thank you.


    czyli w zasadzie to samo..
  • REKLAMA
  • Pomocny post
    #4 5352364
    Dr.Vee
    VIP Zasłużony dla elektroda
    Rzeczywiście, w instrukcji na screenshocie jest port LPT1, może pod windowsem tak to dziala :)

    Cytat:
    ...samych parametrów fuse'ów nie zmieniałem, tylko przełączyłem zaznaczone (High Fuse: Read i Write, Lock Fuse: Read i Write, Extd. Fuse: Read i Write).


    To znaczy, że zmieniałeś, jeśli kliknąłeś "execute" po zmianie tych parametrów. Nie używałem tego gui, ale z tego co widzę na screenshotach, to najprawdopodobniej udało Ci się przeprogramować fuse bity. Trzeba z tym mocno uważać, bo "chip erase" nie zmienia wartości fuse bitów.

    Jeśli rzeczywiście przeprogramowałeś te bity na wartość 0x00, to tylko programowanie w trybie wysokiego napięcia (nie tym programatorem) Ci pomoże. W tym przypadku programowanie ISP jest niemożliwe, bo RESET działa jak zwykły pin I/O.

    Możesz podesłać komendę, którą wykonałeś (ustaw wszystko tak jak po przełączeniu i skopiuj linię komend z GUI), wtedy będzie wiadomo na 100% co udało Ci się zepsuć i jak to ew. naprawić.

    Pozdrawiam,
    Dr.Vee
  • #5 5353149
    Sliwhas
    Poziom 2  
    Nie no, już nie ma co kombinować, taniej będzie chyba kupić nowy mikrokontroler.
    Ok, dzięki wielkie za pomoc :)
  • #6 5391599
    tomekcorporation
    Poziom 11  
    Witam mam podobny problem oto komenda :
    "D:\Elektronika\Programator\avrdude.exe" -p m8535 -c usbasp -C "D:\Elektronika\Programator\avrdude.conf" -P com8 -U flash:w:"C:\Documents and Settings\TT\Moje dokumenty\TT\default\TT.hex":a -U flash:v:"C:\Documents and Settings\TT\Moje dokumenty\TT\default\TT.hex":a -U hfuse:r:con:r -U lock:w:00 -U efuse:w:00 -U efuse:r:con:r
    Tyle że ja nie zmieniałem fuse bitów...
    mam ten problem od instalacji jedynie 2 a może 3 razy udało mi sie zaprogramować uP i potem nic nie dało się zrobić
  • #8 5395967
    Dr.Vee
    VIP Zasłużony dla elektroda
    Witam,

    tomekcorporation napisał:

    -U lock:w:00 -U efuse:w:00
    Tyle że ja nie zmieniałem fuse bitów...


    Hmm... to poszukaj może w manualu co powodują dwa powyższe parametry :]

    Ludzie, używajcie programów, których działanie rozumiecie.

    Pozdrawiam,
    Dr.Vee
  • #9 5409178
    tomekcorporation
    Poziom 11  
    Dobrze juz poszukałem i wszystko działa
  • #10 5624849
    Sokolsok
    Poziom 11  
    Mam prośbę tomekcorporation.. Skoro Tobie już działa:)
    Używam avrdude gui.. (jak na screenie). Fuse bitów nie zmianiałem.. Wywala mi błąd:
    
    avrdude.exe: error: programm enable: target doesn't answer. 1 
    avrdude.exe: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.02s
    
    avrdude.exe: Device signature = 0x000000
    avrdude.exe: Yikes!  Invalid device signature.
                 Double check connections and try again, or use -F to override
                 this check.
    
    
    avrdude.exe done.  Thank you.


    Masz jakiś pomysł? Może powiec po kolei jak zrobiłeś u siebie?:) Thx

    [AVR prog II] [avrdude] Problem przy programowaniu
  • #11 5626563
    wojnar
    Poziom 17  
    Sokolsok napisał:
    .... Fuse bitów nie zmianiałem..

    A jednak zmieniłeś! Write = Zapisz!
    [AVR prog II] [avrdude] Problem przy programowaniu
    Zapisując, a że tego pozapisywałeś :-) , wszędzie do fusów 0x00, ustawiłeś tak:
    [AVR prog II] [avrdude] Problem przy programowaniu
    Podepnij do procka jakiś zewnętrzny generator cca 2MHz i będzie komunikował.

    Jestem w pełni za zwołaniem Dr.Vee:
    Dr.Vee napisał:
    ...Ludzie, używajcie programów, których działanie rozumiecie.

    Pozdrawiam,
    Dr.Vee


    Edit:
    Jeszcze raz patrząc na to, jednak nie będzie komunikował. Wyłączyłeś Reset :cry:
    Jedynie programator równoległy albo nowy procek.
  • #12 5626739
    Sokolsok
    Poziom 11  
    Zła wiadomość, ale przynajmniej konkretna odpowiedź:) Dzięki! Chyba kupie nową Atmegę8 (6zl to nie majątek). A te fuse bity były w ten sposób gdy zainstalowałem AvrDude Gui.. Też mi nie pasowało ale wolałem nie zmieniać nic bo się bałem:P Za pierwszym razem gdy odpalilem to to mi usunął program z Atmegi, który miałem tak wcześniej (jak jeszcze z LPT programowałem), a potem już tylko ten błąd j.w. w kółko:/ Dzisiaj kupię sobie nowy:) Czy mógłbyś mi powiedzieć/napisać jak mam te fusy poustawiać stosując Avrdude gui? A o to szczegóły: mam Atmegę8, zewnętrzny kwarc 8MHz, programator USBasp.. Z góry dzięki!

    Zeby nie było, że tak całkiem na łatwizne idę a sam nie poszukam:P Otóż na oficjalnej stronce gościa od USBasp w pliku readme znalazłem:
    # TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef (http://www.fischl.de/usbasp/Readme.txt), A w tym kalkulatorze fusów jest HFUSE=0xc1 LFUSE=0x99.. Być może to jakoś inaczej z taktowaniem jest? a pozetym reszta? e.fuse, calibration, signature, exit mode, erase cycle cunter? i czy jakies option powinienem zmienic? Troche tego za dużo narazie żebym to sam ogarnął:( a chciałbym móc po prostu go programować:) Pod LPT nie miałem żadnych problemów.. nie trzeba było ustawiac żadnych fusów, a tu:P:P
  • REKLAMA
  • #13 5626787
    wojnar
    Poziom 17  
    Miałeś najpierw odczytać a potem zapisywać :-)
    Tu http://palmavr.sourceforge.net/cgi-bin/fc.cgi jest fajny kalkulator fusów.
    Uwidzisz, sam sobie poradzisz.
    A na początek: Odczytaj fusy (zaznacz ptaszki u Read w polach Low Fuse a High Fuse i naciśnij Execute), w AVR Fuse Calculator wybierz procek (Atmega8), otrzymane warości zapisz do odpowiednich pól "Current" naciśnij "Apply user values". W "Quick Configuration" wybierz w pierwszym rządku coś tam "Ext. Crystal/Resonator High Freq..." a w przedostatnim wyłącz Watch-dog-a (chyba, że potrzebujesz tak nie). Odczytaj teraz nowe wartości w polach Current dla Low a High, te zapisz w Avrdude-gui (nie zamień Low z High !!), zaznacz ptaszki na Write w polach Low Fuse a High Fuse, tylko tam i nigdzie indziej !, naciśnij Execute. Teraz te ptaszki odznacz i do dalszej chcianej zmiany fusów za nic już nie zaznaczaj !

    Poszukaj, bo tu na Elektrodzie gdzieś się poniewiera fajny polski opis fusów dla Atmega16 w pdf.

    Napisałem jak umiałem, chyba, że ktoś ma jakieś spostrzeżenia, to niech poprawi lub dopełni.

    Edit:
    Już znalazłem :-)
    Poczytaj tu https://www.elektroda.pl/rtvforum/topic1060355.html. W trzecim poście jest ten opis.

    Dodano po 28 [minuty]:

    Sokolsok napisał:
    ...Otóż na oficjalnej stronce gościa od USBasp w pliku readme znalazłem:
    # TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef (http://www.fischl.de/usbasp/Readme.txt),...

    Tu gość pisze jak ustawić fusy w procku samotnego programatora.


    Sokolsok napisał:
    ...A w tym kalkulatorze fusów jest HFUSE=0xc1 LFUSE=0x99.. Być może to jakoś inaczej z taktowaniem jest?

    To są wartości domyślne, Default! Ty zmieniasz na to co chcesz w linijce Current. Albo odczytujesz po wprowadzonych zmianach w "Quck Configuration" albo w tym polu gdzie zmiany zaznaczają się ptaszkami (po zmianie ptaszków naciśnij "Apply fuse bits" i zobacz, że zmieniły się wartości w linijce Current)


    Sokolsok napisał:
    ... a pozetym reszta? e.fuse, calibration, signature, exit mode, erase cycle cunter? i czy jakies option powinienem zmienic?

    Na to raczej w początkach starcia z AVR-kami nie siągaj !


    Sokolsok napisał:
    ...Pod LPT nie miałem żadnych problemów.. nie trzeba było ustawiac żadnych fusów, a tu:P:P

    Jeżeli procek miał pracować z innym taktem niż ustawionym producentem (wewnętrzny generator 1Mhz) to było trzeba!
  • #14 5628167
    Sokolsok
    Poziom 11  
    Mam nową Atmegę:) Na wszelki wypadek kupiłem 2:P A więc po sczytaniu fusów:
    https://obrazki.elektroda.pl/29_1223919524.jpg
    W wyniku otrzymałem:
    avrdude.exe: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.02s
    
    avrdude.exe: Device signature = 0x1e9307
    avrdude.exe: setting erase-rewrite cycle count to 0
    avrdude.exe: reading lfuse memory:
    
    Reading | ################################################## | 100% 0.01s
    
    avrdude.exe: writing output file "lfuse.dat"
    avrdude.exe: reading hfuse memory:
    
    Reading | ################################################## | 100% 0.01s
    
    avrdude.exe: writing output file "hfuse.dat"
    
    avrdude.exe done.  Thank you.


    Czyli chyba fajnie:D Błędu nie wywala żadnego:D Ale nie bardzo kumam po co mam sczytać to.. Przecież jak w AVR Fuse Calculator ustawie tam co trzeba to i tak zapisze fusy po swojemu i to nie bedzie miało znaczenia co tam było wcześniej?? Czy się myle?:P

    wojnar napisał:
    W "Quick Configuration" wybierz w pierwszym rządku coś tam "Ext. Crystal/Resonator High Freq..."

    Nie znalazłem tam czegoś takiego:( A teraz się boję znowu spieprzyć:P I jeszcze jedno:
    wojnar napisał:
    Jeszcze raz patrząc na to, jednak nie będzie komunikował. Wyłączyłeś Reset

    Czyli co tam powinno być w tym Exitmode?? Reset i Vcc mam zaznaczyć czy wogóle nie ruszać?
  • REKLAMA
  • #15 5628484
    wojnar
    Poziom 17  
    Sokolsok napisał:
    wojnar napisał:
    W "Quick Configuration" wybierz w pierwszym rządku coś tam "Ext. Crystal/Resonator High Freq..."

    Nie znalazłem tam czegoś takiego:( A teraz się boję znowu spieprzyć:P

    Na prawdę ?
    [AVR prog II] [avrdude] Problem przy programowaniu


    Sokolsok napisał:

    wojnar napisał:
    Jeszcze raz patrząc na to, jednak nie będzie komunikował. Wyłączyłeś Reset

    Czyli co tam powinno być w tym Exitmode?? Reset i Vcc mam zaznaczyć czy wogóle nie ruszać?

    Nie ruszać !!
    Reset włączasz/wyłączasz tu:
    [AVR prog II] [avrdude] Problem przy programowaniu
  • #16 5628914
    Sokolsok
    Poziom 11  
    Wieeeeelkie dzięki wojnar:) Wszystko śmiga tak jak powinno:)
  • #17 5629355
    wojnar
    Poziom 17  
    No supeeer!
    Chyba jeszcze odpowiem na Twoje pytanie:
    Sokolsok napisał:
    ...Ale nie bardzo kumam po co mam sczytać to.. Przecież jak w AVR Fuse Calculator ustawie tam co trzeba to i tak zapisze fusy po swojemu i to nie bedzie miało znaczenia co tam było wcześniej?? Czy się myle?:P

    Dla eliminacji przypadkovych błędów. Przynajmniej w początkach jest taki postęp bezpieczniejszy.
    Odczytasz fusy z działającego procka i zmienisz tylko co potrzebujesz, reszta zostaje.
    Cześć, życzę zero zablokowanych procków :-)
  • #18 5629769
    Sokolsok
    Poziom 11  
    Kliknął bym POMÓGŁ, ale to nie ja założyłem temat i niestety nie mogę.. Ale masz ode mnie takie wirtualne POMÓGŁ:P Jeszcze raz dzięki. Podzr!!:)
  • #20 6543721
    wilk125
    Poziom 23  
    Witam
    Nie chce zaczynac nowego watka dlatego sie podebne. Uzywam programu avrdude gui i mam prblem zwiazany z wykonywaniem polecen. Jak zaznaczam odczyt Lfuse byte i Hfuse byte to odczytuje tylo Hfuse byte, jesli zazanzce tylko jeden bajt do odczytu to zadnego nie odczytuje. Jak wykonje programowanie flasha to ta instrukcja tez sie nie wykonuje, co jest nie tak? Poniezej scren z programu
    [AVR prog II] [avrdude] Problem przy programowaniu
  • #22 6543883
    wilk125
    Poziom 23  
    rozwiazalem problem, nie mialem wskazanego portu, po wskazaniu lpt lub com jest ok, mimo ze programator jest na usb. Wogole widze ze dla programatora na usb opcja "-P" jest zbedna, tylko ze w avrdude-gui nie mozna jej wylaczyc
  • #23 6735187
    mirekk36
    Poziom 42  
    wilk125 napisał:
    rozwiazalem problem, nie mialem wskazanego portu, po wskazaniu lpt lub com jest ok, mimo ze programator jest na usb. Wogole widze ze dla programatora na usb opcja "-P" jest zbedna, tylko ze w avrdude-gui nie mozna jej wylaczyc


    dlatego proponuję sprawdzić jak pracuje się z tym programatorem GUI wraz z kalkulatorem wizualnym fusebitów:

    https://www.elektroda.pl/rtvforum/topic1354542.html

    - jak coś to proszę o opinie, sugestie na jego temat ;)
  • #24 8481402
    Janko69
    Poziom 13  
    Również nie chcę rozpoczynać nowego tematu, a ten pasuje. Wygląda na to, że nie mogę w ATTiny13A zmienić hfuse w trybie programowania SPI niskonapięciowego. Czy tak rzeczywiście jest? Domyślnie hfuse jest 0xff, ja chcę zmienić na 0xfb. Robię tak:

    $ sudo avrdude -c usbasp -P usb -p t13 -v -s -u -U hfuse:w:0xFB:m

    i dostaję w wyniku:

    avrdude: Version 5.8, compiled on Jul 20 2009 at 13:58:01
    [...]
    avrdude: auto set sck period (because given equals null)
    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 = 0x1e9007
    avrdude: current erase-rewrite cycle count is 34 (if being tracked)
    avrdude: reading input file "0xFB"
    avrdude: writing hfuse (1 bytes):

    Writing | | 0% 0.00s ***failed;
    Writing | ################################################## | 100% 0.06s

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

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

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

    avrdude: verification error; content mismatch

    avrdude done. Thank you.

    Czyli próbuje zmienić hfuse i na etapie weryfikacji stwierdza, że się nie udało.
    Dlaczego? Dodam, że tym samym programatorem wgrywam do tego procesorka program bez żadnych problemów.


    Edycja:

    aktualizacja avrdude do wersji 5.10(SVN) rozwiązała problem.
  • #25 16773752
    krissrudy102
    Poziom 4  
    Witam. Wiem, że odgrzewam temat ale trafiłem dziś na ten wątek mając ten sam problem który udało mi się rozwiązać. W moim przypadku był to błąd na AT90S8515. Uratowałem go poprzez programator usbasp napięcie zasilania z programatora 5v. Do układu podłączyłem jedynie kwarc 4Mhz miedzy xtal1,xtal2 oraz 2 kondensatory masujące ten rezonator. Program mkAVR Calculator powodował błąd :

    avrdude: Device signature = 0x0000ff
    avrdude: Expected signature for ATMEGA8 is 1E 93 07
    avrdude: current erase-rewrite cycle count is -16777216 (if being tracked)

    Udało się wyzerować fusy za pomocą programu Khazama AVR Programmer. Wybrałem procesor at90s8515, w Fuses and Lock Bits settings wybrałem Read All (zatwierdziłem komunikatu o błędach odczytu, zmieniłem Mode1: No memory lock features enabled i zapisałem przyciskiem WriteAll. Program wyrzucał błędy ale na końcu wyskoczył napis o przesłaniu poprawnym. Następnie w głównym menu programu dałem Erease Chip po zatwierdzeniu błedów na końcu pojawiło sie Chip Ereased. Po tych zabiegach uruchomiłem program ponownie Program mkAVR Calculator . Procesor pojawił się w programie. Myślę że na innych procesorach z rodziny atmega w podobny sposób reanimacja zakończy się powodzeniem.
REKLAMA