Document Hardware.doc Hardwaredokumentation zum Programm VIDEOTEXT Stand: 23.06.95 0. WARNUNG ========== Seien Sie sich darüber im klaren, daß selbstgebaute Hardwareerweiterungen, auch rein externe wie diese, immer ein Risiko für Ihren Rechner darstellen! Ein fehlerhaft gebautes Interface kann Portbausteine des Amiga zerstören, indem es z. B. einen Treiberausgang gegen Masse, Versorgungsspannung oder auch einen anderen Ausgang kurzschließt. Überprüfen Sie Ihre Schaltung also sorgfältig auf unbeabsichtigte Verbindungen, bevor Sie sie anschließen! Gleiches gilt für unachtsames Anschließen eines Interface, z. B. an einen falschen Port oder einfach ohne den Rechner zuvor auszuschalten. Bei Sub-D-Steckern besteht dabei vor allem die Gefahr, daß der Stecker mit seiner Abschirmung eine ganze Stiftreihe am Port kurzschließt. (Raten Sie, woher ich das so genau weiß? ;-( ) 1. Drei Möglichkeiten ===================== Hardwarevoraussetzung für mein Programm "VideoText" ist ein Videotext- decoder mit einem I²C-Bus Interface zum seriellen RS232-Port des Amiga, wie in der c't 7/92 (bzw. 3/92) beschrieben. Wenn Sie diese Hardware schon besitzen, umso besser. Ansonsten haben Sie mehrere Möglichkeiten: 1.1. Das original c't Projekt ----------------------------- Sie können für 28 DM (zzgl. 6 DM Versandkosten) bei eMedia GmbH Bissendorfer Str. 8 Postfach 61 01 06 30601 Hannover eine fertige Leerplatine für den berühmten c't-Decoder bestellen, genauer gesagt ist dies die Universalplatine für PC/Mac/Atari/Amiga. Und falls Sie die c't 7/92 nicht haben, für 5 DM zusätzlich eine Fotokopie der Projektbeschreibung. Bestellcode für beides ist 9207177, bezahlt wird per Vorkasse, also einen Verrechnungsscheck über 34 bzw. 39 DM beilegen. Die zugehörigen Bauteile müssen Sie sich anderweitig besorgen, aber das ist auch kein Problem: Den SAA 5246 gibt es bei Reichelt, Simons, Elpro, Segor und was weiß ich wo noch (na gut, nicht gerade bei Conrad), an einen 27 MHz Quarz ist auch dranzukommen, und die übrigen Teile sind mehr oder weniger Standard. Gesamtpreis: kann ich schwer schätzen, aber vielleicht nochmal 50 DM. 1.2. Fertiges VTX-Modul/eigenes Interface ----------------------------------------- Es gibt bei Conrad (oder auch bei ELV) für 99 DM fertige VTX-Decodermodule zu kaufen, eigentlich als Ergänzung für Channel-VideoDat gedacht. Das Modul wird in einen 20poligen IC-Sockel gesteckt, Pin-Belegung: 2: UB+ (mindestens 7V, da 5V-Spannungsregler an Bord) 5: SDA 9: 0V 15: SCL 20: FBAS in Sie müssen sich dann noch ein I²C-Bus Interface bauen, wie in Abschnitt 3. beschrieben, und sich etwas für den lästigen Spannungsregler einfallen lassen: Entweder spendieren Sie ihm ein eigenes Netzteil (7.5V=/300mA, unstabilisiert, das geht auf jeden Fall und kostet auch nicht viel), oder Sie entfernen oder überbrücken ihn und versorgen die Platine direkt mit den 5V vom Amiga (würde ich bevorzugen, die Schaltung verbraucht auch nur ca. 100 mA). An dieser Stelle nochmals vielen Dank an Karsten Seckendorf für den Schaltplan aus dem ELVjournal 3/93. 1.3. Modifiziertes c't-Projekt ------------------------------ Das c't-Projekt sieht ein I²C-Bus-Interface direkt mit auf der Decoderplatine vor. Dagegen ist eigentlich auch nicht viel einzuwenden: Es wird wohl nicht jeder den Decoder an verschiedenen Rechnern betreiben wollen (wie ich es tue, mit zwei verschiedenen Interfaces für C64 und Amiga). Und den I²C-Bus durchschleifen, um weitere Geräte anzuschließen, kann man auch bei dieser Einplatinen-Lösung immer noch. Schlauerweise findet die Wandlung zwischen TTL- und RS232-Pegeln dort aber mit einem MAX 232 statt, ein faszinierender Chip, der mit 5V Versorgungsspannung und ein paar Elkos ±10V selbst erzeugt. Das ist prima für Rechner, an deren seriellem Port keine ±12V Versorgungsspannung anliegen, wie z. B. Atari. Für den Amiga dagegen ist es einfach teurer Unfug, ein 1488 und zwei Transistoren tut es hier genauso. Dieser Hinweis richtet sich vor allem an Elektronik-Experten, die es "besonders schön machen" wollen und die nach diesen Andeutungen selbst die notwendigen Änderungen an der c't-Schaltung vornehmen können. Ansonsten -- vergessen Sie es einfach. Bauen Sie die original c't-Schaltung auf der original c't-Platine mit den original c't-Steckerbelegungen. Das funktioniert, ist am sichersten und macht vom Preis keinen ernsthaften Unterschied. 1.4. Was nicht geht ------------------- Bei HSL Hard- und Software Lenzen Klinkhammer 4 41751 Viersen Tel. 02153/5831 gibt es für 219 DM ein komplettes "VideoTXT"-Paket zu kaufen, Besitzer der c't Videotext-Hardware können auch für 59 DM nur die Bediensoftware erwerben. Denken Sie aber jetzt nicht, die mitgelieferte Hardware wäre c't-kompatibel. Es gibt vielmehr zwei Software-Versionen, eine für das eigene, eine für das c't-Interface. Könnte etwas mit den öffentlichen Updates im AmiNet zu tun haben, wie ich kürzlich eins gesehen habe: solange das nur Updates der Spezialversion sind, kommen sie auch nur den eigenen Kunden, mit der Spezialhardware, zugute. Diese HSL-Hardware unterstützt mein Programm also *nicht*. Ich habe mir übrigens mal eine Demo der HSL-Software zuschicken lassen: sehr Intuition-mäßig, liebevoll gemacht auch der Font in 12×10 Pixeln, wie er sein sollte. Seiten werden nicht ins RAM eingelesen, sondern (sofern gewünscht) in einem Cache-Verzeichnis auf Diskette oder Platte zwischengespeichert, auch ist das Programm selbst mit ca. 64 K nicht besonders groß -> besonders interessant für Systeme mit chronischem Speichermangel. Ein ausführlicher Test in der AmigaPlus 1/94 fiel auch durchweg positiv aus und brachte keine ernsteren Kritikpunkte als daß "kein Anschlußkabel zur Videosignalquelle im Lieferumfang" enthalten ist. 2. I²C-Bus-Leitungen ==================== Der Videotext-Decoder SAA 5246 ist zum Betrieb am I²C-Bus vorgesehen (IIC = Interconnection of Integrated Circuits), einem 2-Leitungs-Bitbus (Takt- und Datenleitung), der z. B. über ein Interface am seriellen RS232-Port des Amiga simuliert werden kann. Nun, "zwei Leitungen" ist natürlich untertrieben. Zumindest benötigt man noch eine Masseleitung, und eine vierte Leitung mit 5V Versorgungsspannung kann auch nicht schaden. In der Elektor wird sogar noch eine fünfte Leitung, "Interrupt" empfohlen, da einige IO-Bausteine für den I²C-Bus (PCF8574 z. B.) in der Tat ein solches Signal erzeugen können. Für unsere Zwecke ist das aber unnötig. Nach der Anzahl der Leitungen besteht noch die Frage, ob man den I²C-Bus durch ein einheitliches Steckersystem repräsentieren soll. Das kann lohnen, da man nämlich (ungefähr wie beim genialen IEC-Bus des C64) viele verschiedene I²C-Chips (VT-Decoder, VPS-Decoder, AD/DA-Wandler, LED-Treiber etc. ) an ein und denselben Bus hängen kann, sofern sie sich durch ihre Adresse unterscheiden. Auf diese Frage antwortet die c't mit "nein": kein I²C-Bus-Stecker, die RS232-Leitungen werden direkt auf die gemeinsame Platine von Bus-Interface und Decoderchip geführt. Die Elektor meint "ja", und schlägt 6polige Mini-DIN-Stecker vor. Ich meine auch "ja", finde aber 9polige Sub-D-Stecker erheblich sympathischer. Signal Mini-DIN-Stecker Sub-D-Stecker (Elektor-Konvention) (mein persönlicher Favorit) --------------------------------------------------------------- SCL Pin 5 Pin 1 SDA Pin 2 Pin 2 INT Pin 1 --- +5V Pin 3 & 4 Pin 7 0V Pin 6 & Abschirmung Pin 8 Elektor und ich stimmen überein, daß das erste Kabel vom Computer, dem Busmaster aus, in einem Stecker enden sollte. Elektor meint aber auch, daß alle weiteren Bus-Verbindungskabel Stecker an beiden Seiten haben sollten (wie beim seriellen Bus des C64 :-), ich habe mich für Kabel mit Stecker und Kupplung entschieden, das können dann auch handelsübliche Joystick- verlängerungen sein. 3. Bus-Interface ================ Dieses Bus-Interface brauchen Sie nicht, wenn Sie das original c't-Projekt bauen: In dem Fall haben Sie das Interface auf der Decoderplatine mit integriert! Herkunft der I²C-Bus-Signale: +5V: von Pin 12 am Floppyport (der kann's vertragen und ist auch normalerweise immer frei) 0V: Pin 7 am seriellen Port SCL: Ein-/Ausgabe-Leitung, open Collector. Über einen Pegelwandler MC 1488 wird ihr Signal auf den Eingang Pin 5 (CTS) des seriellen Ports geführt. Mit dem Ausgang Pin 4 (RTS) kann der Amiga sie auf LO ziehen (einfache Inverterschaltung aus npn-Transistor und zwei Widerständen). SDA: Ein-/Ausgabe-Leitung, wie SCL. Eingang ist diesmal Pin 8 des seriellen Ports (DCD), Ausgang Pin 20 (DTR). ________ RS 232 Pin 10: -12 V ----|1 \\/ 14|---- +12 V: RS 232 Pin 9 I²C-Bus Pin 1: SCL --->| | RS 232 Pin 5: CTS <---| MC | I²C-Bus Pin 2: SDA -+->| 1488 | " +->| | RS 232 Pin 8: DCD <---| | RS 232 Pin 7: GND ----|7______8| Man beachte, daß Pin 4 und 5 des MC 1488 miteinander verbunden werden müssen, da sie zu einem Treiber mit zwei UND-verknüpften Eingängen gehören. 0V 0V | | 10 kOhm _| 10 kOhm _| RS 232 ____ / E RS 232 ____ / E Pin 4: ---|____|--| Pin 20: ---|____|--| RTS \\ I²C-Bus DTR \\ I²C-Bus C +---- Pin 1: C +---- Pin 2: | SCL | SDA | | 4.7 | | 4.7 | | kOhm | | kOhm T T T1,T2: +5V BC 548 B +5V Die gesamte Interfaceschaltung aus IC, zwei Transistoren und vier Widerständen kann problemlos auf Lochrasterplatine aufgebaut werden und läßt sich mit etwas Geschick in einem Sub-D-Stecker unterbringen, so daß ein eigenes Gehäuse entfallen kann. Interessant wäre für diesen Zweck auch ein "SUB-D Selbstbaugehäuse 9/25" (so heißt es jedenfalls im Conrad- Katalog '95, s. dort auf S. 713), mit einem 9poligen Stecker auf der einen und einer 25poligen Kupplung auf der anderen Seite. In der c't ist SCL übrigens als reine Ausgabeleitung vorgesehen: der Computer ist ja schließlich Busmaster. Andererseits kostet es nur zwei zusätzlich eingelötete Drähte, sie auf einen Eingang zurückzuführen, und das kann vielleicht zu Diagnosezwecken ganz nützlich sein. (Auch wenn meine Software den SCL-Eingang nicht abfragt: Das darf sie nicht, weil Sie mit echten c't-Interfaces kompatibel sein will.) Zur Funktionsweise des Interface bleibt festzuhalten, daß es alle Signale invertiert (+5V <=> -12V , 0V <=> +12V). Da die RS 232-Treiber im Amiga aber ebenfalls invertieren, entsteht letzendlich positive Logik: Ein gesetztes Bit in CIA B, Port A enspricht einem HI-Pegel auf den Leitungen des I²C-Bus. 4. Anschluß an den Bus ====================== Jedem I²C-Busteilnehmer stehen Serienwiderstände von 470 Ohm in SCL- und SDA-Leitung zu: SCL ------+-----------+-----------+------------ SDA ---------+-----------+-----------+--------- | | | | | | | || | | || | | || | |R||R| |R||R| |R||R| | || | | || | | || | | | | | | | |-+--+-| |-+--+-| |-+--+-| | SAA | | SAA | | SAA | etc. | 5246 | | 4700 | | 1064 | |------| |------| |------| Stellen Sie also sicher, daß auch auf Ihrer Decoderplatine solche oder ähnliche Widerstände für SCL und SDA (Pin 23 und 24 beim SAA 5246) enthalten sind. SDA und SCL enthalten außerdem je einen 4.7 kOhm Pull-Up-Widerstand nach 5V (irgendwo im Verlauf des Busses, aber nicht mehrmals!). Sie sind in unserem Fall im Bus-Interface zum Amiga integriert, s. o. 5. Gefahren für den SAA 5246 ============================ In der c't wird davor gewarnt, daß ein eventueller Potentialausgleich zwischen Fernseher und Computer über den Videoeingang des SAA 5246 stattfinden könnte -> tödlich für den Decoder-Chip. Meine Vorgehensweise beim Verbinden der Geräte: - Decoderplatine an I²C-Bus und Spannungsversorgung anschließen - Videoeingang des SAA 5246 von der AV-Eingangsbuchse trennen (einpoliger Schalter, die Masseverbindung bleibt!) - Videosignal an die Eingangsbuchse der Decoderplatine anschließen, eventueller Potentialausgleich findet jetzt über die Masseleitungen statt - Decodereingang aufs Videosignal aufschalten Ich benutze den erwähnten Schalter übrigens zugleich zum Umschalten zwischen zwei möglichen Signalquellen: Einer Cinchbuchse und einer Scartbuchse, an letzterer sind auch die Videoausgänge R, G, B und BLNK des Decoders herausgeführt. Na, toll. 6. SCART Pin-Belegung ===================== ________ | - | 1 Audio-Ausgang R Audio-Eingang R 2 | - | | - | 3 Audio-Ausgang L Audio-Masse 4 | - | | - | 5 Blau-Masse Audio-Eingang L 6 | - | | - | 7 Blau-Signal AV-Schaltspannung 8 | - | | - | 9 Grün-Masse Datenleitung 2 10 | - | | - | 11 Grün-Signal Datenleitung 1 12 | - | | - | 13 Rot-Masse Daten-Masse 14 | - | | - | 15 Rot-Signal Austast-Signal 16 | - | _ | - | 17 Video-Masse \\ von hier kommt das Austast-Masse 18 | - | } FBAS-Signal | - | 19 Video-Ausgang _/ für den Decoder Video-Eingang 20 | - ____| |__-- Bei Pins 1, 2, 3, 6, 19 und 20 gelten die Bezeichnungen "Eingang" und "Ausgang" immer, für alle Geräte, SCART-Kabel müssen also jeweils über Kreuz Eingang mit Ausgang verbinden, d. h. 1-2, 2-1, 3-6, 6-3, 19-20 und 20-19. Die Schaltspannung an Pin 8 signalisiert, ob ein Video-Eingangssignal von dieser Buchse überhaupt beachtet werden soll. Das Austast-Signal an Pin 16/18 entscheidet, ob der RGB-Eingang das Signal des Video-Eingangs überstimmen soll. Als quasi 4. Farbe des RGB-Signals ermöglicht es so z. B. die gemischte Darstellung von Fernsehbild und Videotext. Interessant finde ich die beiden Datenleitungen, Pin 10 und Pin 12. Daran könnte man glatt einen I²C-Bus anschließen. Ob das auch wirklich so gedacht ist, weiß ich nicht. (Bei unserem Telefunken-Fernseher sind die Pins z. B. einfach freigelassen.) 7. Bezugsquellen ================ Wenn Sie das original c't-Projekt bauen wollen, müssen Sie einige der benötigten Teile vermutlich im Versandhandel bestellen: 1 Videotext-Decoder SAA 5246 (48 Pins) 1 Quarz 27 MHz und wenn Sie Enttäuschungen im Elektronikladen um die Ecke ganz sicher vermeiden wollen, vielleicht auch noch 1 SRAM 6264-200 8K x 8bit, 200 ns (28 Pins) 1 RS232-Treiber MAX 232 Den Rest müßten Sie in jedem Elektronikladen bekommen, genaue Stückliste entnehmen Sie der c't-Projektbeschreibung. Folgende Elektronik-Versandhäuser haben den SAA 5246 meines Wissens im Lieferprogramm: SIMONS electronic GmbH Postfach 3365 (Daimlerstr. 20) 50148 Kerpen Tel. (0 22 73) 53 09 1 Segor Electronics Kaiserin-Augusta-Allee 94 10589 Berlin Tel. (0 30) 344 97 94 Reichelt Elektronik Marktstr. 101 - 103 26382 Wilhelmshaven Tel. (0 44 21) 2 63 81 elpro Harald-Wirag-Elektronik Pragelatostr. 12 64372 Ober-Ramstadt Tel. (0 61 54) 30 06