Set step pulse width for an external driver

Home Forums TinyG TinyG Support Set step pulse width for an external driver

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #6764
    bonetti
    Member

    Hi All,

    I’m using a Firmware Build 380.08, which has about 800 nanoseconds wide (under 1 microsecond) ()

    And what my external driver needs is a minimum of a 10 microseconds wide

    There’s some way to fix this issue?

    Thank you very much in advance

    #6765
    cmcgrath5035
    Moderator

    You should upgrade your tinyG to FW build 438.02 (or later, it is 438.02 today).
    You will get:
    1. Numerous enhancements, bug fixes, etc.
    2. Step widths in the 4 to 6 us range

    What external driver are you interfacing?
    Alden may have some suggestions.

    #6769
    bonetti
    Member

    Thanks cmcgrath, we are using an upgraded tinyG version, and now get a 4 us step width.

    There is a way to make this range bigger? like a 10 us

    #6770
    bonetti
    Member

    Hi, I do use LeadShine EM-806.
    The driver mentions it needs at least 4,5µs pulses, however due to cable impedances and so on, I prefer a safest value like 8µs to 10µs.

    Actual status:
    I updated the firmware of the board to v. 438.02. Now I get approx. 4µs, but I need a little more, something like 10 µs will be the best and safest.

    Looking at the source, I notice two things:

    In hardware.h

    Line 98: #define MILLISECONDS_PER_TICK 1
    When I change the value to “2”, I get 5µs pulses.
    That’s fine, but I don’t know exactly what this does.

    In stepper.c</a
    Line 504-507: The comments mention different pulse times, but don’t know why. Is there a way to setup the pulse time there?

    #6779
    alden
    Member

    The way I read the data sheet for that driver they require pulses that are 4-5v and a minimum of 2.5 uSec. I would have copied the section of the data sheet there but they copy protected the PDF. http://www.leadshine.com/UploadFile/Down/EM806d_V1.0.pdf

    So the pulse width should be acceptable but the voltage may not be – as it’s about 3.0 – 3.2v output. A simple level shifter can be made from a 74LS125 or 74LS126 driven at 5v, with 3.3v inout signals. This outputs 5v drive signals.

    The step pulse widths are not settable as the primary use of the board is to drive the TI on-board drivers which only require 1 uSec pulse widths.

    If you find that you cannot make this work for your application you can return the board for a refund.

    #7320
    Eureka-Tech
    Member

    Hi all,
    Will the TinyG v.8 produce step/direction signals for all axes to drive say Gecko G203V stepper drives?
    If so, how to connect to the TinyG?

    Thanks in advance.

    #7323
    cmcgrath5035
    Moderator

    Not Familiar with Gecko G203Vs.
    V8 Schematics are here for reference

    For each of the 4 motors, there is Step, Enable Dir and GND. This is 3.3v Logic. There are not outputs for the other two motors (in 6 axis machines.)
    If you need 5 or 6 independent signals, have a look at tinyG2, perhaps on a Due since you want external drivers anyway

    #7685

    HI –
    I’m trying to use the tinyg to control a motor using an external stepper driver:
    http://www.automationtechnologiesinc.com/wp-content/uploads/downloads/2014/02/KL11080.pdf

    however, my stepper driver has the following signal interface: Step +, step -, dir+, dir -, en+, en-

    rather than “Step, Enable Dir and GND” . Is there a way I can still use TinyG to control this stepper driver?

    from the data sheet”PUL+ and PUL- is the positive and negative side of control pulse
    signal; Dir + and Dir – is the positive and negative side of
    direction signal; EN + and EN- is the positive and negative side of
    enable signal”

    #7687
    cmcgrath5035
    Moderator

    I have no personal experience with this Driver and have not seen traffic here, but someone else may join in.

    My Read: Bottom of Page 2, top of page 3
    The Step, Dir and Enable interfaces are opto-isolators, + anode side, – cathode side.
    Interface voltage is 5V minimum (no resistor)
    tinyG is 3.3V logic, so you will need a 3.3V to 5V translator.
    I use 74AHCT125 devices for this job, but there are others.
    The buffered tinyG signals would connect to +(anode side) and Gnd to -(cathode) side.

    You need to research the required sense of the Enable Lead. tinyG Enable is active low. If this driver wants Active high, you will need to invert the tinyG signal rather than buffer it.

    Microstepping – You will need to manualy set the microsteps on the Driver unit to match what you set up in tinyG $_mi parameters.
    I believe you can set the tinyG parameter to any value, not just 1,2,4,8 and it will compute pulses per that setting. I would recommend initial test/verification with one of these ‘standard’ settings then experiment from there if you think smaller steps are useful in your application. Also suggest review this

    It is in the G2 wiki, but the comments would apply here as well.

    A final thought – your setup seems headed to requiring significant buffering (and wiring) external to tinyG. You might want to consider tinyG2 on a Ardino Due – with a (widely available) development shield on the DUE where you could wire up the required buffers. This may or may not make for a simpler physical implementation.
    tinyG2 is not as mature as tinyG at the moment, but is being actively used by many folks and intense refinement effort. See

Viewing 9 posts - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.