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
Multiplexer? Sowas gibts als Logik IC
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.
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.
stm schrieb: > Es gibt aber auch Portexpander mit I2C. Musste mal googlen. Ohne I2C-Master wird das schwierig.
> 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.
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.
Aber mal nachgefragt: Was spricht denn gegen einen µC?
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.
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...
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.
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.
>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?
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!
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.
Vielen Dank Rufus, du hast gerade meine Idee ausführlich beschrieben ;-)
> 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.
> 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
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
>> 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.
@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 -)
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
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 ;-)
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...
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
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.
Und das alles, um ein Flachbandkabel für 10 Cent zu ersetzen . . .
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..
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.