PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrfachumschalter



StoneColdCrazy
07.08.2004, 05:46
Hi...

Zur Zeit nutze ich Relays um Datenleitungen umzuschalten. Da mir das aber nach und nach zu Groß wird brauche ich eine bessere Lösung.

Folgendes... ich habe 20 Leitungen die rein kommen. Diese sollen per Steuerstrom auf auf andere Umgeleitet werden. Alle zugleich. Das heisst 1 Leitung der 20 hat 6 weitere. Also muss diese eine zwischen 6 hin und her geschaltet werden... Und das ganze 20 mal. Wenn die Eingangsleitung x1-1 auf Ausgangsleitung x3-1 gelegt wird müssen alle anderen auch auf die x3-n gelegt werden.

ZZ. sind es nur ein 20 Pol eingang und 2x 20 Pol Ausgänge welche ich mit 10x 2Fach Wechsler Relais regeln kann, nun kommen aber nochmal 4x 20 Pol Ausgänge dazu und das würde den Ramen sprängen mit Relays.


Ich dachte schon an ICs aber was kann man da nehmen?
Geht es anders? Muss ich Relays nehmen?

sonic
07.08.2004, 09:28
Hi...
Ich dachte schon an ICs aber was kann man da nehmen?
Geht es anders? Muss ich Relays nehmen?

Probiers mit Treibberbausteinen der 74er Reihe. Hatten wir grad schon mal in dem Thread wo jemand seine ISP-Stecker umschalten wollte...
Je nach Signal und Strom eventuel noch nen Leistungstreiber...

Gruß, Sonic

07.08.2004, 09:45
Es Kommt auch ein wenig auf deine Signale an. Was für Datenleitungen sind den das 3.3V, 5V, Frequenz?

StoneColdCrazy
07.08.2004, 09:55
Datenleitung. ein teil der 20 Leitungen sind RS-232

07.08.2004, 10:25
Wie wärs mit einem CD4051 pro Datenleitung

http://www-s.ti.com/sc/ds/cd4051b.pdf

RCO
07.08.2004, 18:17
Hi,
habe ein ähnliches Problem, wollte nen Umschalter zwischen 2 Parallelschnittstellen eralisieren, also entweder die einen 8 oder die anderen. Dafür relais zu verwenden ist auch zu blöd.
Der CD4051 ist dafür nicht so ganz geeignet, gleub ich, was gibt denn noch?

Und 2., wie sieht es bei Audiosignalen aus, dafür bräuchte ich was vergleichbares.

Robat
08.08.2004, 00:57
tja wenns sowas für audiosgnale auch gäbe wär ich auch interessiert! ](*,)

Volker-01
08.08.2004, 10:33
Hallo,

der Gast hier war ich. Hab gestern gar net gemerkt, das ich ausgeloggt war. der CD4051/52/53 sowie z.B. auch der CD4066/67 oder auch andere Analog-Multiplexer lassen sich für Digitale sowie Analoge Signale nutzen. Bei Audiosignalen sind jedoch ein paar Besonderheiten zu beachten, wenn es um Klangqualität geht. Da diese IC's auch Verzerrungen mit sich bringen.

BlueNature
08.08.2004, 11:01
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:



' 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.

http://www.mds-5.de/Temp/TF1BoxTitelbild.jpg

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;'
8) 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:



: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

StoneColdCrazy
08.08.2004, 17:30
mhhh.... alles schön und gut... nur die größe *scluck*

also ich habe mal ebend mein Elektronikbuch durchgeblättert... dabei bin ich wieder auf viele ICs gestoßen... so... nun sind die meisten aber für NAND, NOR etc. schaltungen. Meine Idee ist nun ein Chip zu haben der zB 8 eingänge und 8 ausgänge hat, sowie VCC und GND. Die 8 ein und ausgänge müssten bei Anliegen von VCC verbunden sein. Dann bräuchte man nur noch ein Relay zum strom an und ausschalten...


meine frage nun... gibt es sowas?

BlueNature
08.08.2004, 17:42
Das mit dem Code ist eetwas ausgefeilter weil es natürlich sehr viel kann. Der EPROM-Code ist das was umschalten kann. Ich habe einen EPORM genommen weil ich keinen GAL-Programmer habe. Mit einem kleinen Programm das man sich schreibt kann man aber einen speziellen "Multiplxer" als EPROM bauen. Es gibt ja Adressleitungen (In's) und Datenleitungen (Out's). ISt etwas ungewöhnlich, aber es funktioniert jedenfalls sehr schnell ohne sonstige Hardware. Mit den weiteren Adressleitungen schelte ich da eben die Eingänge um.

StoneColdCrazy
08.08.2004, 17:51
Hast du evtl. nen schaltbild? würde mir das gerne mal genauer ansehen...

BlueNature
08.08.2004, 19:05
Servus StoneColdCrazy!

Hab dir mal einen alten Schaltplan gescannt da ist die Beschaltung zu sehen mit den Pegelwandlern und dem EPROM als Schalter. Der Rest steht oben ;)

http://www.mds-5.de/temp/TF1.jpg

Grüsse Wolfgang

StoneColdCrazy
08.08.2004, 19:27
... ohh... danke... Jetzt verstehe ich das halbwegs.... nur bemerke ich gerade durch das Bild, bzw fällt mir dabei wieder ein, das RS232 ja nur 2 Steuerleitungen hat.... also auf gut deutsch hast du jetzt die 2 Steuerleitungen per umschalter auf 4 weitere gelegt....
mmhhh... man nehme das mal 10 und hat ein riesen aufwand... oO.... nun gut... ich werde das mal testen... vllt. kommt was bei raus.

Der IC2 ist 28C64 ?? kann das net richtig erkennen
EDIT:
Erledigt... wer lesen kann ist klar im vorteil
](*,)
EDIT:
Wenn ich das so sehe... könnte man es ja vllt auch mit nem Microcontroller machen... hmmmm

sonic
08.08.2004, 19:31
Servus StoneColdCrazy!

Hab dir mal einen alten Schaltplan gescannt da ist die Beschaltung zu sehen mit den Pegelwandlern und dem EPROM als Schalter. Der Rest steht oben ;)
http://www.mds-5.de/temp/TF1.jpg
Grüsse Wolfgang

Wie hast du das EPROM gebrannt? Selbstgebaute Schaltung? Ich befürchte das hat nicht jeder einfach so zuhause, oder geaht das auch einfacher?

Gruß, Sonic

StoneColdCrazy
08.08.2004, 22:07
Servus StoneColdCrazy!

Hab dir mal einen alten Schaltplan gescannt da ist die Beschaltung zu sehen mit den Pegelwandlern und dem EPROM als Schalter. Der Rest steht oben ;)
http://www.mds-5.de/temp/TF1.jpg
Grüsse Wolfgang

Wie hast du das EPROM gebrannt? Selbstgebaute Schaltung? Ich befürchte das hat nicht jeder einfach so zuhause, oder geaht das auch einfacher?

Gruß, Sonic

Stimmt, hat nicht jeder so einfach zuhause, man kann die aber einfach bauen für wenig geld.... habe glück das ich nen EPROM brenner hier habe.... gibt ja interessante seiten dazu

StoneColdCrazy
09.08.2004, 02:13
Bin gerade über nen interessanten IC gestolpert... Da ich den nun überhaupt nicht kenne frage ich euch nun.... würde der 74ALS 541 dafür gehen? gefunden zB bei reichelt.de

09.08.2004, 15:59
hallo,
alle reden von elektronischen umschaltern, gibt es eigentlich auch mechanische umschalter in dieser größe?

RCO
09.08.2004, 22:48
Ich denke schon, es gibt soweit ich weiß RElais, die bis zu 8 mal umpolen, aber die sind groß, saugen Strom und sind nicht schnell, und meistens verdammt teuer.

StoneColdCrazy
10.08.2004, 18:26
Kann mir vllt nun mal jemand sagen ob ich eventuell den IC 74ALS 541 nehmen kann? wenn ich das richtig sehe ja aber ich habe immer son kleines prob mit diesen AND und NOR etc. ^^

mcs
15.08.2004, 15:21
Sind die Leitungen bidirektional? Wenn nein, dann kannst du einfache Treiberbausteine nehmen und mit den enable-Eingängen umschalten.