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

ATmega2560-16AU + kwarc 16MHz: Błąd weryfikacji pamięci flash pod adresem 0x1e000

Ty-grysek 06 Wrz 2015 14:32 909 3
REKLAMA
  • #1 14975424
    Ty-grysek
    Poziom 12  
    Witam,

    Wstęp
    Zbudowałem układ na ATmedze2560-16AU + kwarc 16MHz. Całość ma działać pod Arduino ale problem jest raczej innej natury. Procesy wgrywania bootloadera i programu nie wykazują błędów ale ATmega nie wykonuje tego co zaprogramowałem (oczywiście dla testów program najprostszy z możliwych, ten sam program wgrany na płytkę bazową Arduino Mega działa OK).
    Do programowania używam USBsap zaktualizowane do najnowszego firmware 2011-05-28.

    Problem właściwy
    Szukając przyczyny, oto do czego doszedłem:
    avrdude poprawnie rozpoznaje mikrokontroler. Jednak gdy programuję pamięć flash, avrdude po weryfikacji zgłasza błąd zawsze pod adresem 0x1e000.
    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.00s
    
    avrdude: Device signature = 0x1e9801
    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 "C:\!\flash.hex"
    avrdude: writing flash (261406 bytes):
    
    Writing | ################################################## | 100% 122.90s
    
    avrdude: 261406 bytes of flash written
    avrdude: verifying flash memory against C:\!\flash.hex:
    avrdude: load data flash data from input file C:\!\flash.hex:
    avrdude: input file C:\!\flash.hex contains 261406 bytes
    avrdude: reading on-chip flash data:
    
    Reading | ################################################## | 100% 69.28s
    
    avrdude: verifying ...
    avrdude: verification error, first mismatch at byte 0x1e000
             0xff != 0x0d
    avrdude: verification error; content mismatch
    
    avrdude: safemode: Fuses OK (E:FD, H:D8, L:FF)
    
    avrdude done.  Thank you.
    
    

    Sądziłem że są jakieś przekłamania przy transmisji przez USBasp, jednak dla testów kilkukrotne odczytałem flash i pliki zawsze są identyczne.

    Pytanie
    Czy to oznacza że mikrokontroler jest padnięty? Zdarzyło mi się źle podłączyć piny ISP i ATmega się mocno zagrzał, ale jednak nadal "gada" z avrdude.

    Jeszcze jedno: złącze ISP podłączone jest pod konwerter poziomów logicznych ST2378E, jednak druga strona kontrolera wisi aktualnie "w powietrzu", czy to może zakłócać pracę ISP?

    Masy i zasilania raczej mam OK - sprawdzane setki razy. Całość ma mikroskopijne rozmiary i wysoki poziom upakowania, więc wolę się podpytać zanim przyłożę lutownicę.
  • REKLAMA
  • #2 14977500
    Ty-grysek
    Poziom 12  
    Wygląda na to że ATmega zaczął mnie słuchać :-)
    Pozbyłem się bootloadera Arduino i wszystko wróciło do normy:
    http://majsterkowo.pl/forum/programowanie-atmega-bez-bootloadera-t392.html
    Pora przesiąść się na AVR studio...

    Nadal pozostaje otwarte pytanie dlaczego avrdude zgłasza błąd przy flashowaniu, a konkretnie przy weryfikacji.

    Pozdrawiam
  • REKLAMA
  • #3 14980692
    dondu
    Moderator na urlopie...
    Ty-grysek napisał:
    Pora przesiąść się na AVR studio...

    Atmel Studio, a nie AVR Studio - to znacząca różnica :)

    Ty-grysek napisał:
    Nadal pozostaje otwarte pytanie dlaczego avrdude zgłasza błąd przy flashowaniu, a konkretnie przy weryfikacji.

    To nowy scalak, czy taki który mógł już przekroczyć dopuszczalną ilość zapisów?
  • #4 14980712
    Ty-grysek
    Poziom 12  
    Scalak nówka.
    Zastanawiam się czy bootloader nie mógłby zakłócać flashowania - jak mniemam obszar bootloadera jest zabezpieczony przez modyfikacją, ale adres 0x1e000 mi nie pasuje...
REKLAMA