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