Skocz do zawartości

Sterownik silnika 1 przycisk pamieć po utracie zasilania


nebraska

Pomocna odpowiedź

6 godzin temu, ethanak napisał:

Tak przy okazji - nie znalazłem na Allegro tego co kupowałem, ale choćby coś takiego: https://allegro.pl/oferta/pamiec-serial-eeprom-24aa02-i2c-smd-10szt-12816057728 (wychodzi 40 groszy za sztukę).

Dziękuję za link kości zamówione.

Nie wiem czy sobie poradzę z zaprogramowaniem tego nie jestem aż taki biegły.

ethanak w razie czego mogę liczyć na twoją pomoc?

Link do komentarza
Share on other sites

40 minut temu, ethanak napisał:

Jakbym zechciał później zapisywać drugą i trzecią strukturę to oznaczałoby, że program jest źle napisany.

😉

Cytat

Here's the legend: at a computer trade show in 1981, Bill Gates supposedly uttered this statement, in defense of the just-introduced IBM PC's 640KB usable RAM limit: "640K ought to be enough for anybody".

 

Link do komentarza
Share on other sites

29 minut temu, nebraska napisał:

ethanak w razie czego mogę liczyć na twoją pomoc?

W Arduino IDE masz chyba pięć bibliotek do tego. Oczywiście mogę podrzucić swój kod, ale spróbuj lepiej tych bibliotek.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Co za różnica czy strukturę z danymi wrzucasz do zewnętrznego eeprom czy tego wbudowanego? Żadna, zaś w esp8266 (nie wiem jeszcze jak 32) taki zapis do spi flash zawsze odbywa się w pełnych sektorach po 4kbit nie zależnie od pojemności danej struktury czy tablicy. Przy częstych operacjach należy stosować metody wear leveling, tak tylko wspominam zainteresowani znajdą co to jest i czemu się stosuje. 

Edytowano przez _LM_
Link do komentarza
Share on other sites

5 minut temu, _LM_ napisał:

Co za różnica czy strukturę z danymi wrzucasz do zewnętrznego eeprom czy tego wbudowanego?

Baaaaardzo duża dla mikrokontrolerów nie posiadających wbudowanego eepromu 🙂

 

Edytowano przez ethanak
Link do komentarza
Share on other sites

8 godzin temu, _LM_ napisał:

Co za różnica czy strukturę z danymi wrzucasz do zewnętrznego eeprom czy tego wbudowanego? Żadna, zaś w esp8266 (nie wiem jeszcze jak 32) taki zapis do spi flash zawsze odbywa się w pełnych sektorach po 4kbit nie zależnie od pojemności danej struktury czy tablicy. Przy częstych operacjach należy stosować metody wear leveling, tak tylko wspominam zainteresowani znajdą co to jest i czemu się stosuje. 

Zarówno biblioteka preferences jak i littlefs/spiffs używa "pod spodem" wear levelingu.

Może eeprom też - nie wiem, nie używam.

Co do zapisu w sektorach 4k: pamięć flash (NOR) się degraduje od kasowania. Jak skasujesz raz obszar 4k, to teoretycznie możesz jeden bajt zapisać 4 tys razy zanim znów będziesz musiał skasować sektor. Strukturę wielkości 10b czterysta razy, itd.

Link do komentarza
Share on other sites

12 godzin temu, kostuch napisał:

Co do zapisu w sektorach 4k: pamięć flash (NOR) się degraduje od kasowania. Jak skasujesz raz obszar 4k, to teoretycznie możesz jeden bajt zapisać 4 tys razy zanim znów będziesz musiał skasować sektor. Strukturę wielkości 10b czterysta razy, itd.

To aż taka mała żywotność mają preferencje???😱

Link do komentarza
Share on other sites

12 godzin temu, kostuch napisał:

to teoretycznie możesz jeden bajt zapisać 4 tys razy zanim znów będziesz musiał skasować sektor.

Jeszcze warto zapisać jakąś informację gdzie go szukać 😉

BTW LittleFS operuje na długości bloku 4k (czyli pełnych sektorach) czyli żaden tam wear leveling. A preferences to esp32 a nie esp8266 (a od tego się zaczęło).

 

Link do komentarza
Share on other sites

3 godziny temu, farmaceuta napisał:

To aż taka mała żywotność mają preferencje???😱

Jak małą?

Zapisujesz ten przysłowiowy bajt 4tys razy zanim musisz skasować sektor.

Sektorów masz (przy partycji 1M) 256

Sektor możesz skasować jakieś 100tys razy (pesymistyczna wartość z datasheeta)

4000*256*100000 = DUŻO 🙂

2 godziny temu, ethanak napisał:

Jeszcze warto zapisać jakąś informację gdzie go szukać 😉

A preferences to esp32 a nie esp8266

Dlatego napisałem "teoretycznie 4tys" a nie np 4096 🙂

Preferences dla esp8266: https://www.arduinolibraries.info/libraries/preferences

Co z tego że nieoficjalne wg Espressif. Równie nieoficjalny obecnie jest littlefs dla esp32

  • Lubię! 1
Link do komentarza
Share on other sites

Ja tylko powiem tak: różne zastosowania implikują konkretne rozwiązania. Preferences jak sama nazwa wskazuje nie służy do zapisywania co chwilę jednego zmieniającego się bajta, tylko do zapisania sobie ustawień raz na jakiś czas kiedy przyjdzie nam ochota zmienić.

Do zapisywania często zmieniających się stosunkowo niewielkich danych masz eeprom, fram, ew.  statyczny ram z podtrzymaniem bateryjnym.

Do zapisywania większej ilości porcji danych o nieustalonej długości które dużo częściej odczytujesz niż zapisujesz możesz użyć albo przyspawanego do mikrokontrolera flasha, albo karty sd.

Ale @kostuch - nie przekonasz mnie że ten kawałek flasha w esp8266 jest idealny do zastosowania jakiego potrzebuje autor wątku 🙂

Chociaż w sumie można wykorzystać np. jakiegoś PostgreSQL-a na szybkim serwerze 🙂 Tak samo się nada i jeszcze przetrwa nie tylko wyłączenie zasilania, ale spalenie mikrokontrolera razem z całym ustrojstwem.

Link do komentarza
Share on other sites

1 godzinę temu, kostuch napisał:

Jak małą?

Zapisujesz ten przysłowiowy bajt 4tys razy zanim musisz skasować sektor.

Sektorów masz (przy partycji 1M) 256

Sektor możesz skasować jakieś 100tys razy (pesymistyczna wartość z datasheeta)

4000*256*100000 = DUŻO 🙂

🙂

Ok, teraz cokolwiek łapie...😉

Link do komentarza
Share on other sites

2 godziny temu, ethanak napisał:

Ale @kostuch - nie przekonasz mnie że ten kawałek flasha w esp8266 jest idealny do zastosowania jakiego potrzebuje autor wątku 🙂

Daleki jestem od próby przekonania kogokolwiek do czegokolwiek 🙂

Sam używam w budowanym urządzeniu oprócz 8266 małej kostki FRAM 0,5kB

Ale zapisuję co sekundę kilkadziesiąt bajtów i asynchronicznie inne extrasy. Z obliczeń mi wyszło że orając flash i tak by działało kilkanaście/kilkadziesiąt lat, ale takie trochę "inżyniersko nieeleganckie" się wydawało więc zaszalałem 😁

Gdybym miał zapisywać zdarzenie naciśnięcia guzika (nawet co chwilę) to na pewno bym nie dokładał zewnętrznej pamięci - nie dożyłbym momentu, kiedy pamięć flash by się zużyła.

Link do komentarza
Share on other sites

@kostuch widzisz - ja jestem leniwy. Dolutowanie małej kostki eeprom zajmie mi mniej czasu niż kombinowanie z zapisem do flasha (mimo że jestem informatyk a nie elektronik).

Poza tym te metody z flashem są dobre w warunkach amatorskich - w przemysłowych by raczej nie przeszło...

(po rozmowie z kumplem - architekt oprogramowania w dupnej firmie  jednym z klientów jest Inmarsat):

To by nie przeszło przez pierwszy code review.

Edytowano przez ethanak
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.