Forum: Mikrocontroller und Digitale Elektronik Ansteuerung von analogen Schaltern


von Mike S. (ghinzu)


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

von Wolfgang (Gast)


Lesenswert?

Mike S. schrieb:
> 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.

Der DG4157E wird in CMOS Technologie gefertigt. MOSFETs werden mit 
Spannung angesteuert. Der Eingangsstrom ist nur ein parasitärer Effekt.

von Wolfgang (Gast)


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?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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

: Bearbeitet durch Moderator
von Peter D. (peda)


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.

von Mike S. (ghinzu)


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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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

von Peter D. (peda)


Lesenswert?

Es gibt auch 3-fach Mux, z.B. TMUX4053, da reichen 7 ICs für 20 Signale.
Die Signale dürfen auch negativ oder größer als der Logikpegel sein.

von Mike S. (ghinzu)


Lesenswert?

Peter D. schrieb:
> Es gibt auch 3-fach Mux, z.B. TMUX4053, da reichen 7 ICs für 20 Signale.
> Die Signale dürfen auch negativ oder größer als der Logikpegel sein.

Ja auch schon gesehen, wir haben uns für dieses entschieden, weil der 
On-Widerstand mit 0,86 Ohm sehr klein ist, sodass der Bus nicht 
beeinflusst wird (Hoffentlich)

: Bearbeitet durch User
von MaWin (Gast)


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.

von Wolfgang (Gast)


Lesenswert?

Lothar M. schrieb:
> Warum erwartest du, dass ein elektronischer Schalter nicht umschaltet?

Spätestens wenn er einmal durchlegiert, tut er das nicht (mehr) ;-)

von Wolfgang (Gast)


Lesenswert?

Mike S. schrieb:
> Ja auch schon gesehen, wir haben uns für dieses entschieden, weil der
> On-Widerstand mit 0,86 Ohm sehr klein ist, sodass der Bus nicht
> beeinflusst wird (Hoffentlich)

Was ist denn das für ein Hochleistungsbus, bei dem es auf ein paar Ohm 
ankommt?

von Peter D. (peda)


Lesenswert?

Mike S. schrieb:
> DG4599EDL-T1-GE3

SC70-6, wie ich das hasse.
Zum Löten brauchst Du ein Mikroskop. Und 3 Tage vorher keinen Kaffee 
trinken und gut ausschlafen.

von MaWin (Gast)


Lesenswert?

Peter D. schrieb:
> SC70-6, wie ich das hasse.

Immerhin kein BGA oder WLCSP.

Die Teile sind halt alle für automatische Fertigung. Ein Fabrikbesitzer 
wird sagen: bedrahtet  wie ich das hasse, das muss jemand per Hand 
reinstecken.

von Mike S. (ghinzu)


Lesenswert?

Peter D. schrieb:
> SC70-6, wie ich das hasse.
> Zum Löten brauchst Du ein Mikroskop. Und 3 Tage vorher keinen Kaffee
> trinken und gut ausschlafen.

Hab zumindest einen Adapter fürs Breadbord. Aber ja um das anlöten kommt 
man da trotzdem nicht herum.

von Frank K. (fchk)


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

von Mike S. (ghinzu)


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.

von Peter D. (peda)


Lesenswert?

Mike S. schrieb:
> oder LIN sein wird

Dann qualmt aber der DG4599E an 12..14V.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mike S. schrieb:
> 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.
Irgendwie ist das grade in Mode...

Mir fallen da diese beiden Threads ein:
- Beitrag "CAN Switch / Relais ?"
- Beitrag "Analoger Multiplexer"

von Mike S. (ghinzu)


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.

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Wolfgang schrieb:
> Der Eingangsstrom ist nur ein parasitärer Effekt.

So kann man das nicht sagen. Es muss eine gewisse Ladungsmenge auf die 
Gates der beiden beteiligten CMOS-Transistoren, damit diese umschalten. 
Was parasitär ist, wäre der konstante Leckstrom der danach auch noch 
fließt.

von Frank K. (fchk)


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

von Wolfgang (Gast)


Lesenswert?

Jürgen S. schrieb:
> So kann man das nicht sagen. Es muss eine gewisse Ladungsmenge auf die
> Gates der beiden beteiligten CMOS-Transistoren, damit diese umschalten.

Das ist ein dynamischer Effekt und der beim Umladen fließende Strom ist 
deutlich höher als die angegebenen 1µA.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.