Ich habe mal vor längerer Zeit eine "Scwich-Box" gebaut gehabt um RS232-Signale umzuschelten. Dazu braucht maqn eine Menge RS232-Treiber, einen EPROM (GAL geht auch) und eine C-Control (z.B. M-Unit). Die Umschaltung hatte ich extern steuerbar gemacht gehabt.

Den Code setzte ich einfach mal rein:

Code:
' TF-1 Box Software für die C-Control/BASIC
' Version 1.00
'     !!! Nur für den Prototypen !!!
' (C) Wolfgang Schmid
'-----------------------------------------

  'I/O Definitionen
  DEFINE Sel_A    PORT[1]       'Slave-Anwahl D0
  DEFINE Sel_B    PORT[2]       'Slave-Anwahl D1
  DEFINE SendCom  PORT[3]       'Sendefreigabe TF-1 an Master
  DEFINE Sonde    PORT[6]       'Sonde für Datenfluß
  DEFINE RES      PORT[4]       'Reset für Urzustand der Box
  DEFINE Remote   PORT[7]       'Remote-Anschluß ist inaktiv
  DEFINE Power    PORT[8]       'Peripherie zuschalten
  '-----------------------------------------------------------------
  DEFINE LED1     PORT[9]       'LED-Anzeige: Port 1 aktiv
  DEFINE LED2     PORT[10]      'LED-Anzeige: Port 2 aktiv
  DEFINE LED3     PORT[11]      'LED-Anzeige: Port 3 aktiv
  DEFINE LED4     PORT[12]      'LED-Anzeige: Port 4 aktiv
  DEFINE LED5     PORT[13]      'LED-Anzeige: Warten auf Datenblock
  DEFINE LED6     PORT[14]      'LED-Anzeige: ESC-Kommando erhalten
  DEFINE LED7     PORT[15]      'LED-Anzeige: Daten vorhanden
  DEFINE LEDs     BYTEPORT[2]   'Alle LEDs ansprechen

  'Variablen-Definitionen
  DEFINE WortWert WORD[1]       'Byte-Zahl 16-Bit
  DEFINE Multi    WORD[2]       'Byte-Zahl 8-Bit
  DEFINE Nummer   WORD[3]       'Multiplikations-Hilfsvariable
  DEFINE DatenEin BYTE[7]       'Aktuell gelesenes Daten-Byte
  DEFINE BoxID    BYTE[8]       'ID-Nummer der TF-1 Box
  DEFINE BS1      BYTE[9]       'Baudrate Slaveteilnehmer 1
  DEFINE BS2      BYTE[10]       'Baudrate Slaveteilnehmer 2
  DEFINE BS3      BYTE[11]       'Baudrate Slaveteilnehmer 3
  DEFINE BS4      BYTE[12]      'Baudrate Slaveteilnehmer 4
  DEFINE Wert     BYTE[13]      '8-Bit Universal-Variable
  DEFINE Disp     BYTE[14]      'Text-Ausgaben Mode
  DEFINE i        BYTE[15]      'Universal-Schleifenzähler
  DEFINE a        BYTE[16]      'Zeitverzögerung der Signalpause

  'ASCII-Codes für die ESC-Sequenzen
  DEFINE ESC      27            'ESC-Zeichen
  DEFINE CLS      12            'Display löschen
  DEFINE LF       10            'Zeilenwechsel
  DEFINE CR       13            'Zum Zeilenanfang
  DEFINE DLE      16            'Zeichen löschen
  DEFINE ACK      6             'IO-Melung
  DEFINE NAK      21            'NIO-Meldung
  DEFINE DP       58            'Doppelpunkt
  DEFINE SP       59            'Strichpunkt
  DEFINE xB       66            'Buchstaben
  DEFINE xD       68
  DEFINE xE       69
  DEFINE xI       73
  DEFINE xR       82
  DEFINE xS       83
  DEFINE xX       88
  DEFINE x1       49            'Zahlen
  DEFINE x2       50
  DEFINE x3       51
  DEFINE x4       52

#Init
  SendCom = 1
  Sel_A = 0
  Sel_B = 0
  LEDs = 0
  Disp = 0
  IF RES THEN GOTO Init4
  i = 100
  LED1 = 1
  Disp = 1

#Init1
  IF RES THEN GOTO Init4
  i = i - 1
  IF i = 0 THEN GOTO Init2
  GOTO Init1

#Init2
  LED1 = 0
  LED2 = 1
  Disp = 2
  i = 100

#Init3
  IF RES THEN GOTO Init4
  i = i - 1
  IF i = 0 THEN GOTO Init4
  GOTO Init3

#Init4
  LEDs = 0
  IF NOT RES THEN GOTO Init4
  LEDs = 127
  IF Disp > 0 THEN GOTO JP001
  PUT CLS
  PRINT "  ***************************************"
  PRINT "  * TF-1 Box   Version: 1.00            *"
  PRINT "  *              Stand: 160801-1925     *"
  PRINT "  *        Entwicklung: Wolfgang Schmid *"
  PRINT "  *                     Frank Acker     *"
  PRINT "  *-------------------------------------*"
  PRINT "  *    Im Auftrag von Mindrevolution    *"
  PRINT "  *    http://www.mindrevolution.de     *"
  PRINT "  ***************************************"
  PUT LF
  PAUSE 1
  SendCom = 0
#JP001
  Nummer = 0
  GOSUB xLoad
  IF Disp > 0 THEN GOTO JP002
  SendCom = 1
  PRINT "Box-ID: "; BoxID
  PUT LF
  PRINT "Ready. "
  PUT LF
  PAUSE 1
  SendCom = 0
#JP002
  SendCom = 0
  LEDs = 0

#MainLoopO
  GOSUB AktivPort
  SendCom = 0
  i = 0
  GOTO MainLoop

#MainLoopX
  GOSUB AktivPort
  SendCom = 0
  i = 40
  GOTO MainLoop

#MainLoopF
  SLOWMODE OFF
  PAUSE 50
  IF Disp < 1 THEN GOTO JP021
  SendCom = 1
  PRINT "Zuendung wurde eingeschaltet"
  PUT LF
  PAUSE 1
#JP021
  GOTO MainLoopO

#MainLoop
  IF Remote THEN GOTO Standby
  Power = 1
  IF RXD THEN GOTO Kommando
  IF NOT RES THEN GOSUB Urladen
  LED5 = 0
  IF i > 0 THEN i = i - 1
  IF i > 0 THEN LED6 = 1 ELSE LED6 = 0
  LED7 = Sonde
  GOTO MainLoop

#Standby
  IF Disp < 1 THEN GOTO JP022
  SendCom = 1
  PRINT "Zuendung wurde ausgeschaltet"
  PUT LF
  PAUSE 1
  SendCom = 0
#JP022
  SLOWMODE ON

#Standby2
  IF NOT Remote THEN GOTO MainLoopF
  Power = 0
  LEDs = 0
  i = i + 1
  IF i >= 12 THEN i = 0
  IF i >= 11 THEN LED5 = 1 ELSE LED5 = 0
  GOTO Standby2

#AktivPort
  LED1 = 0
  IF NOT Sel_A AND NOT Sel_B THEN LED1 = 1
  IF NOT Sel_A AND NOT Sel_B THEN Wert = BS1
  LED2 = 0
  IF Sel_A AND NOT Sel_B THEN LED2 = 1
  IF Sel_A AND NOT Sel_B THEN Wert = BS2
  LED3 = 0
  IF NOT Sel_A AND Sel_B THEN LED3 = 1
  IF NOT Sel_A AND Sel_B THEN Wert = BS3
  LED4 = 0
  IF Sel_A AND Sel_B THEN LED4 = 1
  IF Sel_A AND Sel_B THEN Wert = BS4
  IF Wert = 12 THEN BAUD R1200
  IF Wert = 24 THEN BAUD R2400
  IF Wert = 48 THEN BAUD R4800
  IF Wert = 96 THEN BAUD R9600
  RETURN

#Kommando
  GET DatenEin
  IF DatenEin <> ESC THEN GOTO MainLoop
  LED6 = 1
  GET DatenEin
  IF DatenEin = xB THEN GOTO xBaudrate
  IF DatenEin = xI THEN GOTO xID
  IF DatenEin = xE THEN GOTO xSave
  IF DatenEin = xS THEN GOTO xSwitch
  IF DatenEin = xX THEN GOTO xStatus
  IF DatenEin = xR THEN GOTO xReset
  GOTO MainLoop

#xStatus
  'Status der Schnittstellen und Box-ID anzeigen
  'Syntax: ESC X;
  GET DatenEin
  LED6 = 0
  IF DatenEin <> SP THEN GOTO MainLoop
  IF Disp < 1 THEN GOTO JP003
  SendCom = 1
  PRINT "Baudrate Slave 1: ";BS1;"00 Baud"
  PRINT "Baudrate Slave 2: ";BS2;"00 Baud"
  PRINT "Baudrate Slave 3: ";BS3;"00 Baud"
  PRINT "Baudrate Slave 4: ";BS4;"00 Baud"
  PRINT "Box-ID:           ";BoxID
  PUT LF
  PAUSE 1
  SendCom = 0
#JP003
  PAUSE 200
  GOTO MainLoopX

#xBaudrate
  'Baudrate einstellen für Slave-Teilnehmer 1 bis 4
  'Syntax: ESC B[n]:[b];
  '        n = Schnittstelle (Slave)
  '        b = Baudrate (1200, 2400, 4800, 9600)
  'Schnittstellen-Baudrate wird umgestellt
  GET DatenEin
  DatenEin = DatenEin - x1
  ON DatenEin GOTO xBaudSlave1, xBaudSlave2, xBaudSlave3, xBaudSlave4
  GOTO MainLoopX

#xBaudSlave1
  GET DatenEin
  IF DatenEin <> DP THEN GOTO MainLoopX
  GOSUB LeseZahl
  GET DatenEin
  IF DatenEin <> SP THEN GOTO MainLoopX
  IF Disp < 1 THEN GOTO JP004
  SendCom = 1
  PRINT "Baudrate an Slave 1 wurde auf ";WortWert;" eingestellt"
  PUT LF
  PAUSE 1
  SendCom = 0
#JP004
  IF WortWert = 9600 THEN BS1 = 96
  IF WortWert = 4800 THEN BS1 = 48
  IF WortWert = 2400 THEN BS1 = 24
  IF WortWert = 1200 THEN BS1 = 12
  GOTO MainLoopX

#xBaudSlave2
  GET DatenEin
  IF DatenEin <> DP THEN GOTO MainLoopX
  GOSUB LeseZahl
  GET DatenEin
  IF DatenEin <> SP THEN GOTO MainLoopX
  IF Disp < 1 THEN GOTO JP005
  SendCom = 1
  PRINT "Baudrate an Slave 2 wurde auf ";WortWert;" eingestellt"
  PUT LF
  PAUSE 1
  SendCom = 0
#JP005
  IF WortWert = 9600 THEN BS2 = 96
  IF WortWert = 4800 THEN BS2 = 48
  IF WortWert = 2400 THEN BS2 = 24
  IF WortWert = 1200 THEN BS2 = 12
  GOTO MainLoopX

#xBaudSlave3
  GET DatenEin
  IF DatenEin <> DP THEN GOTO MainLoopX
  GOSUB LeseZahl
  GET DatenEin
  IF DatenEin <> SP THEN GOTO MainLoopX
  IF Disp < 1 THEN GOTO JP006
  SendCom = 1
  PRINT "Baudrate an Slave 3 wurde auf ";WortWert;" eingestellt"
  PUT LF
  PAUSE 1
  SendCom = 0
#JP006
  IF WortWert = 9600 THEN BS3 = 96
  IF WortWert = 4800 THEN BS3 = 48
  IF WortWert = 2400 THEN BS3 = 24
  IF WortWert = 1200 THEN BS3 = 12
  GOTO MainLoopX

#xBaudSlave4
  GET DatenEin
  IF DatenEin <> DP THEN GOTO MainLoopX
  GOSUB LeseZahl
  GET DatenEin
  IF DatenEin <> SP THEN GOTO MainLoopX
  IF Disp < 1 THEN GOTO JP007
  SendCom = 1
  PRINT "Baudrate an Slave 4 wurde auf ";WortWert;" eingestellt"
  PUT LF
  PAUSE 1
  SendCom = 0
#JP007
  IF WortWert = 9600 THEN BS4 = 96
  IF WortWert = 4800 THEN BS4 = 48
  IF WortWert = 2400 THEN BS4 = 24
  IF WortWert = 1200 THEN BS4 = 12
  GOTO MainLoopX

#xID
  'Box-ID ändern (1 bis 255)
  'SYNTAX: ESC ID[n];
  '        n = 0 bis 255
  'Die ID der Box wird geändert
  GET DatenEin
  IF DatenEin <> xD THEN GOTO MainLoop
  'Eingabe einlesen
  GET DatenEin
  IF DatenEin < 48 AND DatenEin > 57 THEN GOTO MainLoop
  DatenEin = DatenEin - 48
  Nummer = DatenEin * 100
  GET DatenEin
  IF DatenEin = SP THEN GOTO xIDEnde1
  IF DatenEin < 48 AND DatenEin > 57 THEN GOTO MainLoop
  DatenEin = DatenEin - 48
  Nummer = Nummer + (DatenEin * 10)
  GET DatenEin
  IF DatenEin = SP THEN GOTO xIDEnde2
  IF DatenEin < 48 AND DatenEin > 57 THEN GOTO MainLoop
  DatenEin = DatenEin - 48
  Nummer = Nummer + DatenEin
  GET DatenEin
  IF DatenEin <> SP THEN GOTO MainLoopX
  GOTO xIDEnde3

#xIDEnde1
  Nummer = Nummer / 10

#xIDEnde2
  Nummer = Nummer / 10

#xIDEnde3
  BoxID = Nummer
  IF Disp < 1 THEN GOTO JP008
  SendCom = 1
  PRINT "Neue Box-ID: "; BoxID
  PUT LF
  PAUSE 1
  SendCom = 0
#JP008
  GOTO MainLoopX

#xSave
  'Setup sichern
  GET DatenEin
  IF DatenEin <> SP THEN GOTO MainLoopX
  OPEN# FOR WRITE
  PRINT# BoxID
  PRINT# BS1
  PRINT# BS2
  PRINT# BS3
  PRINT# BS4
  CLOSE#
  IF Disp < 1 THEN GOTO JP009
  SendCom = 1
  PRINT "Einstellungen im EEPROM gespeichert"
  PUT LF
  PAUSE 1
  SendCom = 0
#JP009
  GOTO MainLoopX

#xLoad
  'Setup laden
  OPEN# FOR READ
  INPUT# BoxID
  INPUT# BS1
  INPUT# BS2
  INPUT# BS3
  INPUT# BS4
  CLOSE#
  IF Disp < 1 THEN GOTO JP010
  SendCom = 1
  PRINT "Einstellungen aus EEPROM geladen"
  PUT LF
  PAUSE 1
  SendCom = 0
#JP010
  RETURN

#xSwitch
  'Umschaltung auf anderen Slave-Teilnehmer
  'SYNTAX: ESC S[n];
  '        n = Teilnehmer-Nummer 1 bis 4
  'Schnittstelle anwählen
  GET DatenEin
  IF DatenEin < 49 AND DatenEin > 52 THEN GOTO MainLoopX
  Wert = DatenEin - 48
  GET DatenEin
  IF DatenEin <> SP THEN GOTO MainLoopX
  IF Wert = 1 THEN WortWert = BS1
  IF Wert = 2 THEN WortWert = BS2
  IF Wert = 3 THEN WortWert = BS3
  IF Wert = 4 THEN WortWert = BS4
  WortWert = WortWert * 100
  IF Disp < 1 THEN GOTO JP011
  SendCom = 1
  PRINT "Schnittstelle: Slave ";Wert
  PRINT "Baudrate:      ";WortWert;" Baud"
  PUT LF
  PAUSE 1
#JP011
  IF WortWert = 1200 THEN BAUD R1200
  IF WortWert = 2400 THEN BAUD R2400
  IF WortWert = 4800 THEN BAUD R4800
  IF WortWert = 9600 THEN BAUD R9600
  LED1 = 0
  LED2 = 0
  LED3 = 0
  LED4 = 0
  Wert = Wert - 1
  ON Wert GOTO xSwitch1, xSwitch2, xSwitch3, xSwitch4

#xSwitch1
  LED1 = 1
  Sel_A = 0
  Sel_B = 0
  GOTO Signalpause

#xSwitch2
  LED2 = 1
  Sel_A = 1
  Sel_B = 0
  GOTO Signalpause

#xSwitch3
  LED3 = 1
  Sel_A = 0
  Sel_B = 1
  GOTO Signalpause

#xSwitch4
  LED4 = 1
  Sel_A = 1
  Sel_B = 1
  GOTO Signalpause

#Signalpause
  i = 255
  a = 5

#Signalpause2
  IF RXD THEN GET DatenEin else DatenEin = 0
  LED5 = 1
  LED7 = Sonde
  IF a = 5 THEN i = i - 1
  IF Sonde THEN a = 5
  IF a > 0 THEN a = a - 1
  IF i = 0 THEN GOTO Signalpause3
  IF a = 0 THEN GOTO Signalpause3
  GOTO Signalpause2

#Signalpause3
  LED5 = 0
  SendCom = 0
  GOTO MainLoopX

#LeseZahl
  WortWert = 0
  Multi = 1000

#LeseZahl1
  GET DatenEin
  IF DatenEin < 48 AND DatenEin > 57 THEN RETURN
  Nummer = (DatenEin - 48)
  Nummer = Nummer * Multi
  WortWert = WortWert + Nummer
  IF Multi = 1 THEN RETURN
  Multi = Multi / 10
  GOTO LeseZahl1

#Urladen
  FOR i = 1 to 5
    LEDs = 1
    PAUSE 7
    LEDs = 2
    PAUSE 7
    LEDs = 4
    PAUSE 7
    LEDs = 8
    PAUSE 7
    IF RES THEN AbortRes
  NEXT i
  LOOKTAB StandardDaten, 0, BoxID
  LOOKTAB StandardDaten, 1, BS1
  LOOKTAB StandardDaten, 2, BS2
  LOOKTAB StandardDaten, 3, BS3
  LOOKTAB StandardDaten, 4, BS4
  LEDs = 255

#WartenRES
  IF NOT RES THEN GOTO WartenRES
  LEDs = 15
  OPEN# FOR WRITE
  PRINT# BoxID
  PRINT# BS1
  PRINT# BS2
  PRINT# BS3
  PRINT# BS4
  CLOSE#
  IF Disp < 1 THEN GOTO JP012
  SendCom = 1
  PRINT "Standard-Daten wurden geladen!"
  PRINT "Slave 1: ";BS1;"00 Baud"
  PRINT "Slave 2: ";BS2;"00 Baud"
  PRINT "Slave 3: ";BS3;"00 Baud"
  PRINT "Slave 4: ";BS4;"00 Baud"
  PRINT "Einstellungen im EEPROM gespeichert"
  PUT LF
  PAUSE 1
  SendCom = 0
#JP012
  PAUSE 100
  LEDs = 0
  GOTO AbortRES

#AbortRES
  i = 0
  GOSUB AktivPort
  RETURN

#xReset
  GET DatenEin
  IF DatenEin <> SP THEN GOTO MainLoopX
  IF Disp < 1 THEN GOTO JP013
  SendCom = 1
  PRINT "Software-Reset ausgefuehrt"
  PUT LF
  PAUSE 1
  SendCom = 0
#JP013
  GOTO Init

  END

  'Initialisierungsdaten für den Urlade-Zustande der Box
  TABLE StandardDaten
  0 48 48 48 48
  TABEND

Das Programm ist für 5 Datenleitungen gedacht und eine davon ist der Master der den Schaltvorgang und die Baudrate ändern kann.

Bild hier  

Die Box sah wie auf dem Foto hier aus. die PS/2-Anchlüsse dienen der 5V-Versorgung der RS232-Teilnehmer und die LED's auf der Frontseite sind die Kanäle 1 bis 4, Data, Kommando-Sequenz.

Eine Testsoftware von mir zum Prüfen der Funktion der Box unter MS-DOS:

http://www.mds-5.de/Temp/Tf1test1.exe

Bei Bedarf kann ich es ja noch auf meiner Seite veröffentlichen. Habe auch ein Demo-Programm geschrieben, Layouts angefangen. Funktioniert hatte sie aber ganz gut.

Aktueller Stand der TF-1 Box:

* Multiplexer zur direkten Verbindung von Slave-Teilnehmern zu den Master-Teilnehmern
* Auf dem Master horcht die MCU mit, um Steuer-Kommandos zu erkennen
* Die Baudrate der MCU-Schnittstelle stellt sich je nach angewähltem Slave-Teilnehmer automatisch ein
* Bei der Umschaltung der Slave-Schnittstelle werden alle Teilnehmer durch das RTS/CTS- Handshake blockiert, bis die Parametrierung und die Umschaltung fertig ist
* Die Multiplexer-Schaltung wird durch einen EPROM vom Typ 2764 realisiert
* Jede Schnittstelle wird mit einem eigenen RS232-Treiber ausgestattet vom Typ MAX232 von MAXIM
* Die RS232-Treiber der Slave-Teilnehmer soll mit einer Steuerleitung deaktiviert werden können. Der RS232-Treiber der Master-Schnittstelle ist jedoch immer aktiv
* Die Slave-Teilnehmer werden auf 4 Teilnehmer begrenzt
* Es gibt nur einen Master im System. In diesem Fall immer ein Palm-Top
* Slave 1 soll vorerst einmal nur der GPS-Empfänger sein. Baudrate 4800 Baud
* Slave 2 soll vorerst einmal nur ein Handy im GSM-Mode sein. Baudrate 9600 Baud
* Slave 3 und Slave 4 werden vorerst nur einmal Reserve sein, und sind auf eine Baudrate von 9600 Baud eingestellt
* Die Stromversorgung der Slave-Geräte wird durch eine PS2- Steckverbindung hergestellt werden
* Die Stromversorgung des GPS-Empfängers ist auch bei ausgeschalteter TF-1 Box aufrechtzuhalten. Diese Funktion kann durch einen Jumper deaktiviert werden
* Die Box soll eine Standby-Funktion besitzen. Die Wake-Up Funktion wird entweder durch ein beliebiges Kommando vom Palm- Top ausgelöst, oder durch eine Remote- Leitung von der Zündanlage des Fahrzeugs
* Der Palm-Top ist die Steuereinheit der TF1-Box, und besitzt alle nötigen Funktionen zur Bedienung der TF-1 Box
* Die TF-1 Box muß nur auf Kommandos des Palm-Top (Master) reagieren, und alle nötigen Umschaltsequenzen für das Handshake zwischen den Teilnehmern koordinieren

Funktionen im Schnittstellenprotokoll:

Schnittstelle wählen:
~~~~~~~~~~~~~~~~~~~~~

ESC S1; 27,S,1,;

Schnittstelle 1 Wird angewählt für Senden/Empfangen.
Danach muß der Palm auf die Baudrate der Schnittstelle wechseln (z.B. Schnittstelle 1 ist mit GPS-Empfänger verbunden, dann muß der Palm auf 4800 Baud umschalten). Dann wartet der Palm auf Empang von Daten.


Schnittstelle einstellen:
~~~~~~~~~~~~~~~~~~~~~~~~~

ESC B14800; 27,B,1,4,8,0,0,;

Schnittstelle 1 wird auf 4800 Baud eingestellt, damit die TF1-Box auch dei folgenden ESC-Kommandos versteht. Die start-Baudrate ist bei 9600 Baud fest eingestellt, wegen der sicheren Verbindung von Box und Palm.


Einstellungen sichern in EEPROM:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ESC E; 27,E;

Einstellungen werden im EEPROM gesichert wegen Spannungsausfall.

Beispiel:
~~~~~~~~~

1) Palm muß Schnittstelle auf 9600 Baud einstellen
2) Schnittstelle 1 einstellen mit dem Palm. Mit 'ESC B14800;'
3) Schnittstelle 2 einstellen mit dem Palm. Mit 'ESC B19600;'
4) Schnittstelle 3 einstellen mit dem Palm. Mit 'ESC B12400;'
5) Schnittstelle 4 einstellen mit dem Palm. Mit 'ESC B12400;'
6) Einstellungen sichern mit 'ESC E;'
---------------------------------------------------------------
7) Schnittstelle 1 anwählen mit 'ESC S1;'
Palm muß seine Schnittstelle jetzt sofort auf 4800 Baud einstellen
9) Jetzt kann der Palm auf Daten warten von der Box (Port 1 - GPS-Empfänger)
10) Die Daten die jetzt ankommen sind in 4800 Baud und im exakt gleichen Protokoll
wie die Daten vom GPS-Empfänger
11) Zu Schritt 7) wenn zu anderer Schnittstelle gewechselt werden soll

1) bis 6) nur bei Erstinbetriebnahme oder Änderungen nötig
7) bis 11) immer nötig für Umschaltung

Mit Reset werden die Schnittstellen auf 4800, 9600, 9600, 9600 eingestellt (Port 1 bis Port 4)

Das EPROM, das den Schaltvorgang durchführt sieht we folgt aus:

Code:
:100000005C7E9DBF5C7E9DBF5C7E9DBF5C7E9DBF18
:100010005C7E9DBF5C7E9DBF5C7E9DBF5C7E9DBF08
:100020005C7E9DBF5C7E9DBF5C7E9DBF5C7E9DBFF8
:100030005C7E9DBF5C7E9DBF5C7E9DBF5C7E9DBFE8
:100040005A7E5A7E9BBF9BBF5A7E5A7E9BBF9BBFE8
:100050005A7E5A7E9BBF9BBF5A7E5A7E9BBF9BBFD8
:100060005A7E5A7E9BBF9BBF5A7E5A7E9BBF9BBFC8
:100070005A7E5A7E9BBF9BBF5A7E5A7E9BBF9BBFB8
:10008000567E567E567E567E97BF97BF97BF97BFC8
:10009000567E567E567E567E97BF97BF97BF97BFB8
:1000A000567E567E567E567E97BF97BF97BF97BFA8
:1000B000567E567E567E567E97BF97BF97BF97BF98
:1000C0004E7E4E7E4E7E4E7E4E7E4E7E4E7E4E7ED0
:1000D0008FBF8FBF8FBF8FBF8FBF8FBF8FBF8FBFB0
:1000E0004E7E4E7E4E7E4E7E4E7E4E7E4E7E4E7EB0
:1000F0008FBF8FBF8FBF8FBF8FBF8FBF8FBF8FBF90
:100100005C7E9CBE5C7E9CBE5C7E9CBE5C7E9CBE1F
:100110005C7E9CBE5C7E9CBE5C7E9CBE5C7E9CBE0F
:100120005D7F9DBF5D7F9DBF5D7F9DBF5D7F9DBFEF
:100130005D7F9DBF5D7F9DBF5D7F9DBF5D7F9DBFDF
:100140005A7E5A7E9ABE9ABE5A7E5A7E9ABE9ABEEF
:100150005A7E5A7E9ABE9ABE5A7E5A7E9ABE9ABEDF
:100160005B7F5B7F9BBF9BBF5B7F5B7F9BBF9BBFBF
:100170005B7F5B7F9BBF9BBF5B7F5B7F9BBF9BBFAF
:10018000567E567E567E567E96BE96BE96BE96BECF
:10019000567E567E567E567E96BE96BE96BE96BEBF
:1001A000577F577F577F577F97BF97BF97BF97BF9F
:1001B000577F577F577F577F97BF97BF97BF97BF8F
:1001C0004E7E4E7E4E7E4E7E4E7E4E7E4E7E4E7ECF
:1001D0008EBE8EBE8EBE8EBE8EBE8EBE8EBE8EBEBF
:1001E0004F7F4F7F4F7F4F7F4F7F4F7F4F7F4F7F9F
:1001F0008FBF8FBF8FBF8FBF8FBF8FBF8FBF8FBF8F
:00000001FF
Grüsse Wolfgang