Notifications
Clear all

DM542T input/output pulse characteristics

3 Posts
3 Users
2 Likes
126 Views
(@douglaskeene)
Member
Joined: 3 months ago
Posts: 9
Topic starter  

Hi Folks

in follow up, i am trying to control a stepper motor with a DM542T. I need more specific information on the pulse signal that I provide to the DM542T, (input) specifically: the pulse width and frequency AND how they relate to the pulse that frequency that the DM542T (output) provides to the motor so I can accurately control the motor's velocity. The manual does not seem to provide such details and StepperOnline is not responsive so far...

Any expertise would be helpful!!
Thank you

Doug


   
Quote
(@davee)
Member
Joined: 3 years ago
Posts: 1699
 

Hi Doug @douglaskeen,

  I'll start by saying, the following refers to the shaft of the motor. If your motor has a reduction gearbox built-in, the motion of the output shaft will be reduced by the ratio of the gearbox.

I am also assuming it is 1.8 degree per step motor.

  One pulse (of suitable shape, etc.) from your controller will produce just micro-step of the motor shaft.

  The angle the motor shaft rotates with that micro-step depends upon the switch setting on the DM542T.  e.g. if you picked this line from the manual to set the switches,

image

then each pulse would cause it to move 1.8/4 = 0.45 degrees.

--------------------------------------------------------------------

To start, I suggest you set the switches to first row of the table, since this will give the largest step of 1.8 degrees, which should be just about visible.

image

The smaller steps are so small, it is possible to make many of them, with no perceptible motion. If possible, attach some kind of "pointer" using sticky tape or similar, directly to the motor shaft. The output shaft of a gearbox may require many steps to make a perceptible move.

-----------------

The manual also explains the pulse shape:

image

Thus the manual is saying:

Assume the PULse output is normally low when the motor is not moving:

A single pulse (which should result in 1 microstep) consists of:

  1. Set the PULse output to high
  2. Wait at least 2.5 microseconds (with output remaining high)
  3. Set the PULse output to low
  4. Wait at least 2.5 microseconds (with output remaining low)

This sequence would then be restarted for the second pulse and so on.

--------------------------------------------------

If this sequence was repeated indefinitely, then there would be 1 pulse every 5 microseconds, corresponding to 200,000 microsteps per second.

The motor may not be able to keep up with this, so it would probably be sensible to start with a slower rate, perhaps 200 microsteps per second, which with the microstep setting of 1, would correspond to 1 revolution per second. (Note this is 1 revolution of the motor shaft ... if the gearbox ratio is (say) 60:1, the gearbox output shaft would only have moved by 360 (deg)/60 = 6 degrees per second)

------------------------------------------------------

To achieve a slower rate, increase the time spent in each of the states. e.g. for 200 steps per second, the above sequence for 1 pulse becomes:

A single pulse (which should result in 1 microstep) consists of:

  1. Set the PULse output to high
  2. Wait 2.5 milliseconds (with output remaining high)
  3. Set the PULse output to low
  4. Wait 2.5 milliseconds (with output remaining low)

-------------------------

You do not say what you are using for a controller. Whilst there are many possibilities, regulars to this forum would probably think of starting with an Arduino Uno or similar controller (ESP8266/ESP32/Pico, etc.), at least for the initial testing and commissioning. Such boards are readily connected and programmed.

This forum's host, Bill @dronebot-workshop, has produced videos + blogs on the subject including:

https://dronebotworkshop.com/big-stepper-motors/

For background 'reading', you might also like to view:

https://dronebotworkshop.com/stepper-motor-hall-effect/

which provides some of the background information, albeit using a lower power motor and driver board

----------------

Note that your driver (DM542T) requires a minimum of 5V pulse height, and the S2 switch must be set to the 5V position, as described in the manual.

The 'traditional, older' Arduino boards, like the UNO, provide 5V GPIO outputs, which means they can directly drive the DM524T, as Bill illustrates in the first video referenced above.

The more recent boards, such as ESP8266, ESP32, Pico, etc. all have 3.3V GPIO outputs, which will produce pulses that are too small for reliable operation to be assured. If you are familiar with electronics, then you will understand how to amplify the outputs. But, if you are not familiar with electronics, then this can easily become another hurdle to jump.

Hence, unless you are confident about the electronics needed, I recommend you start with a board with 5V GPIO outputs, at least until you have the system running.

---------------

I hope this is enough for you to get started, but if you have any further questions, having viewed Bill's video and blogs, please feel free to post them.

---------

Good luck and best wishes, Dave


   
Ron reacted
ReplyQuote
(@bbutcher85)
Member
Joined: 1 year ago
Posts: 10
 

Hi Doug,

I did find a manual online for the DM542T. It appears you need a pulse voltage of about 5 volts for the direction and step signals. The minimum pulse width is 5 usec for direction and 2.5 usec for step.

The pulse frequency for the step depends on two factors:

1. The number of steps per full rotation of the motor, usually 200 steps per revolution.

2. The micro-stepping you set on the DM542T. If you use full steps, then you would get one revolution per 200 steps assuming the motor is rated for this. 

A good description of how a stepper motor works can be found at

https://www.orientalmotor.com/stepper-motors/technology/stepper-motor-overview.html?gad_source=1&gclid=CjwKCAiAopuvBhBCEiwAm8jaMR0q7ZbPGR6KahSmCG-Vzy3EXihwKIf4r5OahAVv8MlsAh-0v4QFaBoCVLIQAvD_BwE

Note that normally the current is turned on to full current (set by the controller to match the motor rating) in only one winding at a time. The motor jumps one step each time the current is changed from winding 1 to the winding 2. This is called full step mode. 

If the current is reduced to half the full value in winding 1 and also increased to half the full value in winding 2, the motor will move half a step. This is half-stepping. The next half step reduces current in winding 1 to zero and increases winding 2 current to full, completing a full step.

Other micro-step modes use a stair-step like current increasing the current in 2, 4, 8, or more steps resulting in smaller steps in the motor motion.

For full stepping, a frequency of 200 Hz would rotate the motor at 200 steps per second, or one full rotation per second, 60 RPM. For half-stepping, the frequency must be doubled to achieve the same rotation rate. For other micro-stepping modes, increase the frequency accordingly.

The next issue is voltage. The motor will be rated for a certain voltage, determined by the resistance of the winding. The rated voltage will produce the rated current in the motor when applied continuously. 

The motor winding also has an inductance value. When a voltage is suddenly applied to an inductance, the current does not instantaneously increase to full value, rather it rises over time to the value determined by resistance. The voltage, inductance, and resistance values determine how quickly the current will rise. The time it takes for the current to reach full value will affect how fast the motor can rotate. The equation for the relationship is

V = L X dI/dt

where L is the inductance in Henry's, V is voltage in volts, and dI/dt is the rate of change of current with respect to time, also known as the slope of the waveform in Amps per second. This can be rearranged to

V / L = dI/dt

For a fixed inductance L, increasing the voltage will increase the slope, thus decreasing the time required to reach full current. As a result most stepper controllers will use a much higher voltage than the motor is rated for, and provide current limiting once the current has reached the desired value.

I hope this has been helpful in understanding what you are doing. The Arduino IDE has a bulit in stepper motor driver that is a good starting point. You may need to experiment a bit to get the desired result.

Bob Butcher

Retired Electrical Engineer

 

 

 


   
DaveE reacted
ReplyQuote