SRAM i PIC?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

SRAM i PIC?

Inlägg av ankan »

De flesta picar har både EEPROM och SRAM. EEPROMen är väll vanligt EEPROM minne där man kan spara data. Men SRAM delen, vad har man där för data?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> De flesta picar har både EEPROM och SRAM.

De flesta PIC'ar har både Flash, EEPROM och SRAM.

Flash : Programlagring. Tabeller. Statisk data. "Selfwrite" (d.v.s att man kan
skriva till Flash) å¨de flesta lite större modelle (Enhanced Flash).

EEPROM : "Vanligt" EEPROM. Konfigurationsparametrar m.m. Det finns vissa
gränser för hur många gånger man kan skriva til EEPROM, se databladen.

SRAM : Allt annat. Variabler, register eller vad man vill kalla det.
Innehållet "tappas" vid spänningsbortfall. Det minne som används mest.
Användarvisningsbild
Zyxel615
EF Sponsor
Inlägg: 1839
Blev medlem: 9 november 2005, 21:20:43
Ort: Kiruna

Inlägg av Zyxel615 »

Det finns vissa gränder för hur många gånger man kan skriva till flash också, ska väl påpekas...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Helt rätt ! Det skulle jag ha nämnt. Se databladet för detaljer... :-)

Datalagring i Flash tenderar att vara av mer "statisk" art, look-up tabeller och liknande.

En annan stor skillnad är att Flash skrivs (och raderas !) i hela block, på nyare
modeller upp till 64 bytes. Ska man uppdatera en byte/word, så får man först
läsa ut ett helt block till RAM, ändra det som skall ändras, radera blocket och
slutligen skriva tillbaka det justerade blocket till Flash.

EEPROM kan raderas och skrivas om byte för byte.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Jag vet inte om det här gjorde mig klokare. Men vilket minne är det jag kan använda i programmeringen? Alltså arbetsminne eller vad man ska kalla det för. Inte det utrymme där själva programmet ligger utan där man kan spara data under programmets gång.
Det var där jag funderade på skillnaden mellan SRAM och EEPROM. EEPROM verker vara det man använder men SRAMen förstog jag inte vad den var till för.
Varför jag frågar är för att veta vilket minne jag ska kolla på för att veta hur mycket data programmet kan spara när det körs.
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

På en 10Fxxx/12Fxxx/16Fxxx/18Fxxx, alltså flashversionerna, är programminnet FLASH-minne. Ex. vis har PIC16F628A 2K program-ord á 14 bit, alltså är det plats för 2048 instruktioner i programminnet.

SRAM (eller bara RAM) är dataminne, registre som man räknar i och spara data under körning, alltså det minne som raderas när spänningen faller bort.
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Så vad är EEPROM minne till, som finns på en del picar i tex 16F serien?
Användarvisningsbild
Zyxel615
EF Sponsor
Inlägg: 1839
Blev medlem: 9 november 2005, 21:20:43
Ort: Kiruna

Inlägg av Zyxel615 »

För att lagra data som kan komma att ändras, till exempel sensorvärden, men som måste sparas utifall att strömförsörjningen försvinner.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Jag vet inte om det här gjorde mig klokare.

Nähä, då kör vi en ny runda... :-)

> Men vilket minne är det jag kan använda i programmeringen?

Alla typer !
När du programmerar så skriver du ett "program" som kommer att
översättas till maskinkod och lagras i Flash. Detta program kommer när
det körs att hantera variabler i RAM och (eventuellt) skriva och läsa
från EEPROM (och ev. Flash). Så alla typer kan användas, beroende på
vad du vill göra i din applikation..

> Alltså arbetsminne eller vad man ska kalla det för.

Dina variabler (eller vad du nu vill kalla det) lagras i de GPR's som är
tillgängliga i resp PIC modell. GPR = General Purpose Register. Se
databladet för detaljer. GPR's består av RAM minne. GPR delar
adressutrymme med alla FSR's, för övrigt.

> Det var där jag funderade på skillnaden mellan SRAM och EEPROM.

OK. Det är en *jäkla* skillnad.

T.ex så är EEPROM upp till 50.000 *gånger* långsammare att *skriva*
till än RAM (GPR). Så man gör inte det allt för ofta. Det finns även en
begränsning i hur många gånger man kan skriva till EEPROM innan det
är "utslitet". Ca 1-10 milj gånger brukar det vara.

Och EEPROM är ca 5-10 gånger långsammare att läsa från, lite beroende
på hur koden ser ut. Igen, se databladet för detaljer...

> Varför jag frågar är för att veta vilket minne jag ska kolla på för att
> veta hur mycket data programmet kan spara när det körs.

Vad menar du med "spara" ? Spara även efter att spänningen har slagits från ?
Notera att du även på många PIC modeller kan "spara" data i Flash !
Användarvisningsbild
JimmyAndersson
Inlägg: 26579
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Låt säga att man använder en och samma PIC-krets som "utvecklings-exemplar". Även om den klarar 100 000 erase/write till Flash så kanske det kan vara en god idé att byta krets någon gång? Eller händer det "aldrig" att någon förbrukar alla 100 000?

Jag själv är inte ens i närheten visserligen, men det vore lite kul att veta hur stor "oro" man bör ha för detta. :)


Gjorde en liten koll på hur många hex-filer jag har till PIC18F2320. Det var ca 40st. Även om man programmerar varje fil 20 gånger till samma krets så skulle jag bara nå upp till 800 erase/write, men det finns ju de som sitter hela dagarna med detta...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Så längde det är under *utveckling* så är det väl bara att köra
tills den "ger upp". Sedan *kan* det ibland vara klokt att ta en
ny krets för enheten som ska gå i produktion. Det är ju möjligt att
man har misshandlat (med ESD eller liknande) sin utvecklingskrets
en del, och att det finns latenta fel i den...
ankan
Inlägg: 1091
Blev medlem: 12 november 2004, 01:50:35

Inlägg av ankan »

Sodjan. Tack för ett mycket utförligt och bra svar. Nu hänger jag med..
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Föralldel...
Perfekt att du har fått svar på *dina* frågor... :-)
Det där med att "spara data" kanske inte var så viktigt...
Skriv svar