Eric H. Johnson wrote:
> Hi all,
> 
> I am trying my first stepper configuration, but also need a 5khz pwm, so I
> am using the m5i20 controller rather than the other more typical stepper
> configurations. I created a hybrid configuration which mostly works, except
> the stepper motors are running much to slowly and stop moving entirely above
> a certain speed.
> 
> The stepper motors are 200 steps per revolution with 16 micro-steps per
> step, or 3200 micro-steps per revolution. One revolution moves the axis 2.5
> inches, so I set scale for AXIS_0 in the ini file to 1280 (units is inch).
> 
> I also ran the latency test which showed that I could set BASE_PERIOD to
> 22000.
> 
> I looked at the step signal on halscope and adjusted the jog speed to where
> I was getting one step per msec, which should move the axis at a rate of
> 2.5" per second. In fact it just crawls (2-4 RPM for example).
> 

Something does not compute here.  If scale is 1280 (that means 1280
counts per inch), then at one step per millisecond, you should get
1000/1280 = about 0.8 inches per second, not 2.5.

I agree that 2-4 RPM is wrong in any case, see below for a possible
cause of that.

> I also ran stepconf and transferred some of the step parameters it
> calculated, including:
> steplen 1
> stepspace 0
> dirhold 27000
> dirsetup 27000
> 
> On halscope, the steps look like very quick spikes when using 1msec per
> division. Is it possible the step duration is too short and if so, which
> parameter lengthens the step duration?

steplen does that.  The units are nanoseconds.

Stepconf uses "doublespace".  You need to be careful if you are taking
parameters from stepconf and using them in a non-stepconf generated
config.  There are other details that need to be set properly to use
doublestep.

> 
> I expect the step signal to stay below 10khz (25 ips), so I just linked
> stepgen to ordinary m5i20 outputs. I saw there was a hostmot2 configuration
> that might do this too, but did not try it.
>

I think that m5i20 outputs by default are updated in the servo thread at
1KHz.  If you will be using them for steps, you need to move the digital
output update function to the base thread.  You will need to consult the
m5i20 driver docs for this - I'm not even sure at the moment if the
digital I/O portion of the driver can be separated from the rest of the
code (which you'll want to leave in the servo thread).

I suspect that this could be the cause of your problem - if EMC is
generating short step pulses in the base thread, but you are only
driving the hardware in the much slower servo thread, the hardware
probably never sees many of the step pulses.

Regards,

John Kasunich

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to