Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[atmega128a] Błąd weryfikacji programu.

23 Mar 2011 09:44 2211 7
  • Poziom 24  
    Podczas wgrywania programu, który zajmuje powyżej 25% pojemności pamięci otrzymuje błąd w avrdud'zie. Sam program nie działa wtedy prawidłowo. Gdy wchodzę do menu zawiesza się i resetuje procesor. Gdy zwolnię trochę pamięci usuwając np czcionkę wszystko wraca do normy. Uc programuje się prawidłowo i program działa bez resetów. Wina nie leży w programie, cyrki zaczęły się po przekroczeniu 25%

    Działam na zewnętrznym kwarcu 12Mhz bez watchdog'a

    "log z avrdude'a"
    Code:
    avrdude.exe: AVR device initialized and ready to accept instructions
    

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

    avrdude.exe: Device signature = 0x1e9702
    avrdude.exe: erasing chip
    avrdude.exe: reading input file "D:\atmega128_graf_zeg.hex"
    avrdude.exe: input file D:\atmega128_graf_zeg.hex auto detected as Intel Hex
    avrdude.exe: writing flash (33056 bytes):

    Writing | ################################################## | 100% 13.71s

    avrdude.exe: 33056 bytes of flash written
    avrdude.exe: verifying flash memory against D:\atmega128_graf_zeg.hex:
    avrdude.exe: load data flash data from input file D:\atmega128_graf_zeg.hex:
    avrdude.exe: input file D:\atmega128_graf_zeg.hex auto detected as Intel Hex
    avrdude.exe: input file D:\atmega128_graf_zeg.hex contains 33056 bytes
    avrdude.exe: reading on-chip flash data:

    Reading | ################################################## | 100% 9.16s

    avrdude.exe: verifying ...
    avrdude.exe: verification error, first mismatch at byte 0x8000
                 0x79 != 0xff
    avrdude.exe: verification error; content mismatch

    avrdude.exe done.  Thank you.


    fusebit'y
    Code:

    HF:D3
    LF:DE
    EF:FF
  • Pomocny post
    Moderator Mikrokontrolery Projektowanie
    Zawsze masz błąd w tym samym miejscu? To najpewniej uszkodzony FLASH. Jeśli w losowych, to sprawdź przewody łączące z programatorem, czy nie są za długie i czy na liniach ISP nie masz czegoś w stylu kondensatorów, diod itd.
    BTW: IMHO fusebity są czytelniejsze jeśli podasz ich nazwy, komu by się chciało zamieniać to na bin i sprawdzać w nocie co robią poszczególny bity....
  • Poziom 24  
    Błąd jest w tym samym miejscu. Atmega jest nowa, kilkanaście razy programowana. Na liniach mamy tylko 4.7k do Vcc. Zauważyłem, że w zależności od wielkości programu w różny sposób on nie działa. obecnie delikatnie przekraczam 25% i już się nie zawiesza w menu. Natomiast jak przekroczyłem o 27% to wyświetlacz przestał startować. Czyli teraz pozostaje załatwiać inną M128 i podmieniać? Może ktoś ma inny sposób lub pomysł?

    Jeśli chodzi o fusebity to wpisuje je
    http://www.engbedded.com/fusecalc
    i strona wyrzuca co jest co i jak. Wypisując je w hex'ie mam pewność, że nic nie pominąłem.
  • Pomocny post
    Moderator Mikrokontrolery Projektowanie
    Program się tak dziwnie wysypuje bu zmieniając go zmieniasz kod trafiający na ten felerny obszar. Dziwne co prawda jest, że nowy proc tak się zachowuje, ale błąd w tym samym miejscu nie może być przypadkiem. Spróbuj ew. użyć innego programatora/progamu do programowania.
  • Poziom 24  
    Próbowałem jeszcze na XP - błąd w tym samym miejscu.
    Połączenia są ok, układ leży bez ruchu i mniejszy wsad wchodzi bez błędu większy z błędem.

    Skorzystałem jeszcze z opcji "chip erase", bez skutecznie.
    Myślałem też, że może do mieć związek z boot flashem [bootsz], ale niestety.
    Programator mam jeden, wysłużony - USBASP. Taki problem pierwszy raz.
  • Pomocny post
    Poziom 29  
    Aktualizacja firmware w usbasp oraz aktualizacja avrdude do wersji 5.5 lub wyższej. To co masz potrafi zapisać tylko 32kB, czyli już staruszek :)
  • Poziom 24  
    manekinen napisał:
    Aktualizacja firmware w usbasp oraz aktualizacja avrdude do wersji 5.5 lub wyższej. To co masz potrafi zapisać tylko 32kB, czyli już staruszek :)


    O i to strzał w dziesiątkę. Wgrałem nowego AVRDUDE'a, firmware na razie został stary bo nie mam luźnej m8-mki i pomogło, teraz wgrywa bez błędów. Temat można by dodać do FAQu bo nie znalazłem tam takiego problemu.
  • Poziom 12  
    W tym przypadku tak. Jeżeli ktoś jeszcze miałby taki problem (i adres, od którego przestaje się weryfikować, nie byłby tak okrągły), to warto zmniejszyć prędkość transmisji (opcja -i do avrdude) i sprawdzić czy procek jest prawidłowo zasilany, a zasilanie odfiltrowane. Bez zasilania potrafią dziać się takie cuda - procek zasila się (przez diody zabezpieczające w strukturze) liniami od ISP, kondensator na zasilaniu trochę się ładuje, potem zaczyna się transmisja, zasilanie z kondensatora przysiada itd.