Mesa 7i71 - Stepgen on Digital Output for ATC

More
28 May 2024 17:30 #301690 by PCW
Do you have the 7I52S TXEN0 set low?

A 50 pin FPGA card option would be a 6I24 (PCIE) or 7I80HDT (Ethernet)

Please Log in or Create an account to join the conversation.

More
28 May 2024 17:46 - 28 May 2024 17:47 #301693 by hardware_crash
I read about it in the 7i52S manual, but wasn't sure how to do it.
Like so ?
setp gpio.XX.is_output true
setp gpio.XX.out false

I also tried the second Port COMM1 which shouldn't need that setting, right?
That one also didnt produce output to the stepper driver :(

Thanks for the info about those two boards, so theres no future proof board for the external pcie cable connection.
Last edit: 28 May 2024 17:47 by hardware_crash.

Please Log in or Create an account to join the conversation.

More
28 May 2024 18:52 - 28 May 2024 19:10 #301701 by PCW
Possible reasons for no steps:

Too short step length settings

Wrong FPGA connector

Wrong firmware

No 5V to 7I52S

To check the hardware, you can setup the stepgens to generate slow squarewaves:

 

File Attachment:

File Name: pcistepgen...5-28.txt
File Size:1 KB


(rename to pcistepgens and chmod +x pcistepgens)

This allows the step and dir outputs to be check with just a LED+resistor

Note the this script needs the latest mesaflash:

github.com/LinuxCNC/mesaflash

and it's run with:

sudo pcistepgens 4i65
 
Attachments:
Last edit: 28 May 2024 19:10 by PCW.

Please Log in or Create an account to join the conversation.

More
01 Jun 2024 18:26 #302086 by hardware_crash
Dear Peter,

I tested with your script and can confirm (with oscilloscope), that there is a very slow square wave output on the step pins, the motor also seems to be driven.
So where to go from here ?

Thanks, Lukas

Please Log in or Create an account to join the conversation.

More
01 Jun 2024 18:29 #302088 by PCW
You might try huge step times (say 10000 ns) in your
LinuxCNC configuration since it look like the hardware is OK

Please Log in or Create an account to join the conversation.

More
01 Jun 2024 20:22 - 01 Jun 2024 20:28 #302102 by hardware_crash
I can seem to get it to work :(
Heres what I have in my INI File:
#==================
#      A Axis
#==================

[AXIS_A]
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
MAX_VELOCITY = 360.0
MAX_ACCELERATION = 1200.0

[JOINT_3]
TYPE = ANGULAR
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.0
BACKLASH = 0.003
HOME = 0.000
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 3.0
HOME_LATCH_VEL = 0.2
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO

P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0

STEPGEN_MAXVEL = 31.25
STEPGEN_MAXACCEL = 937.50
DIRSETUP   = 10000
DIRHOLD    = 10000
STEPLEN    = 5000
STEPSPACE  = 5000
STEP_SCALE = 80.0

And in the HAL File:
# ####################
# A Axis
######################


setp   pid.a.Pgain     [JOINT_3]P
setp   pid.a.Igain     [JOINT_3]I
setp   pid.a.Dgain     [JOINT_3]D
setp   pid.a.bias      [JOINT_3]BIAS
setp   pid.a.FF0       [JOINT_3]FF0
setp   pid.a.FF1       [JOINT_3]FF1
setp   pid.a.FF2       [JOINT_3]FF2
setp   pid.a.deadband  [JOINT_3]DEADBAND
setp   pid.a.maxoutput [JOINT_3]MAX_OUTPUT
setp   pid.a.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp   pid.a.maxerror 0.82700

net a-index-enable  =>  pid.a.index-enable
net a-enable        =>  pid.a.enable
net a-pos-cmd       =>  pid.a.command
net a-pos-fb        =>  pid.a.feedback
net a-output        <=  pid.a.output

# Schritt-Gen Signale/Setup
setp   hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup        [JOINT_3]DIRSETUP
setp   hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold         [JOINT_3]DIRHOLD
setp   hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen         [JOINT_3]STEPLEN
setp   hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace       [JOINT_3]STEPSPACE
setp   hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale  [JOINT_3]STEP_SCALE
setp   hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type        0
setp   hm2_[HOSTMOT2](BOARD).0.stepgen.01.control-type     1
setp   hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel         [JOINT_3]STEPGEN_MAXACCEL
setp   hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel           [JOINT_3]STEPGEN_MAXVEL

# ---Closed-Loop Schrittmotor-Signale---
net a-pos-cmd    <= joint.3.motor-pos-cmd
net a-vel-cmd    <= joint.3.vel-cmd
net a-output     => hm2_[HOSTMOT2](BOARD).0.stepgen.01.velocity-cmd
net a-pos-fb     <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb
net a-pos-fb     => joint.3.motor-pos-fb
net a-enable     <= joint.3.amp-enable-out
net a-enable     => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable

When I press the jog button for that axis, I get movement on the stepper motor but just one step regardless of how long i push the jog button. When I release the button the motor makes a step, but it should continuously move ..
Last edit: 01 Jun 2024 20:28 by hardware_crash.

Please Log in or Create an account to join the conversation.

More
01 Jun 2024 20:55 #302107 by tommylight

When I press the jog button for that axis, I get movement on the stepper motor but just one step regardless of how long i push the jog button. When I release the button the motor makes a step, but it should continuously move ..

That points to having step and dir pins to drive reversed, try rewiring them.

Please Log in or Create an account to join the conversation.

More
01 Jun 2024 21:10 #302108 by hardware_crash
Thats what I thought too, but with Peters script and a rate=0x40000 in that script, the motor is moving correct...

Please Log in or Create an account to join the conversation.

More
01 Jun 2024 21:13 #302109 by PCW
The script uses quadrature mode so puts out "step" pulses on both pins

Please Log in or Create an account to join the conversation.

Moderators: PCWjmelson
Time to create page: 0.102 seconds
Powered by Kunena Forum