Forum: Mikrocontroller und Digitale Elektronik Logiksignale ohne Mikrocontroller zwischen Platinen übertragen


von Frank L. (bns)


Lesenswert?

Hallo,

ich suche einen IC (bzw. ein IC-"Pärchen"), der/das ohne die Hilfe eines 
Mikrocontrollers eine Anzahl von Logiksignalen (Schaltern) über eine 
möglichst geringe Anzahl von Leitungen zwischen zwei Platinen überträgt.

Im Moment sind die beiden Platinen über ein vieladriges Flachbandkabel 
verbunden, welches pro Schalter eine Ader vorhält. Es wäre schön, ohne 
großen Entwicklungsaufwand das Ganze in oben beschriebener Weise z.B. 
über I2C übertragen zu können, ohne dafür gleich einen Mikrocontroller 
zu benötigen.

Kennt jemand ICs, die so etwas können?


Gruß
Frank

von stm (Gast)


Lesenswert?

Multiplexer? Sowas gibts als Logik IC

von stm (Gast)


Lesenswert?

auf der anderen Seite brauchst du dann einen Demultiplexer

also so:

Multiplexer (Mit Schaltern) --wenige Leitungen--> Demultiplexer

Es gibt aber auch Portexpander mit I2C. Musste mal googlen.

von Frank L. (bns)


Lesenswert?

Hallo STM,

Mux/Demux bringt nichts, da es sich um ca. 20 Kippschalter handelt, die 
in beliebiger Stellung stehen können (also auch alle gleichzeitig "1" 
etc.).
i2C-Portexpander gibt es zu hauf, aber die ich kenne wollen alle von 
einem uC bedient werden.

von Werner (Gast)


Lesenswert?

stm schrieb:
> Es gibt aber auch Portexpander mit I2C. Musste mal googlen.
Ohne I2C-Master wird das schwierig.

von Henning (Gast)


Lesenswert?

NE555 als Taktgenerator und dazu Multiplexer------>Demultiplexer

von stm (Gast)


Lesenswert?

> Mux/Demux bringt nichts, da es sich um ca. 20 Kippschalter handelt, die
> in beliebiger Stellung stehen können (also auch alle gleichzeitig "1"
> etc.).

Das ist nicht tragisch. Man muss halt dafür sorgen das alles Synchron 
läuft. also den Takt musst du als Leitung schon mitführen hin zum Demux 
und dann alles per Reset auf einen definierten Anfangszustand bringen.

von Lucas K. (lucas_k)


Lesenswert?

Frank L. schrieb:
> Hallo STM,
>
> Mux/Demux bringt nichts, da es sich um ca. 20 Kippschalter handelt, die
> in beliebiger Stellung stehen können (also auch alle gleichzeitig "1"
> etc.).

Das ist doch egal. Schau dir mal unter 
http://de.wikipedia.org/wiki/Multiplexer die kleine animierte Grafik 
oben rechts an.

Du gehst einfach zyklisch alle Eingänge durch und überträgst dann die 
einzelne Signalleitung und die benötigte Anzahl an Adressleitungen. Wenn 
du das machst - schnell genug versteht sich - und dann auf der 
Ausgangsseite noch schön glättest, sollte garnicht auffallen, das 
Multiplexing betrieben wurde.

Du könntest dann auch noch entsprechend Dekodieren und aus deinen 20 
Signalen ein 5-Bit Signal machen. Dann brauchst du keinen so großen 
Multiplexer.

von stm (Gast)


Lesenswert?

Aber mal nachgefragt: Was spricht denn gegen einen µC?

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Frank L. schrieb:
> Es wäre schön, ohne
> großen Entwicklungsaufwand das Ganze in oben beschriebener Weise z.B.
> über I2C übertragen zu können, ohne dafür gleich einen Mikrocontroller
> zu benötigen.

Was den Aufwand betrifft, hast du wohl Recht, aber bezüglich der Kosten 
kommst du möglicherweise mit dem Mikrocontroller besser weg.

von Frank L. (bns)


Lesenswert?

Es ist ein bereits bestehendes Gerät, in dem die Kabelwust reduziert 
werden soll.
Meine Idee war, dass es doch bestimmt irgend einen Halbleiterhersteller 
gibt, der für diese einfache Anwendung ein fertiges IC anbietet, so dass 
man ohne uC auskommt. Es wäre das einfachste gewesen: ein einzelner IC 
auf jeder Seite.
Mit uC ist der Entwicklungsaufwand höher, und ganz ohne zusätzliche 
Peripherie wird man beim uC wahrscheinlich auch nicht auskommen.

Aber bevor ich anfange, mit Mux/Demux und 555er da was zu basteln, würde 
ich dann doch einen einfachen uC vorziehen...

von tja (Gast)


Lesenswert?

Ich würde statt einer Mux/Demux-Lösung eine Schieberegisterlösung 
bevorzugen, wenn es schon mit reiner Logik realisiert werden sollte. 
Scheint mir vom Bauch raus die bessere Lösung zu sein.

von Frank L. (bns)


Lesenswert?

Bevor das hier in die falsche Richtung geht:

Vielen Dank für Eure Vorschläge bezüglich Schieberegister, Mux/Demux 
etc., aber das ist nicht das, worum es mir hier geht.
Dass es hunderte verschiedene Lösungsansätze gibt ist mir auch klar, 
aber mir geht es darum, das ganze möglichst mit einem einzigen IC auf 
jeder Seite ohne großen Entwicklungsaufwand zu erreichen.

von holger (Gast)


Lesenswert?

>das ganze möglichst mit einem einzigen IC auf
>jeder Seite ohne großen Entwicklungsaufwand zu erreichen.

Lass dir doch nen uC Programmieren. Musste halt für zahlen.
Entwicklungsaufwand fällt dann weg. Was willst du ausgeben?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Vorausgesetzt, die Anforderungen an die Reaktionsgeschwindigkeit beim 
Betätigen der Schalter sind nicht "härter" als bei normalen, von 
Menschen zu bedienenden Eingabegeräten, dann lässt sich die 
Angelegenheit mit einem Taktgenerator, einem Zähler, einem 
Parallel-zu-Seriell-Schieberegister und einem 
Seriell-zu-Parallel-Schieberegister mit Latch erledigen.

Die Signale der Schalter werden auf der "Senderseite" mit den Eingängen 
des Parallel-zu-Seriell-Schieberegisters verbunden, und auf der 
"Empfängerseite" korrespondierend mit den Ausgängen des 
Seriell-zu-Parallel-Schieberegisters.

Der Taktgenerator speist den Takteingang beider Schieberegister.

Zwischen "Sender" und "Empfänger" sind (neben Masse) drei 
Signalleitungen erforderlich: Der eigentliche Takt, das serielle 
Datensignal und ein noch zu erzeugendes Rahmensignal, das dem 
"Empfänger" mitteilt, daß jetzt ein vollständiger Datensatz übertragen 
wurde und ausgegeben werden kann.

Auf der Senderseite kann ein 74xx165 (bzw. mehrere davon) verwendet 
werden, um den seriellen Datenstrom zu erzeugen. Das Rahmensignal kann 
hier verwendet werden, um das Schieberegister mit den parallel 
anliegenden Daten zu befüllen, also an /PL des '165 anschließen.

Auf der Empfängerseite eignet sich ein 74xx595 (oder mehrere, je 
nachdem, wieviele Daten zu übertragen sind. Das Taktsignal kommt an 
SHCP, das Rahmensignal an STCP /OE ist daueraktiv, und beim Einschalten 
der ganzen Chose ist noch was sinnvolles mit dem Resetsignal 
anzustellen.

Jetzt fehlt "nur" noch die Erzeugung des Rahmensignales, was sich mit 
dem eingangs erwähnten Zähler bewerkstelligen lassen dürfte.

Viel Erfolg!

von tja (Gast)


Lesenswert?

Entwicklungsaufwand hat man immer. Entweder in Software oder in 
Hardware. In diesem Fall führen viele Wege nach Rom. Du musst dich eben 
entscheiden, ob du dein Gehirnschmalz in Hardware einsetzt (Meiner 
Meinung nach erhält man dadurch die Lösung mit der kleinsten Latenz), 
oder schnelle eine µC Schaltung aufbauen und dann das ganze in Software 
gießen. Natürlich ist das auch kein Problem.

Mein Tipp: Gib der einfachen Logik mal eine Chance. Man muss nicht immer 
alles gleich mit einen µC erschlagen.

von tja (Gast)


Lesenswert?

Vielen Dank Rufus, du hast gerade meine Idee ausführlich beschrieben ;-)

von Frank L. (bns)


Lesenswert?

> Lass dir doch nen uC Programmieren. Musste halt für zahlen.
> Entwicklungsaufwand fällt dann weg. Was willst du ausgeben?

Programmieren kann ich den auch selber, danke. Aber wie schon gesagt, 
ich war einfach auf der Suche nach einer noch einfacheren Lösung und 
hoffte, jemand wäre über das gleiche Problem schon mal gestolpert und 
könnte mir einfach sagen: klar, nimm den "SW47110815", der macht genau 
das.

von stm (Gast)


Lesenswert?

> Mein Tipp: Gib der einfachen Logik mal eine Chance. Man muss nicht immer
> alles gleich mit einen µC erschlagen.

hmm.. mittlerweile mache ich fast alles mit einem µC. Selbst wenn nur 
eine LED blinken soll. Naja muss halt jeder selber wissen... XD

von wosnet (Gast)


Lesenswert?

Wie wärs mit diesem Chip(satz) von Holtek?
http://www.holtek.com/english/docum/consumer/2_12e.htm
Macht aus einem 8 bit Wort eine serielle Übertragung mit einer Leitung 
und der passende Dekoder macht wieder 8 bit draus.
Den Dekoder gibts sogar beim Conrad:
http://www.conrad.de/ce/de/product/174351/Linear-IC-HT-12-D-Gehaeuseart-DIL-18-Ausfuehrung-Decoder

von holger (Gast)


Lesenswert?

>> Lass dir doch nen uC Programmieren. Musste halt für zahlen.
>> Entwicklungsaufwand fällt dann weg. Was willst du ausgeben?
>
>Programmieren kann ich den auch selber, danke.

Dann ist das Thema doch in 10 Minuten gegessen.
Mehr als 100 Zeilen Code sind das nicht.
Ein Wochenendprojekt. Einfacher gehts nicht.
Und Spezialchips die es nächstes Jahr nicht mehr gibt
sparst du dir auch.

von Peter D. (peda)


Lesenswert?


von Frank L. (bns)


Lesenswert?

@wosnet
Danke, so in der Art hatte ich mir das gedacht, werde ich mir mal 
ansehen. Wenn es den IC auch noch für 24 Signale gäbe, wäre es perfekt 
-)

von Erik L. (Firma: chip45) (uc-erik)


Lesenswert?

Hallo Frank,

es gibt z.B. von TI sogenannte SERDES (serialze/deserialize) Chips. 
Diese übertragen viele parallele Eingänge (meist CMOS oder TTL) über 
wenige serielle Leitungen. Meistens sind die seriellen Leitungen LVDS 
Signale, also differenzielle Paare, sodass man hier ordentliche 
Leitungslängen erreicht und eine sichere Übertragung gewährleistet ist.

Ein Beispiel wäre das Pärchen DS90C215 (SER) und DS90C216 (DES):
http://www.ti.com/lit/ds/symlink/ds90cr215.pdf

Ist ehemals von National, jetzt TI. Die Kombination macht aus 21 
CMOS/TTL Eingängen drei LVDS Paare (plus Takt). Die kannst Du bequem 
über ein Standard RJ45 Ethernet Kabel mit vier Pärchen übertragen und 
hast keinen Stress mit eigener Kabelkonfektionierung.

Abgefahrener geht's mit DS921LV2411/12:
http://www.ti.com/lit/ds/symlink/ds92lv2411.pdf

Die Kombination macht aus 24+3 Bit ein einziges differenzielles Pärchen. 
Starke Sache.

Ich denke es wird sich irgendein passender SERDES Baustein für Deine 
Anforderung finden. Wenn's keiner von den beiden oben sein soll, einfach 
mal bei TI nach SERDES suchen.

Viele Grüße und viel Erfolg,
ER!K

---
http://www.chip45.com

von wosnet (Gast)


Lesenswert?

Den HT12x gibts glaube ich für 8bit und 12bit, man könnte ja 2x12 bit 
nehmen, dann hat man halt 2 serielle Leitungen.

> Und Spezialchips die es nächstes Jahr nicht mehr gibt
> sparst du dir auch.
Den HT gabs schon als ich vor 15 Jahren mit Elektronik angefangen hab, 
da hätte ich eher Angst, daß Atmel sein 8-bit-Controller einstellt ;-)

von Frank L. (bns)


Lesenswert?

Hallo Erik,

danke für die Info. Ist allerdings wohl etwas overengineered für meine 
Anforderungen, mit LVDS Signalen und Taktraten im zweistelligen 
MHz-Bereich.
Für 10 cm Kabel und eine Handvoll Schalter, deren Umschalten man auch 
erst nach 200 ms erkennen können darf, würde wohl auch ein 
Standard-5V-Signal und einige kHz reichen...

von Stephan (Gast)


Lesenswert?

Ohne µC hat sowas heute im Low-Speed-Segment doch fast keine Bedeutung 
mehr.
Einseitig - als IO-Erweiterung - ok, aber als Stand-Alone-Bridge?
Wenns sowas noch gibt schön, nachkommen wird da aber nicht mehr viel.

Stephan

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Frank L. schrieb:
> Für 10 cm Kabel und eine Handvoll Schalter, deren Umschalten man auch
> erst nach 200 ms erkennen können darf, würde wohl auch ein
> Standard-5V-Signal und einige kHz reichen...

Ach so, so langsam reicht auch?

Dann vielleicht an jedem Ende ein ATmega88A (bzw. ATmega328, weil oft 
billiger) und als Verbindung ganz zwei Drähte (inklusive 
Stromversorgung). Wenn die Schaltung etwas einfacher sein soll, dann 
drei Drähte.

Besondere Mikrocontroller-Beschaltung brauchts nicht. Quarz auch nicht. 
Nur halt das Übliche: Kondensatoren.

von Falk B. (falk)


Lesenswert?

Und das alles, um ein Flachbandkabel für 10 Cent zu ersetzen . . .

von Schlumpf (Gast)


Lesenswert?

Fassen wir zusammen:

- Prozessor ist zu kompliziert.

- diskrete SPI ist auch bissle kompliziert, da es keine 
Single-Chip-Lösung

- der LVDS-Kram ist zu "overengineered"


Also ich finde Falks Idee dann wohl die pragmatischste, billigste und 
vorallem kommt sie ohne externe Bauteile aus..

von Schlumpf (Gast)


Lesenswert?

Ach ja.. eine Idee hätt ich noch:
DAC-ADC... wegduck

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.