Forum: Mikrocontroller und Digitale Elektronik Data Polling


von Gerald (Gast)


Lesenswert?

Hallo!

Bin gerade dabei ein C++ Programm zu schreiben, welches mittels der
Serial Downloading Methode die µC von Atmel programmiert. Jedoch
verstehe ich die folgende Passage nicht ganz, welche im Datenblatt
steht:
When a byte is being programmed into the Flash, reading the address
location being
programmed will give the value $FF. At the time the device is ready for
a new byte, the
programmed value will read correctly. This is used to determine when
the next byte can
be written. This will not work for the value $FF, so when programming
this value, the
user will have to wait for at least tWD_PROG before programming the
next byte. As a chiperased
device contains $FF in all locations, programming of addresses that are
meant
to contain $FF can be skipped.

vielleicht könnt ihr mir da beim übersetzten ein wenig helfen! DANKE

von Ralf Altmann (Gast)


Lesenswert?

Ganz einfach:

Solange der Flash beschrieben wird, bekommst du beim Lesen der
Speicherstelle FFh zurück. Erst wenn das Byte geschrieben worden ist,
bekommst du den richtigen Wert beim Lesen (ist ja auch irgendwie
logisch). D.h. solange du FFh ausliest, wird also geschrieben, und
solange musst du warten, bis du das nächste Byte schreiben darfst. Also
Byte schreiben, ständig auslesen bis gelesener Wert = zu schreibender
Wert.

Da das dann ja nicht bei einem zu schreibenden Wert FFh funktioniert
(Endlosschleife!), solltest du in der Schreibroutine prüfen, ob der zu
schreibende FFh ist. Wenn ja, musst du die tWD-PROG-Zeit abwarten.

Ausserdem ist zu empfehlen, ob die zu beschreibende Stelle nicht schon
den Wert hat, der geschrieben werden soll. Das kann die Lebensdauer des
Speichers verlängern.

Gruß Ralf

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
Noch kein Account? Hier anmelden.