mikrocontroller.net

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


Autor: Tom[i] (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: David (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was spricht gegen ein i2c io modul?

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
UART-beusteinchen nehmen und alle 8 Bit alle x-ms abfeuern...

Autor: Düsentrieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Müller (thomas1123) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Rehrmann (Firma: Rehrmann Elektronik) (j_r)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Rehrmann (Firma: Rehrmann Elektronik) (j_r)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.