How to generate step pulses for a stepper motor using PWM or counter ?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi,

   

I am developing a cnc controller using a CY8CKIT-049-41xx kit. For this I need to generate specific number of pulses of set pulse width (equal pulse widths no PWM), pulses for both X and Y axis is required.

   

The first approach I used consists of pulsing an output high and low, however I also want the kit to send back UART data to a PC. There must be no delays as this can affect the pulse motion.

   

Is this possible to do this using PWM or the Counter components, ?

   

My scheme is to do this...

   

I set the pulse widths, count values, then start the pulsing, since the main program loop is not involved in the actual pulsing I can send data to a PC via UART using the UART component 

   

 

   

thanks

   

a

7 Replies
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

You will have to instantiate counters (in software or hardware) counting your PWM pulses for x- and y- direction. Depending on the max. pulse frequency of the PWM (less than 1kHz) you can use interrupt driven counters and shut down the PWM when the limit is reached.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

Thanks for the help.

   

I tried using the counter but it does not work on clocks over 20khz, I need to use clock at 200khz, so I am using is component instead to count pulses. Since there are two motors, there will be 2 isr components Do I have to increase the system clock to 48mhz instead of default 24mhz ?

   

Thanks

   

a

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Is your motor step really with a frequency of 200kHz?? Can you provide a link to datasheet, please.

   

 

   

Bob

0 Likes
Anonymous
Not applicable

http://www.yankong.com/EN/index.php/proview-34-16.html

   

With a 2khz clock the motor is really slow.

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

The motor diagram shows a usable frequency of up to 10kHz which is quite more than I expected. This would result in 2000 rpm which is quite a lot for a stepper.

   

 

   

Bob

0 Likes
Vasanth
Moderator
Moderator
Moderator
250 sign-ins 500 solutions authored First question asked

Hi arbj,

//I tried using the counter but it does not work on clocks over 20khz// - But the TCPWM module datasheet says that it supports upto 48 MHz. So getting 200KHz should'nt be a problem. Where exactly did you face the problem when you tried to use it?

Best Regards,
VSRS
 

0 Likes
Anonymous
Not applicable

hi Arun,

i Presume that you are working with Stepper motor and the drivers which suggests to have minimum pulse ON time of 5us for the driver to operate properly.

so to run the motor with heighest speed you might be expecting 20 KHz controlled clock.

i would suggest to just take 20KHz clock i/p to AND GATE and use another i/p as control input so that the operation will be fast and you can work with UART response etc just after enabling the input.

long back when PSoC 1 was popular i tired such ways. but not sure if it will work at 20Khz .

further note the input current req of the driver and check if it is matching with PSoC. if not you my try connecting configuring PSoC pins in sinc mode and providing High level form external line just as in case of I2C communication.

Sourabh.

0 Likes