PIC12F1572 HEF -> Wo fängt er an ?

Gast #6166291
Hallo Leute,

Will meinen PIC12F1572 den HEF nutzen.
Nun stellt sich mir die Frage, wo das erste WORD liegt?
In 0x780 ?

Könnnte mir da wer weitehelfen?

Hier ein Link zum DB:
http://ww1.microchip.com/downloads/en/DeviceDoc/40001723D.pdf

Ein Dankeschön im Vorhinein :-*
>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
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
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)
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)
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
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

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.