Witam.
Czy to możliwe, aby w ATtiny26, co któreś włączenie/wyłączenie zasilania, ulegała zmianie zawartość EEPROM?
Najwyraźniej właśnie tak się u mnie dzieje.
Czy ktoś spotkał się z takim zjawiskiem?
Z góry dziękuję za podpowiedzi,
Grzechu.
EEPROM w ATtiny26
hmm
Cześć! Najpierw trzeba sprawdzić czy w sofcie wszystko ok. (ale myślę że jesteś bystry i już sprawdziłeś).
Nie wiem czy wiesz ale EEPROM ma określoną żywotność czyli można w nim zapisać coś określoną ilość razy w 2313 jest to 100.000 (albo jeszcze trzy zera więcej).
To niby dużo ale jeśli w trakcie testowania programów umieściłeś choć raz polecenie zapisu EEPROM w niefortunnej pętli to zważywszy na szybkość pracy procka momentalnie wykorzystałeś limit.
Nie jestem wyrocznią ale to jedyne co wpadło mi do głowy
Nie wiem czy wiesz ale EEPROM ma określoną żywotność czyli można w nim zapisać coś określoną ilość razy w 2313 jest to 100.000 (albo jeszcze trzy zera więcej).
To niby dużo ale jeśli w trakcie testowania programów umieściłeś choć raz polecenie zapisu EEPROM w niefortunnej pętli to zważywszy na szybkość pracy procka momentalnie wykorzystałeś limit.
Nie jestem wyrocznią ale to jedyne co wpadło mi do głowy
Ciekawe
ale jak się dowiesz to napisz co to mogło być.
A i zajrzyj na post arytmetyka w Bascomie bo nikt mi nie pomaga
A i zajrzyj na post arytmetyka w Bascomie bo nikt mi nie pomaga
-
Gość
Na razie czekam na nowy ATtiny26. W międzyczasie zmieniłem nieco program - tablicę segmentów a..g (swój kod dla liczb BCD 0..9) dla czterocyfrowego multipleksowanego 7-segmentowego wyświetlacza LED przeniosłem z EEPROM do FLASH (sorki, trudno mi nie zamącić w jednym zdaniu). Teraz czytanie z EEPROM następuje tylko przy włączeniu zasilania i tylko zapamiętanej tam ostatnio dwubajtowej liczby w kodzie NB. Wygląda, że jest dobrze. Czyżby częsty odczyt z EEPROM, jaki ma miejsce przy aż czterech wyświetlaczach LED powodował, że z wyłączeniem zasilania często trafiamy na chwilę odczytu i właśnie to psuje zawartość EEPROM? Byłaby to 'zdrada' ze strony Atmela, no bo w trakcie zapisu owszem, ale przy odczycie...?
Odnośnie Twojego pytania, nie mam zielonego pojęcia o BASCOMie. Z tych wzorów widzę tylko, że to chyba ma związek z przekodowaniem NB na dziesiętny?
Odnośnie Twojego pytania, nie mam zielonego pojęcia o BASCOMie. Z tych wzorów widzę tylko, że to chyba ma związek z przekodowaniem NB na dziesiętny?
Re: EEPROM w ATtiny26
W swojej praktyce natkąłem się na podobne zjawisko. Używałem mikrokontrolera AT90S8515 do zapisu pewnych parametrów i nastaw istotnych dla pracy użądzenia. Program po resecie jedynie czytał te parametry i zgodnie z nimi realizował coś tam. Blok danych zapisywany w EEPROM był opatrzony sumą kontrolną CRC16, co pozwalało wykrywać najdrobniejsze przekłamania. W przypadku wystąpienie błędnej sumy CRC program generował parametry zastępcze i wraz z poprawną sumą zapisywał w pamięci EEPROM. Zapis do pamięci występował jedynie na żądanie operatora po wcześniejszym zmodyfikowaniu zapisanych parametrów (nidgy nie modyfikował parametrów samodzielnie). Po kilkunastu (czasem kilkudziesięciu) cyklach związanych z włącz/wyłącz zasilanie zauważyłem, że nastawy wracały do ustawień zastępczych (czyli po stwierdzeniu błędnej sumy CRC program zapisywał w pamięci parametry zastępcze).Grzechu pisze:Witam.
Czy to możliwe, aby w ATtiny26, co któreś włączenie/wyłączenie zasilania, ulegała zmianie zawartość EEPROM?
Najwyraźniej właśnie tak się u mnie dzieje.
Czy ktoś spotkał się z takim zjawiskiem?
Z góry dziękuję za podpowiedzi,
Grzechu.
Nie udało mi się wyjaśnić tego zjawiska pomimo nawet kontaktów z inżynierami będącymi konsultatami w Polsce zatrudnionymi przez firmę ATMEL do odpowiadania na trudne pytania.
Problem chyba już rozwiązałem.
Zauważyłem, że te błędy zależą od rodzaju zasilania (szybkości opadania Vcc przy wyłączaniu).
Włączyłem FUSE BODEN i dla obu progów resetu Vcc=2.7V i Vcc=4.0V, w 100 na 100 wył./wł. jest dobrze!
Czyli zawartość EEPROM bywała zmieniana wtedy, gdy Vcc zbyt wolno spadało poniżej 2.7V.
I teraz pytanie jak to zwalczyć w AT90SXXXX nie wyposażonych w BOD reset, jak np. właśnie AT90S8515...?
Zauważyłem, że te błędy zależą od rodzaju zasilania (szybkości opadania Vcc przy wyłączaniu).
Włączyłem FUSE BODEN i dla obu progów resetu Vcc=2.7V i Vcc=4.0V, w 100 na 100 wył./wł. jest dobrze!
Czyli zawartość EEPROM bywała zmieniana wtedy, gdy Vcc zbyt wolno spadało poniżej 2.7V.
I teraz pytanie jak to zwalczyć w AT90SXXXX nie wyposażonych w BOD reset, jak np. właśnie AT90S8515...?