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 :-*
Tina schrieb: > Will meinen PIC12F1572 den HEF nutzen. Hallo Tina, ich habe schon mal mit dem Pic12f1572 gearbeitet, aber noch nie etwas von einem HEF gelesen... Wenn Dir geholfen werden soll, musst Du noch etwas mehr verraten. Gruss J.P.
>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
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.
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?
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
:
Bearbeitet durch User
Aber der Flash muss doch vorher gelöscht werden. Also zuerst ein Erase ausgeführt werden. Oder? Stimmt die Reihen Zuordnung zumindest für ein Erase?
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.
:
Bearbeitet durch User
Nachtrag: Es gibt andere Pics, welche ein EEPROM haben, dort ist Byte-weises löschen und schreiben möglich.
HodenleckerMaWin schrieb: > Was soll ein HEF sein? HEF=high endurance flash, immer häufiger beim pic anzutreffen ... im sinne von "spezialisierten" program flash block(s) und ökonomischer optimierung. böse ist, dass der HEF block, die program flash size reduziert. aber trotzdem besser als garnichts. mt
Und dieser HEF kann nicht mit den normalen Flash Routinen beschrieben werden?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.