Forum: PC Hard- und Software Floppy Motor ansteuern


von Torsten C. (torsten_c) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

mit Google habe ich nix gefunden und bevor ich nun versuche mit 'nem 
Logik-Analysator Reverse-Engineering zu betreiben, hat vielleicht jemand 
von Euch einen Tipp.

Ich brauche für ein POV-Display einen Motor, der mit ca. 1500 .. 
1800 U/min und konstanter Drehzahl dreht. Bevor ich nun eine einen 
BLDC mit Ansteuerung kaufe oder mir sonst was überlege, würde ich gern 
versuchen, einen Floppy-Motor auf diese Drehzahl zu bringen.

Im Foto habe ich die Pinbelegung am Flachbandkabel vergrößert 
dargestellt. Auf dem Chip neben dem Motor steht "3K2 A13499". Das könnte 
ein 4-Kanal Audio-Treiber sein, aber "SPD" und "CLK" klingen eher nach 
"Speed" und "Takt". Ich hoffe, dass ich den Motor digital ansteuern 
kann.

Hat jemand einen Tipp, oder muss ich den Logik-Analysator bemühen?

VG Torsten

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Da bei 3.5"-Laufwerken die Drehzahl üblicherweise konstant ist, ist 
nicht davon auszugehen, daß damit die Geschwindigkeit geregelt wird. 
Höchstens wird sie zwischen zwei Werten umgeschaltet, das werden 300 und 
360 U/min sein (letzteres ist bei 3.5"-Disketten allerdings unüblich, 
das gibt es nur beim nur in Japan relevanten 1.2MB-Format).

Du müsstest den Motorcontroller dazu bekommen, mit fünf- bzw. 
sechsfacher Drehzahl zu arbeiten -- einfacher dürfte es sein, einen 
eigenen BLDC-Controller anzuschließen.

Mit dem Motor aus einem CD-/DVD-Laufwerk bist Du vermutlich besser 
bedient, da ist die Motorelektronik auch darauf ausgelegt, die Drehzahl 
in einem sehr weiten Bereich zu verändern.

von Vn N. (wefwef_s)


Lesenswert?

Torsten C. schrieb:
> Ich brauche für ein POV-Display einen Motor, der mit ca. 1500 ..
> 1800 U/min und konstanter Drehzahl dreht.

Normaler DC Motor.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Rufus Τ. Firefly schrieb:
> Da bei 3.5"-Laufwerken die Drehzahl üblicherweise konstant ist, ist
> nicht davon auszugehen, daß damit die Geschwindigkeit geregelt wird.

Du meinst mit den Signalen am Shugart 34-Anschluss? Nein, da natürlich 
nicht. Ich meine die Pinbelegung am Flachbandkabel auf dem Foto.

Rufus Τ. Firefly schrieb:
> Du müsstest den Motorcontroller dazu bekommen, mit fünf- bzw.
> sechsfacher Drehzahl zu arbeiten

Oops, meine Frage lautet präziser: Bekomme ich über die 11 Pins (s.o.) 
den Motorcontroller dazu, mit ca. 1500 .. 1800 U/min und konstanter 
Drehzahl zu derhen?

Der "Kollege" hier schreibt, er hat bis zu 1300 U/min geschafft:

http://www.roboternetz.de/community/threads/7310-Schrittmotor-aus-Diskettenlaufwerk?p=65947&viewfull=1#post65947

Rufus Τ. Firefly schrieb:
> einfacher dürfte es sein, einen
> eigenen BLDC-Controller anzuschließen.

Ich suche tatsächlich nach einer schnellen, einfachen und billigen 
Lösung, da mein aktuelles Problem erstmal die LED-Ansteuerung ist. Am 
besten, ohne erst neue Bauteile zu bestellen. Wenn die LED-Ansteuerung 
geht, kann ich immer noch nach einer besseren Lösung für den Antrieb 
suchen.

Morgen ist Sonntag und ich habe nur noch eine Woche Urlaub.

Rufus Τ. Firefly schrieb:
> Mit dem Motor aus einem CD-/DVD-Laufwerk bist Du vermutlich besser
> bedient

OK, wenn's nicht klappt, baue ich ein altes CD-Laufwerk auseinander. 
Danke für den Tipp.

So weit bin ich bisher mit meinem kaputten Oszi gekommen:

MC  = Motor-Control (PIN 16 vom Shugart 34-Anschluss)

IND = Indikator für eine Umdrehung

SPD = analoges Signal, werändert sich bei Belastung des Motors.

CLK = Taktsignal

DI, WP, HD und ED: Signale von den Tastern, die die Löcher an der CD 
abtasten.

Mit den richtigen Signalen an SPD und CLK sollte die Drehzahl nach oben 
gehen.

Ich habe noch keine Ahnung, was SPD und CLK bewirken, ich probiere mal 
weiter, wenn keiner was genaues weiss.

VG Torsten

von MaWin (Gast)


Lesenswert?

Dieser Floppymotor lässt sich über SPD auf 300 oder 360 upm umschalten. 
Leichte aber konstante Abweichungen davon bekommst du durch einen 
anderen Keramikresonator.

Deine gewünschten 1500 sind vollkommen unsinnig, dafür reicht im 
Verhältnis zur Spulenimpedanz die Betriebsspannung nicht.

Nimm nirmale Gleichstrommotore oder für 1400 / 2850 
Drehstrom-Asynchronmotore.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Torsten C. schrieb:
> Rufus Τ. Firefly schrieb:
>> Da bei 3.5"-Laufwerken die Drehzahl üblicherweise konstant ist, ist
>> nicht davon auszugehen, daß damit die Geschwindigkeit geregelt wird.
>
> Du meinst mit den Signalen am Shugart 34-Anschluss?

Nein.

> Ich meine die Pinbelegung am Flachbandkabel auf dem Foto.

Ich auch.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

MaWin schrieb:
> Dieser Floppymotor lässt sich über SPD auf 300 oder 360 upm umschalten.

Und was passiert, wenn ich den Takt (CLK-Signal) um den Faktor 2 oder 5 
erhöhe?

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Hmmm ...

Torsten C. schrieb:
> SPD = analoges Signal, verändert sich bei Belastung des Motors.
MaWin schrieb:
> Dieser Floppymotor lässt sich über SPD auf 300 oder 360 upm umschalten.

MaWin, bist Du Sicher, dass SPD ein Eingang für den Floppymotor ist? Das 
sieht mir mehr nach einem Ausgang aus.

Torsten C. schrieb:
> Und was passiert, wenn ich den Takt (CLK-Signal) um den Faktor 2 oder 5
> erhöhe?

Hmmm, das weiss keiner? Dann muss ich die Antwort wohl selber finden. 
Das CLK-Signal hat genau 1MHz bei 300 U/min.

Einen Frequenzgenerator habe ich nicht, aber ein MSP430 LaunchPad.

Aus den Datenblättern:

The four RSELx bits select one of sixteen nominal frequency ranges for 
the DCO: RSELx = Bits 3-0 of BCSCTL1, RSELx = 0 ..15

The three DCOx bits divide the DCO range selected by the RSELx bits into 
8 frequency steps, separated by approximately 10%: DCOx = Bits 7-5 of 
DCOCTL, DCOx = 0 .. 7

The five MODx bits, switch between the frequency selected by the DCOx 
bits and the next higher frequency set by DCOx+1: MODx = Bits 4-0 of 
DCOCTL: MODx = 0 .. 15

The mixing formula: t = (32 – MODx) × tDCO + MODx × tDCO+1

SRSEL (Frequency step between range RSEL and RSEL+1): 1,35
SDCO (Frequency step between tap DCO and DCO+1): 1,08

Hmmm, damit 'ne Frequenz ausrechnen ist wohl Quatsch, da die Angaben für 
die "DCO Frequency" selbst im Datenblatt "slas735i" den o.g. Angaben 
nicht ganz entsprechen.

Also die Einfache Methode: RSELx von 6 .. 12 auswählen und immer mit 
DCOx = 3 und MODx = 0 arbeiten, also:

RSELx = 6 => 0,80 MHz
RSELx = 7 => 1,15 MHz
RSELx = 8 => 1,60 MHz
RSELx = 9 => 2,30 MHz
RSELx = 10 => 3,40 MHz
RSELx = 11 => 4,25 MHz
RSELx = 12 => 5,80 MHz

Die tatsächlich ausgegebene Taktfrequenz kann ich mit meinem (kaputten) 
Oszi abschätzen und die Drehzahl an dem IND-Signal.

Das IND-Signal kommt aktuell übrigens tatsächlich alle 20ms, was 
300U/min entspricht.

Umschalten will ich RSELx durch einen Dreh-Drückgeber. Ich schreibe wohl 
morgen mal ein Programm dazu.

Ich hoffe, dass ich bei RSELx = 12 auf knapp 1700 U/min komme. Mal sehen 
...

von MaWin (Gast)


Lesenswert?

> Das CLK-Signal hat genau 1MHz bei 300 U/min.

Das wird abgeleitet vom Keramikresonator/Quartz auf der anderen Platine.

> Und was passiert, wenn ich den Takt (CLK-Signal) um den Faktor 2 oder 5
> erhöhe?

Bei 2 läuft er doppelt so schnell mit geringerem Drehmoment.

Bei 5 läuft er wohl gar nicht mehr, wie geschrieben reicht
die Betriebsspannung nicht, und die Spulen willst du sicher
nicht umwickeln.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Rufus Τ. Firefly schrieb:
> Da bei 3.5"-Laufwerken die Drehzahl üblicherweise konstant ist, ist
> nicht davon auszugehen, daß damit die Geschwindigkeit geregelt wird.

Wenn dem so wäre, könnte ich über CLK die Geschwindigkeit nicht ändern.

MaWin schrieb:
> Bei 2 läuft er doppelt so schnell mit geringerem Drehmoment.

Das klingt logisch.

MaWin schrieb:
> Bei 5 läuft er wohl gar nicht mehr

Hmmm, ich habe die Wahl: CD-ROM-Laufwerk zerlegen oder schauen, ob's bei 
5 noch geht.

Viel Drehmoment brauche ich ja nicht, ich habe ja nur den 
"Luftwiderstand".

Wahrscheilich sollte ich wirklich besser ein CD-ROM-Laufwerk zerlegen. 
Aber wie wird denn das nun wieder angesteuert?

Ich schaue morgen mal. ... Erstmal Danke und Gute N8.

von Max D. (max_d)


Lesenswert?

In einem CD-Rom Lw ist fürs drehen von der CD (zum. bei den alten) 
einfach ein normaler DC-Motor drinne. Das Laufwerk leitet beim 
hochfahren aus der inneren "initialisations" spur die passende drehzahl 
ab und nutzt dann später die Pegelwechsel von den Bits zur Regelung. Der 
Motor kriegt einfach per PWM mehr oder weniger Saft. Wenn du den regeln 
willst musst du eine Reflexlichtschranke montieren und dann PWMen ...

Eine Alternative wäre auch noch ein kleiner Brushless aus dem Modellbau, 
bei deinen Ansprüchen solltest du den einfach mit fester Phasenlage wie 
einen drehstrommotor anteuern können (evtl. Rampe beim hochfahren)...

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Torsten C. schrieb:
> Das IND-Signal kommt aktuell übrigens tatsächlich alle 20ms, was
> 300U/min entspricht.

Sorry, natürlich alle 200ms

Max D. schrieb:
> Wenn du den regeln
> willst musst du eine Reflexlichtschranke montieren und dann PWMen ...

Danke für den Hinweis. Also zerlege ich das CD-ROM-Laufwerk wohl besser 
nicht! Das klingt nämlich nicht nach "einer schnellen, einfachen und 
billigen Lösung"^^.

Also wohl eher doch ebay 130942066508 mit Wartezeit bis nach dem Urlaub. 
Ich dachte, ich komme drum rum. Oder ich fahre Montag zu Conrad und 
kaufe einen teureren Brushless aus dem Modellbau.

Morgen (bzw. heute) haben die Geschäfte eh zu. Ich denke, ich probier 
mal 5 MHZ, bevor ich aufgebe. Vielleicht ist das gute "TEAC"-Laufwerk ja 
over-engineered. ;-)

Torsten C. schrieb:
> Das sieht mir mehr nach einem Ausgang aus.

PS: Dort liegen übrigens ca. 14 mV an, die sinken, wenn man den Motor 
bremst und fallen auf auf 2,2mV, wenn man ihn anhält.

von Max D. (max_d)


Lesenswert?

Also das regeln ist wenn man sich den code für die regelschleife klaut 
sehr schnell gemacht. Du hängst an deinen System-timer (brauchstu eh 
wenn du irgendwas auf die drehung syncen willst) einfach nen 
software-zähler hin, der zählt wie oft der sys-timer tickt bis der motor 
einmal rum ist (einfach reflex-lichtschranke für 2€ und achse an einer 
stelle schwarz mit weißem Strich anmalen) und regelst das dann mit 
deiner schleife auf deine gewünschte Zahl. Sinnvollerweise die Zahl 
"Zeilen" die dein POV-Disp haben soll. Wenn es genauer und damit schöner 
sein soll zählst du hald mit 3 oder 4 facher Auflösung deines Disps, 
dann verlierst du am Rand keine Zeile...

von Max D. (max_d)


Lesenswert?

Mir ist grade etwas klar geworden:

Du brauchst nicht die Drehzahl zu regeln, du musst einmalig eine 
Spannung finden bei der der Motor angemessen (in der mitte des 
bereiches) dreht. Diese lässt du einfach angelegt. Dann nimmst du die 
Lichschranke zur Bestimmung der Drehzahl (bzw. der Zeit die der Motor 
für eine Umdrehung braucht) und nimmst die dann als Basis für deine 
Zeilenerzeugung. Es ist sinnvoll die Auflösung für die Zeit etwa drei 
bis vier mal so hoch zu wählen wie deine pixeldichte sein soll, sonst 
sind die Bereiche um die Synchronisationsstelle zittrig.

Alles was die Sw dann tun muss ist folgendes:
Motor an und warten bis die drehzahl oben ist (die pulszeiten zwischen 
den hell/dunkel wechseln der ls sind klein genug)
Dann eine Umdrehung von der Dauer messen (Zahl der systemcounts zwischen 
zwei fallenden Flanken (wenn man die LS gegen GND mit pullup im AVR 
klemmt sind die fallenden Pulse schärfer) abzählen) die Zeit/counts 
durch die Zahl der gewünschten Zeilen teilen (hier lohnt sich jetzt der 
einheitlichkeit der Streifen wegen eine hohe radiale Auflösung, wenn 
diese sehr hoch ist kann man sogar einfache integer teilen, der Versatz 
ist dann klein genug, ansonsten muss man hald iwie mit leicht 
verschieden Zeilen kompensieren)
Dann bei der nächsten flanke loslegen mit dem INhalt der ersten Zeile 
(wird wohl iwas richtung propelelr-clock werden) und nach x (x ist das 
ergebniss der teilung von vorher) ticks die zweite Zeile raushauen usw 
bis entweder die nächste flanke kommt (man also nicht fertig geworden 
ist -> nächstesmal schneller sein) oder man fertig ist und noch keine 
flanke da war (man war zu schnell -> nächstesmal langgsamer ausgeben). 
Wenn man sich an dem minimalen JItter durch diese binäre Reglung stört 
dann kann man noch irgendwie auf den passenden Takt synchronisieren, 
also wenn alles stabil läuft regelt man nichtmehr weiter sonder erst 
wieder wenn alles um mehr als ein paar Prozent daneben liegt (eine Lücke 
von ein paar grad sieht der nutzer bei den 25 Hz eh nicht richtig).

PS: Ich würde mir mehr Sorgen darum machen wie man den Saft an das Disp 
kriegt ^^

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

MaWin schrieb:
> Deine gewünschten 1500 sind vollkommen unsinnig …
> Bei 2 läuft er doppelt so schnell mit geringerem Drehmoment.
> Bei 5 läuft er wohl gar nicht mehr,

Es war ja am Sonntag schnell probiert und es stimmte: Bei rund 700 U/min 
war Schluss. Keine Chance!

MaWin schrieb:
> Nimm normale Gleichstrommotore
vn nn schrieb:
> Normaler DC Motor.

Ihr habt Recht, das ist wohl für diese Anwendung noch einfacher und 
preiswerter als mit einem Brushless.

1. Nur "Umdrehungszeit" messen und PWM-Rate anpassen.
2. Nur eine einkanalige "Endstufe"
3. Preisgünstiger Motor.

Ich hatte schon damit angefangen, aber all meine Ideen für die 
Datenübertragung gefallen mir noch nicht.

Ich denke, ich werde nun aus einem alten VHS-Recorder die Kopftrommel 
ausbauen, denn da sollte auch gleich ein Rotationstransformator drin 
sein. Also Datenübertragung und Motor in einem!

Danke für Eure Hinweise!

Max D. schrieb:
> Ich würde mir mehr Sorgen darum machen wie man den Saft an das Disp
> kriegt.

Ich dachte an Kohlebürsten von Märklin (Bürstenpaar 89871) und zwei 
Ring-Leiterbahnen auf der Gegenseite.

Aber nun schaue ich mir erstmal die Kopftrommel genauer an, vielleicht 
kann die ja sogar "den Saft" übertragen.

Profi schrieb im Beitrag "Leistungs- und Datenübertragung für Propellerclock":
> ich verwende als Motor eine
> Videorekorder-Kopftrommel. Funzt wunderbar. Darin ist doch bereits ein
> Transformator zur Übertragung des Videosignals enthalten. Ob man den
> zur Energieübertragung verwenden kann? Bei Record wird ja auch etwas
> Leistung übertragen.

von Max D. (max_d)


Lesenswert?

Die Leistung  von dem Videokopf wird nicht reichen wenn dein disp nicht 
winzig wird. Kohlebürsten gehen, sind aber hald Verschleißteile. Ich 
würde mich mal in Richtung Royer-Converter umschauen (gibt hier im wiki 
sogar einen artikel dazu). Das ist mit zwei Spulen und hat gut Leistung 
wenn man das entsprechend dimensioniert. Hat den Vorteil, dass du auch 
gleich über modulation deine daten übertragen kannst. Ist hald 
aufwendiger...

Wenn du doch bei Kohlebürsten bleibst, dann kannst du die auch gleich 
zur synchronisation zweckentfremden. Dazu machst du in eine der Bahnen 
einen kleinen Abschnitt der an einem (evtl. zusätzlich geschützen) 
Eingang von deinem µC hängt und den bei jeder Umdrehung kurz hoch/runter 
zieht, damit sparst du dir die lichtschranke... (und aussetzer in der 
größenordnung müssen sowieso elko-gepuffert werden).
Nebengedanke: Je nach design kann man auch das gehäuse+achse vom motor 
für einen Pol benutzen, dann hat man nurnoch eine bürste ...

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Max D. schrieb:
> Die Leistung  von dem Videokopf wird nicht reichen wenn dein disp nicht
> winzig wird.

Dann spare ich mir wohl besser die eigene Analyse. Danke.

Die im Artikel Royer Converter angegebenen technischen Daten 
gefallen mir schon mal. Mal sehen, ob man das auch mit 4..5A schafft.

Immerhin gibt's Leute, die Elektroautos induktiv aufladen wollen:

http://www.mein-elektroauto.com/2011/11/die-vorteile-beim-aufladen-des-elektroauto-per-induktion/4018/

Das sind sicher noch ein paar mehr Ampere.

Danke für den Tipp! :-)

Max D. schrieb:
> gehäuse+achse vom motor für einen Pol benutzen

Da bin ich skeptisch. 5A über ein Kugellager???

Max D. schrieb:
> Hat den Vorteil, dass du auch
> gleich über modulation deine daten übertragen kannst.

Ich denke, das ist das, womit ich mich wohl am besten als nächstes 
beschaäftige: Royer-Converter + aktiver Gleichrichter + Powerline-Modem.

Leider ist IRDA etwas zu langsam. Ich hab' noch keine gute Idee und muss 
noch weiter recherchieren.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Torsten C. schrieb:
> Leider ist IRDA etwas zu langsam

4 MBit reichen nicht?

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Mein grober Gedanke war: IrDA nehmen, um sich weitere Modulationen 
(Modem) zu ersparen.

Rufus Τ. Firefly schrieb:
> 4 MBit reichen nicht?

Äääh. Doch, könnte reichen. So viel?

Ich hatte mich bisher nur an dem MSP430 USCI_A0 orientiert, der kann 
m.E. nur "Serial Infrared", wenn ich richtig gelesen habe.

Danke für den Denkanstoss, Rufus.

Mit 'nem anderen Controller geht vielleicht auch FIR oder noch mehr. Ich 
hab' gerade gelesen, dass es sogar "Giga-IR" gibt. Ich schau mal, was 
man dafür benötigt und ob das für 'ne Überlagerung (Power-Line-Modem) 
reicht.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Torsten C. schrieb:
> Rufus Τ. Firefly schrieb:
>> 4 MBit reichen nicht?
>
> Äääh. Doch, könnte reichen. So viel?

Mittlerweile wohl sogar noch deutlich mehr.

http://en.wikipedia.org/wiki/IrDA#IrPHY

Ich bezog mich da auf "FIR", das Mitte der 90er verfügbar war (hatte mal 
einen Drucker und ein Notebook, die das konnten).

von Max D. (max_d)


Lesenswert?

Torsten C. schrieb:
> Da bin ich skeptisch. 5A über ein Kugellager???

Wenn man den Weg über schleifende Kontakte geht dann bemüht man sich den 
strom niedrig zu halten. Wenn du statt deiner 5 V (ich denk mal damit 
hast du gerechnet) jetzt sagen wir mal 50 V nimmst (is bei DC noch 
"Schutzkleinspannung") dann brauchst du nurnoch 500 mA (zzgl. Verluste 
vom Schaltregler vlt. so 600 mA insg.) und stepst die hald dann mit nem 
Schaltregler wieder runter. Bei 5 A werden sich auch deine Bürsten nicht 
grade freuen ^^
Stepdowns für 5 A gibts inzwischen schon mit sehr kleinen bauformen 
(dank sei der hohen Schaltfrequenz ^^) Und wegen der gewichtsverteilung 
nimm zur not zwei regler mit je 2-3 A und mach die gespiegelt auf deinem 
rotor fest.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Max D. schrieb:
> Bei 5 A werden sich auch deine Bürsten nicht
> grade freuen ^^

Stimmt. 50V und Stepdown ist - so oder so - wohl angesagt, hatte ich 
noch gar nicht dran gedacht, selbst als ich letzte Woche das winzige 
"Märklin Bürstenpaar" ^^ das erste mal in den Händen hielt.

Trotzdem ist mir Strom über ein Kugellager nicht geheuer. Bei einem 
Schleifkontakt an der Welle hätte ich nicht solche Bauchschmerzen.

Aber wenn das mit dem Royer Converter klappt, ist mir das sogar lieber 
als mit irgentwelchen Bürsten. Ich werde mich in den nächsten Tagen mal 
damit beschäftigen.

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.