Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 19 maja 2026, o 16:44


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 14 lut 2015, o 13:18 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 103
Pomógł: 3

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 :P)

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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2015, o 14:54 
Offline
Użytkownik

Dołączył(a): 22 sie 2013
Posty: 73
Pomógł: 7

To skoro wszystko posprawdzałeś i nadal nie działa to zobacz sobie jeszcze ten kwarc i jego podłączenia. Skoro procesor masz taktowany zewnętrznym kwarcem który nie działa to nie ma siły żeby ci to ruszyło nawet na slow sck, bo przecież wewnętrzny oscylator ci się sam nie włączy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2015, o 16:51 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 103
Pomógł: 3

Dziękuję za odpowiedź.
Znajdę chwilę czasu i to sprawdzę tak dla pewności, ale wątpię aby kwarc się tak nagle uszkodził biorąc pod uwagę fakt, że błędy pojawiły się dopiero powyżej tych 64KB zajętych przez program... i raz działało (jak zszedłem poniżej) a raz nie (powyżej). Jak nic nie kombinowałem to wyświetlacz cały czas działał elegancko, więc uszkodzenie kwarcu byłoby tu podejrzaną sprawą. Ale może masz rację.
Ma ktoś jakieś inne rady jeszcze?

------------------------ [ Dodano po: 56 minutach ]

Ok, zmieniłem kwarc na inny, posprawdzałem wszystkie połączenia, nadal nic. Czyli musiał się mikrokontroler uszkodzić podczas wgrywania programu, tylko jak i dlaczego? Jest to dla mnie mocno podejrzane...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2015, o 20:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

U mnie błąd weryfikacji pojawiał się gdy próbowałem za jednym kliknięciem wgrać coś do EEPROM i do FLASH. Znaczy inaczej, nie tyle równocześnie co w MKAVr zaznaczyłem zaprogramuj flash, zaprogramuj EEPROM. Wgrywanie po kolei nie powodowało tego błędu, a wgrywanie razem powodowało. Co prawda poniżej 64kb ale jednak.
Może przy okazji przesadziłeś z ilością zapisów i się wyczerpała? To taka mała dygresja, choć wątpię by udało Ci się te milion razy programować.

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2015, o 23:22 
Offline
Użytkownik

Dołączył(a): 09 gru 2013
Posty: 103
Pomógł: 3

Według noty: Write/Erase Cycles:10,000 Flash, ale i tak jest to bardzo duża liczba, więc bardzo w to wątpię... myślę, że nawet do tysiąca się nie zbliżyłem jeszcze.

Co do pamięci EEPROM, przy starcie program odczytuje parę bajtów z niej, tak samo zapisuje do niej w trakcie działania programu, ale nie ma mowy o równoczesnym zapisie do pamięci flash i eeprom (zapis flash robię tylko za pomocą Eclipse) MkAvrCalculator użyłem tylko do zapisu fuse bitów. Błąd weryfikacji pojawia się u mnie za każdym razem, w ogóle nie mogę skontaktować się już z mikrokontrolerem (tak jakby złącze programatora wisiało w powietrzu). Usterka mechaniczna jest bardzo mało prawdopodobna, bo cały czas działało, tylko za ostatnim wgraniem coś się sypnęło.

Jedyne co mi przychodzi do głowy, to faktycznie źle się wgrał wsad, pokazał się ten błąd weryfikacji i przez to mikrokontroler się zawiesił i nie odpowiada, ale czy takie coś jest możliwe? Filtracja zasilania powinna być ok.

Wrzucam schemat:
Obrazek

Tak na wszelki wypadek dodam, że w tych większych mikrokontrolerach programator zamiast do MISO/MOSI podłącza się do PDO/PDI



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lut 2015, o 23:31 
Offline
Użytkownik

Dołączył(a): 22 gru 2013
Posty: 296
Lokalizacja: Szczecin
Pomógł: 47

A jaki programator?
wersja programu programatora?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO