STM32F103 Flashzelle öfters beschreibbar vor dem löschen?

OP #6335116
Lesenswert?
• ▲
▼
Können die Bits aus dem Flash Speicher vom STM32F103 mehrfach 
hintereinander programmiert werden? Also solange die Bits von '1' auf 
'0' programmiert werden?

Laut meiner Erfahrung nein.

Das geht dann nur, wenn die gesamte Page gelöscht wird.

Also wird dann wohl intern noch ein weiteres Bit pro Flash Zelle 
programmiert, welches anzeigt, dass die jeweilige Zelle bereits 
beschrieben worden ist.

Ich dachte die Flash Zellen verhalten sich wie (E)Eprom Zellen.

Auch geht die Programmierung nur zu jeweils 16 Bit (half-word).
Ein Byte alleine programmieren geht nicht.

Ich hatte eine Routine zum Byte Programmieren geschrieben, welches 
jeweils die andere Hälfte auf den Wert $FF lässt. Aber wie oben 
beschrieben lassen sich die half-word Zellen leider nur einmal 
programmieren.
Gast #6335202
Lesenswert?
• ▲
▼
Stefan ⛄ F. schrieb:
> A. B. schrieb:
>> Es ist ungemein hilfreich, mal in der Doku nachzulesen... PM0075
>
> Da habe ich gerade aus Neugier schon hinein geschaut, aber keine
> Erklärung zur Frage des TO gefunden.

Es waren zwei Fragen. Fast hätte ich jetzt gesagt "Wer lesen kann, ist 
klar im Vorteil":

"In this mode the CPU programs the main Flash memory by performing 
standard half-word write operations. The PG bit in the FLASH_CR register 
must be set. FPEC preliminarily reads the value at the addressed main 
Flash memory location and checks that it has been erased. If not, the 
program operation is skipped and a warning is issued by the PGERR bit in 
FLASH_SR register"

Nachprogrammieren, also weitere Bits auf 0 programmieren geht also 
nicht.
Das war Frage 1.

"The main Flash memory can be programmed 16 bits at a time. The program 
operation is started when the CPU writes a half-word into a main Flash 
memory address with the PG bit of the FLASH_CR register set. Any attempt 
to write data that are not half-word long will result in a bus error 
response from the FPEC."

Ein einzelnes Byte programmieren geht also auch nicht. Das war Frage 2.

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.