Ramedit
by Martin Clausen (mc AT rotgradpsi DOT de)
Programmer für NV-RAM bis 32K Byte zum Anschluß über die parallele Schnittstelle
Inhaltsverzeichnis:
- Beschreiben, auslesen und vergleichen von NV-RAM bis 32k Byte
- Editor enthalten
- Einfache Schaltung zum Anschluß an den Druckerport
- Programm ist Freeware für nicht gewerblich Nutzung.
8086, etwas RAM, ca. 80kb Festplattenspeicher, parallele Schnittstelle DOS oder Windows (siehe diese Notiz)
Problemstellung
Diese Schaltung soll mittels eines Computers ein Beschreiben, Auslesen und Editieren des Inhalts von NV-RAM, d.h. SRAM mit eingebauter Batterie, ermöglichen.
Software
Aufgrund der Verbreitung ist das Programm für PC unter DOS mit 80X86 CPU geschrieben. Dabei kommt die Programmiersprache Power Basic 3.2 mit den Power Tools I und II zum Einsatz. Damit ist eine kurze Entwicklungszeit und komfortable Bedienung möglich.
Bei jedem Start werden aus der Datei "ramedit.ini" die Einstellungen für die Adresse der Schnittstelle, die Größe des NV-RAMs und der Name der zu ladenden Datei eingelesen. Dann wird im RAM des PC ein 32KB großer Speicherbereich für die zu bearbeitenden Daten reserviert. Dorthin wird die in der Konfigurationsdatei angegebene Datei geladen. Ist diese länger als 32KB, wird der Rest ignoriert.
Das Hauptmenü kann im Gegensatz zum Editor mit der Maus bedient werden. Wenn die farblich hervorgehobenen Buchstaben und die ALT-Taste gedrückt werden, so wird der entsprechende Menüpunkt aktiviert. Nach jedem Schreib- und Lesevorgang wird automatisch ein Verify des RAMs durchgeführt.
Mittels des eingebauten Editors können einzelne Bits im Datenspeicher des Computers geändert werden. Sollen diese Änderungen ins NV-RAM übertragen werden, so muß der Benutzer den Befehl "Write to RAM" aufrufen. Die Bits können im Editor mit der Leertaste geändert werden. Durch die Bits einer Zeile kann der Benutzer sich mit den Cursortasten bewegen. Die Auswahl des zu bearbeitenden Bytes erfolgt mit der Pgup- bzw. Pgdn-Taste. Wird zusätzlich die Ctrl-Taste gedrückt, so wird die Durchlaufgeschwindigkeit erhöht. Mit ESC wird der Editor verlassen.
Unter dem Menüpunkt "Setup" können in einem Dialog die Adresse der Schnittstelle, die Größe des NV-RAMs und der Name der Datendatei eingestellt werden. Von diesen Angaben wird nur der Dateiname geprüft. Existiert die Datei nicht, so wird der alte Eintrag beibehalten. Das Programm kann mittels des Menüpunkts "Exit" oder der ESC-Taste verlassen werden. Dabei werden die Daten nicht automatisch gespeichert.
Hardware
Die Stromversorgung wird einfach mittels eines Standardspannungsreglers stabilisiert. Die Eingangsspannung sollte bei 9 Volt liegen. Es werden ca. 100mA benötigt. Eine Diode schützt Schaltung und PC vor falscher Polarität der Versorgungsspannung. Die um den Spannungsregler gruppierten Kondensatoren dienen der Siebung und Entstörung. Weitere 100nF Kondensatoren sind direkt an den Versorgungsspannungspins der Chips angeordnet. Diese Kondensatoren unterdrücken die beim Schalten der Signale durch die ICs verursachten Störungen.
Alle Eingänge der Schaltung sind mit 10K Ohm Pull-Up-Widerständen ausgestattet, da alte Computer u. U. noch mit Open-Kollektor Ausgängen ausgestattet sind. Als Logikfamilie kommt bei den Verbindungen zum PC LS Typen zum Einsatz, weil diese im Gegensatz zu CMOS keine Schutzdioden enthalten. Daher nehmen sie keinen Schaden, wenn die Leitung vom PC auf High getrieben wird, während der RAM-Editor nicht mit Spannung versorgt wird. Wichtig sind auch die Schmitttrigger-Eingänge des LS14, die bei der Steuerung des Adresszählers HCT4040 Fehler durch schlechte Signalqualität verhindern. Der Bustreiber LS541 verbessert die Signalqualität der Daten beim Beschreiben des NV-RAMs und trennt beim Lesen die acht Datenleitungen des PCs vom Speicher. Durch die Verschaltung der Freigabeeingänge des Bustreibers und des Schreiblesepins des Speichers wird erreicht, daß nie beide Ausgänge gleichzeitig aktiv sind. Der Multiplexer vom Typ LS157 ermöglicht es, die 8 Datenbits über die 4 Eingänge der Druckerschnittstelle einzulesen. Mittels des S-Einganges wird vom PC das obere oder untere Nibble ausgewählt.
Die Adressen für das NVRAM werden vom Zähler HCT4040 erzeugt. Vom PC kann somit durch die Anzahl der Takte am Takteingang und den Reseteingang jede Adresse ausgewählt werden. Besondere Bedeutung erfährt dabei der innere Aufbau von Zähler und Speicher. Der Zähler wird durch das Kaskadieren von zwölf einzelnen Flipflops gebildet. Bei fallender Flanke wird der Impuls von Stufe zu Stufe "durchgereicht". Dies führt dazu, daß einige zehn Nanosekunden falsche Adressen am Speicher anliegen. Desweiteren kann auch durch die Adresslogik des Speichers selbst beim Adresswechsel kurzzeitig eine falsche Adresse angesprochen werden. Beim Lesen ist dies irrelevant, da der PC erst dann auf die Daten zugreift, wenn diese sicher anliegen. Doch während des Schreibvorgangs könnten andere Speicherzellen verändert werden, daher muß bei jedem Takten des Zählers in den Lesemodus gewechselt werden.
- Halbleiter:
- 1 1N 4001 o. ä.
- 1 74HCT 4040
- 1 74LS 14
- 1 74LS 157
- 1 74LS 541
- 1 78L05
Kondensatoren:
- 1 10µF / 16V axial
- 1 22µF / 16V axial
- 5 100nF ker
Widerstände:
- 2 10k*7 / 8 Pin Array
Mechanik:
- 1 Sub-D Buchse, 25 pol., Lötkelch
- 1 Kabel, Sub-D Stecker-Stecker, 25 pol.
- 1 Gehäuse
- 1 Lochpunktrasterplatine, ca. 50 mm * 70 mm
- 1 Spule Fädeldraht
- 70 cm Schaltlitze
- 2 Bananenbuchsen
- 1 Fassungen 24 oder 28 pol. präz.
- 1 Fassungen 20 pol. präz.
- 1 Fassungen 16 pol. präz.
- 1 Fassungen 14 pol. präz.
- 6 Schrauben, M3, 6 mm
- 6 Muttern, M3
- 4 Abstandsbolzen, M3 Innengewinde, 8 mm
- Defekte Hardware: PC, NV-RAM, Programmer, Kabel
- Parallele Schnittstelle u.U. auf Standard oder EPP einstellen.
- Nicht LS durch HC oder HC durch CMOS ersetzen!
- Statusmeldungen und Parameter überprüfen
- ramedit.zip DOS Programm mit Quellcode (für Power Basic 3.20 mit Power Tools 2.00), Ini-Datei
- ramedit.gif Schaltplan
Im Schaltplan ist nur ein 2K Byte Ram eingezeichnet. Bis 32K Byte können einfach weitere Adressbits durch Anschluß der restlichen Ausgänge des 74HCT4040 und u.U. eines weiteren 74HCT4040 erzeugt werden. Ramedit erwartet ramedit.ini im gleichen Verzeichnis.
Die Bauteilebeschriftung ist wie folgt zu lesen:
Bauteiltyp + Wert in exponential Form + Gehäusebezeichnung + Unternummer der Funktionseinheit
zum Beispiel: C1040805,1 ist ein Kondensator, 100nF, Gehäuse SMD 0805, erste Funktionseinheit im Gehäuse
Disclaimer: No warranty at all!
Copyright by Martin Clausen, Germany.
Kontakt zum Autor: mc AT rotgradpsi PUNKT de
Impressum