 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
marko Član



Pridružen-a: Sre 07 Jan 2004 15:14 Prispevkov: 755 Aktiv.: 3.19
|
Objavljeno: Sob Jan 23, 2010 11:21 am Naslov sporočila: Zascita FLASH-a pred izgubo napajanja |
|
|
Zivjo,
imam vezje, ki stalno zapisuje podatke v FLASH. Sedaj pa me zanima na kaksen nacin se resuje izgubo (ali padec) napetosti na vezju, ali pa ce se vezje "obesi", torej, da bi flash se vedno zapisal tisti del, ki se ga je namenil. Je to reseno z dodatno baterijo ali kaksnim drugacnim vezjem za nadzor napetosti, ki ima se en kondenzator toliko, da program zakljuci svoje?
Hvala!
|
|
Nazaj na vrh |
|
 |
MarkoM Član

Pridružen-a: Tor 12 Sep 2006 15:29 Prispevkov: 2825 Aktiv.: 12.37 Kraj: Lovrenc na P.
|
Objavljeno: Sob Jan 23, 2010 11:27 am Naslov sporočila: |
|
|
Npr. goldcap kondenzator.
|
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.42
|
Objavljeno: Sob Jan 23, 2010 11:45 am Naslov sporočila: |
|
|
Ločen elektrolit + detekcija izpada napajanja... Ob izpadu gre uC v prekinitev in zapiše, kar pač mora.
Sicer pa FLASH ni ravno primeren za stalno zapisovanje. Namesto njega si omisli kak FRAM, ki preživi 10^10 zapisov.
_________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
marko Član



Pridružen-a: Sre 07 Jan 2004 15:14 Prispevkov: 755 Aktiv.: 3.19
|
Objavljeno: Sob Jan 23, 2010 11:53 am Naslov sporočila: |
|
|
gumby je napisal/a: |
Ločen elektrolit + detekcija izpada napajanja... Ob izpadu gre uC v prekinitev in zapiše, kar pač mora.
Sicer pa FLASH ni ravno primeren za stalno zapisovanje. Namesto njega si omisli kak FRAM, ki preživi 10^10 zapisov. |
Zivjo,
a) kako se izvede taka detekcija izpada napajanja?
b) katero prekinitev se izvede? Ena od zunanjih (bi rabil prosti pin na uc?)
c) zapisujem vecje kolicine (logiranje), rabim vsaj 4MB ali vec in moram zadevo "zdownloadati" na racunalnik kasneje, tudi ce vezje vmes ugasnem.
|
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.42
|
|
Nazaj na vrh |
|
 |
marko Član



Pridružen-a: Sre 07 Jan 2004 15:14 Prispevkov: 755 Aktiv.: 3.19
|
Objavljeno: Sob Jan 23, 2010 12:45 pm Naslov sporočila: |
|
|
gumby je napisal/a: |
a) možnosti je več, eno principielno vezavo imaš na sliki
b) najbolj enostvano je uporabit pin za direktno prekinitev (lahko tudi IOC, če INT ni več prost)
c) zapisuj sproti, in ne boš potem rabil megabajte zapisovat v zadnji milisekundi  |
c) Podatke seveda zapisujem sproti, ampak zgodovino se vedno rabim Ce pride do izpada napetosti, bi zapisal samo 1 blok (255 bytov).
|
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.42
|
Objavljeno: Sob Jan 23, 2010 1:00 pm Naslov sporočila: |
|
|
FRAM je precej hiter, timingi so v nanosekundah... za 255B boš potreboval samo par milisekund.
_________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.32
|
Objavljeno: Sob Jan 23, 2010 1:46 pm Naslov sporočila: |
|
|
Detekcija izpada napetosti je obvezna. Kar se pa zapisovanja tiče, je pa najbolj pomembna organizacija shranjevanja podatkov. Zapisovane v Flash tako malega števila bytov je seveda neekonomično, razen, če je flash narejen s tako majhnimi bloki in to omogoča.
Lahko pa začasne vpise omejiš na manjše enote (recimo 1KB) in zapisuješ dvojno. V FRAM manjše kapacitete shranjuješ vmesne podatke, ki se notri hranijo toliko časa, dokler ne dosežeš število bytov, s katerim lahko normalno zapišeš flash (recimo da je t 1KB) . Ko so ti podatki zanesljivo zapisani v flash, postaviš zastavico v FRAMu, da je vse OK. Ker ne boš vpisoval vedno v isto lokacijo, boš lahko ob morebitnem izpadu lahko poiskal kateri podatki so bili zadnji varno zapisani in kateri ne.
Kvazi file system s kvazi wear levelingom, power fail safe, pa še garbage collection ni potreben, ker imaš fiksno dolžino zapisov. Madonca, koliko buzz wordov je tu notri
_________________ Answers: $1, Short: $5, Correct: $25, dumb looks are still free. |
|
Nazaj na vrh |
|
 |
marko Član



Pridružen-a: Sre 07 Jan 2004 15:14 Prispevkov: 755 Aktiv.: 3.19
|
Objavljeno: Sob Jan 23, 2010 2:22 pm Naslov sporočila: |
|
|
Glitch je napisal/a: |
Detekcija izpada napetosti je obvezna. Kar se pa zapisovanja tiče, je pa najbolj pomembna organizacija shranjevanja podatkov. Zapisovane v Flash tako malega števila bytov je seveda neekonomično, razen, če je flash narejen s tako majhnimi bloki in to omogoča.
Lahko pa začasne vpise omejiš na manjše enote (recimo 1KB) in zapisuješ dvojno. V FRAM manjše kapacitete shranjuješ vmesne podatke, ki se notri hranijo toliko časa, dokler ne dosežeš število bytov, s katerim lahko normalno zapišeš flash (recimo da je t 1KB) . Ko so ti podatki zanesljivo zapisani v flash, postaviš zastavico v FRAMu, da je vse OK. Ker ne boš vpisoval vedno v isto lokacijo, boš lahko ob morebitnem izpadu lahko poiskal kateri podatki so bili zadnji varno zapisani in kateri ne.
Kvazi file system s kvazi wear levelingom, power fail safe, pa še garbage collection ni potreben, ker imaš fiksno dolžino zapisov. Madonca, koliko buzz wordov je tu notri  |
Ta ideja z bufferingom ni slaba, mi pa edino malo zakomplicira vse skupaj, ker mi ze takoj primanjkuje pinov. Tako pa bi moral potem na SPI vodilo dodati se multiplekser, ki bi enkrat izbiral FRAM, drugic pa FLASH.
|
|
Nazaj na vrh |
|
 |
Glitch Član

Pridružen-a: Pet 07 Apr 2006 11:40 Prispevkov: 1477 Aktiv.: 6.32
|
Objavljeno: Sob Jan 23, 2010 2:48 pm Naslov sporočila: |
|
|
Namesto FRAMa lahko uporabiš notranji SRAM, če ima ločeno baterijsko napajanje. Nekateri mikroti imajo RTC z ločenim napajanjem, kjer imajo še kakšen KB statičnega pomnilnika.
Drugače ima pa SPI ima v te namene chip select, tako potrebuješ samo en pin.
Univerzalne rešitve seveda ni. Mogoče se najde celo bolj enostavna rešitev, vendar boš moral povedati tudi kateri mikro imaš, kateri flash imaš, kakšne spremembe oz. dodatke si še lahko priviščiš, itd.
_________________ Answers: $1, Short: $5, Correct: $25, dumb looks are still free. |
|
Nazaj na vrh |
|
 |
marko Član



Pridružen-a: Sre 07 Jan 2004 15:14 Prispevkov: 755 Aktiv.: 3.19
|
Objavljeno: Pon Jan 25, 2010 6:49 pm Naslov sporočila: |
|
|
Glitch je napisal/a: |
Namesto FRAMa lahko uporabiš notranji SRAM, če ima ločeno baterijsko napajanje. Nekateri mikroti imajo RTC z ločenim napajanjem, kjer imajo še kakšen KB statičnega pomnilnika.
Drugače ima pa SPI ima v te namene chip select, tako potrebuješ samo en pin.
Univerzalne rešitve seveda ni. Mogoče se najde celo bolj enostavna rešitev, vendar boš moral povedati tudi kateri mikro imaš, kateri flash imaš, kakšne spremembe oz. dodatke si še lahko priviščiš, itd. |
Zivjo,
najprej hvala vsem za trud.
Jedro vsega skupaj je ATMEGA644. Vem, da ima SPI chip select, ampak moram se vedno z enim pinom izbrati kater chip bom izbiral, in z drugim nastaviti vrednost? (Namesto sedanjega 1 pina bi potreboval 2) - ali se ne razumeva pravilno? Flash imam tale A25L40PT-F (4mbit, 512k x 8bit, http://www.farnell.com/datasheets/34130.pdf)
Sedaj ko berem vse te vase komentarje, sem zacel razmisljati, da bi bilo mogoce bolje, ce bi zadevo zapisoval na nek mali FRAM in potem na SD ali MMC kartico, ki so danes prakticno zastonj glede na kapaciteto. Tako bi tudi enostavno potem "downloadal" podatke na racunalnik. (FAT driverji so pa tudi prakticno ze napisani za avrje). Ce bi med vpisovanjem v FRAM prislo do napake (izguba napajanja), se pac zadnji vzorec ne bi vpisal in bi naredil "flush" na sd/mmc kartico ob bootu. Celotno vezje je sele na "papirju", tako da je vse se odprto. Sicer me base malo zasedenost pinov, ampak vseeno ce je nuja, se pac tudi kaj nujnega vstavi v vezje.
Se vedno pa me bega detekcija izpada. Namrec ali je tu govora o navadnem voltage comparatorju ali je tu misljen prav namenski chip? Obstaja kje kaksno narejeno vezje, da lahko preverim? Gumby je sicer pripel tole vezje, vendar me bega kako naj nastavim "prag za INT", ko pa bo ta takoj napacen ob izgubi napajanja. Obstaja kje kaksno namensko vezje ze narejeno (preizkuseno) za take primere?
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 491 dni
Powered by phpBB © 2001, 2005 phpBB Group
|