Hi Erik,
Correct. SnapAmp does microstepping with a stepping motor by applying sinewave currents to the motor with an amplitude set via the StepperAmplitude parameter. The current is specified as a value 10-bit value (0-1023) which specifies the total SnapAmp current range from 0 to 35A. So for example a stepper motor requiring 5A would have a StepperAmplitude setting of:
5A / 35A x 1024 = 146
SnapAmp works differently than most Step/Dir drives. The microstepping resolution is virtually infinite but then resolution is determined by the possible current levels which is determined by the current amplitude.
You should be able to plot the actual currents on the Step Response Screen.
Hope this answers your questions.
Regards
TK
| Group: DynoMotion |
Message: 3706 |
From: quelisto |
Date: 2/3/2012 |
| Subject: Re: Various issues |
Tom:
I now fully understand the current setting, thank you.
What I do not get is how one sets the resolution of the microstepping. This of course would affect the number of microseconds per second needed to get a given rpm. Is there something in a register that can adjust either a clock rate, number of bits of resolution ,etc?
Thanks.
-Erik-
--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Erik,
> Â
> Correct. SnapAmp does microstepping with a stepping motor by applying sinewave currents to the motor with an amplitude set via the StepperAmplitude parameter. The current is specified as a value 10-bit value (0-1023) which specifies the total SnapAmp current range from 0 to 35A. So for example a stepper motor requiring 5A would have a StepperAmplitude setting of:
> Â
> Â 5A / 35A x 1024 = Â 146
> Â
> SnapAmp works differently than most Step/Dir drives. The microstepping resolution is virtually infinite but then resolution is determined by the possible current levels which is determined by the current amplitude.
> Â
> You should be able to plot the actual currents on the Step Response Screen.
> Â
> Hope this answers your questions.
> Â
> Regards
> TKÂ Â
>
> From: quelisto <quelisto@...>
> To: DynoMotion@yahoogroups.com
> Sent: Friday, February 3, 2012 11:12 AM
> Subject: [DynoMotion] Various issues
>
>
> Â
> 1) How do you control motor current with the SnapAmp? I am aware there are peak overcurrent alarms that can be set to disable the SnapAmp. However, I am instead looking to control the phase currents via the PWM generator. There is no mention of a resistor or register that I am to program to set this current level.
>
> 2) What is the purpose and what are the units of chx->StepperAmplitude? Are these the number of discrete PWM states for microstepping?
>
> 3) Does the SnapAmp perform microstepping? I put the following code snippet (below) in the main function. The SnapAmp behaved as though it were performing regular full steps.
>
> ch0->InputMode=NO_INPUT_MODE;
> ch0->OutputMode=MICROSTEP_MODE;
> ch0->Vel = STEPR_NORMAL_V; // Default velocity
> ch0->Accel=70;
> ch0->Jerk=400;
> ch0->InputChan0=0;
> ch0->InputChan1=1;
> ch0->OutputChan0=8; // Stepper
> ch0->OutputChan1=9;
> ch0->LimitSwitchOptions=0x0;
> ch0->InputGain0=1.000000;
> ch0->InputGain1=1.000000;
> ch0->InputOffset0=0.000000;
> ch0->InputOffset1=0.000000;
> ch0->invDistPerCycle=1.000000;
> ch0->Lead=0.000000;
> ch0->MaxFollowingError=1000000000.000000;
> ch0->StepperAmplitude=250.000000;
>
|
|
| Group: DynoMotion |
Message: 3708 |
From: Tom Kerekes |
Date: 2/3/2012 |
| Subject: Re: Various issues |
Hi Erik,
KFLOP handles motion profiles as double precision floating point equations so there is no need for you to be concerned with clock rates and such.
In Microstepper mode the units are in sine wave "cycles". So a movement of 1.00 would generate one full sine wave to the stepper coils. Most Stepper motors have 50 poles (200 full steps/rev - there are 4 full steps in one full cycle).
The Step Response Screen has the motion profile parameters the allow you to set the Max Velocity, Max Acceleration, and Max Jerk in units of cycles/second, cycles/second^2,and cycles/second^3 respectively.
So for example:
to move two revolutions you would command a move size of 2 x 50 cycles/rev = 100 cycles
to limit the velocity to 600 RPM (10 revs/sec) you would set the Max Vel to 10 x 50 = 500 cycles/second
to accelerate up to 500 cycles/second in 0.5 seconds you would need 500 cycles/sec / 0.5 seconds = 1000 cycles/sec^2 (without limit on Jerk)
to limit the Jerk so that the Acceleration is applied gradually over 0.1 seconds would be a Max Jerk of 1000 cycles/sec^2 / 0.1 seconds = 10,000 cycles/sec^3
Regards
TK
| Group: DynoMotion |
Message: 3709 |
From: quelisto |
Date: 2/3/2012 |
| Subject: Re: Various issues |
Tom: thanks for the reply. I guess I'm not making my question clear enough. I am already aware of how to specify velocity, accel, etc. What I am asking about is the microstepping itself. It appaears to me that there are only 200 "microsteps" per revolution with my 1.8 degree (200 step) stepper. I was expecting something more like 2,000 microsteps per rev (10 usteps per full step cycle).
I guess the disconnect here might be that the vel, accel, and jerk are in units of cycles and not in units of microsteps. If that's the case, is it possible to specify the number of microsteps per cycle?
Thanks.
-Erik-
--- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@...> wrote:
>
> Hi Erik,
> Â
> KFLOP handles motion profiles as double precision floating point equations so there is no need for you to be concerned with clock rates and such.
> Â
> In Microstepper mode the units are in sine wave "cycles". So a movement of 1.00 would generate one full sine wave to the stepper coils. Most Stepper motors have 50 poles (200 full steps/rev - there are 4 full steps in one full cycle).
> Â
> The Step Response Screen has the motion profile parameters the allow you to set the Max Velocity, Max Acceleration, and Max Jerk in units of cycles/second, cycles/second^2,and cycles/second^3 respectively.
> Â
> So for example:
> Â
> to move two revolutions you would command a move size of 2 x 50 cycles/rev = 100 cycles
> Â
> to limit the velocity to 600 RPM (10 revs/sec) you would set the Max Vel to 10 x 50 = 500 cycles/second
> Â
> to accelerate up to 500 cycles/second in 0.5 seconds you would need 500 cycles/sec / 0.5 seconds = 1000 cycles/sec^2 (without limit on Jerk)
> Â
> to limit the Jerk so that the Acceleration is applied gradually over 0.1 seconds would be a Max Jerk of 1000 cycles/sec^2 Â /Â 0.1 seconds = 10,000 cycles/sec^3
> Â
> Regards
> TK
>
> From: quelisto <quelisto@...>
> To: DynoMotion@yahoogroups.com
> Sent: Friday, February 3, 2012 1:46 PM
> Subject: [DynoMotion] Re: Various issues
>
>
> Â
> Tom:
>
> I now fully understand the current setting, thank you.
>
> What I do not get is how one sets the resolution of the microstepping. This of course would affect the number of microseconds per second needed to get a given rpm. Is there something in a register that can adjust either a clock rate, number of bits of resolution ,etc?
>
> Thanks.
>
> -Erik-
>
> --- In DynoMotion@yahoogroups.com, Tom Kerekes <tk@> wrote:
> >
> > Hi Erik,
> > ÃÂ
> > Correct.ÃÂ SnapAmp does microstepping with a stepping motor by applying sinewave currents to the motor with an amplitude set via the StepperAmplitude parameter.ÃÂ The current is specified as a value 10-bit value (0-1023) which specifies the total SnapAmp current range from 0 to 35A.ÃÂ So for example a stepper motor requiring 5A would have a StepperAmplitude setting of:
> > ÃÂ
> > ÃÂ 5A / 35A x 1024 = ÃÂ 146
> > ÃÂ
> > SnapAmp works differently than most Step/Dir drives.ÃÂ The microstepping resolution is virtually infinite but then resolution is determined by the possible current levels which is determined by the current amplitude.
> > ÃÂ
> > You should be able to plot the actual currents on the Step Response Screen.
> > ÃÂ
> > Hope this answers your questions.
> > ÃÂ
> > Regards
> > TKÃÂ ÃÂ
> >
> > From: quelisto <quelisto@>
> > To: DynoMotion@yahoogroups.com
> > Sent: Friday, February 3, 2012 11:12 AM
> > Subject: [DynoMotion] Various issues
> >
> >
> > ÃÂ
> > 1) How do you control motor current with the SnapAmp? I am aware there are peak overcurrent alarms that can be set to disable the SnapAmp. However, I am instead looking to control the phase currents via the PWM generator. There is no mention of a resistor or register that I am to program to set this current level.
> >
> > 2) What is the purpose and what are the units of chx->StepperAmplitude? Are these the number of discrete PWM states for microstepping?
> >
> > 3) Does the SnapAmp perform microstepping? I put the following code snippet (below) in the main function. The SnapAmp behaved as though it were performing regular full steps.
> >
> > ch0->InputMode=NO_INPUT_MODE;
> > ch0->OutputMode=MICROSTEP_MODE;
> > ch0->Vel = STEPR_NORMAL_V; // Default velocity
> > ch0->Accel=70;
> > ch0->Jerk=400;
> > ch0->InputChan0=0;
> > ch0->InputChan1=1;
> > ch0->OutputChan0=8; // Stepper
> > ch0->OutputChan1=9;
> > ch0->LimitSwitchOptions=0x0;
> > ch0->InputGain0=1.000000;
> > ch0->InputGain1=1.000000;
> > ch0->InputOffset0=0.000000;
> > ch0->InputOffset1=0.000000;
> > ch0->invDistPerCycle=1.000000;
> > ch0->Lead=0.000000;
> > ch0->MaxFollowingError=1000000000.000000;
> > ch0->StepperAmplitude=250.000000;
> >
>
|
|
| Group: DynoMotion |
Message: 3711 |
From: Tom Kerekes |
Date: 2/3/2012 |
| Subject: Re: Various issues |
Hi Erik,
There should be much more than 10 usteps/full step resolution - but as I said earlier it depends on your Stepper Amplitude. I don't know why you are not observing this. What is your Stepper Amplitude and how exactly are you testing?
There is no way to set the microsteps per cycle as it is basically already at infinity.
For example lets say you are at position 100.000000 cycles and you command a move to 100.000001. KFLOP will move that amount along the sine wave and compute new currents to command to the two motor coils. However because the there are only +/- 1024 different programmable current levels the desired current will be rounded to the closest possible programmable value. The result is that the specified coil currents have a resolution of +/- 17ma from the theoretical desired current.
The result of all this should be very high resolution.
Regards
TK
| | | | | |