Forum

Einloggen | Registrieren | RSS  

haemse(R)

Innsbruck,
08.04.2009,
18:40
 

MC Ausgänge kombinieren mit IC (Schaltungstechnik)

Hallo alle miteinander,

eigentlich bin ich Med-Student hab aber, da ich schon lange programmiere, nebenbei mit Elektronik angefangen - bin also in vielen Sachen noch Anfänger : )

Meine Frage ist: Gibt es ICs, mit denen man die Anzahl der Ausgänge eines MCs durch logische verknüpfung in einem IC "vervielfachen" kann? Zb. Wenn Eingang 1 und 2 (kommend vom MC) am IC synchron geschaltet sind, wird ein Ausgang geschaltet.

Ich hoff, das ist verständlich.

Gibt es solche ICs? Bzw. ich bin mir sicher, dass es die gibt, aber wie sind sie benannt?

lg Jacob

x y

08.04.2009,
19:04

@ haemse

MC Ausgänge kombinieren mit IC

» Meine Frage ist: Gibt es ICs, mit denen man die Anzahl der Ausgänge eines
» MCs durch logische verknüpfung in einem IC "vervielfachen" kann? Zb. Wenn
» Eingang 1 und 2 (kommend vom MC) am IC synchron geschaltet sind, wird ein
» Ausgang geschaltet.

Allgemein nennt man das Register. Für relativ langsame Signale reichen Schieberegister (74HC594), für schnellere nimmt man adressierbare Register (74HC259), oder gleich parallele Register (74HC574).

hws(R)

E-Mail

59425 Unna,
08.04.2009,
19:25

@ haemse

Ja, gibts ...

» Meine Frage ist: Gibt es ICs, mit denen man die Anzahl der Ausgänge eines
» MCs durch logische verknüpfung in einem IC "vervielfachen" kann?

Z.B. durch Multiplexing ganz ohne zusätzliches IC.
Mit 8 Leitungen machst du eine 4*4 Matrix. Damit kannst du dann 16 LED's unabhängig voneinander schalten - oder 16 Tasten einlesen.

Es gibt IC's, die brauchen 4 Eingangsleitungen vom µC und machen am Ausgang dann genau einen von 16 Ausgängen an. (aber eben immer nur EINEN)

Weitergedacht: diese 16 Leitungen dienen dazu, je ein "Speicher-IC" die am dortigen Eingang anliegenden Signale in seinen Speicher übernehmen und am Ausgang ausgeben zu lassen.
Alle Eingänge bekommen dasselbe 4-Bit Signal.
Also 4Bit Signal ausgeben, über die anderen 4 Bit einen Speicherbaustein auswählen, und wieder deaktivieren.
Bringt 16*4=64 unabhängige Bits (in der Praxis sind's nur 15*4, man muss ja auch "nix anwählen" können)

Oder ein Schieberegister: Ein Takteingang, ein Dateneingang und evtl als drittes ein Speichersignal vom µC. Schieberegister beliebig lang, z.B. 128 Bit. Also mit 3 µC Leitungen 128 Bit ausgeben. (Nachteil, nicht ganz so schnell, da erst alle 128 Bit ausgegeben werden müssen, bis das korrekte Signal anliegt.)

Oder bestimmte IIC-Ausgabebausteine mit 2 oder 3 µC Pinchen bedienen.

Halt jenachdem was du vorhast. Eingänge oder Ausgänge oder beides? Wie schnell? Digitalsignale oder Analogsignale?

Wenn du verrätst, was du vorhast, kann man dir auch besser (oder überhapt erst) helfen.

hws

haemse(R)

Innsbruck,
08.04.2009,
20:59

@ hws

Ja, gibts ...

Also erstmal vielen Dank auch für die Hilfsbereitschaft ...
Mein vorhaben ist, eine kleine Steuerung für 25-35 Relais zu bauen ... die vom Computer aus gesteuert werden soll ... es kann sein, dass ich da vlt ein bisschen überfordert bin aber ich kann ja dazulernen ... also die Pins des RS232 über eine API anzusprechen kann ich schon mal : )

Ja, das ist was ich vor habe ... vlt hilft euch das mehr um mir zu helfen :)

lg jacob

hws(R)

E-Mail

59425 Unna,
08.04.2009,
21:14

@ haemse

Ja, gibts ...

» also die Pins
» des RS232 über eine API anzusprechen kann ich schon mal : )
»
» Ja, das ist was ich vor habe

Du hattest gefragt, ob man die Pinchen eines µC's "vermehren" kann.

Das Ansprechen der Pinchen der RS232 per API lässt mich eher an einen PC denken als an einen µC ????

Was willst du denn nun? µC oder PC? Oder µC per RS232 vom PC aus steuern und der µC stellt deine 30 Relais so, wie der PC (oder du, oder das PC Programm?) es vorgibt?

Bin ich Hellseher? Du musst schon sagen, was du willst!

hws

Björn(R)

E-Mail

Dortmund,
08.04.2009,
22:02

@ haemse

Ja, gibts ...

» Also erstmal vielen Dank auch für die Hilfsbereitschaft ...
» Mein vorhaben ist, eine kleine Steuerung für 25-35 Relais zu bauen ... die
» vom Computer aus gesteuert werden soll ... es kann sein, dass ich da vlt
» ein bisschen überfordert bin aber ich kann ja dazulernen ... also die Pins
» des RS232 über eine API anzusprechen kann ich schon mal : )
»
» Ja, das ist was ich vor habe ... vlt hilft euch das mehr um mir zu helfen
» :)
»
» lg jacob

Hallo,

eine recht einfache Lösung wäre, die Ausgangspins der seriellen Schnittstelle zu missbrauchen und damit direkt einen 74HC594 anzusteuern. Wegen der Relais kommt es hier ja nicht so sehr auf Geschwindigkeit an. Die Schaltung hat aber den Nachteil, dass bei undefinierten Zuständen der RS232-Ausgänge (z.B Rechnerstart) Unvorhergesehenes passieren kann z.B. wildes Schalten irgendwelcher Relais.

Die sicherere Variante wäre es, einen µC über ein wohldefiniertes Protokoll per RS232 mit dem Anwenderprogramm kommunizieren zu lassen. Bei richtiger Beschaltung sind die Ausgänge (und damit die Relais) des µC beim Einschalten ebenfalls in einem definierten Zustand.

Schöne Grüße,
Björn

haemse(R)

Innsbruck,
09.04.2009,
00:09

@ Björn

Ja, gibts ...

OK, das mit dem µC scheint am sinnvollsten zu sein, aber gibt es überhaupt erschwingliche µC die 30 Ausgänge haben? Bei den Ausgängen ist eigentlich egal ob Analog oder Digital oder? Digitale müssten doch auch ein Relais schalten und bei Analogen müsste ich halt die Spannung programmieren? Hab leider noch nie einen µC programmiert ... dh. da muss ich halt dran ...

hws(R)

E-Mail

59425 Unna,
09.04.2009,
07:51

@ haemse

Ja, gibts ...

» erschwingliche µC die 30 Ausgänge haben?
Erschwinglich schon, nur dann meist in einem Gehäuse, dass ein Bastler nicht verarbeiten kann. SMD TQFP z.B.

» Bei den Ausgängen ist eigentlich egal ob Analog oder Digital oder?
Jein, Digital reicht, Analog ist Perlen vor die Säue.

Und ob es ohne Tricks 30 Analogausgänge gibt? Nimm Digital.

Kommts nur auf die 30 Relais an, dann nimm nen kleinen µC und setz Register oder Schieberegister zur Erweiterung der Ausgangspinchen dran. Relais sind gegenüber dem µC "arschlahm".

» Digitale müssten doch auch ein Relais
» schalten und bei Analogen müsste ich halt die Spannung programmieren?
Richtig, daher nicht gerade sinnvoll

» Hab
» leider noch nie einen µC programmiert ... dh. da muss ich halt dran ...

Oh je - µC mal so nebenbei auf die Schnelle lernen?

Was war denn mit "RS232 Pinchen über API bedienen" ?
Gings da um nen PC?
Beherrscht du das, auf dem PC programmieren und die Schieberegister an die Serielle.

hws

hws(R)

E-Mail

59425 Unna,
10.04.2009,
18:01

@ haemse

Und jetzt .. große Sendepause - oder Osterferien ohne Elektr

Verrat mal, was du kannst (PC programmieren vermutlich, µC nicht. Und Elektronikkenntnisse? IC's nach nem Schaltplan zusammenlöten, dass es auch funktioniert?)

Und dann verrat uns, was du vorhast. Nein, nicht das Detail "Relais schalten" sondern das Gesamtkonzept. Da die Relais vermutlich nicht zufällig als Lottozahlen reagieren sollen, werden wohl irgndwo Daten erzeugt, die das Schalten der Relais bestimmen.
Ich vermute: im PC?

Daraus liesse sich dann ein deinem Können und den technischen Anforderungen entsprechendes Konzept entwickeln. Sonst wird's vermutlich zu schwierig für dich, zu aufwändig oder am Thema vorbei.

hws

haemse(R)

Innsbruck,
16.04.2009,
18:03

@ hws

Und jetzt .. große Sendepause - oder Osterferien ohne Elektr

Sorry, dass ich mich so lange nicht gemeldet habe ... war weg!
Also was ich kann:
-Ich hab von allem ein bisschen Ahnung und kann mir auch gut vorstellen, wie es geht, aber ins Detail kann ich nicht gehn, weil ich in Sachen Elektronik bis jetzt einfache Dinge gemacht habe; uC habe ich noch nie programmiert, am Computer kann ich aber fast alles programmieren ... C, VB, Java, ...

-Was es genau sein soll: Also das Ziel ist mehrere Ralais zu schalten. Die Befehle, welches Relais geschalten werden soll, sollen vom Computer kommen! Synchron müssen nie 2 Relais gleichzeitig geschalten werden. Das zwischen Computer und Relais frag ich euch um Rat, wie ihr es machen würdet ... es sollen so 25-30 Relais sein!

Vielen Dank, Jacob

hws(R)

E-Mail

59425 Unna,
16.04.2009,
19:24

@ haemse

Und jetzt .. große Sendepause - oder Osterferien ohne Elektr

» Synchron müssen nie 2 Relais gleichzeitig geschalten werden. Das zwischen
» Computer und Relais frag ich euch um Rat, wie ihr es machen würdet ... es
» sollen so 25-30 Relais sein!


Hat der Rechner einen Parallelport?
Hat er einen Seriellport?
Kannst du eine Schaltung zeichnen: "aus 8 Stück 4-Bit Schieberegistern ein 32Bit Schieberegister bauen"

hws

haemse(R)

Innsbruck,
16.04.2009,
23:22

@ hws

Und jetzt .. große Sendepause - oder Osterferien ohne Elektr

Rechner hat RS232 aber kein parallel ...

Also, ich hab noch nie mit Schiebe Register gearbeitet ... hab mich allerdings schlau gemacht.

Also wie oben schon jemand erwähnt hat, ist es wohl sinnvoll ein codiertes, serielles Signal vom RS232 TX an ein uC Eingang zu senden und dann von dort (so meinst du es sicher mit den 8 Schieberegisten) 8 Ausgänge an 8 Schieberegister (4-Bit) setzten ... = 4x8=32 Kanäle

... allerdings eines hab ich bei den Schieberegistern noch nicht ganz verstanden: Gibt ein SR pro Takt an allen Ausgängen den Zustand des davorgesetzten FF aus? Das würde ja bedeuten, dass, wenn ich am Seriellen Zustant 1 setze, er jeden Takt die 1 am nächsten FF ausgeben wird ... dh. 4x in unserem Fall ... ???

danke Jacob

haemse(R)

Innsbruck,
17.04.2009,
15:03

@ haemse

Und jetzt .. große Sendepause - oder Osterferien ohne Elektr

ok ich glaub ich hab dazu auch die antwort ... für das was ich hab brauch ich auch ein 8-bit output register ... aber das scheint der 74HC594 eh zu haben ...

hws(R)

E-Mail

59425 Unna,
17.04.2009,
23:50

@ haemse

Und jetzt .. große Sendepause - oder Osterferien ohne Elektr

» ... allerdings eines hab ich bei den Schieberegistern noch nicht ganz
» verstanden: Gibt ein SR pro Takt an allen Ausgängen den Zustand des
» davorgesetzten FF aus?

ja

Dummierklärung: ein 32Bit Schieberegister ist ein Förderband mit Platz für 32 Wassereimer (oder 8 Förderbänder hintereinander mit Platz für je 4 Eimer).
Darüber ist ein Brett mit passenden 32 Löchern.

Jetzt kommt die Datenleitung des Schieberegisters und setzt vorn einen vollen oder leeren Eimer an das Förderband.

Die Clockleitung lässt alle Förderbänder genau um einen Eimer weiterlaufen. Also erscheint der erste (volle oder leere) Eimer unter dem letzten = 32.ten Loch.

Die Datenleitung setzt nun den nächsten Eimer an. Richtig geraten, voller Eimer = logisch 1, leerer Eimer = logisch 0. Nächster Clockimpuls und der vorige Eimer steht nun unter Loch 31, der jetzige Eimer unter Loch 32.

Und nach 32 Daten und Clockimpulsen steht der erste Eimer unter Loch 1 und der letzte Eimer (der 32te) unter Loch 32.

Soweit so gut, aber in der Zwischenzeit wandern die Eimer unter den Löchern vorbei und das ist ja zwischenzeitlich nicht das richtige Muster, was ich haben will.

Zwei Möglichkeiten:
1.) Es gibt eine dritte Leitung die sich Latch, OutputEnable oder so nennt, welche die Löcher erstmal zumacht. Erst nach dem 32.ten Schiebeimpuls machst du über diese Leitung die Löcher auf und dann steht das korrekte Ergebnis.
2.) Das Füllen der Eimer und Weiterschieben der Eimer ist so schnell, dass die lahmen mechanischen Relais das gar nicht merken. Und wenn die's kapiert haben, steht schon das korrekte Ergebis unter den richtigen Löchern. Und dann reagieren die Relais endlich.

Problem bei Möglichkeit 1: du brauchst 3 Leitungen im Gegensatz zu Möglichkeit 2.
Bei Möglichkeit 2 musst du aber schnell genug schieben. Ein Festplattenzugriff des Betriebssystemes o.ä. hält das Ganze für ne Pause an und die Relais reagieren evtl schon.

Bei der Seriellen hast du max 3 Ausgangsleitungen:
TX Pin3
RTS Pin7
DTR Pin4
Masse ist pin5 gegen du misst

Kannst du alle diese 3 Leitungen per API beliebig setzen? Oder evtl nur RTS und DTR?
Und ohne jede Störung? Denn auch ein noch so kurzer Störimpuls (evtl vom Betriebssystem?) lässt das Eimer-Förderband weiterrauschen (mit Überschallgeschwindigkeit)
Vorerst kannst du ja schonmal mit einem Multimeter am Seriellport probieren, ob dein Programm die Pinchen wirklich passend umschaltet, wie dein Programm es vorgibt. Statt Multimeter geht auch eine LED mit Vorwiderstand (470 Ohm z.B.)

Was auch noch zu lösen ist (aber nicht schwierig): die RS232 hat +/- 10V Signale, die Schieberegister brauchen Null / +5 Volt

Und was passiert, wenn der Rechner bootet und dein Programm noch nicht läuft, müssen wir auch noch lösen.

Was hast du an Hilfsmitteln?
Lötkolben und Löterfahrung müssen schon vorhanden sein (aber vielleicht hilft da ein Kommilitone oder Labor-Ing aus?) Aufbau einer Schaltung auf Lochraster oder Platine Layout erstellen und fertigen?

Multimeter? Oszilloskop? Speicheroszilloskop? Zähler? Kannst du auf Zuruf ein IC vom Typ CD40xxx besorgen und weisst du, dass es dasselbe IC auch unter MC40xxx gibt (nur andere Herstellerfirma)?

Kannst du evtl auch rausfinden, welche Typenbezeichnung ein Schieberegister IC hat - auch die unterschiedlichen Arten - mit/ohne Strobe/Speicher /4Bit oder 8 Bit lang?

hws