Forum: Mikrocontroller und Digitale Elektronik Recheck-Frequenz um konstanten Faktor erhöhen


von maxim (Gast)


Lesenswert?

Guten Morgen meine Lieben,
ich möchte ein Recheck-Signal um einen konstanten Faktor erhöhen.
Das Eingangssignal welches ich erhöhen möchte reicht von etwa 1kHz bis 
10kHz.
Dieses Signal möchte ich vorerst um den Faktor 4 erhöhen (nach einigen 
Tests später vielleicht um den Faktor 9 bis 10).

Habt ihr Ideen wie man das ohne großen Aufwand und wenig Geld 
hinbekommt? Ich kenne mich nicht sehr mit der gesamten Thematik aus, 
jede ausführtliche Hilfe wäre großartig.

FYI worum es eigentlich geht:
Bei einem 3D-Drucker möchte ich das STEP-Signal, welcher die 
Schrittmotoren antreibt erhöhen. Der Schrittmotor soll mit einem 
Servomotor ausgetauscht werden. Der Encoder des Servomotors ist aber 
leider sehr genau. Er verlangt bei meinem bisherigen Aufbau 13000 
Step-Signale um sich eine Umdrehung zu drehen. Der alte Schrittmotor hat 
lediglich 3200 Steps verlangt. Der Prozessor des Druckers, kann aber nur 
eine maximale Step-Frequenz von 10kHz erzeugen. Wenn ich mit gleicher 
Geschwindigkeit Drucken möchte brauche ich aber etwa eine Frequenz von 
40kHz. Wenn ich noch schneller drucken möchte brauche ich eine Frequenz 
von bis zu 90-100kHz. Deshalb dachte ich wäre es gut zwischen 
Drucker-Ausgang und Motor-Eingang eine Art Multiplier einzubauen, 
welcher die Frequenz um einen bestimmten Faktor erhöht. Idealerweise 
sollte dieses Signal so schnell wie möglich erhöht werden, aber ich 
schätze einige 100ms wären noch verkraftbar.

Vielen Dank für jede Anwort
Liebe Grüße
maxim

von pegel (Gast)


Lesenswert?

Du kannst vielleicht auch das Encoder Signal vom Motor durch 4 teilen.

Alles andere wie PLL oder Frequenzvervielfachung wird vermutlich zu 
Positionsfehlern führen.

von K. S. (the_yrr)


Lesenswert?

pegel schrieb:
> Du kannst vielleicht auch das Encoder Signal vom Motor durch 4 teilen.
hilft nicht bei folgendem Problem:

maxim schrieb:
> Der Prozessor des Druckers, kann aber nur
> eine maximale Step-Frequenz von 10kHz erzeugen. Wenn ich mit gleicher
> Geschwindigkeit Drucken möchte brauche ich aber etwa eine Frequenz von
> 40kHz.

pegel schrieb:
> Alles andere wie PLL oder Frequenzvervielfachung wird vermutlich zu
> Positionsfehlern führen.
das wird aber leider stimmen, je nachdem wie schnell sich die Frequenz 
ändert, aber besonders bei den Beschleunigungsrampen wirst du Probleme 
bekommen (der Stepper wird sehr wahrscheinlich von 0Hz aus anlaufen). 
Die PLL müsste sehr schnell (Sekunden oder eher weniger) mit anlaufen 
und bis 0Hz Eingangsfrequenz verarbeiten können.

wenn du programmieren kannst wäre ein µC eventuell die Lösung
- miss die Zeit vom ersten zum Zweiten Impuls
- gib vier Pulse (nach dem zweiten Impuls) in derselben Dauer aus
-> sollte je nach Implementierung bis zum Stillstand gehen
-> nur ein Step Verzögerung
-> Step count wird nicht verfälscht
- eventuell reset nach einigen Sekunden(bruchteilen)(motor steht etwas 
länger) + Einschaltverzögerung einbauen, falls es damit Probleme gibt

 du könntest den Eingang als Interrupt schalten, mit einem schnellen 
Timer (>100kHz) die Zeitdauer messen, und mit einem zweiten Timer den 
Ausgang regeln, es wird etwas Jitter geben der sich aber im Mittel 
ausgleicht, da das Ende des ersten Pulses der Start des Zweiten ist.
theoretisch würd nen Tiny85 oder so reichen (der kann einen Timer über 
PLL mit 64MHz takten, Stichwort fast PWM).

mit nem Atmga/STM32/etwas größerem PIC könntest du sogar mit 2-3 Steps 
Verzögerung eine richtige Rampe rekonstruieren, aber das wird wohl kaum 
nötig

: Bearbeitet durch User
von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo,

das kannst Du mit 4024 und 4046 machen. PLL ist normalerweise für 
dauerhafte Signale geeignet. Der Einschwingvorgang dürfte hier stören.

MfG

von maxim (Gast)


Lesenswert?

Vielen Dank für eure Hilfe.
Die Idee mit den Frequenzteiler hört sich für mich erstmal plausibel an.
Warum rechnest du dabei mit Problemen @K.S. ?


Im Groben ist die Motorsteuerung wie folgt aufgebaut:
Wenn ein Step-Signal reinkommt wird ein Zähler hochgezählt. Der Motor 
wird in Drehung versetzt. Jetzt gibt der Motor ein Encoder-Signal 
zurück, welcher diesen gleichen Zähler um 1 reduziert.

Mit µC Programierung kenne ich mich nicht aus, würde mich freuen wenn 
das vermeidbar wäre ;)

von K. S. (the_yrr)


Lesenswert?

Christian S. schrieb:
> das kannst Du mit 4024 und 4046 machen. PLL ist normalerweise für
> dauerhafte Signale geeignet. Der Einschwingvorgang dürfte hier stören.
was macht nen Counter und eine PLL besser als nur eine PLL? Wenn das 
wirklich funktioniert würde es mich interessieren wie.

von K. S. (the_yrr)


Lesenswert?

maxim schrieb:
> Die Idee mit den Frequenzteiler hört sich für mich erstmal plausibel an.
> Warum rechnest du dabei mit Problemen @K.S. ?

Aufgrund deiner Aussage dass der Controller nur 10kHz ausgeben kann, du 
aber gerne 40kHz hättest für die gleiche Geschwindigkeit wie früher. 
Ansonsten sehe ich keine Probleme, das wäre sogar recht einfach mit 
Logik ICs aufgebaut.

von Christian M. (Gast)


Lesenswert?

Ist hier momentan ein Hotspot von Frequenzteilern und -erhöhen? :-))

În jeder vernünftigen 3D-Drucker-Firmware kann man die Steps/Länge 
eingeben. Die funktionieren ja meist mit irgend einem Arduino. Was ist 
es denn für einen Drucker?

Gruss Chregu

von maxim (Gast)


Lesenswert?

K. S. schrieb:
> Aufgrund deiner Aussage dass der Controller nur 10kHz ausgeben kann, du
> aber gerne 40kHz hättest für die gleiche Geschwindigkeit wie früher.
> Ansonsten sehe ich keine Probleme, das wäre sogar recht einfach mit
> Logik ICs aufgebaut.

Ja ich denke auch, dass das die einfachste Lösung wäre, Danke ;)

Christian M. schrieb:
> În jeder vernünftigen 3D-Drucker-Firmware kann man die Steps/Länge
> eingeben. Die funktionieren ja meist mit irgend einem Arduino. Was ist
> es denn für einen Drucker?

Es ist ein Anycubic i3 Mega, wahrscheinlich die 8-Bit Variante. Das 
Problem ist, dass es nicht mein Drucker ist und ich nicht auf die 
schnelle nachschauen kann.
Ja was man einstellen kann ist die steps/mm-Rate. Was ich ausgerechnet 
habe ist, dass ich 400 Steps für einen Millimeter brauche. Bei einem 
Schrittmotor brauch man aber nur etwa 90 Steps. Möchte ich jetzt die 
gleiche Geschwindigkeit wie vorher muss der Prozessor 4-mal schneller 
Steps generieren.

von Michael B. (laberkopp)


Lesenswert?

maxim schrieb:
> FYI worum es eigentlich geht

Immerhin.

So können sich die Leute dutzende von Antworten sparen, mit PLL oder 
RateMultiplier.

maxim schrieb:
> Vielen Dank für jede Anwort

Vergiss se, falscher Ansatz.
Die vernüftigste Lösung: Den Umbau ganz sein lassen.
Es kommt bei solchen Dingen auch auf die Motordynamik an, die du nicht 
anpassen kannst.
Ausserdem bin ich ziemlich sicher, dass der ganze Umbasu nur auf 
Hörensagen basiet, weil irgendwi irgendjeamd einfach mal dummgeschwätzt 
hat.
So was wie 'druckt viel schneller' wenn man nur hunderte investietr.

von K. S. (the_yrr)


Lesenswert?

maxim schrieb:
> Ja was man einstellen kann ist die steps/mm-Rate. Was ich ausgerechnet
> habe ist, dass ich 400 Steps für einen Millimeter brauche. Bei einem
> Schrittmotor brauch man aber nur etwa 90 Steps. Möchte ich jetzt die
> gleiche Geschwindigkeit wie vorher muss der Prozessor 4-mal schneller
> Steps generieren.

das ist aber was anderes als

maxim schrieb:
> Der Prozessor des Druckers, kann aber nur
> eine maximale Step-Frequenz von 10kHz erzeugen.

so wie ich das jetzt verstehe ist das mit dem Teiler wirklich das 
einfachste, das sollte entweder mit einem Counter (nach 4 counts 
resetten) oder ein paar Flip-Flops erledigt sein.

/2 mit einem Flip-Flop, also nimm zwei hintereinander:
https://www.electronics-tutorials.ws/counter/count_1.html

: Bearbeitet durch User
von maxim (Gast)


Lesenswert?

Michael B. schrieb:
> Ausserdem bin ich ziemlich sicher, dass der ganze Umbasu nur auf
> Hörensagen basiet, weil irgendwi irgendjeamd einfach mal dummgeschwätzt
> hat.
> So was wie 'druckt viel schneller' wenn man nur hunderte investietr.

Bei allem respekt, wenn man keine Ahnung hat und nichts produktives zu 
dem oben benannten Problem beitragen kann kann man sich auch so einen 
Kommentar sparen.

K. S. schrieb:
> so wie ich das jetzt verstehe ist das mit dem Teiler wirklich das
> einfachste, das sollte entweder mit einem Counter (nach 4 counts
> resetten) oder ein paar Flip-Flops erledigt sein.

Danke das werde ich demnächst mal ausprobieren.

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.