Sida 1 av 1

minne PIC

Postat: 5 augusti 2006, 08:01:00
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.

Postat: 5 augusti 2006, 09:38:10
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).

Postat: 5 augusti 2006, 10:07:15
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.

Postat: 5 augusti 2006, 13:18:32
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...

Postat: 7 augusti 2006, 21:24:06
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.

Postat: 7 augusti 2006, 21:53:16
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.

Postat: 19 augusti 2006, 10:30:12
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 ?

Postat: 19 augusti 2006, 10:38:09
av lgrfbs
Det finns ju PIC med I2C så det borde ju underlätta lite? 8) :)

Postat: 19 augusti 2006, 11:00:56
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.

Postat: 19 augusti 2006, 15:05:14
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... :-)