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



Teraz jest 1 wrz 2025, o 19:18


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
 Tytuł: Zapis do EEPROM
PostNapisane: 6 mar 2015, o 15:23 
Offline
Użytkownik

Dołączył(a): 24 cze 2014
Posty: 113
Pomógł: 1

Witam,

wydaje mi się, że temat poruszany w poradnikach Mirka, jednak nie mogę sobie przypomnieć czy i gdzie to było.
Mianowicie chodzi mi o koncepcję zapisu do pamięci nieulotnej - konkretnie EEPROM w procku.
Na razie tylko czysto teoretycznie ale docelowo będzie to fizycznie zbudowane urządzenie.
Chodzi o licznik impulsów, które będą pojawiały się z częstotliwością około 10-50 Hz. Zliczone impulsy będą wyświetlane na bieżąco na wyświetlaczu LED - 6 cyfr. Oczywiście po krótkim czasie odliczanie ustaje i na wyświetlaczu można już na spokojnie odczytać wynik. I najprościej wrzucić tą wartość do EEPROM po zatrzymaniu zliczania. Jednak ideałem by było gdyby każdy zliczony impuls mógł trafić do pamięci nieulotnej na bieżąco. Pytanie więc następujące czy tak w ogóle można robić? O ile dobrze pamiętam to ilość gwarantowanych zapisów do jednej komórki EEPROM jest (w teorii) ograniczona do około 100 000. Czyli w moim przypadku szybko bym przekroczył tą wartość. Czytałem gdzieś o metodzie cyklicznego zapisywania do kolejnych komórek po kolei. Jeśli wypisuję tu jakieś brednie to proszę szybko mnie sprowadzić na ziemię :)
Ostatecznie to prosiłbym o jakieś naprowadzenie mnie w jakim kierunku mam pójść, bo na razie to strasznie błądzę i nie wiem jak ugryźć temat i gdzie szukać rzetelnych informacji.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2015, o 17:07 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27424
Lokalizacja: Szczecin
Pomógł: 1044

tec-dive napisał(a):
proszę szybko mnie sprowadzić na ziemię

sprowadzam - bo szybkie zapisy do eeprom to kosmiczny pomysł i niestety mało przemyślany projekt .... jak najszybciej zaprzestań takich nieczystych myśli :lol:

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2015, o 19:12 
Offline
Użytkownik

Dołączył(a): 24 cze 2014
Posty: 113
Pomógł: 1

No tak czułem w kościach, że to nietrafiony pomysł. Dlatego pytałem o koncepcję - jak to rozwiązać. Ostatecznie wystarczy mi zapis po każdym zliczeniu, a to już może być okres kilkunastu minut. Więc tutaj chyba EEPROM już by się nadawał. Tylko nadal nie mogę się doszukać (jeszcze raz poradniki oglądnę - może to mnie troszkę oświeci) czy ma sens zapisywanie kolejnych wyników do kolejnych komórek i dopiero po wykorzystaniu całej pamięci nadpisywanie tych najwcześniej zapisanych. Czy to w ogóle "oszczędza" nam pamięć pod kątem tych ograniczonych cyklów zapisu.
Oczywiście ideałem będzie karta SD i tak też ostatecznie myślę, że zrobię... ale już z samej ciekawości chętnie poznałbym prawdę o tych EEPROM-ach :)

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2015, o 19:14 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3230
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 91

Jak chcesz szybkich zapisów to są jeszcze pamięci RAM podtrzymywane bateryjnie, np. tzw. ZEROPOWER RAM, itp.

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2015, o 19:27 
Offline
Użytkownik

Dołączył(a): 24 cze 2014
Posty: 113
Pomógł: 1

Dziękuję za tą podpowiedź, ale z założenia to ma być prościutkie urządzenie używane sporadycznie i dlatego nie chciałem tam pakować SD. Stąd też pomysł na EEPROM. A ponieważ jakoś słabo rozumiem ten temat - mówiąc wprost - niedouczony jestem ;) to przy okazji chciałem to jakoś potestować. Dowiedzieć się co można, a czego nie powinno się robić z tą pamięcią.

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2015, o 20:19 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27424
Lokalizacja: Szczecin
Pomógł: 1044

Jak sobie czytam twoje założenia z pierwszego postu to się mocno dziwię po co ci w ogóle eeprom ?

Co za problem trzymać to w RAM ? ..... jak mi odpowiesz na to i na kolejne ew pytania to sam zrozumiesz jak to należy zrobić i po co w ogóle jest eeprom bo być może nie do końca zdajesz sobie właśnie sprawę po co jest taka pamięć.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2015, o 21:52 
Offline
Użytkownik

Dołączył(a): 24 cze 2014
Posty: 113
Pomógł: 1

Najprościej mówiąc chciałbym archiwizować do późniejszego odczytu kilka ostatnich wyników. Pomysł z częstym zapisem miał zabezpieczyć przed utratą zliczonych impulsów na wypadek zaniku napięcia. To pewnie można inaczej rozwiązać na zasadzie detekcji zaniku zasilania i wtedy na jakimś podtrzymaniu bateryjnym wszystko wrzucić do jakiejś nieulotnej pamięci. No ale przyznaję się, że kompletnie nie wiem jak to ugryźć żeby było to nazwijmy to "poprawne" rozwiązanie. Bo na tą chwilę czuję, że coś bardzo źle kombinuję :)
Najkrócej.... chcę co jakiś czas liczyć te impulsy. Po zakończeniu zliczania zapisać je tak aby ich nie utracić nawet po zaniku zasilania (czyli RAM odpada). Powiedzmy, że chciałbym zapisywać 10 ostatnich wyników. To co mi pierwsze przyszło do głowy to kontroler+wyświetlacz LED i dwa klawisze. Stąd ten EEPROM.

Jak tak pomyślę to ta pamięć RAM mnie przekonuje, ale jak wtedy ustrzec się przed utratą danych w wyniku zaniku zasilania? Albo po prostu: wyłączam urządzenie, a za jakiś czas chciałbym na nim wyświetlić te ostatnie kilka wyników.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2015, o 22:34 
Offline
Użytkownik

Dołączył(a): 16 sty 2015
Posty: 84
Pomógł: 6

ja podłączę się do pytania bo jest bardzo podobne
czy można jakoś wykryć że dana komórka się "przepaliła"? tzn np jakoś dziwnym trafem ustawia się na 0xFF czy raczej zostaje w takim stanie w jakim ją szlag trafił ??
ja wiem że się tak nie robi i że to jest złe ale po prostu czy można z poziomu programu wykryć coś takiego ??

co do Twojego pytania tec-dive:
ja bym coś kombinował na tej zasadzie żeby zrobić diodę na zasilaniu tak żeby kierunek przewodzenia miała do procesora i zwiększyć kondensatory przy procesorze (mocno na minimum 9k cykli na każdy bajt danych) może to być oczywiście też bateria i wtedy po wykryciu zaniku napięcia na zasilaniu (za pomocą jednego pinu najlepiej przerwaniem int0) wywołać należy procedure awaryjną - wyłączenie wszystkich wyjść i zapis co tam trzeba.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2015, o 22:43 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27424
Lokalizacja: Szczecin
Pomógł: 1044

tec-dive napisał(a):
Albo po prostu: wyłączam urządzenie

No widzisz? ;) i już masz pierwszą podpowiedź ... którą sam sobie dałeś - to wtedy dopiero zapisujesz do eeprom i wtedy to ma sens i nogi....

co zaś się tyczy przypadkowej utraty zasilania to może zamiast rozważać to zagadnienie "od tyłu" bo tak to teraz robisz - tzn tak mi się wydaje - rozważ to "od przodu" ... czyli NAJPIERW określ DOKŁADNIE co to będzie za zasilanie skoro to tak krytyczny argument w twoich założeniach. Bo zasilanie można zaprojektować na wiele sposobów w tym tak żeby było bezawaryjne. A nawet jeśli miałoby zaniknąć to .... proszę bardzo pierwszy przykład z wypowiedzi kolegi wyżej

rekon napisał(a):
ja bym coś kombinował na tej zasadzie żeby zrobić diodę na zasilaniu tak żeby kierunek przewodzenia miała do procesora i zwiększyć kondensatory przy procesorze (mocno na minimum 9k cykli na każdy bajt danych) może to być oczywiście też bateria i wtedy po wykryciu zaniku napięcia na zasilaniu (za pomocą jednego pinu najlepiej przerwaniem int0) wywołać należy procedure awaryjną - wyłączenie wszystkich wyjść i zapis co tam trzeba.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2015, o 23:00 
Offline
Użytkownik

Dołączył(a): 24 cze 2014
Posty: 113
Pomógł: 1

Nie wiem jeszcze jak zautomatyzować zapis przed wyłączeniem urządzenia, żeby nie trzeba było tego ręcznie robić (można zapomnieć o tym w roztargnieniu) ale myślę, że najlepiej zabezpieczyć się przed tym wykrywając zanik zasilania przerwaniem, a na czas zapisu danych podtrzymywać pracę układu z malutkiego akumulatorka. Czy dobrze rozumuję? ;)

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2015, o 23:29 
Offline
Użytkownik

Dołączył(a): 24 cze 2014
Posty: 113
Pomógł: 1

Wszystko ładnie wyjaśnione. Teraz układa mi się to w sensowną całość i przynajmniej wiem od czego zacząć i w jakim kierunku podążać. Oczywiście trafnie zauważyłeś, że to początek mojej drogi. Jednak mam nadzieję, że znajdę wystarczająco dużo czasu i samozaparcia, żeby wykorzystując świetną robotę Mirka i wiedzę forumowiczów podszkolić się na tyle, żeby kolejne pytania nie były już tak banalne ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 mar 2015, o 23:38 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27424
Lokalizacja: Szczecin
Pomógł: 1044

tec-dive napisał(a):
Nie wiem jeszcze jak zautomatyzować zapis przed wyłączeniem urządzenia

jak to nie wiesz ? .... jeśli piszesz ...
tec-dive napisał(a):
Albo po prostu: wyłączam urządzenie,

no to jak wyłączasz to przed wyłączaniem automatycznie zapisujesz - w czym problem ? ;)
Toż w takim wypadku nawet nie potrzebujesz myśleć o zaniku zasilania .... bo wystarczy zrobić przycisk, który obsłuży procek, i pierwsze co wykona to zapisze wszystkie potrzebne dane do eeprom (za jednym razem) a drugie co zrobi to wyłączy sam sobie zasilanie ;) wykorzystując np pin ON/OFF sterujący przetwornicą - bo i tak takiej pewnie będziesz musiał użyć projektując zasilanie bateryjne dla urządzenia (zrozumiałem że na co dzień będzie ono bateryjnie zasilane) ...

a w pozostałych wariantach tej okrutnej utraty zasilania ... znowu przytoczę słuszny pomysł znowu kolegi który pisał wyżej ;)
mokrowski napisał(a):
Stopień autonomii urządzenia dopasuj do jego krytyczności. Mikrokontroler może monitorować własne napięcie, natężenie prądu, stan baterii lub inne czynniki środowiskowe. W najbardziej skrajnym wypadku może to być kondensator o dużej pojemności (uwaga pobór prądu w trakcie zapisu do EEPROM jest zwiększony) jeśli danych jest niewiele lub bateria pracująca miesiącami jeśli urządzenie jest trudno dostępne.


Myślę - i podpowiem ci jeszcze raz - zacznij "od przodu" .... czyli najpierw sam sobie weź kartkę, ołówek i dobrze zaplanuj działanie projektu ... bo z tego wprost wynikną ci przede wszystkim kwestie zasilania i to OD NICH zacznij ....

a nie od pomysłu zapisu do eeprom - na zasadzie "jak często?" - bo sam widzisz - że idąc "od tyłu" droga zaczyna się wydłużać a czas .... a czas ucieka ;)

------------------------ [ Dodano po: 1 minucie ]

tec-dive napisał(a):
żeby kolejne pytania nie były już tak banalne

Pytać ZAWSZE warto ... ważne właśnie aby wyciągać z tego wnioski i próbować różnych rozwiązań z takich podpowiedzi a na końcu pewnie uda ci się nawet wypracować własną drogę i to będzie dla ciebie najcenniejsze ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 mar 2015, o 00:02 
Offline
Użytkownik

Dołączył(a): 24 cze 2014
Posty: 113
Pomógł: 1

Zasilanie będzie z sieci, bo 6 segmentów LED. O przetworniczce też właśnie pomyślałem, że ten pin można wykorzystać do wyłączenia zasilania, a przedtem dokonać zapisu do pamięci. A ten nieszczęsny, wymyślony przeze mnie zanik zasilania to zawsze można tym małym aku załatwić. I coś mi się wydaje, że strasznie z tym demonizuję ;) Odcinam się więc grubą krechą od okrutnej energetyki, która siedem razy na godzinę będzie mi wyłączała prąd :lol: i zaczynam myśleć od przodu: zapis do RAM, konfiguracja przetwornicy do wyłączania z procka i automatyczne przepisanie danych do EEPROM przed wyłączeniem układu. A na koniec zostawię sobie kwestię tej okrutnej energetyki co tylko czyha, żeby pozbawić mnie moich drogocennych pomiarów ;)
Dziękuję wszystkim za pomoc i sprowadzenie na ziemię :)

_________________
.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 mar 2015, o 00:14 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27424
Lokalizacja: Szczecin
Pomógł: 1044

Popatrz sobie na stronkę:
http://atnel.pl/przetwornice-atb-pwr-3.html

"(3) Tryb z włącznikiem i PWR DOWN"

jako przykład ... można to zrealizować na dowolnej przetwornicy nie koniecznie na tej naszej

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 mar 2015, o 00:27 
Offline
Użytkownik

Dołączył(a): 24 cze 2014
Posty: 113
Pomógł: 1

Ależ ja mam tą przetwornicę w zestawie ATB, a poza tym już jakiś czas temu wzorując się na niej dodaję taki układ do każdej swojej płytki zamiast 7805 :) Tylko do tej pory nie stosowałem tych dodatkowych elementów do sterowania ale tym razem na pewno ich użyję.

_________________
.



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: 15 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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