minne PIC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
persika
EF Sponsor
Inlägg: 1552
Blev medlem: 31 juli 2006, 22:14:37
Ort: Österlen, Skåne

minne PIC

Inlägg av persika »

Om man vill ansluta större minne till en PIC, vad ska man använda då ?
Tänker mig nåt minne för att kunna lagra mätdata i, kanske några kbyte.
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Hur lång tid ska det lagras, och hur ofta ska du skriva över?

Ett seriellt EEPROM (i2c eller spi) ligger väl bra till, om du inte ska skriva tillräckligt ofta för att slita ut ett sånt (isf behövs nog ett RAM av något slag).
Användarvisningsbild
Icecap
Inlägg: 26736
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Om man väljer ett FRAM-minne kan man ha samma seriella minne och en sjuhelvetes massa skrivningar som inte behöver batteri-backup.

Är det högre datahastigheter behövs det nog en paralell RAM för att hänga med men det beror ju just på vad man har för krav.

Det finns inget "naturligt sätt" att ansluta extraminne till en PIC (efter vad jag vet, har inte kollat de nyaste), man måste styra det med portar och program. Det är inte speciellt svårt dock.
Senast redigerad av Icecap 8 augusti 2006, 08:00:46, redigerad totalt 1 gång.
sodjan
EF Sponsor
Inlägg: 43266
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

De senaste FRAM från Ramtron är specade med "unlimited" skrivcykler.
Tidigare modeller var specade till ca 10^10 skrivningar (i princip
"unlimited" det också för alla normala fall, det motsvarar 100 skrivningar
per *sekund* dygnet runt i över 3 år).

Notera också att ett FRAM skriver i "full fart" (d.v.s vad I2C eller SPI bussen
klarar av), ett vanligt EEPROM har skrivtider på ca 5-10 ms/skrivning.

Vissa PIC (18C601 och 18C801) saknar helt internt programminne
och använder upp till 256kbyte (C601) eller 2 Mb (C801) extern minne.

De större PIC18F6xxx och 8xxx kan ställas om för att adressera
externt minne direkt, ett antal vanliga I/O pinnar blir då adress och
data linjer. Det externa minnet mappas in i programadressarean,
så att alla normala funktioner (t.ex table read/write) även fungerar
mot det externa minnet.

Men, i *detta* fall handlar det sannolikt om något externt *data* minne
för lagring av mätdata...
Användarvisningsbild
persika
EF Sponsor
Inlägg: 1552
Blev medlem: 31 juli 2006, 22:14:37
Ort: Österlen, Skåne

Inlägg av persika »

Bra forum der här, många intressanta o bra svar!!

FRAM... nånting nytt för mig, nån ny princip att lagra data ? där står om nåt om ferroelektriskt.

Iaf, jag ska kolla närmre på ett I2C-minne M24256, har kollat i databladet, ska nog att få till ett program i PIC-asm för det.

Såg ett annat seriellt minne på Elfa, var på 8Mb, det kunde bara raderas i 256byte segment, verkar ju vara knöligt att använda ett sånt.
Användarvisningsbild
bengt-re
EF Sponsor
Inlägg: 4829
Blev medlem: 4 april 2005, 16:18:59
Skype: bengt-re
Ort: Söder om söder
Kontakt:

Inlägg av bengt-re »

Hmm jo, stora flashminnen är rätt knöliga att interfaca och oftast så behöver man inte sååå hemskt mycket minne och då duger små seriella EEPROM utmärkt - de är som sagt självklart beroende på applikation då dessa ofta är rätt långsamma att skriva till.
Användarvisningsbild
persika
EF Sponsor
Inlägg: 1552
Blev medlem: 31 juli 2006, 22:14:37
Ort: Österlen, Skåne

Inlägg av persika »

Har kollat en del i datablad för I2C och för ett I2C-minne.
Ser att de två ledningarna SCL o SDA ska drivas av opendrain-utgångar.

Det finns ju inte opendrain-utgångar på PIC-kretsar.

Skulle det funka att alltid ha pinnen på picen som ingång när den ska vara hög och när den ska vara låg ha pinnen som utgång, ändra i TRISIO ?
Användarvisningsbild
lgrfbs
Inlägg: 7367
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg av lgrfbs »

Det finns ju PIC med I2C så det borde ju underlätta lite? 8) :)
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

persika skrev:Skulle det funka att alltid ha pinnen på picen som ingång när den ska vara hög och när den ska vara låg ha pinnen som utgång, ändra i TRISIO ?
Funkar utmärkt. Kan vara lite kladdigt att hela tiden ändra TRIS men det är nog ändå enklaste sättet om man inte använder hårdvara för I2C.
sodjan
EF Sponsor
Inlägg: 43266
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Det finns ju inte opendrain-utgångar på PIC-kretsar.

Många varianter har i alla fall *en* open-drain pinne.
T.ex RA4 på den populära 16F628A.

Men annars är det en vanlig lösning att styra utgången via TRIS
registret i sådana här fall. Det hela ligger ju ljupt ner i en subrutin
i alla fall, så det är inget som man behöver "störas" av... :-)
Skriv svar