FAQ for SD01A, SD02A & SD02B

Autonomous Robot, Manual Robot, DC Motor Driver, Stepper Motor Driver, Servo, Multi PWM chip.....

FAQ for SD01A, SD02A & SD02B

Postby sich » Wed Apr 22, 2009 8:34 pm

1. What are SDXXX products?
SDXXX is designed to drive unipolar or bipolar stepper motor. The board incorporates most of the components of the typical applications. With minimum interface, the board is ready to Plug and Play. Simply add in power and a few push buttons, this driver is ready to drive unipolar or bipolar stepper motor. SDXXX will actually drive stepper motor in bipolar method. However, since unipolar stepper motor can also be used as bi-polar stepper motor, thus this driver can be used to drive both unipolar and bipolar stepper motor. Generally SDXXX features:
1. 5V logic level compatible input
2. Maximum speed up to 1000 steps per second or 1KHz pulses
3. Enable/Disable pin for low power consumption mode
4. Heat sink with fan for fast thermal release
5. Other features are compared in Question 2...

2. What are the differences among SD01A, SD02A and SD02B?
The main differences among these 3 products are:
1. SD01A = single channel (control 1 stepper motor only), 1A per phase - Discontinued
2. SD02A = dual channel, 2A per phase, fixed 1/10 micro-stepping - Discontinued
3. SD02B = dual channel, 1A per phase, selectable 1/10, 1/5, 1/2 micro-stepping & normal stepping, UART communication interface, support wide voltage range (3 to 40V) of stepper motor, reverse voltage protection for supply and signal pins, over-voltage protection for signal pins - Latest version

3. What can i do with the new UART communication interface featured by SD02B?
UART communication interface is useful for communication over a computer or microcontroller. In previous version of stepper drivers, users need to connect the signal pins to the main controller and generate pulse for the driver to step, sending high/low signal to on/off, start/stop or run/brake the driver. Accurate pulse generation can be difficult if the main controller has to take care of other routines in the program. With this latest version (SD02B), users only need to 'talk' to the driver via UART communication. The task to generate pulses in main controller is eliminated. However, the signal pins are remained in SD02B for application which required high-accuracy stepping to be accessible at main controller side.
Besides, this feature enables users to control stepper motor using their PC/laptop easily. No more difficult wiring and interfacing components. By using the Cytron UC00A (UART to serial converter), the stepper driver is ready to work. Example GUI written in VB.net is provided in SD02B product page too. Thus users can play with the stepper driver's functions at their fingertips.

4. What can i do with the sample source code for computer using VB.net provided in SD02B product page?
You can use the sample GUI to test the functionality of the stepper driver. There are a lot of new features included in the latest version such as encoder acquiring and tracking, acceleration control and various micro-stepping selection. So you may make use of the GUI to try out the functions easily. After you are familiar with the stepper driver, this GUI's source code in VB.net may assist you in developing your own GUI which is customized for your application. The source code is available for free.

5. Since most of the baseline and midrange microcontrollers only have one UART interface, how do i control two SD02Bs and therefore manipulate two stepper motors using the SD02B UART interface?
Yes, that's true! This can be far more complicated when we need more UARTs to communicate with other microcontroller or PC, to retrieve data from UART interfaced sensors and so on. To solve the problem, we can use devices like 16-bit and 32-bit microcontrollers which generally feature more than one UARTs. But what about if we want to stick to 8-bit microcontroller? Actually besides using the hardware UART provided by the microcontroller, we can also generate additional UART using software approach which will do the job as well. Of course there are limitations such as the communication speed (baudrate). However, a baudrate at 9600 is fair enough for most of the applications. We are not saying the software UART only can run at 9600, but the higher the baudrate, the more errors you will get. The reliability of the software UART is also greatly depending on the software algorithm itself.
The sample source code for microcontroller using PIC18F4520 provided in SD02B product page gives an example which makes use of Microchip C18 C Compiler Libraries for PIC18F microcontroller to generate one additional software UART. This means one SD02B will be controlled by a hardware UART (provided by PIC) and another SD02B will be controlled by a software UART (generated in software).

6. How do i calculate the angle of rotation per step for my stepper motor controlled by SD02B?
Let say the stepper motor has 1.8 degree per step. By using 1/10 micro-stepping, every single pulse given to SD02B will rotate the motor for 1.8 degree/10 = 0.18 degree. So in other word, each step running at 1/10 micro-stepping will rotate the stepper motor for 0.18 degree. The same calculation works for 1/2 and 1/5 micro-stepping too. Needless to say that if we disabled the micro-stepping (running in normal 1/1 stepping mode), the angle per step is the same as the original value given by stepper motor which is 1.8 degree.

7. How do i calculate the number of pulse to be given to SD02B so that it steps the stepper motor for a certain angle?
By referring to the data in Q6 (using a stepper motor with 1.8 degree per step and running at 1/10 micro-stepping),
Number of pulse needed = (Desired angle)/0.18 degree = _______ pulse(s)
Number of pulse for 1 full rotation (360 degree) = 360/0.18 = 2000 pulses
If the stepper motor is mounted on a mobile robot with a wheel at 10cm in diameters, the number of pulse needed for a certain traverse distance can be calculate as shown below.
Perimeter of the wheel = 2*pi*r = 2*pi*(10/2) = 31.42cm
Number of pulse needed = (Desired distance in cm)/31.42*2000 = _______ pulse(s)

8. What's the difference between normal stepping and various mode of micro-stepping?
Normal stepping in our context means full-stepping of the stepper motor. If a motor is rated at 0.18 degree per step, full-step of this motor will move 0.18 degree from its current position.
Micro-stepping is actually the number of stepping to a full-step. 1/2 micro-stepping will give you 0.18/2=0.09 degree per step. So, 1/10 micro-stepping yields 0.18/10=0.018 degree per step.
User avatar
Posts: 603
Joined: Tue Apr 21, 2009 2:15 pm

Return to Robot Controller

Who is online

Users browsing this forum: No registered users and 3 guests