PIC12F1572 HEF -> Wo fängt er an ?

#6166607
Lesenswert?

>In 0x780 ?
im datenblatt seite 15 steht es klar und deutlich.

TABLE 3-1: DEVICE SIZES AND ADDRESSES
Device Program Memory Space (Words) Last Program Memory Address 
High-Endurance Flash Memory Address Range(1)
PIC12(L)F1571 1,024 03FFh 0380h-03FFh
PIC12(L)F1572 2,048 07FFh 0780h-07FFh
Note 1: High-endurance Flash applies to the low byte of each address in 
the range
Gast #6166659
Lesenswert?

Peter C. schrieb:
>>In 0x780 ?
> im datenblatt seite 15 steht es klar und deutlich.
>

In meinem vor 6 Jahren gespeicherten DB steht nichts davon(2013-2014).
Habe nun das DB im obigen Link geöffnet und dort steht es tatsächlich 
auf Seite 15, offenbar hat man so einen Ersatz für das nicht vorhandene 
EEPROM geschaffen.
Gruss J.P.
Gast #6167352
Lesenswert?

OK.
Also ist der Speicherbereich von 0780h-07FFh
Es müssen immer 16 Wörter (=32 Bytes) auf einmal geschrieben werden.
Das ergibt 4 Reihen.
Also ergeben sich folgende Reihenadressen:
780h
7A0h (780h + 20h)
7C0h (780h + 40h)
7E0h (780h + 60h)

Ist das so korrekt?
(Firma: @home) #6167372
Lesenswert?

Tina schrieb:
> Es müssen immer 16 Wörter (=32 Bytes) auf einmal geschrieben werden.

nein, die bedingung page/row orientiert gilt nur für löschen!

see and read manual!

10.2.3
...
While executing code, program memory can only be
erased by rows.

10.2.4
...
Program memory can be written one or more words at
a time. The maximum number of words written at one
time is equal to the number of write latches. See
Figure 10-5 (row writes to program memory with
16 write latches) for more details.


mt
(Firma: @home) #6167593
Lesenswert?

Tina schrieb:
> Aber der Flash muss doch vorher gelöscht werden.
> Also zuerst ein Erase ausgeführt werden.
> Oder?

ja/nein!

das hängt davon ab, ob du bestehende werte ungleich 0xff auf der page 
überschreiben willst.


Tina schrieb:
> Stimmt die Reihen Zuordnung zumindest für ein Erase?

ja, warum so unsicher?


benutze den simulator in mplabx und schau dir an was passiert!


mt
#6167971
Lesenswert?

Tina schrieb:
> Aber der Flash muss doch vorher gelöscht werden.
> Also zuerst ein Erase ausgeführt werden.
> Oder?

Ich verstehe das so:
Wenn man Daten in dem row hat, welche man behalten will, sollte man 
vorher das ganze zu löschende row im RAM speichern. Das einzelne zu 
löschende/schreibende word wird nun am betreffenden Ort ins RAM 
geschrieben, das row gelöscht und die im RAM vorhandenen Daten zurück 
ins HEF geschrieben.
Wenn das betreffende row nicht schon mit wichtigen Daten beschrieben 
ist, kann man es einfach löschen und beschreiben.
Es gibt andere Pics, welche ein EEPROM haben, dort ist Byte-weises lesen 
und schreiben möglich.
Gruss J.P.

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