Gould DSO 1602 / 1604

Mainboard

U6 - Adressdecoder für I/O

Adressbereich A2:A1:A0 - aktiver Ausgang Y verbunden mit
0x0000..0x000F 000: Y0 U5 - Adressdecoder
0x0008..0x000F
0x0010..0x001F 100: Y4 RS423/IEEE488 PLKPb13/PLIFb13
0x0020..0x002F 010: Y2 0x0020..0x0027: DAC CS1
0x0028..0x002F: DAC CS2
0x0030..0x003F 110: Y6 ACO CS3
0x0040..0x004F 001: Y1 U4 - Parallelports
0x0050..0x005F 101: Y5 RTC (U5) der Option "Processor Interface"
U19/A2 erzeugt aus Y5 einen Low-Impuls für CS der RTC
0x0060..0x006F 011: Y3 Keypad/Plotter-UART (U18)
0x0070..0x007F 111: Y7 CS0

Keypad-/Plotter-UART

Auf dem Mainboard ist dazu eine UART (U18: R6551), die Daten der Keypad-Option empfangen und Daten an den Plotter senden kann. RQST wird im Schaltplan auch als CTS bezeichnet, ist am R6551 allerdings mit DSR verbunden, da darüber auch die Erkennung eines installierten Plotters läuft - CTS ist an der UART dauerhaft '0'.

Die Keypad-Daten gelangen über PLKBa15 bzw. PLIFa15 zur UART. Die Erkennung der Keypad-Option läuft über das Signal an PLKBb11 bzw. PLIFb11, das über R18 (1M) nach Masse gezogen ist: U31 bildet einen Fensterdiskriminator, der über R15 (3k9 nach +5V), R16 (2k7) und R17 (3k9 nach Masse) programmiert ist. Nur wenn die Spannung innerhalb des Bereichs [1,86V..3,14V] liegt, ist DCD auf '1' (was eigentlich umgekehrt sein müsste). In der Option ist b11 mit 3k3 nach b4 (CONBIAS) verbunden.

Der R6551 liegt im IO-Bereich 0x0000..0x007F und wird durch Y3 von U6 (MC74HC138N) auf den Adressbereich 0x0060..0x006F dekodiert, die untersten Adressbits A[1:0] werden auf RS[1:0] abgebildet. In der Firmware werden 0x0060 bis 0x0063 benutzt.

Konfiguration der Schnittstelle in der Firmware 3.55

Ab 3:0x5BED erfolgt der Aufruf der Konfigurationsroutine in 0xDEB7 mit dem Parameter 0x000F in Register D. Darin werden die übergebenen Parameter für Baudrate (0x014A) und Parity (0x014B) auf dem Stack überschrieben (ab 0xDF08) mit Baud=7 (entspricht 300 Baud) und Parity=4 (keine Parität). Eine weitere Funktion (0xE715), ruft dann jeweils Unterfunktionen auf, um die Parameter in die UART zu übertragen. Der Baudratenwert wird dabei in der Unterfunktion 0xE2E9 gegen eine Tabelle 0xE354 mit 16 erlaubten Werten geprüft, die aber nur die Werte 1 bis 9 enthält, was Baudraten zwischen 50 und 1800 Baud erlaubt. Parity wird in 0xE384 programmiert.

Die höchsten möglichen Baudraten der UART sind 19200 (SBR=0xF) und 115200 (SBR=0x0). Um diese einzustellen gibt es mehrere Möglichkeiten des Patchens:

Anmerkung 0: bei einem programmierten EPROM kann ohne vorheriges Löschen der Inhalt der Adresse 0x630D auf A7 geändert werden (für 115200 Baud).

Anmerkung 1: die Änderung der Baudrate betrifft ebenfalls das Keypad. Die meisten Bytes werden beim Plotvorgang alle 1ms gesendet, d.h. 19200 Baud sind ausreichend, mit 115200 wird nur ca. 16% schneller übertragen (19s statt 22s für 4 Kanäle).

Anmerkung 2: U2 (32kB) ist in den Adressbereich 0x8000..0xFFFF gemappt, U29 (64kB) wird in 4 Pages (0 bis 3) in den Bereich 0x4000..0x7FFF gemappt.

Vermutung: beim Einschalten wird über U2 eine Prüfsumme gebildet und mit der im RAM gespeicherten Prüfsumme verglichen. Stimmen diese nicht überein werden alle Werte auf Voreinstellung zurückgesetzt und kalibriert - das passiert also wenn der Speicher nicht gepuffert war oder andere ROMs eingebaut worden sind.

interner Plotter Gould 104

Online-Konverter Screen Plotter 104-zu-SVG

Gould Plotter 104 zu USBGould Plotter 104 DataWem die Federn, das Papier oder ein passendes IEEE-488- oder RS-423-Modul zum Datenexport fehlt, kann die 600baud-Plotter-Daten mit dem Online-Konverter "Screen Plotter 104-zu-SVG" (javascript) in eine Vektorgrafik wandeln. Die Plotterdaten müssen dazu mit einem TTL-RS232-USB-Adapter eingelesen werden (600bps 8N1 mit RTS/CTS).

Kommunikation

Der Plotter ist über eine serielle Verbindung mit dem Oszi verbunden, wobei über zwei Leitungen DATA und RQST auf 5V-TTL-Pegel kommuniziert wird.

RQST ist das Bereitschaftssignal des Plotters, vergleichbar mit DTR. Auf Osziseite kann der RQST-Eingang als CTS gesehen werden. Beim Einschalten prüft das Oszi den Pegel von RQST: ist dieser '0', wird der interne Plotter als installiert angenommen. Solange der Plotter bereit ist ein Datenbyte zu empfangen, hält er RQST auf '0'. Während des Startbits wird RQST auf '1' gesetzt, bei Bereitschaft wird es während des Stopbits wieder auf '0' zurückgesetzt.

Über die DATA-Leitung werden die seriellen Daten mit 600 Baud übertragen. Nach dem Startbit folgen 8 Datenbits und ein Stopbit.

oben: RQST, unten: DATA

Anschluss

Die Daten vom Oszi können mit einem TTL-RS232-USB-Adapter aufgezeichnet werden (RQST auf '0' halten oder mit DTR verbinden).

Der Plotter kann auch direkt am USB-Port mit einem TTL-RS232-USB-Adapter betrieben werden (RQST mit CTS verbinden).

Controllerboard PCA 104 PLOTTER 477190

Steuerung durch Befehle

Befehle (soweit herausgefunden):

Beispieldaten

Leerer Plot, nur Raster und Beschriftung:

0x12
S1 : Schriftgröße 1
Q1 : Schrift entlang X-Achse
I
M0,-512 : 512 Zeilen vorspulen
I : Nullen
M0,-400 : 400 Zeilen vorspulen
L0 : durchgehende Linie
C0
H : Home = M0,0
D448,0 : linie >(448,0) : Tracebereich?
D448,526 : linie >(448,526)
D0,526 : linie >(0,526)
D0,0 : linie >(0,0)

Hier würden die Kanal-Plots sein

C3
L3 : 10 vertikale Linien 3gepunktet des X-Rasters der Höhe 400 im Abstand 50
M24,12
D424,12 : gepunktete line(24,12)>(424,12)
M424,62
D24,62 : line(24,62)<(424,62)
M24,112
D424,112 : line(24,112)>(424,112)
M424,162
D24,162 : line(24,162)<(424,162)
M24,212
D424,212 : line(24,212)>(424,212)

M424,262 : Y-Achse
X1,-10,40 : Teilstriche der Y-Achse? 40mal, dabei um -10 verschieben?

L3
M24,312
D424,312 : line(24,312)>(424,312)
M424,362
D24,362 : line(24,362)<(424,362)
M24,412
D424,412 : line(24,412)>(424,412)
M424,462
D24,462 : line(24,462)<(424,462)
M24,512
D424,512 : line(24,512)>(424,512)

M24,512 : 8 horizontale Linien des Y-Rasters der Breite 500 im Abstand 50
D24,12 : line(24,12)<(24,512)
M74,12
D74,512 : line(74,12)>(74,512)
M124,512
D124,12 : line(124,12)<(124,512)
M174,12
D174,512 : line(174,12)>(174,512)

M224,512 : X-Achse
X0,-10,50 : Teilstriche der X-Achse? 50mal, dabei um -10 verschieben?

L3
M274,12
D274,512 : line(274,12)>(274,512)
M324,512
D324,12 : line(324,12)<(324,512)
M374,12
D374,512 : line(374,12)>(374,512)
M424,512
D424,12 : line(424,12)<(424,512)

Hier würden die ?Cursor-Plots? sein

M452,-60
C0
PDATE:Feb 24/18

L0
M450,-55
D450,-228 : line(450,-55)-(450,-228)

M422,-60
PTIME:09:57:56

M0,-390
A

Processor Interface (Memory) 1600/260 (205)

Mit der Steckbrücke LK1 wird die Plusleitung des Akkus aufgetrennt.

Echtzeituhr / Real Time Clock

Die Jahreszahl wird ab 1984 gezählt, wobei ein Datum des Jahres 1984 zu fehlerhafter Speicherung führt.

Die Busanbindung erfolgt über BA3..BA0 und BD3..BD0, sowie /CS aus dem Bereich 0x0050..0x005F.

Lt. AN-365 sollte die Anbindung beim 6802 (als nicht-Microbus-System) so aussehen:

a) b)

RD und WR werden wie in b) erzeugt (U6c wird als Invertierer genutzt), CS wird aus VMA (Valid Memory Address) erzeugt, was ähnlich a) aus E|Q (U13a), also nicht direkt aus Φ2 erzeugt wird (Φ2 entspricht beim 6808 der E-Clock: die steigende Flanke zeigt stabile Daten an; die steigende Flanke an Q zeigt eine gültige Adresse an und kommt ca. einen halben Takt vor E):

Zeit Q E VMA  
0.0 0 0 1  
0.5 1 0 0 Adresse gültig
1.0 1 1 0 Schreiben: Daten sind gültig
1.5 0 1 0  
2.0 0 0 1 Lesen: Daten gelatched

Beim Zugriff auf die RTC wird auch MDRY aktiviert.

Uhrzeit falsch mit MM58274BN

Die 24-Stunden-Einstellung wird (im Menü "Set Time") entweder ungewollt überschrieben oder der IC verliert die Einstellung und verbleibt im 12-Stunden-Modus. Dadurch werden die Zeiten ab 13 Uhr falsch gespeichert und weitergezählt, Stunden mit 2 in der Zehnerstelle werden auf 0 zurückgesetzt. Dies wird auch beschrieben im Thread "Gould 1604 waveform processor", konkret wurde das in der Electronic Times vom 04.10.1990 beschrieben [Report of Nat Semi clock chip flaw]:

Electronics Times (4 Oct, front page) reports that National Semiconductor's real-time clock chip (part number MM58274B) "has a tendency to switch from a 24hr clock to a 12hr clock when subjected to electronic noise ..".

Ich habe den MM58274BN durch den "aktuellen" MM58274CN ersetzt, seitdem läuft die Uhr richtig.

Reproduzierbar:

Ablauf:


Erstellt 24.02.2018, zuletzt geändert 29.05.2018 18:45:02, Zugriffszähler Besuche. © Christian Enders

Home | Nach oben | Becker Traffic Assist Pro Z302 | Toyota Corolla | Toyota Yaris | Toyota Celica | Toyota Carina E | Toyota Starlet | BMW 1er E87 | BMW 3er E46 | Hyundai i40 | Mazda 626 | Mercedes R129 | Mercedes R170 | Opel Astra | Opel Corsa | Porsche | Smart MC 01 | VW Golf | Farbwiedergabe | Windows Server 2003 - FTP und Windows Firewall | Windows Adressbuch | Apple-Spickzettel | Handy-Schnittstellen | Mobilfunk | Restguthaben bei Prepaid-Handy-Karten | Carson Model Sport LB Charger II | Megasat HD500se | Gould DSO 1604