Hallo Zusammen. Ich habe eine kleine Frage auf die ich leider noch keine wirkliche Antwort gefunden habe. Zumindest keine die ich sonderlich schick finde. Mein Problem ist wie folgt: Ich hätte gerne eine Schaltung welche durch, einen Kompromiss eines kleines Dip Schalters, einen IO Pin sowohl als Ein als auch Ausgang nutzbar machen soll. Der Ausgang soll dafür dienen eine Last zu schalten, der Eingang entsprechend um ein Signal einzuspeisen. Das ganze geht von der 3,3/5V Ebene am IO auf die 24V Ebene am Eingang bzw. Ausgang. Der Sinn hinter diesem Ziel ist es einen Port Expander so effektiv wie möglich zu nutzen, ohne das zwei Pins für die jeweilge Funktion genutzt werden muss. Für meinen ganz privaten Einsatz soll das Projekt am Ende dienen um 24V Hutschienen-Relais zu schalten und Schaltersignale einzufangen die auf der Spannungsebene laufen. Wird ein kleines Smarthome-Projekt. Jetzt habe ich mir hier schon länger den Kopf darüber zerbrochen, aber entweder denke ich hier viel zu kompliziert, oder es ist gar nicht mal so super einfach.... oder vielleicht was dazwischen. Würde nur hier mal kurz meine, zugegebenermaßen, Holzhammer Lösung vorstellen und eure Meinung einholen. Also wenn ihr hier bessere Ideen habt oder einen schicken Baustein findet, der das eh schon alles kann. Gerne bescheid geben. Von der Funktion her ist mal angedacht mit dem Dip Switch zwischen der grundsätzlichen Funktionalität des Ein bzw. Ausgangs umzuschalten und je nachdem die entsprechende Pfade zu nutzen. Zur Verriegelung von beiden dient dann ein Inverter welcher über den gleichen Dip Switch geschaltet wird. Zur Sicherung das nicht die 3,3V auf die Schaltleitung fällt wird eine Diode genutzt. Und eine Zener Diode sichert den IO des µCs zusätzlich ab. Danke schonmal für die Hilfe! Gruß, Benjamin
:
Bearbeitet durch User
Wenn der Controller der das einlesen bzw. schalten soll genug Pins für eine Doppelbelegung hat und du nicht unendlich viel Strom brauchst, nimm einen bidirektionalen multiplexer. So hab ich eine Sensoreingang realisiert der verschiedene Spannungsbereiche oder PWM einlesen kann.
Jip, dass ist so dass was man findet. Nur versuche ich die Doppelbelgung zu vermeiden. Wäre am Ende glaub ich nicht so dramatisch nen zweiten Port Expander auf die Platine zu hauen. Aber würde es mal interessant finden, ob es denn nicht auch anders geht.
Sebastian S. schrieb: > Schau Dir mal die Funktion des Pull Up an. Bin mir hier nicht im klaren auf was Du hinaus willst.
Sieht unnötig kompliziert aus und bringt (für diesen Aufwand) kaum was. Wenn schon so simple, dann doch einfach eine 3-polige Buchse, 24V/Input/Output (Input geht geclipped und schwach an den Portpin, Output über MOSFET an Ground, Portpin an Gate). Dann brauchst du nicht mal was umjumpern ...
Btw, problematisch bei gemeinsamen Pin für In- und Output ist, dass ein Schalter als Input auch gleichzeitig eine 0-Ohm-Last bei Output wäre. Im Fehlerfall killt man sich dann die MOSFETs.
foobar schrieb: > Sieht unnötig kompliziert aus und bringt (für diesen Aufwand) kaum was. > Wenn schon so simple, dann doch einfach eine 3-polige Buchse, > 24V/Input/Output (Input geht geclipped und schwach an den Portpin, > Output über MOSFET an Ground, Portpin an Gate). Dann brauchst du nicht > mal was umjumpern ... Ja ich weiß, dass es sehr kompliziert ist und auch eigentlich totaler Overkill. Aber es muss doch ein Weg geben so was zu realisieren. foobar schrieb: > Btw, problematisch bei gemeinsamen Pin für In- und Output ist, dass ein > Schalter als Input auch gleichzeitig eine 0-Ohm-Last bei Output wäre. > Im Fehlerfall killt man sich dann die MOSFETs. Das ist ein guter Punkt, der dann entweder abgefangen werden muss, oder dann doch eine andere Lösung erfordert. Danke für den Hinweis.
:
Bearbeitet durch User
Wenn ich es richtig verstanden habe suchst du ein Schaltung, die einen bidirektionalen MC Pin (Logikpegel) auf 24V umsetzt.
Gerald K. schrieb: > Wenn ich es richtig verstanden habe suchst du ein Schaltung, die einen > bidirektionalen MC Pin (Logikpegel) auf 24V umsetzt. Am Ende des Tages, ja. Nur leider scheint das nicht so der Standart zu sein.
Benjamin S. schrieb: > Gerald K. schrieb: >> Wenn ich es richtig verstanden habe suchst du ein Schaltung, die einen >> bidirektionalen MC Pin (Logikpegel) auf 24V umsetzt. > > Am Ende des Tages, ja. Nur leider scheint das nicht so der Standart zu > sein. Die du per Mäuse-Klavier mit der Hand umschaltest.... Nimm halt Jumper. Mäuse-Klavier als Wechsler gibts auch (Strombelastung!).
Das keine automatische Umschaltung gefordert wird, erleichtert die Realisierung erheblich. Ich würde von einer Lösung mit Potentialtrennung ausgehen. z.B. Optokoppler oder noch besser Optomos AQZ202. Das vereinfacht die Schaltung, kostet aber mehr.
Teo D. schrieb: > Benjamin S. schrieb: >> Gerald K. schrieb: >>> Wenn ich es richtig verstanden habe suchst du ein Schaltung, die einen >>> bidirektionalen MC Pin (Logikpegel) auf 24V umsetzt. >> >> Am Ende des Tages, ja. Nur leider scheint das nicht so der Standart zu >> sein. > > Die du per Mäuse-Klavier mit der Hand umschaltest.... Nimm halt Jumper. > Mäuse-Klavier als Wechsler gibts auch (Strombelastung!). Naja, wenn es sowas nicht gibt muss man sich halt was basteln. Und sprach ja schon oben von einem Kompromiss ^^ Also einn Dip Schalter als Wechsler habe ich leider nicht gefunden, aber Schieberegler. Was denk ich dann echt eine Alternative sein könnte. Gerald K. schrieb: > Das keine automatische Umschaltung gefordert wird, erleichtert die > Realisierung erheblich. > Ich würde von einer Lösung mit Potentialtrennung ausgehen. z.B. > Optokoppler oder noch besser Optomos AQZ202. > > Das vereinfacht die Schaltung, kostet aber mehr. Richtig, automatische Umschaltung wäre cool, aber würde glaub ich dann doch langsam ins arg Übertriebene driften ^^ Mit Optokopplern hatte ich auch einiges probiert aber kam erst mal auf keine Lösung die nicht noch komplizierter geworden wäre, von daher ist das erst mal weggefallen. Zumal ich bei 24V, zugegebenermaßen, jetzt auch nicht so die Panik habe, dass ich mir das auf den µC haue. Preislich ist dieses SSR (glaube darunter laufen die Dinger), etwas außerhalb. Da ich satte 16 Stück davon benötigen würde.
@Benjamin S Schau Dir mal das Prinzip der Porterweiterung von z.B. einem PCF8574. Der kann ein Signal ausgeben (low oder high). Und er kann auch den Pin einlesen. (µP Eingang) Ein Pull-Up kann von der Peripherie bei High belassen werden oder mit Low überstimmt werden. (µP Ausgang) Bei "normaler" Dimensionierung des Pull-Up kann der µP den High-Wert auch mit seinem Pegel überstimmen. Sorry etwas spät.
Benjamin S. schrieb: > Ja ich weiß, dass es sehr kompliziert ist und auch eigentlich totaler > Overkill. Aber es muss doch ein Weg geben so was zu realisieren. Naja, was das an Extraplatz auf der Leiterplatte und zusätzlichen Bauteilen mehr kostet, kannst du dir ja selber überlegen. Das Vorzeichen der Differnz zu einem Mikrocontroller mit einigen Beinen mehr solltest du mal bestimmen und danach deine Entscheidung überdenken. Falls du dennoch eine solche Lösung haben willst, schau in irgendein Datenblatt eines Mikrocontrollers und schau dir die Innenbeschaltung eines Pins an und bau es einfach mit Jumpern, DIP-Schaltern und leistungsfähigeren Transistoren/FETs nach. Ansonsten nimm einfach einen dreipoligen Jumper, welchen du nach Bedarf umsteckst.
Ja, dann mal schönen Dank für die Info, dass es in dem µCs ein passendes Blockschaltbild gibt. Werde ich mir mal genauer anschauen.
Hallo, vielleicht so, per Jumper und Open Kollektor/Drain
Veit D. schrieb: > Hallo, > > vielleicht so, per Jumper und Open Kollektor/Drain Also aktuell habe ich es so gemacht, hat zwar dann, aus Kostengründen doch drei Anschlüsse. Aber irgendeinen Tod muss man ja sterben. Das der Mosfet hier dann durchschlatet, ist jetzt nicht so dramatisch.
Hallo, bei dir kommt zwischen Pin 1 und 3 zu schaltende Last? Richtig? Okay. An Pin 2 würde das Eingangssignal anliegen? Wenn ja, haste einen Spannungsteiler mittels R8 und R9. Wieviel davon sieht der µC Pin?
:
Bearbeitet durch User
Veit D. schrieb: > Hallo, > > bei dir kommt zwischen Pin 1 und 3 zu schaltende Last? Richtig? Okay. > An Pin 2 würde das Eingangssignal anliegen? > Wenn ja, haste einen Spannungsteiler mittels R8 und R9. Wieviel davon > sieht der µC Pin? Richtig zwische 1 und 3 dann ein Relais um es genau zu sagen. Und zwischen 1 und 2 ein normaler Schalter. Wenn ich mich nicht verrechnet habe, sollten um die 3,3V am µC anstehen.
Benjamin S. schrieb: > Mein Problem ist wie folgt: Ich hätte gerne eine Schaltung welche durch, > einen Kompromiss eines kleines Dip Schalters, einen IO Pin sowohl als > Ein als auch Ausgang nutzbar machen soll Ich mache das so, dass ich über einen µC Pin einen High-Side-Schalter (BSP oder BTS irgendwas) für den Ausgang schalte. Und mit einem Spannungsteiler den Spannungswert dieses Ausgangs über einen anderen µC Pin zurücklese. Wenn ich also "high" ausgebe, dann treibt der Ausgang 24V. Und wenn ich "low" ausgebe, dann kommt da kein Strom heraus. In diesem "inaktiven" low Zustand kann ich von aussen 24V anlegen und über den µC-Eingang einlesen. Funktioniert zigtausendfach tadellos... ;-)
1 | 24V |
2 | | |
3 | |- |
4 | Ausgang >-----------Ansteuerung--| HighSide Smart Switch |
5 | |> |
6 | µC | |
7 | | |
8 | ___ | |
9 | Eingang <-------o-----|___|--------o------------o |
10 | | 27k Last |
11 | - .---o |
12 | | | | |
13 | | |3k9 | |
14 | - | |
15 | | | |
16 | GND GND |
BTW: Highside deshalb, weil man in der Steuerungstechnik wegen Masseschlüssen lieber nicht die Masseleitung schaltet.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Benjamin S. schrieb: >> Mein Problem ist wie folgt: Ich hätte gerne eine Schaltung welche durch, >> einen Kompromiss eines kleines Dip Schalters, einen IO Pin sowohl als >> Ein als auch Ausgang nutzbar machen soll > Ich mache das so, dass ich über einen µC Pin einen High-Side-Schalter > (BSP oder BTS irgendwas) für den Ausgang schalte. Und mit einem > Spannungsteiler den Spannungswert dieses Ausgangs über einen anderen µC > Pin zurücklese. > > Wenn ich also "high" ausgebe, dann treibt der Ausgang 24V. Und wenn ich > "low" ausgebe, dann kommt da kein Strom heraus. > > In diesem "inaktiven" low Zustand kann ich von aussen 24V anlegen und > über den µC-Eingang einlesen. > > Funktioniert zigtausendfach tadellos... ;-) > >
1 | > 24V |
2 | > | |
3 | > |- |
4 | > Ausgang >-----------Ansteuerung--| HighSide Smart Switch |
5 | > |> |
6 | > µC | |
7 | > | |
8 | > ___ | |
9 | > Eingang <-------o-----|___|--------o------------o |
10 | > | 27k Last |
11 | > - .---o |
12 | > | | | |
13 | > | |3k9 | |
14 | > - | |
15 | > | | |
16 | > GND GND |
17 | > |
> BTW: Highside deshalb, weil man in der Steuerungstechnik wegen > Masseschlüssen lieber nicht die Masseleitung schaltet. Ja, haben wir auchz in der Lehre gelernt, dass man eigentlich nie die Masse schaltet. Aber sehe in der Praxis immer wieder, dass man das gerne ignoriert XD Ja, mit zwei Eingängen ist das ziemlich simpel. Aber das ist wirklich was, wo ich nur einen Pin haben will. Denn Hintergrund ist auch ein wenig, dass ich die Anzahl Port Expander begrenzen will. Der MCP23017 hat zwar immerhin 3 Pins zum setzen der Adresse. Aber es beschränkt mich dann doch auf 8 Stück. Was dann für 16 IOs auf 4x16 anstelle von 8x16 beschränken würde. Klar, dass ist auch eine ganz schöne Menge, aber nicht das Maximum ^^ Aber auf jeden Fall schönen Dank für deinen Vorschlag.
Benjamin S. schrieb: > Veit D. schrieb: >> Hallo, >> >> bei dir kommt zwischen Pin 1 und 3 zu schaltende Last? Richtig? Okay. >> An Pin 2 würde das Eingangssignal anliegen? >> Wenn ja, haste einen Spannungsteiler mittels R8 und R9. Wieviel davon >> sieht der µC Pin? > > Richtig zwische 1 und 3 dann ein Relais um es genau zu sagen. Und > zwischen 1 und 2 ein normaler Schalter. > Wenn ich mich nicht verrechnet habe, sollten um die 3,3V am µC anstehen. Achso, ich wußte nicht das du 24V draufgibts.
> Richtig zwische 1 und 3 dann ein Relais
Dann pack aber noch eine Diode über 1 und 3.
Benjamin S. schrieb: > Ja, mit zwei Eingängen ist das ziemlich simpel. Aber das ist wirklich > was, wo ich nur einen Pin haben will. Denn Hintergrund ist auch ein > wenig, dass ich die Anzahl Port Expander begrenzen will. Der MCP23017 > hat zwar immerhin 3 Pins zum setzen der Adresse. Aber es beschränkt mich > dann doch auf 8 Stück. Was dann für 16 IOs auf 4x16 anstelle von 8x16 > beschränken würde. Klar, dass ist auch eine ganz schöne Menge, aber > nicht das Maximum ^^ Dann löse das ganze doch mit Schieberegistern. HC595 für die Ausgangspins und HC597 für die Eingangspins. Das kannst Du dann fast nach Belieben verlängern. fchk
Benjamin S. schrieb: > Denn Hintergrund ist auch ein > wenig, dass ich die Anzahl Port Expander begrenzen will. Der MCP23017 > hat zwar immerhin 3 Pins zum setzen der Adresse. Aber es beschränkt mich > dann doch auf 8 Stück. Was dann für 16 IOs auf 4x16 anstelle von 8x16 > beschränken würde. Der CY8C9540A hat 32 I/Os und 7 Adress-Pins, macht 128 Bausteine an einem Bus bzw. 2048 externe I/Os (mit 2 Pins pro I/O). Von NXP gibt es LED-Treiber (z.B. PCA9955) von denen ca. 120 Bausteine an einen Bus passen, obwohl sie nur 3 Adress-Pins haben. Die verwenden 5-wertige Logik (GND, Pull-Down, Open, Pull-Up, VDD). Ich glaube, ich hab' den Trick auch schon bei Maxim oder Microchip gesehen, aber für einen normalen I/O-Expander.
:
Bearbeitet durch User
Frank K. schrieb: > > Dann löse das ganze doch mit Schieberegistern. HC595 für die > Ausgangspins und HC597 für die Eingangspins. Das kannst Du dann fast > nach Belieben verlängern. > > fchk Also habe das Ding gestern nur mal überflogen, aber scheint tatsächlich recht interessant zu sein. Müsste man sich vermutlich nur zur Ansteuerung was eigenes basteln und der Platine auch irgendwie was mitgeben, dass man die Angeschlossenen Geräte zählen kann. Danke für den Tipp Bauform B. schrieb: > > Der CY8C9540A hat 32 I/Os und 7 Adress-Pins, macht 128 Bausteine an > einem Bus bzw. 2048 externe I/Os (mit 2 Pins pro I/O). > > Von NXP gibt es LED-Treiber (z.B. PCA9955) von denen ca. 120 Bausteine > an einen Bus passen, obwohl sie nur 3 Adress-Pins haben. Die verwenden > 5-wertige Logik (GND, Pull-Down, Open, Pull-Up, VDD). Ich glaube, ich > hab' den Trick auch schon bei Maxim oder Microchip gesehen, aber für > einen normalen I/O-Expander. Ok... gut zu Wissen, aber ich will unser Haus in gewissen Maße Automatisieren, nicht unser Dorf XD Aber tatsächlich ziemlich witzig, dass es sowas gibt und dann quasi auf 5 Bit setzt. Am Ende wird der Chip aber preislich auch nicht in Frage kommen, da laut google ein IC mal 7€ kostet
Benjamin S. schrieb: > Also habe das Ding gestern nur mal überflogen, aber scheint tatsächlich > recht interessant zu sein. Müsste man sich vermutlich nur zur > Ansteuerung was eigenes basteln und der Platine auch irgendwie was > mitgeben, dass man die Angeschlossenen Geräte zählen kann. Ich ahne da was. Nein, I2C ist nicht zur Vernetzung verschiedener Leiterplatten über mehr als 50cm oder so geeignet und auch nicht dafür gedacht. Ja, es gibt Leute, die das versuchen, aber I2C hat eine maximale Leitungskapazität von 400pF. Solche Selbstbaulösungen sind allesamt Pfusch. Für die Überbrückung größerer Strecken und die Vernetzung verschiedener Module nimmst Du einen der üblichen Busse wie CAN oder RS485. fchk
Frank K. schrieb: > Ich ahne da was. Nein, I2C ist nicht zur Vernetzung verschiedener > Leiterplatten über mehr als 50cm oder so geeignet und auch nicht dafür > gedacht. Ja, es gibt Leute, die das versuchen, aber I2C hat eine > maximale Leitungskapazität von 400pF. Solche Selbstbaulösungen sind > allesamt Pfusch. Für die Überbrückung größerer Strecken und die > Vernetzung verschiedener Module nimmst Du einen der üblichen Busse wie > CAN oder RS485. > > fchk Also Leitungslänge habe ich nicht viel. Denn für den aktuellen Ausbau ist angedacht ein kleiner Schaltschrank mit nem Pi drin, der dann halt mit der Platine verbunden wird. Entsprechend umittelbare Umgebung. Ich werde jetzt kein "I2C Klingeldraht" quer durchs Haus ziehen.
:
Bearbeitet durch User
Benjamin S. schrieb: > Frank K. schrieb: >> >> Dann löse das ganze doch mit Schieberegistern. HC595 für die >> Ausgangspins und HC597 für die Eingangspins. Das kannst Du dann fast >> nach Belieben verlängern. >> >> fchk > > Also habe das Ding gestern nur mal überflogen, aber scheint tatsächlich > recht interessant zu sein. Müsste man sich vermutlich nur zur > Ansteuerung was eigenes basteln und der Platine auch irgendwie was > mitgeben, dass man die Angeschlossenen Geräte zählen kann. Da du einen Pi verwenden willst, hast Du ja bereits SPI, um die Bits durch die Schieberegister durchzutakten. Dann noch zwei GPIOs, um die Latches für die Eingangs- und Ausgangs-Register zu bedienen, und zwei GPIOs für die Enden der Schieberegister. Funktionsweise: Du schiebst beispielsweise 1024 0-Bits ins Ausgangs-Schieberegister. Dann schiebst Du 1-Bits, zählst die Takte und schaust, nach wie viel Takten die 1-Bits am anderen Ende wieder herausfallen. Schon kennst Du die Anzahl der Ausgänge. Bei den Eingängen wäre es ähnlich, aber wenn Du gleich viele Ein- wie Ausgänge hast, kannst Du Dir das sparen. Diese Lösung ist jedenfalls billig: HC595 und HC597 sind für 30-40 Cent zu haben. fchk
Frank K. schrieb: > Da du einen Pi verwenden willst, hast Du ja bereits SPI, um die Bits > durch die Schieberegister durchzutakten. Dann noch zwei GPIOs, um die > Latches für die Eingangs- und Ausgangs-Register zu bedienen, und zwei > GPIOs für die Enden der Schieberegister. > > Funktionsweise: Du schiebst beispielsweise 1024 0-Bits ins > Ausgangs-Schieberegister. Dann schiebst Du 1-Bits, zählst die Takte und > schaust, nach wie viel Takten die 1-Bits am anderen Ende wieder > herausfallen. Schon kennst Du die Anzahl der Ausgänge. Bei den Eingängen > wäre es ähnlich, aber wenn Du gleich viele Ein- wie Ausgänge hast, > kannst Du Dir das sparen. > > Diese Lösung ist jedenfalls billig: HC595 und HC597 sind für 30-40 Cent > zu haben. > > fchk Das ist tatsächlich ziemlich clever. Werde ich mir mal genauer anschauen. Danke.
Hallo, na wenn die Reise jetzt die Richtung wechselt, biste mit einem MCP23017 (I2C) oder MCP23S17 (SPI) flexibler. jeweils 16 I/Os frei konfigurierbar, Input, Input + Pullup, Output
Veit D. schrieb: > na wenn die Reise jetzt die Richtung wechselt, biste mit einem > > MCP23017 (I2C) oder MCP23S17 (SPI) flexibler. > > jeweils 16 I/Os frei konfigurierbar, Input, Input + Pullup, Output Ne ne Reise ändert sich nicht. Von daher bleibt es bei dem MCP, ist halt aktuell ganz angenehm, da es teilweise fertige Bibliotheken gibt und wir den auch in der Firma nutzen. Das mit dem Schieberegister ist dennoch eine ziemlich spannende Geschichte.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.