Forum: Mikrocontroller und Digitale Elektronik Flashen über ISP


von Oliver Jelken (Gast)


Lesenswert?

Habe mal eine Frage zum programmieren eines AT90S8515.
Muß man vor dem programmieren des Flash-Speichers einen
Chip-Erase ausführen ?
Ich habe einen Downloader für diesen Chip programmiert.
Es klappt auch wunderbar.
Nur habe ich festgestellt, daß wenn ich ein Byte speicher, daß
ich aus einem Hi Pegel einen Lo Pegel machen kann. Nur daraus wieder
einen Hi Pegel bekomme ich nicht hin.
Hier mal ein Beispiel

Nach Flash-Erase
$FF also 1111 1111
erneut gleiche Adresse zB.
$F0 also 1111 0000
erneut gleiche Adresse zB.
$C0 also 1100 0000
erneut gleiche Adresse zB.
$53 also 0101 0011
habe aber nun nicht $53 in der Zelle. Habe nun
$40 also 0100 0000 in der Zelle

Also nochmal . Muß ich erst den ganzen Chip wieder löschen und komplett
neu programmieren um nur ein Byte zu ändern?
Habe da irgendetwas von Data Polling im Datenblatt gelesen.
Ich weiß leider nicht was das genau bedeuten soll.

Danke schon mal für eure Hilfe

von Ronny Schulz (Gast)


Lesenswert?

Ja so funktioniert ein Flash oder ein Speicher. Der Flash ist leer, wenn
da als Bit eine 1 gesetzt ist. Das kannst Du auf 0 setzen, aber nicht
umgekehrt, da bleibt nur ein "Erase" übrig. Inwiefern Du den ganzen
Chip löschen musst weiss ich nicht. Normale Flashs können auch
sektorbasiert gelöscht werden.

von Hannes Lux (Gast)


Lesenswert?

Hallo Oliver...

Du wirst den AVR wohl löschen müssen, zumindest wenn du den
Programm-Flash beschreiben willst. Beim EEPROM könnte das möglich sein
(ist ja aus dem AVR-Programm her auch möglich), habe ich aber noch
nicht probiert.

Dass du von H nach L ändern kannst, aber nicht von L nach H, hat damit
zu tun, dass H der unprogrammierte Zustand (also leer) ist und L der
programmierte Zustand (also voll). Leere Zellen kannst du einzeln
nachbrennen, volle aber nicht einzeln löschen... (Genau wie beim guten
alten EPROM...)

...HanneS...

von Oliver Jelken (Gast)


Lesenswert?

Danke für eure Bemühungen.

cu Oliver

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.