SRAM på ATmega328P

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

SRAM på ATmega328P

Inlägg av Magnus_K »

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?
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: SRAM på ATmega328P

Inlägg av sodjan »

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).
Användarvisningsbild
hawkan
Inlägg: 2621
Blev medlem: 14 augusti 2011, 10:27:40

Re: SRAM på ATmega328P

Inlägg av hawkan »

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.
Användarvisningsbild
rvl
Inlägg: 5782
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: SRAM på ATmega328P

Inlägg av rvl »

Blev en ROM/RAM typo i trådstarten. Från databladet:
The contents of the Register File and SRAM are unaltered when the device wakes
up from sleep.
Men helt "uppenbart" är det inte, t.ex. STM32 har deep sleep mode, där SRAM och register (förutom RTC-relaterade) stryker med.
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.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4694
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: SRAM på ATmega328P

Inlägg av Swech »

vad är det du vill göra i slutänden Magnus

Swech
Användarvisningsbild
Icecap
Inlägg: 26139
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: SRAM på ATmega328P

Inlägg av Icecap »

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.
Användarvisningsbild
rvl
Inlägg: 5782
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: SRAM på ATmega328P

Inlägg av rvl »

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.
Användarvisningsbild
hawkan
Inlägg: 2621
Blev medlem: 14 augusti 2011, 10:27:40

Re: SRAM på ATmega328P

Inlägg av hawkan »

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.
Användarvisningsbild
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

Inlägg av Magnus_K »

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.
SRAM.PNG
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43178
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: SRAM på ATmega328P

Inlägg av sodjan »

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...
Skriv svar