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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.