Ansteuerung von analogen Schaltern

OP #7168419
Lesenswert?

Hallo,

ich möchte gerne 20 analoge Schalter (DG4599EDL-T1-GE3) parallel mit 
einem Arduino ansteuern.
Ich möchte also mit einer logischen 0/1 am Steuereingang alle 20 
Schalter parallel entweder im Schaltzustand 1 oder 2 betreiben.

Dazu habe ich 2 Fragen:

1.)
Laut Datenblatt (https://www.vishay.com/docs/75778/dg4157e.pdf) benötigt 
der Eingangsstrom zum steuern des Schaltzustandes (I_INH bzw. I_INL) 1 
bzw. -1 uA. Also für 20 Bauteile dann 20uA. Dafür sollten die ca. 20mA 
des digitalen Ausgangs des Arduinos doch ausreichen, um alle Bauteile 
parallel zu schalten oder sehe ich das falsch?

2.)
Ich würde gerne überprüfen, welcher Schaltzustand vorliegt bzw. 
sicherstellen, dass das umschalten auch funktioniert hat. Allerdings 
möchte ich dazu nicht in das System eingreifen. Könnte man für so etwas 
passive Hall Sensoren verwenden? Also quasi schauen ob ein Strom fließt 
(Zustand 1) oder nicht (Zustand 2)?

Vielen Dank schonmal für die Antworten
Gast #7168427
Lesenswert?

Mike S. schrieb:
> Könnte man für so etwas passive Hall Sensoren verwenden?
Nein

> Also quasi schauen ob ein Strom fließt (Zustand 1) oder nicht (Zustand 2)?
Welchen Strom willst du dazu anschauen?

Hall-Sensoren messen Magnetfelder. Hast du dir schon einmal 
ausgerechnet, wie groß das durch deine zu erwartenden Ströme erzeugte 
Magnetfeld in Relation zum Erdmagnetfeld ist. Was passiert, wenn du den 
Sensor bewegst?
Moderator (Firma: Titel) Persönliche Seite #7168434
Lesenswert?

Mike S. schrieb:
> Dafür sollten die ca. 20mA des digitalen Ausgangs des Arduinos doch
> ausreichen, um alle Bauteile parallel zu schalten oder sehe ich das falsch?
Wie oft willst du die Schalter umschalten? Wie schnell soll das gehen?

Mike S. schrieb:
> 1.)
> Laut Datenblatt (https://www.vishay.com/docs/75778/dg4157e.pdf) benötigt
> der Eingangsstrom zum steuern des Schaltzustandes (I_INH bzw. I_INL) 1
> bzw. -1 uA.
Das ist der statische Leckstrom. Du brauchst aber einen Strom, um die 
Eingangkapazität (und die Leiterbahnkapazität und sonstige parasitäre 
Kapazitäten) umzuladen. Aber gut: bei diesem Baustein ist die Control 
pin capacitance mit 1pF tatsächlich angenehm niedrig. Da überwiegt die 
Leitungskapazität.

Wenn du dann nur 1x pro Minute machst und/oder dir die Umschaltzeit egal 
ist, dann brachst du nichts weiter machen.

Wenn du aber 1000000 mal pro Sekunde möglichst gleichzeitig alles 
Schalter umschalten willst, dann brauchst du ausreichend Strom, um 
halbwegs steile Schaltflanken zu bekommen.

Mike S. schrieb:
> Ich würde gerne überprüfen, welcher Schaltzustand vorliegt
Den gibts doch du selber mit deinem µC vor...

> bzw. sicherstellen, dass das umschalten auch funktioniert hat.
Was müsste denn passieren, dass das Umschalten nicht funktioniert? 
Warum erwartest du, dass ein elektronischer Schalter nicht umschaltet? 
Warum meinst du, dass ein wesentlich komplexerer Kontrollmechanismus 
zuverlässiger funktioniert?

> Allerdings  möchte ich dazu nicht in das System eingreifen.
Du greifst mit deinen Schaltern doch eh' schon ein.

> Könnte man für so etwas passive Hall Sensoren verwenden? Also quasi
> schauen ob ein Strom fließt (Zustand 1) oder nicht (Zustand 2)?
Wieviel Strom soll denn da überhaupt fließen?

Mike S. schrieb:
> ich möchte gerne 20 analoge Schalter (DG4599EDL-T1-GE3) parallel mit
> einem Arduino ansteuern.
Nur zur Sicherheit: dir ist schon klar, dass solche Halbleiterschalter 
keine Relais sind? Der "Laststromkreis" braucht Potentialbezug zum 
Arduino. Die beiden Massen müssen miteinander verbunden werden. 
Darfst/Kannst du das machen? Und dann muss die zu schaltende Spannung 
natürlich im Bereich zwischen 0V und Vcc sein...
#7168452
Lesenswert?

Mike S. schrieb:
> Ich würde gerne überprüfen, welcher Schaltzustand vorliegt bzw.
> sicherstellen, dass das umschalten auch funktioniert hat.

Was soll der Quatsch. Du als Programmierer weißt doch am besten, ob Du 
den Portpin auf 0 oder 1 gesetzt hast.

Da muß man schon extrem chaotisch programmieren, daß man den Zustand 
zurück lesen muß. Ist aber auch kein Hexenwerk, ich kenne keine MCs, 
deren Portpins nur write-only sind.
OP #7168460
Lesenswert?

Lothar M. schrieb:
> Wie oft willst du die Schalter umschalten? Wie schnell soll das gehen?
Eine schnelle Taktfrequenz spielt keine Rolle. Es soll hin und wieder 
mal umgeschalten werden. Vielleicht noch ein paar mehr Infos zum 
Projekt:

Es soll ein kleines Uni Projekt realisiert werden. Die Multiplexer 
sollen im 1:2 Betrieb genutzt werden. Dabei ist der Pin A, wenn man es 
auf die Pin aus dem Datenblatt bezieht, eine Art Bus und Pin B_0 und B_1 
sind baugleiche Steuergeräte, zwischen welchen gewechselt werden soll. 
Allerdings bevor eine Übertragung stattfindet (Man muss sich also keine 
Gedanken über Timing etc machen als Vereinfachung).
Unsere konkrete Aufgabe ist es geeignete Multiplexer zu finden und mit 
einem Arduino parallel zu verschalten.

Lothar M. schrieb:
> Was müsste denn passieren, dass das Umschalten nicht funktioniert?
> Warum erwartest du, dass ein elektronischer Schalter nicht umschaltet?
> Warum meinst du, dass ein wesentlich komplexerer Kontrollmechanismus
> zuverlässiger funktioniert?
Das ist leider auch Teil der Aufgabenstellung. Kann aber sicherlich auch 
in SW realisiert werden.
Moderator (Firma: Titel) Persönliche Seite #7168473
Lesenswert?

Mike S. schrieb:
> eine Art Bus und Pin B_0 und B_1 sind baugleiche Steuergeräte, zwischen
> welchen gewechselt werden soll.
Da fließt also eigentlich kein nennenswerter Strom. Dann vergiss 
Hall-Sensoren. Das einzige, was du zur Überwachunge machen kannst, ist 
ein Komparator, der die Pegel vor und hinter dem Schalter vergleicht.

Und Alarm schlägt, wenn der Schalter eingeschaltet sein sollte und die 
Pegel unterschiedlich sind. Aber nach ganz kurzem Nachdenken kommt man 
schnell darauf, dass das technisch gesehen absoluter Overkill ist.

Das ist, wie wenn du für ein Bild von deiner Katze einen Nagel in die 
Wand schlägst und dann mit einer Kamera laufend kontrollierst, ob das 
Bild immer noch an der richtigen Stelle hängt.

Und das obwohl zigmillionen andere Bilder ganz ohne Kamera problemlos an 
der Wand halten...
Gast #7168482
Lesenswert?

Mike S. schrieb:
> Dafür sollten die ca. 20mA des digitalen Ausgangs des Arduinos doch
> ausreichen, um alle Bauteile parallel zu schalten

Ja.

Mike S. schrieb:
> Könnte man für so etwas passive Hall Sensoren verwenden?

Nein.

Selbst der (maximale) vom DG4599 geschaltete Strom ist zu gering für 
diese Sensorart, da ist ja das Erdmagnetfeld stärker (je nach Drehung 
der Platine). Ausserdem funktioniert so ein DG4599 einfach, da muss man 
nichts überprüfen, das ist ja kein mechanisches Relais. Wenn der kaputt 
ist, ist dein Arduino auch kaputt und man kann sowieso nichts mehr 
machen.
#7168655
Lesenswert?

Mike S. schrieb:

> Es soll ein kleines Uni Projekt realisiert werden. Die Multiplexer
> sollen im 1:2 Betrieb genutzt werden. Dabei ist der Pin A, wenn man es
> auf die Pin aus dem Datenblatt bezieht, eine Art Bus und Pin B_0 und B_1
> sind baugleiche Steuergeräte, zwischen welchen gewechselt werden soll.
> Allerdings bevor eine Übertragung stattfindet (Man muss sich also keine
> Gedanken über Timing etc machen als Vereinfachung).
> Unsere konkrete Aufgabe ist es geeignete Multiplexer zu finden und mit
> einem Arduino parallel zu verschalten.

Was ist das für ein Bus? CAN? Da kannst Du doch auf dem Bus mithören. 
CAN-Controller (entweder im Prozessor integriert oder per SPI 
angebunden) und passende Transceiver existieren. So lange dann auf dem 
aktiven Zweig gültige Pakete empfangen werden, ist alles in Ordnung. Die 
CAN-Controller kann man alle auch in den Listen-only Modus stellen, wo 
sie dann wirklich nur noch zuhören und keine ACKs verschicken.

Zwei Probleme hättet Ihr dann aber noch, wenn es CAN ist:
1. die Terminierung. Jeder Bus muss ja an beiden Enden mit einem 
Terminierungswiderstand abgeschlossen werden. Beim nicht aktiven 
Steuergerät ist das aber nicht der Fall, der Bus wäre einseitig offen. 
Ihr müsstet dann über einen zweiten Multiplexer einen 
Abschlusswiderstand auf das unbenutzte Segment schalten, damit das 
Steuergerät immer einen intakten Bus sieht.
2. die ACKs. Wenn ein Busteilnehmer ein Paket schickt, muss mindestens 
ein anderer da sein, der dieses Paket bestätigt. Ansonsten kommt es zu 
einem Busfehler. Könnt Ihr einfach lösen, indem Ihr den CAN-Controller 
auf dem nicht ausgewählten Segment vom Listen-Only in den normalen Modus 
schaltet. Dann wird der alle empfangenen Pakete bestätigen, und das 
Steuergerät ist happy.

fchk
OP #7168703
Lesenswert?

Frank K. schrieb:
> Zwei Probleme hättet Ihr dann aber noch, wenn es CAN ist:
> 1. die Terminierung. Jeder Bus muss ja an beiden Enden mit einem
> Terminierungswiderstand abgeschlossen werden. Beim nicht aktiven
> Steuergerät ist das aber nicht der Fall, der Bus wäre einseitig offen.
> Ihr müsstet dann über einen zweiten Multiplexer einen
> Abschlusswiderstand auf das unbenutzte Segment schalten, damit das
> Steuergerät immer einen intakten Bus sieht.
> 2. die ACKs. Wenn ein Busteilnehmer ein Paket schickt, muss mindestens
> ein anderer da sein, der dieses Paket bestätigt. Ansonsten kommt es zu
> einem Busfehler. Könnt Ihr einfach lösen, indem Ihr den CAN-Controller
> auf dem nicht ausgewählten Segment vom Listen-Only in den normalen Modus
> schaltet. Dann wird der alle empfangenen Pakete bestätigen, und das
> Steuergerät ist happy.

Danke für die Hinweise. Wir wissen tatsächlich zu diesem Zeitpunkt noch 
nicht, um welche Art von Bus es sich handelt. Aber schätze mal, dass es 
ein CAN oder LIN sein wird.
OP #7168743
Lesenswert?

Lothar M. schrieb:
> Irgendwie ist das grade in Mode...
>
> Mir fallen da diese beiden Threads ein:
> - Beitrag "CAN Switch / Relais ?"
> - Beitrag "Analoger Multiplexer"

Haha ja, den Beitrag haben wir auch gelesen und haben uns gefragt, ob es 
vielleicht ein Kommilitone gewesen sein könnte. Aber unser Projekt ist 
eigentlich ganz simpel.

Naja die gesammelten Infos sollten uns genügen, Danke an alle.
#7168995
Lesenswert?

Mike S. schrieb:

> Danke für die Hinweise. Wir wissen tatsächlich zu diesem Zeitpunkt noch
> nicht, um welche Art von Bus es sich handelt. Aber schätze mal, dass es
> ein CAN oder LIN sein wird.

Das solltet Ihr aber. Ansonsten könnt Ihr ja gar nicht den geeigneten 
Alalog-Multiplexer aussuchen. Ihr wisst dann ja gar nichts über 
Spannungspegel, Geschwindigkeiten, Wellenwiderstand bei differentiellen 
Leitungen usw usw.

Analoge Multiplxer können nur Signale schalten, die sich innerhalb ihrer 
Spannungsversorgung (entweder Vcc<Vsig<0 bei nur positiven Signalen oder 
Vcc<Vsig<Vee bei bipolaren Signalen) befinden. Auch dafür braucht Ihr 
zwingend die Information. Für CAN kann Euer Multiplexer bereits eng 
werden. Normalerweise liegen auf CAN_H und CAN_L Pegel zwischen 1.5V und 
3.5V an. Bei CAN kommt es aber wie bei allen differentiellen Bussen 
primär auf die Spannungsdifferenz an und nicht auf die absoluten Pegel 
(solange die im sogenannten Common Mode Range bleiben). Ein 
CAN-Transceiver würde also bei CAN_H=-3V und CAN_L=-5V (Differenz=+2V) 
problemlos einen dominanten Zustand erkennen - die Transceiver haben da 
einen Bereich mindestens von -7V bis +12V, mache sogar noch mehr.

Beachtet das.

fchk

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren