Nebenstehend sehen wir die Schaltung, die auf
einer kleinen Tochterplatine huckepack auf einen USB4all
gesteckt wird. Die Steckerleisten dafür befinden sich in der
oberen linken Ecke der Grafik. Sie verbinden die Schaltung
mit den Ports A, B, C und D des USB4all. Der Port E wird
nicht benutzt.
Unten links ist die Erzeugung der Programmierspannung von
12,75V dargestellt. Ein LM1117-ADJ erzeugt die Spannung aus
eingespeisten 15V. Diese darf um ca. 0,5V vom Sollwert
abweichen. Bei weniger als 14,5V reicht die Spannung nicht
mehr aus, um 12,75V sicher zu erzeugen, und ab 15,5V
überschreitet man die Maximalspannung für den LM1117. Ich
gebe zu, dass das etwas auf Kante genäht ist.
Mit dem USB4all-Pin RC7 lässt sich die 12,75V-Spannung mit
Hilfe der Transistoren Q2 und Q1 an das Vpp-Pin des 27c2048
schalten.
Der Chip U5a ist ein Monoflop, der immer dann, wenn das
USB4all-Pin RC2 von 0 auf 1 schaltet einen 100us langen
negativen Puls ausgibt, der an das EPROM-Pin /PGM geht. Das
ist der Programmierpuls.
U2 und U3 bilden zusammen einen 16-Bit Zähler. Mit RC1=0
setzt man den Zähler auf den Wert Null (0000). Mit jedem
Puls am USB4all-Pin RC0, zählt der Zähler um 1 weiter. So
erzeuge ich die unteren 16 Adressleitungen (A0 ... A15) für
den EPROM. Die 17. Adressleitung (A16) wird direkt mit dem
USB4all-Pin RA1 erzeugt.
Die USB4all-Ports RB und RD bilden die 16 Datenleitungen für
den EPROM (D0 ... D15). Man sieht, dass sie einzelnen Bits
in der "falschen" Reihenfolge angeschlossen sind. Das
höchste Bit des Ports geht an das niedrigste Bit des EPROM
und umgekehrt. Da habe ich so gemacht, weil es das
Platinenlayout stark vereinfachte. Ich kompensiere das
dadurch, dass ich die Daten in Software "spiegele".
|
|