SRAM på ATmega328P
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
SRAM på ATmega328P
Har suttit alldeles för länge och klurat på en metod att förlänga livet på det interna EEPROM:et i den här ATmegan.
Av en slump ramlade jag över en artikel (hittar den inte nu tyvärr) som pratade direkt till mig.
Där skrev dom att man kan nyttja det interna ROM:et så länge man inte bryter strömmen för att tex spara nuvarande dataposition i ett EEPROM.
Min fråga är om jag tänker rätt här:
När jag läser databladet för ATmega328P (datablad) så är det just i SRAM där tex I/O konfigureringar och sånt sparas.
Jag har för avsikt att aldrig bryta strömmen, utan istället gå i sleep, och då måste väl ändå SRAM:et fortfarande vara "aktivt" va?
Det står säkert i klartext någonstans men tror säkert den här frågan är uppenbar för vissa av er.
Kan tänka mig att just SRAM:et är en av de saker som drar ström under sleep?
Av en slump ramlade jag över en artikel (hittar den inte nu tyvärr) som pratade direkt till mig.
Där skrev dom att man kan nyttja det interna ROM:et så länge man inte bryter strömmen för att tex spara nuvarande dataposition i ett EEPROM.
Min fråga är om jag tänker rätt här:
När jag läser databladet för ATmega328P (datablad) så är det just i SRAM där tex I/O konfigureringar och sånt sparas.
Jag har för avsikt att aldrig bryta strömmen, utan istället gå i sleep, och då måste väl ändå SRAM:et fortfarande vara "aktivt" va?
Det står säkert i klartext någonstans men tror säkert den här frågan är uppenbar för vissa av er.
Kan tänka mig att just SRAM:et är en av de saker som drar ström under sleep?
Re: SRAM på ATmega328P
Ja, det vore väldigt underligt om vanligt SRAM (Static RAM, d.v.s. det "vanliga minnet")
skulle bli korrupt eller få ett okänt värde enbart av en SLEEP. Helt osannolikt...
Däremot så måste ju applikationen som sådan kunna tåla ett strömavbrott.
Det finns ju även lösningar som extern "supercap" eller batteri för att klara det.
Oklart vad du menar med "I/O konfigureringar". De register som portar, UART o.s.v.
använder är ju också en slags SRAM (d.v.s. att de inte tål strömavbrott).
skulle bli korrupt eller få ett okänt värde enbart av en SLEEP. Helt osannolikt...
Däremot så måste ju applikationen som sådan kunna tåla ett strömavbrott.
Det finns ju även lösningar som extern "supercap" eller batteri för att klara det.
Oklart vad du menar med "I/O konfigureringar". De register som portar, UART o.s.v.
använder är ju också en slags SRAM (d.v.s. att de inte tål strömavbrott).
Re: SRAM på ATmega328P
Sram drar väl ingen ström?
Iallafall så fungerar programmet som vanligt även i lowpowermode eller vad det kallas. Eller ja det går ju inte hela tiden. Nu trasslar jag till det så bäst att sluta.
Iallafall så fungerar programmet som vanligt även i lowpowermode eller vad det kallas. Eller ja det går ju inte hela tiden. Nu trasslar jag till det så bäst att sluta.
Re: SRAM på ATmega328P
Blev en ROM/RAM typo i trådstarten. Från databladet:
Behöver du EEPROM till det du vill lagra, eller går också det at köra i RAM och inte bara positionen? Förusätter i så fall att det går att detektera när man håller på att tappa matningsspänningen i så god tid att det finns energi och tid kvar till en EEPROM-lagring.
Men helt "uppenbart" är det inte, t.ex. STM32 har deep sleep mode, där SRAM och register (förutom RTC-relaterade) stryker med.The contents of the Register File and SRAM are unaltered when the device wakes
up from sleep.
Behöver du EEPROM till det du vill lagra, eller går också det at köra i RAM och inte bara positionen? Förusätter i så fall att det går att detektera när man håller på att tappa matningsspänningen i så god tid att det finns energi och tid kvar till en EEPROM-lagring.
Re: SRAM på ATmega328P
Att spara data även när kretsen är strömlös kräver en EEPROM/FLASH i någon form. Såklart kan det göras med SRAM med back-up också men då måste back-up'en ju klara den maximala tiden som det kan gå.
Men vill man spara ofta och inte skriva slut på en EEPROM är svaret FRAM!
Ett exempel:
Och detta svar har du fått tidigare - fler gångar.
Nu är kretsen jag länkar till en utgående artikel från ELFA men Ramtron har produkter andra ställen.
Men vill man spara ofta och inte skriva slut på en EEPROM är svaret FRAM!
Ett exempel:
Och detta svar har du fått tidigare - fler gångar.
Nu är kretsen jag länkar till en utgående artikel från ELFA men Ramtron har produkter andra ställen.
Re: SRAM på ATmega328P
Det är vi säkert alla överens om att det behövs nonvolatilt minne när apparaten är strömlös. Men som jag förstod det ska kretsen vara kontinuerligt strömsatt, så då känns det sökt att slita EEPROM var femte minut...
Det är väl litet av ett standardförfarande att skriva det man ska ha sparat till EEPROM strax innan strömmen (från kondensatorn på matningen) tar slut. Det gäller bara att kunna detektera när det "slutar rinna in ström" till kretsen.
Det är väl litet av ett standardförfarande att skriva det man ska ha sparat till EEPROM strax innan strömmen (från kondensatorn på matningen) tar slut. Det gäller bara att kunna detektera när det "slutar rinna in ström" till kretsen.
Re: SRAM på ATmega328P
Kretsen har brownout-detektor så kanske "bäst" att använda det.
Att lita på att en processor inte hakar upp sej av någon anledning det får andra göra.
Att lita på att en processor inte hakar upp sej av någon anledning det får andra göra.
- Magnus_K
- EF Sponsor
- Inlägg: 5854
- Blev medlem: 4 januari 2010, 17:53:25
- Ort: Skogen mellan Uppsala-Gävle
Re: SRAM på ATmega328P
När jag skrev I/O konfigureringar så syftar jag på stycket i bild nedan. Det är väl i det här minnet registren finns som håller data om tex en pinne är I eller O mer mera.
rvl, du har ju helt rätt rakt igenom. Det ska vara statiska RAM:et i första inlägget och nu när du väl skrev det så uppenbart så behöver jag ju faktiskt inte blanda in EEPROM:et över huvud taget.
Jag har en liten batteridriven mojäng som går i deep sleep typ 50ggr per dag. Det är 2 bytes som ska sparas undan och jag låste upp mig helt (och felaktigt) på EEPROM.
Får se om jag bryr mig om någon kondensatorbank som backup vid batteribyte men datan är inte så känslig att tappa när det sker så sällan.
Att SRAM drar ström var bara en ren gissning.
Tack för hjälpen och ledsen att jag inte var snabbare att svara.
rvl, du har ju helt rätt rakt igenom. Det ska vara statiska RAM:et i första inlägget och nu när du väl skrev det så uppenbart så behöver jag ju faktiskt inte blanda in EEPROM:et över huvud taget.
Jag har en liten batteridriven mojäng som går i deep sleep typ 50ggr per dag. Det är 2 bytes som ska sparas undan och jag låste upp mig helt (och felaktigt) på EEPROM.
Får se om jag bryr mig om någon kondensatorbank som backup vid batteribyte men datan är inte så känslig att tappa när det sker så sällan.
Att SRAM drar ström var bara en ren gissning.
Tack för hjälpen och ledsen att jag inte var snabbare att svara.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: SRAM på ATmega328P
Ja, de delar adressarea, men själva minnet/registren måste inte vara exakt
likadant uppbyggda rent tekniskt. Vissa egenskaper är dock lika som att det
efter ett strömavbrott är "undefined".
Och SRAM drar alltid ström, hur mycket brukar det finnas siffror på. Eller ja,
det är väl totalt för processorn vid olika SLEEP varianter, men SRAM är
inkluderat där. Bra bild för övrigt över den lite röriga minnes mappen...
likadant uppbyggda rent tekniskt. Vissa egenskaper är dock lika som att det
efter ett strömavbrott är "undefined".
Och SRAM drar alltid ström, hur mycket brukar det finnas siffror på. Eller ja,
det är väl totalt för processorn vid olika SLEEP varianter, men SRAM är
inkluderat där. Bra bild för övrigt över den lite röriga minnes mappen...