15.3.3 38400bps 38400 bps für jeden ST/STE
Jürgen Meyer
MausNetz: Juergen Meyer@HH2
Diese Schaltung ist Freeware. Die private Nutzung ist gestattet.
Die Verbreitung über jegliche elektronische Medien ist gestattet.
Die kommerzielle Nutzung, sei es durch Abdruck in einer Publikation
oder durch Einbau gegen Entgelt seitens eines Händlers oder einer
Werkstatt ist verboten.
Obwohl diese Mini-Schaltung bei mir seit über einem Jahr in
drei ver- schiedenen Rechnern problemlos arbeitet, sind Fehler nie
auszuschließen. Ich übernehme daher keinerlei Haftung
für Schäden, die durch den Einbau oder die Verwendung dieser
Schaltung entstehen. Jeglicher Einbau geschieht hiermit auf eigene
Verantwortung.
Bitte beachten Sie evtl. existierende Garantie- bzw.
Gewährleistungs- Bestimmungen, bevor Sie Ihren Rechner mit dieser
Schaltung ausrüsten. Durch diesen Eingriff werden
Veränderungen vorgenommen, die jederzeit von einer
befähigten Person erkannt werden können. Im Zweifelsfalle
hätte dies den Verlust Ihrer Garantie- oder
Gewährleistungs-Ansprüche gegenüber der Ihnen
verbindlichen Person oder Firma zur Folge.
Die Mini-Schaltung besteht im Wesentlichen aus einem TTL-Chip, den
74 LS 74, welcher 2 RS-Flip-Flops enthält.
Jeder normale ST oder STE kann leider nur bis zu 19200 bps auf der
seriellen Schnittstelle 'fahren'. Diese Einschränkung kommt durch
die Taktrate der Timer im MFP (2,4576 MHz) zustande. Die bps-Raten-
Einstellung erfolgt beim ST/STE mittels Timer D des MFP-Bausteines,
der mit dieser Frequenz (2,4576 MHz) gespeist wird. Es gab mal einige
Programme, die den Vorteiler für RC/TC abgeschaltet haben (wird
unten erklärt), um auch 38400 und höhere bps-Raten zu
ermöglichen.
Das Problem dabei ist nur, daß ohne diesen MFP-internen
Vorteiler die Sychronisation nicht mehr erfolgt, so daß bei
normalen, asynchronen Verbindungen alle 16, 32 oder 64 Bytes ein
Störzeichen auftritt. Daher ist das Löschen des Vorteilers
nicht sinnvoll.
Der Timer D wiederum wird vom TOS aus normaler Zähler
programmiert. Je nachdem, welche bps-Rate man haben möchte, wird
der Timer D mit entsprechenden Zählwerten programmiert und einer
der möglichen Vor- teiler gesetzt. Der Timer-Ausgang, der so
programmiert wird, daß er bei Erreichen des Zählers auf 0
einen Impuls abgibt, wird fest mit den RC/TC Eingängen des MFP
verdrahtet, an denen die Takt- Geschwindigkeit für die Serielle
Schnittstelle des MFP anliegen muß. RC (Receive Clock) und TC
(Transmit Clock) werden zusammen verdrahtet. Leider hat es Atari hier
versäumt, diese getrennt an- zusteuern, so wären dann
unterschiedliche Empfangs- und Sende- bps-Raten möglich. Nur, wer
braucht das heute noch ...
Der an RC/TC angelegte Takt wird dann immer nochmal durch 16
geteilt. Man könnte den Vorteiler abschalten und die Timer-D
Register mit entsprechend höheren Zählwerten laden, aber
daß führt zu Fehlzeichen bei der Übertragung.
Warum nicht einfach den Timer D mit Werten laden, die 38400 bps
dann bewirken?
Wäre möglich, wenn der Systemtakt höher wäre.
Der Timer D besitzt ein Daten- und ein Vorteiler-Register. Der
Vorteiler ist hierbei der Knackpunkt: Die kleinste Stufe ist 1:4,
diesen zweiten, Timer- spezifischen Vorteiler kann man leider nicht
auf 1:1 programmieren. Somit ergibt sich folgendes, maximale Bild:
Wäre möglich, wenn da nicht noch andere Timer
wären, die auf diesen Takt fest angewiesen sind, z.B. der
wichtiger Timer C, welcher für den 200 Hz-Timer des Atari genutzt
wird. Wer möchte, kann ja mal einen 4,9152 MHz Quarz einsetzen,
das System meldet sich dann auch, nur klingen alle
Tastatur-Drücke etwas merkwürdig, und jedes Programm,
daß sich auf die Genauigkeit des 200 Hz-Timer verlässt,
macht, kurz gesagt, Mist ...
Weil sich der Vorteiler nur auf min. 1:4 einstellen
läßt, würde selbst dann, wenn das Data-Register von
Timer-D mit "1" geladen wird (also Zähler auf kleinsten
Zählwert einstellen, damit er bei jedem Taktimpuls einen
Zählimpuls erzeugt), würde die resultierende Frequenz 2,4576
KHz : 4 = 614,4 KHz betragen.
Aber Moment, 614,4 KHz durch 1:16 (Vorteiler für RC und TC),
das sind 38,4 KHz = 38400 Hz, das ist doch genau das, was ich für
38400 bps brauche ?!?
Tja, da kommt wieder eine technische Einschränkung des MFP
ins Spiel. Der Timer-D Ausgangsimpuls erzeugt bei jedem Erreichen des
Zählers auf 0 nur eine Flanke, aber keine komplette Schwingung,
wie auch. An RC/TC müssen aber, um 38400 bps zu ermöglichen,
auch 38400*16 = 614,4 KHz anliegen. Und 1 Hz ist ja bekanntlich eine
volle Schwingung.
Der Timer-D Ausgang erzeugt also nur mit jedem zweiten
Zähler- Ausgangs-Impuls 1 Hz, so daß sich die oben
erwähnten 614400 Zähl- Impulse noch einmal halbieren.
Bleiben also maximal 307200 Zählimpulse, und daher kann der
ST/STE normal auch nur maximal 19200 bps, weil 307200 durch 16 =
19200.
Was tut nun diese Schaltung?
Diese Mini-Schaltung macht nun folgendes: Man greift sich den
Haupttakt der Timer, also 2,4576 MHz, und teilt diesen solange, bis
man auf 614,4 KHz runterkommt. Und dies läßt sich sogar
sehr einfach bewerkstelligen, indem man ein RS-Flip-Flop als Teiler
1:2 mißbraucht.
Der hier verwendete 74 LS 74 besitzt 2 x RS-Flip-Flops, die auch
beide benötigt werden. Der erste Flip-Flop teilt den 2,4576 MHz
Takt nach 1,2288 MHz runter. Der zweite Flip-Flop dann die 1,2288 MHz
nach 614,4 KHz.
Und somit haben wir die gewünschten 614,4 KHz. Diese an RC/TC
angeschlossen, ergibt durch den letzen, internen 1:16 Vorteiler exakt
38400 Hz, und somit 38400 bps auf der seriellen Schnittstelle.
Einbau
Den 74 LS 74 gemäß des beigelegten Bildes
präperieren. In den meisten Rechnern kann man den Chip
'huckepack' auf einen in der Nähe befindlichen 14 poligen
TTL-Chip setzen, somit spart man sich das Legen der Leitungen für
+5 Volt und Masse.
Der mit "XTAL in" bezeichnete Anschluß wird mit
Pin 18 des MFP verbunden. Am MFP muß nun Pin 16 ("TDO"
= Ausgangs-Impuls des Timer D) von der Platine getrennt werden.
Entweder den gesamten MFP sockeln und Pin 16 hochbiegen oder Pin 16
'in der Mitte' durchkneifen und vorsichtig hochbiegen.
Der mit "XTAL out" bezeichnete Anschluß wird nun
an Pin 7 oder 10 des MFP (egal, da beide auf der Platine miteinander
verbunden sind) angelötet. Das war's auch schon.
Ein 'Manko' dieser Billig-Lösung ist, daß die Serielle
Schnittstelle nun, unabhängig von der Einstellung des TOS,
Terminalprogrammes etc. fest mit 38400 bps läuft. Benötigt
man auch mal kleinere bps-Raten, empfielt es sich, einen 1x
UM-Schalter irgendwie im Gehäuse einzu- bauen. Am mittleren
Anschluß des 1x UM-Schalters kommt die Leitung nach Pin 7 oder
10 des MFP. An der einen Schaltseite der durch den 74 LS 74 erzeugten
614,4 KHz Takt, an der anderen Schaltseite wird Pin 16 des MFP,
welcher nun hochgebogen ist, angeschlossen. So kann mit der einen
Schalterstellung auf 38400 bps fix geschaltet werden, mit der anderen
Stellung auf Normalbetrieb, also Festlegung der bps-Rate durch das TOS
(maximal 19200 bps).
Sollte die Länge der einzelnen Kabel mehr als 5 cm lang sein,
sollte man abgeschirmte Kabel verwenden.
Eines sollte nicht verschwiegen werden: Dieser Umbau ist ja haupt-
sächlich für Leute mit einem Highspeed-Modem (14400 bps oder
höher) gedacht. Der Umbau zeigt sich aber nur dann wirklich
effektiv, wenn man zudem auch einen Speeder wie HyperCache oder
ähnlich besitzt. Ohne Speeder sind bei Nullmodem-Verbindungen so
maximal 2500-2800 cps drin (Gegenseite: schneller AT), mit Speeder
deutlich mehr, bis zu 3500 cps (je nach Art des Speeders).
Außerdem sollte man dringend einen der erhältlichen
RS232-Fixes installieren.
Ergänzung vom 19.07.1992
Für Mega STE Besitzer
Beim Mega STE sind die MFP's in der quadratischen PLCC-Form
vorhanden. Hier müssen folgende Pins beachtet werden:
MfG. Jürgen Meyer
Abbildung 2 - Die 38400bps Schaltung
This circuit is freeware. Private usage is allowed. Distribution
via any electronic media is allowed. Any commercial usage is _not_
allowed.
This circuit consits of a TTL-chip, the 74LS74 (and a switch to
choose the high baudrate).
Every ST or STE can only use 19200 bps at the serial interface.
This limitation is caused by the clock-frequency of 2.4576 MHz wich is
used for the MFP-timers. The baudrate is set by the timer D of the
MFP. There where programs wich switched off the "divider"
(sorry, i do not know the correct word for german
"Vorteiler") for the RC/TC-input of the MFP.
The problem of this modification is, that the syncronization does
not work any more - so that there will by errors after every 16th,
32th or 64th byte. Because of that is not recommended to switch of the
"divider".
The circuit does the following: It gets the main-clock of 2.4576
MHz and divides it to produce 614.4 KHz. This may be done very simple,
by using a RS-flip-flop to divide the clock by 1:4.
The 74LS74 consists of two RS-flip-flops. The first one is used to
get 1.2288 MHz. The second one gets the 1.2288 and produces 614.4KHz,
wich is needed for the RC/TC-input to use 38400 bps for the serial
interface.
Build in
- Carefully disconnect pin 16 of the MFP 68901 from the
motherboard.
- Connect "XTAL in" to pin 18 of the MFP 68901.
- Connect "XTAL out" to pin 7 or pin 10 of the MFP.
[...]
If you still want to use lower baudrates, you have also to build
in a switch. Normaly pin 7 and 10 are connected to pin 16 of the MFP
for "normal" baudrates. I hope this helps you.
Copyright © Robert Schaffner (doit@doitarchive.de) Letzte Aktualisierung am 23. Mai 2004 |