Atmel, uložení do eeprom při vypnutí

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
bigjedla
Příspěvky: 26
Registrován: 01 úno 2009, 01:00

Atmel, uložení do eeprom při vypnutí

#1 Příspěvek od bigjedla »

Ahoj, potřeboval bych poradit ohledně amtelu a eeprom. Potřebuju měřit několik veličin a výsledky si ukládat do eeprom a při spuštění vždy načíst veličiny a pokračovat v měření... Vím že eeprom má omezený počet zápisů ale nevím jak to co nejelegantněji vyřešit. Potřebuju uložit co nejvíce vzorků takže buďto uložit do eeprom každou 1s což mi příjde jako ničení té paměti... nebo mě napadlo uložit do paměti data při vypnutí napájení - napětí měřím převodníkem. Pokoušel jsem se to udělat tak že k napájení procesoru jsem připojil kondenzátor 1000uF a oddělil diodou aby se nevybil do zbytku obvodu ale nemá to velkého účinku... data se při poklesu napětí někdy uloží a někdy ne... záleží asi ve které části programu se zrovna nachází.
Máte někdo nějaký jiný nápad jak to udělat? Nebo jestli snad už existuje nějaký standardní způsob jak to řešit?

Uživatelský avatar
Banda
Příspěvky: 1170
Registrován: 22 bře 2005, 01:00
Bydliště: OV

#2 Příspěvek od Banda »

Moc jsem to nepobral. Do eeprom přece ukládám, když já potřebuji. Takže pokud má eeprom 1000000 zápisů, spočítám si jak často potřebuji ukládat, aby mi procesor vydržel třeba 2 roky. Nebo přidám externí paměť do patice, až dojde životnost vyměním za další kus a jedu dál.
Proč po vypnutí? Proč si neuchovat poslední změřený vzorek hlídat napětí a když napětí z nějakého důvodu vypadne, dál neukládat. A pokud je potřeba uchovat poslední naměřenou veličinu, kondenzátor musí na dobu zápisu vystačit. Holt je to potřeba v programu ošetřit, aby po vypnutí napětí přerušil aktuální běh a začal zapisovat do eeprom.

Uživatelský avatar
Crifodo
Příspěvky: 14471
Registrován: 11 říj 2005, 02:00

#3 Příspěvek od Crifodo »

Proč nedefinuješ vypnutí přístroje tak, aby před vypnutím uložil žádané hodnoty z pracovní paměti do eeprom?
Kdo to vypne natvrdo, tak prostě o poslední data přijde.

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#4 Příspěvek od Andrea »

A nezapomeň, vypíná se tlačítkem Start :wink:

Uživatelský avatar
Crifodo
Příspěvky: 14471
Registrován: 11 říj 2005, 02:00

#5 Příspěvek od Crifodo »

A na LCD zobraz text
NYNÍ MŮŽETE MĚŘÁK BEZ OBAV VYPNOUT

Uživatelský avatar
bigjedla
Příspěvky: 26
Registrován: 01 úno 2009, 01:00

#6 Příspěvek od bigjedla »

přístroj se vypíná vypnutím napájecího napětí... procesor neví kdy to bude... v procesoru měřím v hlavní smyčce napětí a když poklesne měly by se data uložit... problém je asi v tom že zbytek hl. programu je docela výpočetně náročný takže i při kapacitě 1000uF se málokdy stačí vše uložit

spočítal jsem že když bych ukládal každou sekundu měla by být výdrž asi 11dní nepřetržitého provozu což není zas tak hrozné číslo...

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#7 Příspěvek od Andrea »

A co to je za hodnoty, že potřebuješ mít uloženou tu starou, když měříš po zapnutí znova?

Uživatelský avatar
bigjedla
Příspěvky: 26
Registrován: 01 úno 2009, 01:00

#8 Příspěvek od bigjedla »

je to do auta a potřebuju ukládat ujetou vzdálenost, čas, a celkovou dobu vstřiku...

přičemž tyto hodnoty se neustále inkrementují abych při každém nastartování nejel od nuly

edit. teď mě napadlo ještě že by se to dalo řešit jiným přístupem... uložit hodnoty pokaždé když rychlost klesne na nulu... ve městěch by počet uložení sice taky byl asi dost velký ale oproti uložení co 1s je to podstatný rozdíl

Uživatelský avatar
Crifodo
Příspěvky: 14471
Registrován: 11 říj 2005, 02:00

#9 Příspěvek od Crifodo »

použij komparátor, který při poklesu napájení vyvolá přerušení, to uloží hodnoty a pak procesor uspí do standby.

Uživatelský avatar
Standa33
Příspěvky: 283
Registrován: 07 lis 2009, 01:00

#10 Příspěvek od Standa33 »

Tohle bych řešil pomocí statické RAM a záložní baterie(aku) pro uP a tu paměť. Potom při poklesu napětí zastavit program(nebo uspat uP), pokačovat bude zase až při normálním napětí.

Uživatelský avatar
Atlan
Příspěvky: 4499
Registrován: 10 kvě 2004, 02:00
Bydliště: Košice

#11 Příspěvek od Atlan »

existuju zalohovacie kondiky 0,047F pripadne 0,1F na 5V ani to nestaci ?
http://thorn.inshop.sk/inshop/elektroni ... ty-radial/

Uživatelský avatar
bigjedla
Příspěvky: 26
Registrován: 01 úno 2009, 01:00

#12 Příspěvek od bigjedla »

páni to jsem ani nevěděl ža takové kondenzátory existují 8O díky za tip to bude asi nejschůdnější cesta, zkusím se po nich v ostravě podívat

jinak mě ještě napadla možnost ukládat každých ujetých 100m (což určitě stačí) a pak by byla životnost 100 000km a to se už blíží zbývající životnosti aut do kterých by to bylo určené (felicie)

edit: tak u nás mají kondenzátory E100G (0.1F???) za 32,- což stojí za zkoušku. Může být na 5.5V když používám klasické 5V napájení? To je asi celkem na hraně nee?

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#13 Příspěvek od rnbw »

Myslim, ze tie kondenzatory nebudu velmi dobre znasat teploty -20-50 stupnov. Radsej si tam prived trvalych 12V (ako do autoradia.

Uživatelský avatar
Crifodo
Příspěvky: 14471
Registrován: 11 říj 2005, 02:00

#14 Příspěvek od Crifodo »

aby pak řešil ztrátu údajů jako při nechtěném odpojení autorádia?
Jestli tomu rozumím, tak se jedná o údaje v rozsahu několika bajtů, ty se přece můžou normálně v provozu inkrementovat v RAMce a po skončení provozu uschovat do EEPROM, a po zapnutí zas načíst. Proč to komplikovat nějakým vyhodnocováním rychlosti, trvalým napájením a podobnýma komplikacema?

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#15 Příspěvek od rnbw »

To by bolo najlepsie riesenie, len to zjavne autor nevie urobit.

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“