Forum: Mikrocontroller und Digitale Elektronik motoren mit CPLD oder SPI oder CD4514 oder noch anders?


von Robert R. (Gast)


Lesenswert?

Hallo Wissende,

mein Problem,
ich habe 32 kleine Motoren mit jeweils drei Kabelanschlüssen
(Masse, Drehrichtung Uhrzeiger, Drehrichtung Gegenuhrzeiger).
Wenn eine kurze Zeit (1.5 sec) eine Spannung von 3 Volt an
einem der beiden Steuer-Pins anliegt, dreht der Motor bis zum
Anschlag (die Spannung darf ruhig weiter anliegen, ein Schalter
im Motor unterbricht dann), der Strom während der 1.5 sec
ist ca. 100 mA.

Ich möchte, wenn möglich, über 6 bits diese 32 Motoren steuern,
also über die bits 0-4 den richtigen auswählen und über bit 5
auswählen, welche Drehrichtung der Motor bekommt.

Wichtig ist auch, dass die anderen 31 Motoren in ihrem Zustand
bleiben, wenn ich einen ausgewählten in den anderen Zustand
bringe.

Kann ich mal einen grossen Teil abdecken, indem ich ein CPLD
(z.B. das XC9572) verwende? Die sollten doch Flipflops haben,
um die Zustände zu speichern, und auch die notwendigen 32
Ausgänge und die sechs Eingänge zur Verfügung stellen können.
Ich müsste doch dann "NUR" sowas wie ein DEMUX 5 auf 32
realisieren, das 32 FlipFlops schaltet ?! ()


Oder ist es vernünftiger, zwei solche [4 auf 16]-Teile wie
den CD4514 zu verwenden und die FlipFlops mit einem weiteren
Baustein zu realisieren?

Oder ist so eine Lösung mit Schieberegistern (74HCT595) und
seriellem bit-Muster-übertragen die "BESTE" Lösung? (dann
müsst ich aber Schaltungen "designen", so wie ich das verstehe)

Wenn das so ginge, müsst ich doch nur noch mit den Ausgängen
Relais für die Ströme schalten, oder?

Danke für eure Gedanken zu meinem Problem

von Falk B. (falk)


Lesenswert?

@Robert R. (Gast)

>Ich möchte, wenn möglich, über 6 bits diese 32 Motoren steuern,
>also über die bits 0-4 den richtigen auswählen und über bit 5
>auswählen, welche Drehrichtung der Motor bekommt.

Das macht ein Demultiplexer.

>Wichtig ist auch, dass die anderen 31 Motoren in ihrem Zustand
>bleiben, wenn ich einen ausgewählten in den anderen Zustand
>bringe.

Was muss man dazu tun? Müssen die Signal für die Drehrichtung erhalten 
bleiben oder dürfen die auf 0V gehen?

>Kann ich mal einen grossen Teil abdecken, indem ich ein CPLD
>(z.B. das XC9572) verwende? Die sollten doch Flipflops haben,
>um die Zustände zu speichern, und auch die notwendigen 32
>Ausgänge und die sechs Eingänge zur Verfügung stellen können.
>Ich müsste doch dann "NUR" sowas wie ein DEMUX 5 auf 32
>realisieren, das 32 FlipFlops schaltet ?! ()

So in der Art. Aber du brauchst dann noch 2x32 Treiber, denn 100mA kann 
ein Logikausgang nicht liefern.

>Oder ist es vernünftiger, zwei solche [4 auf 16]-Teile wie
>den CD4514 zu verwenden und die FlipFlops mit einem weiteren
>Baustein zu realisieren?

Die Frage ist erstmal, ob man die FlipFlops überhaupt braucht. Aus 
deiner Beschreibung würde ich schlußfolgern, dass die Motoren ohne 
Steuersignal einfach stehen bleiben, so wie du es willst.

>Oder ist so eine Lösung mit Schieberegistern (74HCT595) und
>seriellem bit-Muster-übertragen die "BESTE" Lösung?

Es ist EINE Lösung.

> (dann
>müsst ich aber Schaltungen "designen", so wie ich das verstehe)

Musst du das beim CPLD nicht?

>Wenn das so ginge, müsst ich doch nur noch mit den Ausgängen
>Relais für die Ströme schalten, oder?

Aua. Für 100mA gibt es kleine Treiber.

von Easylife (Gast)


Lesenswert?

CPLD ist eine Möglichkeit, da böte sich dann der 100 TQFP an, der hat 72 
I/Os, so dass du auf externe Demuxer/Schieberegister verzichten 
könntest.
Nachteile: hoher Preis, Programmierung nötig.

Ich würde es einfach mit 8 74HC595 Schieberegistern lösen. Die sind 
günstig, und das Ganze kann zur Not auf Lochraster aufgebaut werden.

Die gesamte Ansteuerung aller Motoren benötigt dann insgesamt nur 4 
Inputs (BIT-CLK, DATEN, LATCH-CLK, OE_N), und du kannst auch mehrere 
Motoren gleichzeitig und dabei auch in unterschiedlichen Richtungen 
drehen lassen.

Als Treiber reichen 2 P-CH MosFETs pro Motor (+ 2 Schutzdioden), z.B. 
NTR1P02 o.Ä.

von Easylife (Gast)


Angehängte Dateien:

Lesenswert?

Also ungefähr so...

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.