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



Teraz jest 24 kwi 2024, o 21:56


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 3 kwi 2013, o 05:58 
Offline
Nowy

Dołączył(a): 25 mar 2013
Posty: 7
Pomógł: 0

Witam.

Zastanawiam się nad rodzajem pamięci, którą zastosować w moim projekcie. Pamięć działałaby jako duży bufor/cache np 4MB (coś jak char bufor[86016]). Na koniec bufora wrzucane byłyby dane. Z początku bufora pobierane byłyby dane i wysyłane przez GPRS. Wszystko działałoby w pętli. Ponieważ nie potrzebuję więcej niż 4MB pamięci głupio byłoby zastosować kartę SD, której pojemności liczymy w GB a do tego jej obsługa jest dość skomplikowana. Czy ktoś z szanownych formumowiczów stosował jakieś ciekawe rozwiązanie w tym temacie i może się nim ze mną podzielić ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2013, o 07:11 

Pomógł: 0

Pamięci DATAFlash? po SPI, jeżeli nie potrzebujesz oszałamiających prędkości zapisu czy odczytu.
A biblioteki do sporej ilości dataflasy masz na necie gotowe. np. w swoim KL25Z FRDM zamontowałem 25VF032 32M po SPI



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2013, o 09:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 mar 2013
Posty: 236
Lokalizacja: Warszawa
Pomógł: 5

W sumie jak kolega wyżej napisał wykorzystaj jakąś pamięć flash. ja , np ostatnio programowałem AT45DB011B-1M. W necie masz gotowe funkcje do zapisu poprzez SPI, powodzenia.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2013, o 09:39 
Offline
Nowy

Dołączył(a): 25 mar 2013
Posty: 7
Pomógł: 0

Dziękuję za odpowiedzi. Pamięć flash wydaje się być dobrym pomysłem. Nigdy jeszcze jej nie podłączałem pod uC ale będę próbował. Idealnie by było gdybym znalazł układ w obudowie DIP. Przetestowałbym go sobie na płytce stykowej.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 kwi 2013, o 09:50 

Pomógł: 0

Raczej nie znajdziesz, ale są przejściówki z ssop, sop itp. na DIP więc nie ma problemu.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 12 kwi 2013, o 10:30 
Offline
Nowy

Dołączył(a): 25 mar 2013
Posty: 7
Pomógł: 0

A gdzie najlepiej przechowywać dane o położeniu początku i końca bufora ? Taka zmienna musiałaby być zapamiętana przy każdym zapisie i odczycie z bufora czyli bardzo wiele razy. Musiałaby być też zapamiętana w przypadku braku zasilania.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lip 2013, o 22:55 
Offline
Użytkownik

Dołączył(a): 17 sty 2013
Posty: 327
Lokalizacja: Białystok
Pomógł: 14

ja napomnę, że jeżeli zapis będzie częsty to szybko zużyje się dataflash. Szczególnie pracując jako bufor. Możesz wyliczyć co ile zapisujesz do jednej komórki daną i po jakim czasie zapis do najczęściej zapisywanej komórki przekroczy 100tyś.

Najlepszym rozwiązaniem do tego celu byłby MRAM ale cena powala... na farnell'u można znaleźć. (jeszcze tych nie stosowałem)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2013, o 12:27 
Offline
Użytkownik

Dołączył(a): 17 mar 2013
Posty: 143
Lokalizacja: Bydgoszcz
Pomógł: 2

Witam.

Myślę nad trwałością pamięci. Proszę mnie poprawić jeżeli się mylę. Zakładając, że mamy możliwość zapisu 100.000 razy a pojemność pamięci wynosi 1MB, zapisywana ramka ma 64 bajty, a dziennie będzie zapisywane 2000 ramek to liczę to tak:

- w 1 MB zmieści się 16384 ramki (16 ramek na KB * 1024KB)
- zapis całego 1MB zajmie 16384 / 2000 dzień = 8,192 dnia
- zapisów może być 100.000 więc 100000*8,192 = 819200 dni

Jeżeli się pomyliłem to proszę mnie poprawić. Jeżeli się nie pomyliłem to prędzej taka pamięć się rozsypie ze starości niż z przekroczenia możliwości zapisu.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2013, o 15:23 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

.

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Ostatnio edytowano 6 lis 2015, o 14:05 przez xor, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2013, o 16:30 
Offline
Użytkownik

Dołączył(a): 29 lis 2012
Posty: 1074
Lokalizacja: Sochaczew
Pomógł: 21

A ja sądzę że nie chodzi tu o zapis całej pamięci czy nie całej a raczej o sam fakt zapisu.
Nieważne czy zapisujesz trochę czy całą pamięć, zapis to zapis, zapiszesz 100 000 razy i po ptakach.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2013, o 17:17 
Offline
Użytkownik

Dołączył(a): 17 sty 2013
Posty: 327
Lokalizacja: Białystok
Pomógł: 14

Na kartach pamięci typy flash gdzieś kiedyś wyczytałem i nie wiem na ile to jest prawdą, że wydłuża się żywotność zapisu w sposób jak kolega t__d napisał, czyli zapisujemy fragment pamięci, potem następny itd. a następnie od początku pamięć. w innej z kolei części zapisujemy gdzie zapisaliśmy ostatnie dane (w razie awarii zasilania aby nie nadpisywać ciągle początku pamięci)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 paź 2013, o 20:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 sie 2013
Posty: 230
Lokalizacja: Zabrze
Pomógł: 17

Wikipedia podaje:
Cytuj:
By można było zapisać komórkę pamięci flash, należy ją wcześniej skasować. Nie jest możliwe ponowne zapisanie danych do już zapisanej komórki. Jakkolwiek można odczytać i zapisać dowolną komórkę pamięci, to operacja kasowania umożliwia skasowanie tylko całych bloków komórek. Nie można skasować pojedynczej komórki. Z tego powodu zapis danych nie jest w pełni swobodny. Pamięci te umożliwiają odczyt i zapis dowolnej komórki, ale już nie swobodne kasowanie i nadpisanie zawartości.

Powyższe ograniczenia powodują pewne trudności w obsłudze dostępu do danych w pamięciach masowych. Zapis musi być skoordynowany z operacją kasowania bloków pamięci. Zazwyczaj jeśli plik ma zostać zaktualizowany lub nadpisany, system zarządzania pamięcią tworzy nową kopię pliku w innym miejscu, oznaczając tylko poprzednią wersję jako bezużyteczną. Taka wersja pliku nadal zajmuje wolne miejsce, jest ono zwalniane jeśli operacja kasowania jest możliwa, czyli w danym bloku pamięci nie ma fragmentu innego pliku. W celu efektywniejszego kasowania bloków pamięci możliwe jest też przenoszenie części innych plików (nie wymagających modyfikacji) w inne miejsce, tak by blok nadawał się do skasowania. Dodatkową komplikacją jest fakt, że operacja kasowania jest znacznie dłuższa niż operacja zapisu i odczytu.

Standardowe pamięci EEPROM pozwalają zapisywać lub kasować tylko jedną komórkę pamięci na raz, co oznacza, że pamięci flash są znacznie szybsze, jeśli system je wykorzystujący zapisuje i odczytuje komórki o różnych adresach w tym samym czasie. Wszystkie rodzaje pamięci EEPROM, w tym pamięci flash, mają technologicznie ograniczoną liczbę cykli kasowania (zapisu) – przekroczenie tej liczby powoduje nieodwracalne uszkodzenia.

Zatem wydaje mi się, że wyliczenia t__d można przyjąć za prawdziwe. Bezpieczniej jednak podzielić je przez 4 - ze względu na nieprzewidziane okoliczności (np. mniej trwały egzemplarz pamięci, wpływ temperatury, zakłóceń itp.).

_________________
40-32:2=4!



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 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