Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
urosg Član


Pridružen-a: Pet 27 Apr 2007 14:30 Prispevkov: 565 Aktiv.: 2.56
|
Objavljeno: Sob Maj 09, 2009 5:10 pm Naslov sporočila: FLASH Memory kako se izrablja? |
|
|
Pripravljam si eno malo zadevo, s katero bi si logiral razlicna stanja - enostavno povedano zapisoval bi si dolocene vhodne podatke.
Za spomin sem mislil uporabiti 4Mbit FLASH spomin, ki je organiziran kot 512k x 8, kar pomeni, da ima 8 sektorjev po 512kbit-ov.
Kar me pa zanima je, glede na to, da ima flash nekje 100.000 moznih zapisov me zanima, ali je to ponavadi za sektor, kar pomeni, ce zapisujem vedno samo 1byte na eno in isto mesto in to naredim 100.000krat ali s tem "unicim/izrabim" cel sektor (512kbitov) ali samo tisti byte?
Ce sem sam prav razumel je verjetno prva (slabsa) varianta - cel sektor?
Ce je to res, me zanima kaksne alternative priporocate ker bi rad imel zadevo, da deluje par let (10+), zapisov(prepisov) je pa lahko tudi vec tisoc / dan.
LP, Uros |
|
Nazaj na vrh |
|
 |
red_mamba Član


Pridružen-a: Ned 20 Feb 2005 17:56 Prispevkov: 1486 Aktiv.: 6.27 Kraj: Yogyakarta
|
Objavljeno: Sob Maj 09, 2009 5:51 pm Naslov sporočila: |
|
|
sd kartica po moje _________________ Bad things happen to good people all the time for no reason!
Blog |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.56
|
Objavljeno: Sob Maj 09, 2009 6:11 pm Naslov sporočila: |
|
|
FRAM (idealna resitev za tvoj problem), oziroma ce zelis zelo mocno komplicirati, SRAM + baterija.
Vse drugo je nesmiselno pri 1000+ vpisih na dan, sploh ce ne izvajas cisto nobenega write-levellinga. _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
urosg Član


Pridružen-a: Pet 27 Apr 2007 14:30 Prispevkov: 565 Aktiv.: 2.56
|
Objavljeno: Sob Maj 09, 2009 7:33 pm Naslov sporočila: |
|
|
Ja razmisljal sem tudi o SRAM+baterija, vendar se s tem res ze komplicira.
Za flash me zanima predvsem ali se res cel sektor "izrablja" ali samo tisti byte.
SD kartica ni veliko boljsa od tega ce dam svoj FLASH gor, prednost je edino ce uporabim FS da meni ni treba delati kontrole kam se kaj zapise in ne rabim kontrolirati kolikokrat sem ze zapisal na eno pozicijo itd. (to sem sicer mislim delati pri FLASHu) samo ce se "izrablja" celoten sektor mi to ne pomeni veliko.
Bom pa malce pogledal se za FRAM. |
|
Nazaj na vrh |
|
 |
Umnik Član

Pridružen-a: Čet 16 Sep 2004 17:52 Prispevkov: 958 Aktiv.: 4.04 Kraj: Novo mesto
|
Objavljeno: Sob Maj 09, 2009 8:27 pm Naslov sporočila: |
|
|
"Kuri" se cel sektor, zato je pametno naenkrat zapisovat toliko podatkov, kolikor je velik en sektor. |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.56
|
Objavljeno: Sob Maj 09, 2009 8:52 pm Naslov sporočila: |
|
|
urosg je napisal/a: |
Bom pa malce pogledal se za FRAM. |
Poglej kar na Farnell, mislim da se ga pri nas ne dobi. Ni sicer pretirano poceni, je pa cenejsi kot zamenjava baterij + SRAM + tveganje izgube podatkov zaradi izpada baterije. _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
domen_puncer Član

Pridružen-a: Čet 01 Maj 2008 13:30 Prispevkov: 78 Aktiv.: 0.37 Kraj: Ljubljana, Mozirje
|
Objavljeno: Sob Maj 09, 2009 9:39 pm Naslov sporočila: |
|
|
Zakaj pa ne takole:
Zbrišes sektor, zaporedno pišeš podatke... dokler ne prideš do konca sektorja. goto start;
S tem boš namest 100k write ciklov imel 100k*velikost_sektorja/velikost_podatka.
Torej 512kB/velikost_podatka * 100k - pri 100B podatkih je to skoraj 20 let.
Ali pa je moje razumevanje napačno, in moraš FLASH ne samo brisati po sektorjih ampak tudi pisati? _________________ Tiskanje sudoku |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.56
|
Objavljeno: Sob Maj 09, 2009 10:13 pm Naslov sporočila: |
|
|
Nekam bi potem moral shranjevati kazalec na zadnji vpisan podatek (kam in kako dolgo bo prezivela ta lokacija ?) ali pa podatke sproti stevilciti (to zmanjsa kapaciteto), sicer ne bi vedel kateri vpis je zadnji, razen ce vrednost nikoli ne more biti enaka izbrisani lokaciji (kar ze spet zmanjsuje uproabno kapaciteto) ... ce ob tem seveda odmislimo dejstvo, da se flash programira v blokih in ne bajt po bajt. _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
urosg Član


Pridružen-a: Pet 27 Apr 2007 14:30 Prispevkov: 565 Aktiv.: 2.56
|
Objavljeno: Ned Maj 10, 2009 7:54 am Naslov sporočila: |
|
|
Ja ni problem pisat katera lokacija je zadnja in kolikokrat je bila ze zapisana.
S takim nacinom zapisa bi se potem "premikal" naprej po pozicijah, ko bi bil pri eni zapisan stevec 100k...
Samo to nic ne pomaga, ker se "izrablja" cel sektor, t.j. ce zapisujem npr. 5byte-ov (2byte-a za podatek ter 3 za stevec) se mi bo cel sektor (64kbytov) "izrabil" po 100k zapisih teh 5byte-ov. |
|
Nazaj na vrh |
|
 |
mucek4 Član


Pridružen-a: Sob 18 Jun 2005 20:52 Prispevkov: 2952 Aktiv.: 12.46 Kraj: Tržič - Mesto med gorami
|
Objavljeno: Ned Maj 10, 2009 8:48 am Naslov sporočila: Re: FLASH Memory kako se izrablja? |
|
|
urosg je napisal/a: |
Za spomin sem mislil uporabiti 4Mbit FLASH spomin, ki je organiziran kot 512k x 8, kar pomeni, da ima 8 sektorjev po 512kbit-ov. |
Nekaj mi ne gre 512k x 8 pomeni 5k naslovov po 8 bitov = 1 byte. Kje ti vidiš tukaj sektor?
Drugače pa če že verjameš da ima tvoj eeprom sektorje (tako kot SD kartica) Brišeš lahko samo celoten sektor. Tudi celega moraš naenkrat vpisati. Če želiš podatku, ki je že na sektorju dodati 1 byte, moraš cel sektor pobrisati in na novo vpisati vse byte. |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.56
|
Objavljeno: Ned Maj 10, 2009 9:40 am Naslov sporočila: |
|
|
V glavnem ... FRAM. _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
urosg Član


Pridružen-a: Pet 27 Apr 2007 14:30 Prispevkov: 565 Aktiv.: 2.56
|
Objavljeno: Ned Maj 10, 2009 1:34 pm Naslov sporočila: |
|
|
mucek4: 512k x 8 = 4Mbit - kot sem napisal 512kbitov po 8 sektorjev
sokrat: ja res je najboljsa izbira v tem primeru FRAM in zaradi stevila moznih zapisov je lahko tudi toliko manjsi kot sem prej racunal s tem pa pridem skoraj na enako ceno kot prej z FLASHom |
|
Nazaj na vrh |
|
 |
domen_puncer Član

Pridružen-a: Čet 01 Maj 2008 13:30 Prispevkov: 78 Aktiv.: 0.37 Kraj: Ljubljana, Mozirje
|
Objavljeno: Pon Maj 11, 2009 8:03 pm Naslov sporočila: |
|
|
Ne vem kaj je narobe z mojim načinom oz. zakaj se vsi izogibate celo komentirat o tem.
Pri NOR flashu se briše sektor, programiraš lahko pa posamezne bajte (no... bite lahko postavljaš na 0, obratno seveda ne). Torej imas 512kB sektor 0xffffff...
in zapisuješ zaporedno podatke, dokler ne prideš do konca. Paziti je treba le, da nimaš 0xff v podatkih (lahko uporabiš npr. 0x00 0x01 kot sekvenco za 0xff, pa potem 0x00 0x00 za 0x00). Konec zapisanih podatkov je kjer je prvi 0xff. _________________ Tiskanje sudoku |
|
Nazaj na vrh |
|
 |
surla Član

Pridružen-a: Ned 14 Dec 2003 15:22 Prispevkov: 722 Aktiv.: 3.05 Kraj: Ljubljana
|
Objavljeno: Pon Maj 11, 2009 8:13 pm Naslov sporočila: |
|
|
To sem jaz že počel z eepromi .
Drugače pa lahko pišeš do velikosti enega pagea v kontrolerjev ram in ko je podatkov za en page jih vpišeš v flash.
Če ti vmes izpade napetost si prej izdelaš detektor izpada na neglajeni strani napajanja in zahvaljujoč enemu orjaškemu elektrolitu imaš čas pospraviti vsebino rama v flash.
To sem že delal in deluje že kar nekaj let. |
|
Nazaj na vrh |
|
 |
|