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.
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ę.
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ę.