Forum: Mikrocontroller und Digitale Elektronik 8 Signale auf 1 Leitung?


von Tom[i] (Gast)


Lesenswert?

Hallo,

als Anfänger hab ich nun eine Frage, an der ich mir schon den Kopf 
zerbrochen hab.

Ich hab auf einer Baugruppe 6 Lüfter, die jeweils für jede Umdrehung ein 
Clocksignal (digitale 1) abgeben (etwa alle 14ms ein Signal der Länge 
7ms).

Nun würde ich gerne die Clocksignale aller Lüfter auf meinem uC 
mitzählen.
Allerdings gibt es zwischen der Baugruppe mit den Lüftern und der 
Baugruppe mit dem uC nur 1 Signalleitung.


Wie multiplexe ich die 8 Signale auf 1 Leitung?

Nach dem Gedanken jeden Lüfter jeweils 1 Sekunde lang nacheinander "auf 
die Leitung zu schalten" war ich jetzt schon beim Gedanken einen 
DA-Wandler auf der Lüfterplatine und dann einen AD-Wandler auf der uC 
Baugruppe zu benutzen.
(Sozusagen jeder Lüfterclok ein bit, einpacken, über die leitung, 
auspacken und hoffen, dass das selbe bitmuster rauskommt)


Wie macht man das "professionell"?


Danke für Erleuchtung!

Tom

von David (Gast)


Lesenswert?

was spricht gegen ein i2c io modul?

von Stefan E. (sternst)


Lesenswert?

David wrote:
> was spricht gegen ein i2c io modul?

Z.B. die Tatsache, dass man für i2c 2 Leitungen braucht.

@ Tom[i]:

Setze doch einfach auf die Lüfterbaugruppe einen kleinen µC, der die 
Auswertung macht, und dann das Ergebnis über die eine Leitung seriell an 
den "Master-µC" sendet.

von Frank (Gast)


Lesenswert?

UART-beusteinchen nehmen und alle 8 Bit alle x-ms abfeuern...

von Düsentrieb (Gast)


Lesenswert?

setzt doch einfach zu deiner lüftergruppe einen kleinen tiny2313, der 
wertet alle 6 lüfter aus und sendet ein fixes protokoll seriell auf der 
l leitung zu ...was auch immer

von Thomas M. (thomas1123) Benutzerseite


Lesenswert?

also wenn der eine draht nicht allzu lang ist dann kannste es mal mit 
digital -> analog -> digital versuchen. schau mal nach nem DA wandler 
der die 8 bit paralell gefütterst bekommt und benutze die untersten 
beiden bits nicht wenn du nur 6 brauchst und dann wertest du das 
analkoge signal mit nem µc aus müsste eigentlich prima funktioniren.

oder schau dich mal nach one-wire um wenn es umbedingt digital sein soll

von Jörg R. (Firma: Rehrmann Elektronik) (j_r)


Lesenswert?

@Tom:

> Wie multiplexe ich die 8 Signale auf 1 Leitung?

Wieso 8 Signale für 6 Lüfter ?

> Nach dem Gedanken jeden Lüfter jeweils 1 Sekunde lang nacheinander "auf
> die Leitung zu schalten" war ich jetzt schon beim Gedanken einen
> DA-Wandler auf der Lüfterplatine und dann einen AD-Wandler auf der uC
> Baugruppe zu benutzen.
> (Sozusagen jeder Lüfterclok ein bit, einpacken, über die leitung,
> auspacken und hoffen, dass das selbe bitmuster rauskommt)

Bei 6 Lüftern könntest Du das Clock-Signal auf einen definierten Pegel 
Puffern, z.B. 0/12V und die Lüftersignale unterschiedlich gewichtet auf 
Deine Signalleitung addieren. Das geht am einfachsten mit je einem 
Widerstand pro Lüfter (R, 2R, 4R, 8R, 16R u. 32R). Mit einem 8-Bit-ADC 
kannst Du nun das Summensignal wieder digitalisieren und theoretisch die 
Bits 7...2 direkt den Lüftern zuordnen. Dazu muß der ADC aber genau 
abgeglichen sein. Praktisch wird man per Software eine gewisse 
Fehlertoleranz berücksichtigen, um die Bits auch ohne Abgleich zuordnen 
zu können.

> Wie macht man das "professionell"?

Indem man vorher genügend Signalleitungen einplant ;-)

Jörg

von Jörg R. (Firma: Rehrmann Elektronik) (j_r)


Lesenswert?

Nachtrag:
Mein Vorschlag eignet sich eher dann, wenn die Lüfter an verschiedenen 
Stellen sind und ihre Signale auf einer Leitung gesammelt werden sollen.
Wenn alle Lüftersignale parallel zur Verfügung stehen, gibt es auch eine 
digitale Variante ohne µP auf der Lüfterseite:
Mit einem Schieberegister, z.B. 74xx165, kannst Du bis zu 6 nutzbare 
Datenbits parallel laden und UART-kompatibel mit einem Baudratentakt 
seriell ausgeben lassen. Der Ladeeingang des SR muß regelmäßig 
getriggert werden, um den aktuellen Status zu übertragen. Der serielle 
Eingang und der Ladeeingang des ersten auszugebenden Bits wird dabei 
fest auf 1 (Stopbit) verdrahtet. Der Ladeeingang des 2. auszugebenden 
Bits wird auf 0 gelegt (Startbit). Das so erzeugte 1-wire-Signal kann 
vom RXD-Eingang jeder UART gelesen werden.

Jörg

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.