Witajcie.
We wrześniu skonstruowałem wyświetlacz widmowy z mikrokontrolerem ATmega2561.
Wyświetlacz przez ten czas działał cały czas poprawnie aż do wczoraj (piątek 13-ego

)
Ze względu na to, że wskaźnik jest 2 bajtowy - pamięć flash ATmegi adresowałem tylko do 64KB (z 256KB możliwych).
(W pamięci flash trzymam grafiki do wyświetlania w postaci tablic)
Ale pewnego dnia zachciało mi się, przekroczyć magiczną barierę 64KB, zatem założyłem temat:
topic9658.html, gdzie polecili mi zainstalować Eclipsa Lunę, co też niedawno uczyniłem.
Eclipsik skonfigurowany według poradników Mirka, działa aż miło. Do tego wgrałem zmodyfikowany AVRDUDE z paskiem postępu.
Od tego momentu zaczęły dziać się cuda. Jeżeli hex nie przekraczał tych 64KB program wgrywał się bez żadnych problemów, wszystko działało tak jak miało działać.
Ale jeżeli tylko przekroczyłem 64KB, proces wgrywania hexu również przebiegał bez problemu, weryfikacja (zielony pasek postępu) dochodziła do 100% i następnie w konsoli pojawiał się komunikat: (mimo, że hex został wgrany)
Kod:
avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x0000
0x0c != 0x00
avrdude.exe: verification error; content mismatch
Program po wgraniu się zawieszał, nie wykonywał. Wyświetlacz pokazywał śmieci, hex został niepoprawnie wgrany.
Po usunięciu kilku grafik z pamięci flash, błąd się nie pojawiał, komunikacja przebiegała pomyślnie, program działał poprawnie.
Powtórzyło się to parę razy, ostatni raz kiedy zmodyfikowałem program wg zaleceń kolegi
mokrowski z powyższego tematu.
Po wgraniu wsadu dostałem ten sam błąd weryfikacji, mikrokontroler od tego czasu wypluwa już RC=-1 (w mkAvrCalculator jak również w Eclipse)
Kod:
avrdude: set SCK frequency to 93750 Hz
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.
Compiled special for http://forum.atnel.pl (v5.11.1)
Nie wiem, czy to jest po prostu zbieg okoliczności, czy ma to związek z tymi moimi zabawami powyżej 64KB (bardzo wątpię aby tak było)
Przetestowałem programator - z innymi moimi projektami działa bez problemu, znajduje procesor.
Zakładałem zworkę SLOW SCK - nic to nie dało
Sprawdziłem napięcie na wejściu do układu - 4,5-5V
Przetestowałem połączenia ISP - poprawiłem luty, sprawdziłem połączenia testerem ciągłości - wszystko ok.
(a dziwne by to było, gdyby nagle przestało działać, więc bardziej myślę, że jest to błąd programowy niż mechaniczny)
Jeszcze podczas dostawania błędów weryfikacji flash wgrałem oryginalnego AVRDUDE bez nakładki z paskiem postępu, nic to nie dało.
Może coś z zewnętrznym rezonatorem 16Mhz? Ale po założeniu SLOW SCK myślę, że by znalazło procesor?
Czy możliwe jest przysłowiowe "zablokowanie" mikrokontrolera w skutek niepoprawnego wgrania wsadu? (Verification error)
Pozdrawiam i proszę o jakieś wskazówki.