PIC 32 Program Memory benützen 512K

Gast #3811774
Lesenswert?

Hallo Kurze Frage

Ich will ein int array mit im Speicher des PIC 32 ablegen.. meiner hat 
512K Byte....
also will in den Array Sensor daten abspeichern also in etwa int[32000] 
={0}
(sollte also vom Platz passen ? da mein Programm nicht so groß ist)

den größten Array den ich z.Z anlegen kann ist int [8000] ={0};

Wie benütze ich den Speicher....

Gruß

RL
#3812059
Lesenswert?

Wieso sollen die Daten überhaupt in den Flash? Ich weiß zwar nicht was 
du vor hast, eventuell könnten aber die max. garantierten E/W Cyles des 
Flashs ein Problem werden. Ich weiß nicht welchen PIC du hast, beim 
PIC32MX3XX/4XX z.B. garantiert Microchip 1000 E/W Cycles. Und zudem ist 
der Programmspeicher ein gutes Stück langsamer als das RAM:
Word Write Cycle Time min. 20µs
Gast #3812552
Lesenswert?

danke okay .... 2 sehr gute Antowrten vielen Dank !

ja Program Speicher ist um einiges kleiner... 32 K laut Datenblatt

gibt es ein speziellen Befehl den Array auf den Programm Speicher zu 
sichern ?
gutes Tutorial ... ?

Dieser düfte dann nach dem ein/auschalten wieder da sein.... ist ja 
Programm Speicher...

Schnelligkeit is nicht so wichtig... maximale Schreibzyklen 1000 
Stück... hab ich gelesen... dürfte für 3-4 Jahre benützen okay sein.... 
vorrerst okay... in the nächsten iteration muss ich dann einen Speicher 
dazu hängen....


Gruß

RL
#3812566
Lesenswert?

Raph schrieb:
> danke okay .... 2 sehr gute Antowrten vielen Dank !
>
> ja Program Speicher ist um einiges kleiner... 32 K laut Datenblatt
>
> gibt es ein speziellen Befehl den Array auf den Programm Speicher zu
> sichern ?
> gutes Tutorial ... ?

Die Routinen dazu sind im Harmony Framework bzw. in der PIC32 Peripheral 
Library
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en554265

Ohne Libraries ist es in den normalen Docs beschrieben
http://ww1.microchip.com/downloads/en/DeviceDoc/61121D.pdf
#3812933
Lesenswert?

Du solltest eher externes serielles Flash nehmen. Das hat viel mehr 
Lösch/Schreibzyklen.

zB (es gibt auch noch größere)
http://www.microchip.com/wwwproducts/Devices.aspx?product=SST25VF010A

Denke aber dran, dass Du nur ganze 4k-Blöcke löschen kannst.
Wenn Du es feiner brauchst, nimm einfach ein serielles NVRAM mit 
Batterie. Das kannst Du byteweise beschreiben, weil es eben RAM ist.

http://www.microchip.com/wwwproducts/Devices.aspx?product=23LCV1024

Eine normale CR2032 Knopfzelle an VBat sollte für mindestens 10 Jahre 
gut sein.
Mal nachrechnen: Kapazität einer CR2032 ist 230mAh oder 230000µAh. VBat 
Current laut Datenblatt 1 µA -> 230000h oder 26 Jahre. Sollte reichen.

fchk
#3813155
Lesenswert?

Frank K. schrieb:
> Eine normale CR2032 Knopfzelle an VBat sollte für mindestens 10 Jahre
> gut sein.
> Mal nachrechnen: Kapazität einer CR2032 ist 230mAh oder 230000µAh. VBat
> Current laut Datenblatt 1 µA -> 230000h oder 26 Jahre. Sollte reichen.
>
> fchk

Wenn Batterie + NVRAM in Frage käme, würde ich stattdessen FRAM 
einsetzen. Ist zwar u.U. etwas teurer als das NVRAM spart aber Batterie, 
Batteriehalter etc. pp.
http://www.cypress.com/?id=4984

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren