EPROM-Programmierung - eine Wissenschaft für sich |
![]() |
![]() |
Letztmalig dran rumgefummelt: 04.02.08 15:54:23 |
![]() |
Hierbei handelt es sich um Zusatzbausteine, welche sich rund um den Prozessor ranken, aber selbst keine Prozessorbaugruppen wie SIO, PIO; CTC, DMA sind. Hierzu gehören generell alle Funktionen der Adress-Decodierung, Signalverstärkung auf den BUSsen, Datenspeicherung, der Signalverzögerung. Allen Bausteinen ist gemein, dass sie adressiert werden müssen und ein "Chip-Select" oder "Chip-Enable" trifft die Auswahl des konkreten Bausteins innerhalb der Menge. |
||||||||
![]() |
1. Technisch-organisatorischer Rahmen 2. Löschen von EPROMs 3. Programmierung von von EPROMs 4. Tipps'n Tricks 5. Typenliste und Programmiervorschriften |
||||||||
![]() |
|
![]() |
Insgesamt können die hier vorgestellten IS als das "Zubehör" zur Steuerungstechnik neben den Standard-Rechnerbaugruppen gesehen werden ;-) |
1. Technisch-organisatorische Rahmenbedingungen |
![]() |
![]() |
![]() |
![]() |
EPROMs sind teuer (man schaue einfach nur mal in die aktuellen Preislisten) und daher erfordert ihr Einsatz schon ein gewisses Know How.Aus aktueller Sicht scheint es gerarten, auf moderne CMOS-Typen mit großer Kapazität zurück zu greifen - diese sind einfach ökonomischer. Für unsere "unmodernen" Schaltungen hat dies leider zur Konsequenz, dass die Schaltungen der Pin-Belegung eben dieser EPROMs angepasst werden sollten (was natürlich für den gewieften Elektroniker kein Problem ist) |
![]() |
falsch polen lieben EPROMs gar nicht :-( |
![]() |
Fertigungsnummer ist die 27XX - die CMOS-Typenpalette mit 27CXX,was logischerweise für Behandlung sowie Programmierung Konsequenzen hat |
![]() |
Wie und wo finde ich EPROM-Typen? |
![]() |
der Nutzer benötigt eine Löschanlage - das hab' ich auch schon mit 'ner ganz normalen Höhensonne gemacht (das reicht) - dies ist der billige Teil |
![]() |
nicht mehr ganz so preiswert kommt man mit der Programmiervorrichtung hin |
![]() |
nicht zu vergessen natürlich - die EPROM selbst |
2. Löschen von EPROMs |
![]() |
![]() |
![]() |
![]() |
Hier benötigen wir 'ne UV-Lampe faktisch beliebiger Herkunft. Höhensonne funktioniert ebenso, wie Tönungsföns - was sich Frauen nicht alles antun. Achtung: Harte Strahlung - Schutzbrille ist Pflicht oder wir sind der Strahlung nur kurz ausgesetzt. Intern werden nun alle vorher gekappten Zuleitung durch chemisch-physikalische Prozesse wieder leitfähig gemacht und alle Datenbits erhalten den logischen Wert "H" - das heißt, eine Zelle auszulesen ergibt FFH |
![]() |
|
||
![]() |
Das Löschen der EPROM geschieht mit UV-Licht. Die Speicher haben ein Gehäuse mit Quarzglasfenster, damit Licht auf den Chip gelangen kann. Durch
intensive Lichteinwirkung (z. B. Sonnenstrahlung) können bereits Ladungsträger aus
einzelnen Gates abfließen und so einen Informationsverlust bewirken. Es hat sich daher
bewährt, die Quarzglasfenster mit einem Aufkleber zu verschließen. Dieser Aufkleber kann
gleichzeitig zur Programmkennzeichnung verwendet werden. Im Anfangszustand sind die ausgelieferten EPROM vollständig gelöscht. In diesem Zustand und nach jedem Löschen bewirken alle Bits am Ausgang einen H-Pegel. Die Information wird dadurch eingeschrieben, dass selektiv Nullen programmiert werden. Diese Nullen können nur dadurch verändert werden, indem der gesamte Chip gelöscht wird. Hierzu wird eine UV-Lichtquelle benötigt, die eine Wellenlänge von etwa 254 um (Quecksilberdampflampe) bei einem Strahlungsfluss von 10 ... 15 mW/cm2 aufweist. Die Schaltkreise sollten beim Löschen einen Abstand von 2 ... 3 cm von der Lampe haben. Die Löschzeit beträgt dann etwa 12... 30 min. Wenn der Abstand zur Lampe verdoppelt wird, so erhöht sich. jeweils die erforderliche Löschzeit um das Vierfache. |
||
![]() |
|||
![]() |
PROM-Typenliste |
3. Programmierung von EPROM |
![]() |
![]() |
![]() |
![]() |
Hier wird an die Dioden-Matrix in genau definierter Adresse ein Spannungsimpuls gelegt, wodurch die Zuleitungen zu den Dioden in einen hochohmigen Zustand versetzt werden. Dadurch ist kein Stromfluss mehr möglich und die betreffende Zelle gibt als Antwortsignal ein "L". |
![]() |
|
||||||||||||||||
![]() |
|||||||||||||||||
![]() |
Vorsicht: Auch zu kleine Programmierspannung kann den EPROM zerstören | ||||||||||||||||
![]() |
zu groß gewählte Programmierspannung jedoch mit Sicherheit |
||||||||||||||||
![]() |
Blanktest ist die Prüfung, ob alle Zelle in der Diodenstrecke durchlässig sind - also ungebrannt sind | ||||||||||||||||
![]() |
Dump bildet die Funktion der Darstellung der "weggebrannten" Zellen byteweise ab - eine ungebrannte Zelle liefert hier eine logische "1", eine gebrannte Zelle eine "0" - dies entspricht der Binärdarstellung eines Bytes | ||||||||||||||||
![]() |
Programmieren ist das Anlegen einer Programmierspannung an den entsprechend gewählten Bits - dieser Impuls liegt typischerweise im ms-Bereich, muss jedoch präzise eingehalten werden | ||||||||||||||||
![]() |
unprogrammiert enthalten alle EPROM-Zellen ein logisches "H" - eingebrannt werden also eigentlich nur die "L"-Werte | ||||||||||||||||
![]() |
Programmierimpuls und Daten müssen beim Programmieren mehrfach genau definierte Zeit lang anliegen | ||||||||||||||||
![]() |
|
||||||||||||||||
![]() |
Beachten Sie bei zu programmierenden EPROM genau die Typen (siehe unten) und Typklasse (Technologie TTL-, MOS oder CMOS) sowie die zu verwendende Programmierspannung (im Zweifelsfalle erhöht man die Programmierspannung sukzessive, bis Programmierung erfolgreich!) | ||||||||||||||||
![]() |
EPROM-Typenliste |
4. Tipps 'n Tricks |
![]() |
![]() |
![]() |
![]() |
Hier lassen sich die Speicherinhalte solange speichern und verändern, wie die Betriebsspannung anliegt. Spannungsverlust führt zu Datenverlust. Statische RAM sind durch ihren internen Aufbau bedingt (FlipFlop) hoch komplex, aber vergleichsweise sehr schnell. Daher haben sie auch heute noch als so genannte Cache-RAMs ihre Bedeutung. |
![]() |
Im Bild unten ist die Prinzipschaltung eines RAM mit statischen MOS-Speicherzellen
(SRAM) dargestellt. Er dient zur Speicherung von n
× m Bit, die über den Eingang Di/Do bei CS = 0 und WE = 0 in die Speichermatrix (3) eingeschrieben und bei
CS = 0 und WE = 1 gelesen werden. Durch die entsprechende Belegung der Zeilenadressbit Ai und der Spaltenadressbit Aj wird die jeweils zu aktivierende Speicherzelle ausgewählt. Dazu werden durch den Zeilendecoder (2) jeweils eine Zeile und durch den Spaltendecoder (5) jeweils ein Spaltenleitungspaar aktiviert. So vollzieht sich der Lesevorgang der Zelle 0,0 wie folgt: An den Zeilenadresseingängen (1) liegt ein Adressbitmuster, das durchweg Nullen enthält. Dadurch wird mit Hilfe des Zeilendecoders die Zeile 0 an aktives Potential geschaltet, und die Transistoren T5 und T6 werden durchgesteuert. Unter der Annahme, dass in der Speicherzelle 0,0 T1 leitend und T2 gesperrt ist, wird nun die Spaltenleitung Sp 01 auf das Logik-Potential Null entladen, während die Spaltenleitung Sp 02 auf Batteriepotential geladen bleibt. (Über die als Widerstände geschalteten Transistoren T7 und T8 sind zuvor die beiden Spaltenleitungen, wie auch alle anderen Spaltenleitungen, auf UB aufgeladen worden.). An den Spaltenadreßeingängen (6) muss für unser Beispiel ebenfalls das Bitmuster 0 liegen, so dass der Spaltendecoder über seinen Ausgang 0 die Transistoren T9 und T10 durchsteuern kann. Damit wird dann das Potential der Spaltenleitung Sp 01 auf die Datenleitung 1 und das Potential der Spaltenleitung Sp 02 auf die Datenleitung 2 geschaltet. Das Koppelglied reicht diese Signale, zu einem einzigen umgeformt, an die E/A-Stufe (7) weiter. Ist CS = 0 und WE = 1, so gelangt die Bitbelegung der Zelle 0,0 auf diese Weise zum kombinierten E/A-Pin Di/Do. Das Einschreiben in die Zelle 0,0 vollzieht sich bei gleicher Adressgabe sowie bei CS = 0 und WE = 0 so, dass die an Pin Di/Do liegende Bitbewegung vom Koppelglied in ein leistungsstarkes Signal zur pegelrichtigen Belegung der beiden Datenleitungen 1 und 2 umgewandelt wird. Über die geöffneten Transistoren T9 und T10 wird dann bei ebenfalls geöffneten Transistoren T5 und T6 der Trigger der Speicherzelle 0,0 in die gewünschte Lage gekippt. Zu erwähnen bleibt noch, dass bei ES = 1 der Pin Di/Do hochohmig wird und dass der Spaltendecoder in Zusammenarbeit mit den Schalttransistoren T9, T10, T1 l, T12 und den gleichartigen anderen (4) als Spaltenmultiplexer wirkt. Der im Bild unten dargestellte RAM ist bitorientiert, da immer nur 1 Bit ein- bzw. ausgegeben werden kann. Es gibt aber auch RAM-Typen, die 4-Bit- oder 8-Bit-orientiert sind, also Halbbyte oder Byte ein-/ausgeben können. Dazu müssen die Tristate-Tore in der E/A-Stufe und die Datenleitungen in der Schreib-Lese-Schaltung (4) entsprechend mehrfach vorhanden sein. |
![]() zur Hauptseite |
© Samuel-von-Pufendorf-Gymnasium Flöha | © Frank Rost im August 2004 |
... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-) „Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“ Diddi Hallervorden, dt. Komiker und Kabarettist |