Willkommen! Anmelden Ein neues Profil erzeugen

Erweiterte Suche

Maximale steps/s RUMBA

geschrieben von Hans123456789 
Maximale steps/s RUMBA
01. June 2016 17:14
hallo,

Wieviele Impulse pro Sekunde kann ein RUMBA maximal geben? Auf dem Board sitzt ja ein ATmega2560, der hat eine Taktfrequenz von 16MHz. In einer Tabelle habe ich 16000steps/s gefunden. Wie ist der Zusammenhang zwischen den 16Mhz und den 16kHz, da liegt ja noch ein Faktor 1000 dazwischen.

mfg Hans

2-mal bearbeitet. Zuletzt am 01.06.16 17:26.
VDX
Re: Maximale steps/s RUMBA
01. June 2016 17:52
... er kann ja nicht einfach nur Takte erzeugen ... für 4 Achsen und die ganzen Berechnungen und Hintergrundtasks geht einiges an 'Ressourcen' drauf!

Mit einem 32Bit-Due und knapp 90MHz komme ich ganz nahe an 300kHz synchrone Taktraten ... dann wird das aber auch schon knapp ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org]
Call for the project "garbage-free seas" - [reprap.org]
Re: Maximale steps/s RUMBA
01. June 2016 18:02
Hallo Viktor,

ich habe diese Tabelle hier gefunden:

[reprap.org]

Wenn ich das zurückrechne, komme ich immer auf 16000steps/s. Ist dieser Wert über die Firmware festgelegt? Sonst müsste ich ja bei nur einem angeschlossenen Motor mehr erreichen können.

mfg Hans
VDX
Re: Maximale steps/s RUMBA
01. June 2016 18:12
... ob der wert auf 16kHz festgelegt ist, kann ich dir nicht sagen - was ich weiß, ist daß ich z.B. bei einem Atmega328 mit 12MHz Takt zwar mit Mikrosekunden intern rechnen kann, wenn ich aber einen Takt von einer Mikrosekunde ausgebe, messe ich mit einem Oszilloskop eine Zeit von etwa 5 Mikrosekunden dafür.

Mit 16MHz ist der Rumba da auch nicht viel schneller, so daß das ähnlich sein sollte.

Was du wirklich an Geschwindigkeit rausholen kannst, hängt vor Allem von der Komplxität des Programms ab - mit einer einfachen Programmierung und nur einem Motor geht das bestimmt schneller ... bei den 3D-Druckern ist das aber immer auf 3 oder mehr Achsen ausgelegt, so daß dieser "Wasserkopf" immer mitläuft eye rolling smiley


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org]
Call for the project "garbage-free seas" - [reprap.org]
Re: Maximale steps/s RUMBA
01. June 2016 18:18
okay,

das hat mir schonmal sehr geholfen, vielen Dank smiling bouncing smiley
Re: Maximale steps/s RUMBA
02. June 2016 00:27
Teacup müsste um die 40kHz schaffen. Marlin und Repetier mit einem Trick (double/quadstepping) auch.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Maximale steps/s RUMBA
02. June 2016 01:40
Hans.....hast du überhaupt verstanden...was wir per PN besprochen haben? winking smiley

Vielleicht solltest du mal Fotos deines übernommenen Projektes einstellen.
Große Hoffnungen mache ich dir allerdings nicht...


[www.facebook.com]

Power is nothing.....without control!
Re: Maximale steps/s RUMBA
02. June 2016 02:38
Quote
Hans123456789
Wenn ich das zurückrechne, komme ich immer auf 16000steps/s. Ist dieser Wert über die Firmware festgelegt?

Der Wert legt sich dadurch fest, dass es einen gewissen Rechenaufwand braucht, Schritte auszuführen. Es soll ja die genau richtige Anzahl Schritte ausgeführt werden und bei mehreren Achsen sollen diese auch synchronisiert laufen. Dieser Rechenaufwand beläuft sich auf 1/16.000 Sekunden. Oder bei der Teacup auf 1/40.000 Sekunden. Versucht man schneller zu fahren, kommt der ATmega einfach nicht mehr hinterher, es bricht ein Chaos aus (Stack-Überlauf, Schrittverlust, derlei nette Dinge).

Quote
VDX
was ich weiß, ist daß ich z.B. bei einem Atmega328 mit 12MHz Takt zwar mit Mikrosekunden intern rechnen kann, wenn ich aber einen Takt von einer Mikrosekunde ausgebe, messe ich mit einem Oszilloskop eine Zeit von etwa 5 Mikrosekunden dafür.

Man kann sogar auf den CPU-Takt genau, also auf 1/12 Mikrosekunde genau rechnen. Doch auch das braucht Rechenaufwand, den man nur bei längeren Verzögerungen kompensieren kann. Ich habe das mal untersucht und möglichst genau justiert: [github.com]

Will man noch kürzere Delays, muss man die NOP()s direkt in die Schleife einbauen. Muss man nicht mitzählen, kann man auch die PWM-Funktion des Timers verwenden, die notfalls zu jedem CPU-Takt schalten kann. Maximale Frequenz ist dann also 6 MHz.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
VDX
Re: Maximale steps/s RUMBA
02. June 2016 04:40
Quote
Traumflug
...
Quote
VDX
was ich weiß, ist daß ich z.B. bei einem Atmega328 mit 12MHz Takt zwar mit Mikrosekunden intern rechnen kann, wenn ich aber einen Takt von einer Mikrosekunde ausgebe, messe ich mit einem Oszilloskop eine Zeit von etwa 5 Mikrosekunden dafür.

Man kann sogar auf den CPU-Takt genau, also auf 1/12 Mikrosekunde genau rechnen. Doch auch das braucht Rechenaufwand, den man nur bei längeren Verzögerungen kompensieren kann. Ich habe das mal untersucht und möglichst genau justiert: [github.com]

Will man noch kürzere Delays, muss man die NOP()s direkt in die Schleife einbauen. Muss man nicht mitzählen, kann man auch die PWM-Funktion des Timers verwenden, die notfalls zu jedem CPU-Takt schalten kann. Maximale Frequenz ist dann also 6 MHz.

... nur ob du die 6MHz auch wirklich rausbekommst? - wie gesagt, beim Atmega328 mit 12MHz braucht er nur für 2 digitalWrites(HIGH/LOW) ohne was dazwischen 5 Mikrosekunden, also max. 200kHz ... mit handoptimiertem Portzugriff geht das etwa doppelt bis dreimal schneller ... aber gleich 30 mal confused smiley


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org]
Call for the project "garbage-free seas" - [reprap.org]
Re: Maximale steps/s RUMBA
02. June 2016 04:56
Du kannst nen Port direkt über PWM mit 50% Duty toggln. Ich weiß nur nicht ob man noch nen Prescaler braucht. Toggln mit Schleife und Writes dauert bisschen länger.

DigitaleWrite beim Due braucht ca. 70 Cycles. Nur so nebenbei winking smiley

1-mal bearbeitet. Zuletzt am 02.06.16 04:57.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
VDX
Re: Maximale steps/s RUMBA
02. June 2016 05:45
... beim Due habe ich eine minimale Pulslänge von 500ns, also 2MHz schnellste Taktrate ... mit Synchron-Rechnung über XYZ+E schafft Marlin4Due knapp 300kHz ...

1-mal bearbeitet. Zuletzt am 02.06.16 05:45.


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org]
Call for the project "garbage-free seas" - [reprap.org]
Re: Maximale steps/s RUMBA
02. June 2016 15:57
Quote
VDX
... nur ob du die 6MHz auch wirklich rausbekommst? - wie gesagt, beim Atmega328 mit 12MHz braucht er nur für 2 digitalWrites(HIGH/LOW) ohne was dazwischen 5 Mikrosekunden, also max. 200kHz ... mit handoptimiertem Portzugriff geht das etwa doppelt bis dreimal schneller ... aber gleich 30 mal confused smiley

Wenn man PWM verwendet ist da kein "Portzugriff" mehr. Der Pin schaltet dann von alleine, ohne dass die CPU auch nur einen Takt daran arbeitet. Genau wie das PWM für die Heizungen, nur eben auf höchste Frequenz eingestellt.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
VDX
Re: Maximale steps/s RUMBA
02. June 2016 17:25
... und wie hoch ist da die höchste Frequenz?

Außerdem geht es wohl weniger um eine feste "Frequenz" (das bekomme ich mit einem Multivibrator einfacher hin), als um eine schnelle Regelung -- und da ist auch bei nur einem einzigen Motor immer noch etwas "Eigenintelligenz" erforderlich ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org]
Call for the project "garbage-free seas" - [reprap.org]
Re: Maximale steps/s RUMBA
03. June 2016 01:45
Quote
VDX
... beim Due habe ich eine minimale Pulslänge von 500ns, also 2MHz schnellste Taktrate ... mit Synchron-Rechnung über XYZ+E schafft Marlin4Due knapp 300kHz ...
Dir ist schon klar von welchem github-Account Marlin4Due kommt? winking smiley

Am Ende ging es ja nur darum wie schnell man überhaupt etwas an einem Prozessor toggln kann. Und über PWM ist das 50% duty bei maximaler Frequenz. Beim Due also mit 42MHz. Bei 12MHz-Atemga mit 6MHz.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
VDX
Re: Maximale steps/s RUMBA
03. June 2016 10:46
... für sowas nehme ich aber keinen Atmega, sondern zwei Transistoren - ich geh davon aus, daß es hier schon um eine Frage zu den Möglichkeiten einer 1-Achs-Ansteuerung mit schnellstmöglichem Takt ging winking smiley


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org]
Call for the project "garbage-free seas" - [reprap.org]
Re: Maximale steps/s RUMBA
03. June 2016 11:07
1-Achs-Steuerung mit Teacup im Acceleration-Reprap könnte noch sehr schnell sein, wenn ich den Code richtig verstanden habe. Da wird immer linear auf eine Geschwindigkeit beschleunigt.
G1 X100 F600 von null auf 600
G1 X200 F600 auf 600 bleiben
G1 X300 F0 von 600 wieder auf 0


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
Re: Maximale steps/s RUMBA
04. June 2016 07:57
Quote
VDX
ich geh davon aus, daß es hier schon um eine Frage zu den Möglichkeiten einer 1-Achs-Ansteuerung mit schnellstmöglichem Takt ging winking smiley

Was hier das zu lösende Problem ist, weiss ich auch nicht.

Beim PWM kann man "mitzählen", indem man einen zweiten Timer verwendet. 1000 Schritte bei 6 MHz brauchen bekanntlich genau 1/6000 Sekunde, also misst man diese Zeit mit einem zweiten Timer und hält PWM dann wieder an. Mit ein wenig Feinjustage sollte es klappen, dass man auch genau 1000 und nicht 995 oder 1002 Schritte bekommt. Dann hat man eine definierte Anzahl Schritte.

Braucht man auch Beschleunigung, kann man die normale Firmware nehmen und den Bresenham raus werfen. Der Bresenham dient ja nur der Synchronisation von mehreren Achsen. Da dürfte man mit einem ATmega auf 200 - 300 kHz kommen, mit ARMs entsprechend mehr.

Bevor es weiter in die Theorie geht wäre es eine gute Idee, erst mal das Problem zu definieren :-)


Generation 7 Electronics Teacup Firmware RepRap DIY
     
Re: Maximale steps/s RUMBA
04. June 2016 09:33
Es gibt übrigens auch Treiber die bei Flankenwechsel steppen.


Triffid Hunter's Calibration Guide --> X <-- Drill for new Monitor Most important Gcode.
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicke hier, um Dich einzuloggen