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?
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
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
Wie wärs mit einem CD4051 pro Datenleitung
             http://www-s.ti.com/sc/ds/cd4051b.pdf
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.
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
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
hallo,
alle reden von elektronischen umschaltern, gibt es eigentlich auch mechanische umschalter in dieser größe?
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. ^^
Sind die Leitungen bidirektional? Wenn nein, dann kannst du einfache Treiberbausteine nehmen und mit den enable-Eingängen umschalten.
 
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.