Trying to get Mesa 5i25 to generate steps for G540
- PortlandGTS
- Offline
- Junior Member
Less
More
- Posts: 24
- Thank you received: 1
20 Sep 2012 00:42 #24441
by PortlandGTS
Trying to get Mesa 5i25 to generate steps for G540 was created by PortlandGTS
After swapping a 6i25 for a 5i25 and figuring out how to use gantrykins (See previous post), I've finally got my 5i25 to partially work.
I'm able to use gpio, but can't seem to get stepgen to drive my Gecko 540.
Starting from a working system using software step generation through a parallel port, I loaded hostmot2 and hm2_pci, changed all the parallel port pin and stepgen references to 5i25 references, and switched the cable from the parallel port to the 5i25. But I can't get any of the steppers to budge.
Here's the relevant sections of my HAL file for one joint:
loadrt hostmot2
loadrt hm2_pci config="firmware=hm2/5i25/configs/hostmot2/g540x2.bit num_encoders=0 num_pwmgens=0 num_stepgens=4"
.
.
.
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf hm2_5i25.0.read servo-thread
addf hm2_5i25.0.pet_watchdog servo-thread
addf hm2_5i25.0.write servo-thread
.
.
.
# Initialize stepgen object
setp hm2_5i25.0.stepgen.03.position-scale -1909.861
setp hm2_5i25.0.stepgen.03.steplen 1
setp hm2_5i25.0.stepgen.03.stepspace 0
setp hm2_5i25.0.stepgen.03.dirhold 15200
setp hm2_5i25.0.stepgen.03.dirsetup 15200
setp hm2_5i25.0.stepgen.03.maxaccel 4
# Connect stepgen and axis objects
net ypos-cmd2 <= axis.3.motor-pos-cmd => hm2_5i25.0.stepgen.03.position-cmd
net ypos-fb2 <= hm2_5i25.0.stepgen.03.position-fb => axis.3.motor-pos-fb
net yenable2 <= axis.3.amp-enable-out => hm2_5i25.0.stepgen.03.enable
Can anyone see what the problem is?
Thanks,
Tom
I'm able to use gpio, but can't seem to get stepgen to drive my Gecko 540.
Starting from a working system using software step generation through a parallel port, I loaded hostmot2 and hm2_pci, changed all the parallel port pin and stepgen references to 5i25 references, and switched the cable from the parallel port to the 5i25. But I can't get any of the steppers to budge.
Here's the relevant sections of my HAL file for one joint:
loadrt hostmot2
loadrt hm2_pci config="firmware=hm2/5i25/configs/hostmot2/g540x2.bit num_encoders=0 num_pwmgens=0 num_stepgens=4"
.
.
.
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf hm2_5i25.0.read servo-thread
addf hm2_5i25.0.pet_watchdog servo-thread
addf hm2_5i25.0.write servo-thread
.
.
.
# Initialize stepgen object
setp hm2_5i25.0.stepgen.03.position-scale -1909.861
setp hm2_5i25.0.stepgen.03.steplen 1
setp hm2_5i25.0.stepgen.03.stepspace 0
setp hm2_5i25.0.stepgen.03.dirhold 15200
setp hm2_5i25.0.stepgen.03.dirsetup 15200
setp hm2_5i25.0.stepgen.03.maxaccel 4
# Connect stepgen and axis objects
net ypos-cmd2 <= axis.3.motor-pos-cmd => hm2_5i25.0.stepgen.03.position-cmd
net ypos-fb2 <= hm2_5i25.0.stepgen.03.position-fb => axis.3.motor-pos-fb
net yenable2 <= axis.3.amp-enable-out => hm2_5i25.0.stepgen.03.enable
Can anyone see what the problem is?
Thanks,
Tom
Please Log in or Create an account to join the conversation.
20 Sep 2012 02:24 #24442
by PCW
Replied by PCW on topic Re:Trying to get Mesa 5i25 to generate steps for G540
1 ns steplen is not liable to work very well
for G540, steplen of 1500 (1.5 uSec) and stepspace of 2500 (2.5 uSec) are probably reasonable values
for G540, steplen of 1500 (1.5 uSec) and stepspace of 2500 (2.5 uSec) are probably reasonable values
Please Log in or Create an account to join the conversation.
20 Sep 2012 11:57 #24449
by BigJohnT
Replied by BigJohnT on topic Re:Trying to get Mesa 5i25 to generate steps for G540
Also a dirhold and dirsetup of 2000 is plenty for the 540. On my G203v's (same as the ones in the 540 but can handle more voltage) I just set all 4 to 2000...
John
John
Please Log in or Create an account to join the conversation.
20 Sep 2012 12:11 #24450
by andypugh
Replied by andypugh on topic Re:Trying to get Mesa 5i25 to generate steps for G540
PortlandGTS wrote:
Stepconf uses the parallel port "reset" function to create the step pulses. This is a bit of code that runs a fixed number of nS after the parallel port write, and writes 0 back to any pins with the reset flag set.
This means that the system can create a step pulse every base period, rather than every two base-periods.
In this scenario the actual step pulse length is set by the reset time, and the step space length is simply the rest of the base period time. The step length and space are set to nominal values so as not to interfere with this timing.
In the case of a FPGA card, it really can do a 1nS pulse length, but that won't operate the drive. So you need the real pulse and space lengths in those parameters.
PCW has already pointed out that this is the problem. But I thought I would explain what has happened.setp hm2_5i25.0.stepgen.03.steplen 1
setp hm2_5i25.0.stepgen.03.stepspace 0
Stepconf uses the parallel port "reset" function to create the step pulses. This is a bit of code that runs a fixed number of nS after the parallel port write, and writes 0 back to any pins with the reset flag set.
This means that the system can create a step pulse every base period, rather than every two base-periods.
In this scenario the actual step pulse length is set by the reset time, and the step space length is simply the rest of the base period time. The step length and space are set to nominal values so as not to interfere with this timing.
In the case of a FPGA card, it really can do a 1nS pulse length, but that won't operate the drive. So you need the real pulse and space lengths in those parameters.
Please Log in or Create an account to join the conversation.
- PortlandGTS
- Offline
- Junior Member
Less
More
- Posts: 24
- Thank you received: 1
21 Sep 2012 02:13 #24494
by PortlandGTS
Replied by PortlandGTS on topic Re:Trying to get Mesa 5i25 to generate steps for G540
Thanks for the help, everyone. Now it works lilke a charm. Special thanks to Andy for explaining why my parameters worked with the parallel port interface, but not the 5i25.
I should probably learn exactly what these parameters do, but stepconf seemed to know how to set them, so I just kept using those values.
One more question: I noticed that the 5i25 wants its ports polled from the servo thread, not the base thread. Since I've now got the limit switches connected through the 5i25, it seems that this could slow response to limit triggers. Should I lower the servo period?
Thanks again,
Tom
I should probably learn exactly what these parameters do, but stepconf seemed to know how to set them, so I just kept using those values.
One more question: I noticed that the 5i25 wants its ports polled from the servo thread, not the base thread. Since I've now got the limit switches connected through the 5i25, it seems that this could slow response to limit triggers. Should I lower the servo period?
Thanks again,
Tom
Please Log in or Create an account to join the conversation.
21 Sep 2012 03:06 #24496
by PCW
Replied by PCW on topic Re:Trying to get Mesa 5i25 to generate steps for G540
A 1 KHz servo thread should be fast enough for limit switches unless you are moving really fast. Even at 10 inches per second (600 IPM) the 1 ms poll rate only results in 10 mills uncertainly in the limit switch trigger point.
It does not affect homing accuracy much either as the second stage homing move can be done quite slowly
It does not affect homing accuracy much either as the second stage homing move can be done quite slowly
Please Log in or Create an account to join the conversation.
Time to create page: 0.073 seconds