STSPIN820 Click Board
STSPIN820 Click Board
Overview
The STSPIN820 Click Board™ is a stepper motor driver with the PWM current control, selectable microstepping up to 256 microsteps, and a wide voltage range. It is based on the STSPIN820, a stepper motor driver from STSPIN8 series. Designed to be a bullet-proof solution for the new wave of demanding industrial applications, it integrates two full-bridges with low ON resistance, the control logic, and a full set of protection features, in a small 4x4mm QFN package. Its output stage implements the PWM current control with the fixed OFF time. The device can be used with the step motor voltage ranging from 7V up to 45V, and current up to 1.5A per bridge.
The STSPIN820 Click Board™ is optimized for driving bipolar stepper motors over a wide voltage range. Therefore, the STSPIN820 integrates very efficient H-Bridges with ON resistance of approximately 1Ω through each bridge. Motor current can be limited by an onboard potentiometer. These features make the STSPIN820 Click Board™ perfectly suited for rapid development of various stepper motor applications, including ATM-related applications, toys, 3D printers, mechatronics, robotics-related applications, etc.
How Does The STSPIN820 Click Board™ Work?
The STSPIN820 Click Board™ is based on the STSPIN820, an advanced stepper motor driver produced by STMicroelectronics. The monolithic IC incorporates both the power MOSFETs and the logic circuitry necessary for simplified control and reliable functioning of the connected bipolar stepper motor. Featuring a microstepping sequencer that supports up to 256 microsteps, this IC can perform very smooth and silent movements. The step sequencer also controls the VREF voltage, allowing the current through coils to be at an optimal level during the microstepping. In full step mode, the maximum current through the coils is controlled by the VREF, according to the formula given further below. As the sequencer propagates through the microsteps, the VREF is further reduced following a circular pattern, ensuring maximum power efficiency for each step.
The STSPIN820 has two PWM current controllers with the fixed OFF time for each H-Bridge, during which the current decay sequence is performed. This effectively limits the maximum current through the connected motor phase. The OFF (decay) time is fixed to approximately 25 µs on this Click board™. The DECAY pin determines the decay mode. In mixed decay mode (DECAY pin at the LOW logic level), the decay period is divided into slow decaying and fast decaying segments. The slow decay segment lasts for 5/8 of the total OFF time, while the fast decay segment lasts for 3/8 of the total OFF time. When the DECAY pin is at the HIGH logic level, the slow decay mode lasts for the entire OFF time.
The PWM current controller compares the voltage across two sense resistors (VSENS1, and VSENS2) and the VREF voltage, which can be adjusted by a potentiometer. When VSENS becomes greater than the VREF voltage, the current limiting is triggered, and the OFF timer starts counting. The decay sequence is performed. By using a simple formula, the VREF voltage can be determined for a specific load current:
VREF = RSENS · ILOAD
Where:
- VREF is the voltage on the REF pin of the STSPIN820, adjustable with the potentiometer.
- RSENS is the resistance of the current sensing resistor, which is 330 mΩ.
- ILOAD is the peak current through the motor coils.
By knowing the RSENS, it can be easily calculated how much voltage should be applied to the REF pin of the STSPIN820, to limit the current according to ILOAD. For example, if there is 0.3V applied at the VREF pin, the current limit will be maxed out to 0.91A. The potentiometer allows to simply adjust the VREF voltage, according to needs.
The STSPIN820 contains two independent H-Bridges, and each of them controls one phase of the bipolar stepper motor. The motor can be controlled by using these pins: DIR, STCK, RST, EN, and FAULT.
The DIR pin determines the direction of the rotation. If set to a HIGH logic level, the internal microstepping counter will increase its value with each pulse coming through the STCK pin. The LOW logic level on this pin will cause the microstepping sequencer to decrease its counter. DIR pin is routed both to the mikroBUS™ pin AN (labelled as DIR).
STCK pin has already been explained above: a pulse on this pin will cause the microstepping sequencer to increase or decrease its counter, depending on the state of the DIR pin.
SW1, SW2, and SW3 switches on the Click board™ are used to determine the step size. They have MODE 1, MODE 2, and MODE 3 pins routed to them, respectively. All these switches can be used to set the mode at any moment during the operation. The changes are applied immediately. The datasheet of the STSPIN820 IC offers a truth-table which contains settings of these switches for each microstepping mode.
The STBY/RESET (RST) pin of the STSPIN820 is used to set both bridge outputs in HIGH-Z mode, disconnecting the power supply from the H-Bridges. This pin allows lower average power consumption as no current can flow from the power supply to the motor. This pin is routed to the RST pin of the mikroBUS™. The control logic circuitry will be reset when leaving the standby mode.
The EN/FAULT (EN) pin has a double purpose: when set to a high logic level, it acts as a chip enable, allowing the device to operate. In the case of a fault condition on the IC, it will be asserted to a LOW logic level, acting as an interrupt pin. After a timeout period defined by the external capacitor and resistor values, a restart attempt will be made. This pin is routed to both CS and INT pin of the mikroBUS™, allowing the host MCU to use both functions. These pins are labelled as EN and FLT on the Click board™, respectively.
The motor power supply can be connected to the input terminal labelled as VIN and should be within the range of 7V to 45V. Stepper motor coils can be connected to the terminals labelled as A1, B2, B1, and A2. The STSPIN820 Click Board™ requires an external power supply for the motor in order to work. However, it also requires 3.3V from the mikroBUS™ rail.
SPECIFICATIONS
Type | Stepper |
Applications | The STSPIN820 Click Board™ suited for rapid development of various stepper motor applications, including ATM-related applications, toys, 3D printers, mechatronics, robotics-related applications, etc. |
On-board modules | An STSPIN820, a stepper motor driver from STSPIN8 series from STmicrocontrollers |
Key Features | The STSPIN820 click fetures PWM current control, selectable micro-stepping up to 256 micro-steps, and a wide voltage range. |
Interface | GPIO |
Compatibility | mikroBUS |
Click board size | L (57.15 x 25.4 mm) |
Input Voltage | 3.3V |
PINOUT DIAGRAM
This table shows how the pinout of the STSPIN820 Click Board™ corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes | Pin | Pin | Notes | ||||
---|---|---|---|---|---|---|---|
Direction Control | DIR | 1 | AN | PWM | 16 | STK | Step Control |
Chip Reset | RST | 2 | RST | INT | 15 | FLT | Fault Reporting |
Chip Enable | SDN | 3 | CS | RX | 14 | NC | |
NC | 4 | SCK | TX | 13 | NC | ||
NC | 5 | MISO | SCL | 12 | NC | ||
NC | 6 | MOSI | SDA | 11 | NC | ||
Power Supply | 3.3V | 7 | 3.3V | 5V | 10 | NC | |
Ground | GND | 8 | GND | GND | 9 | GND | Ground |
STSPIN820 CLICK ELECTRICAL SPECIFICATIONS
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
External power supply voltage | 7 | - | 45 | V |
Motor RMS current | - | - | 1.5 | A |
Step size | 1 | - | 1:256 | step |
Note: Power dissipation should be monitored. An additional heat sink might be required when operated with high current values.
ONBOARD SETTINGS AND INDICATORS
Label | Name | Default | Description |
---|---|---|---|
PWR | PWR | - | Power LED Indicator |
SW1 - SW4 | SW1 - SW4 | Up | Microstepping selection switches |
VR1 | - | - | Potentiometer for current limiting |
Software Support
We provide a library for the STSPIN820 Click Board™ on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
Library carries everything needed for stepper motor control including speed and acceleration setup. Library is also adjustable to working on different amount of ticks per second, also speed and acceleration can be provided in float format. Buffer used for movement calculation is defined by user so this library can be adjusted for MCUs with very limited RAM resources. Check documentation for more details how to use it.
Key Functions
uint8_t stspin820_setSpeed( float minSpeed, float maxSpeed, float accelRatio, T_STSPIN820_OBJ obj )
- Setup motor speed.uint8_t stspin820_setRoute( const uint8_t direction, uint32_t steps, T_STSPIN820_OBJ obj )
- Setup new route.void stspin820_start( T_STSPIN820_OBJ obj )
- Start motor movement.
Example Description
The application is composed of the three sections :
- System Initialization - Initializes all GPIO pins found on STSPIN820 Click and timer to 1ms interrupt.
- Application Initialization - First segment initializes driver and stepper control. Second segment setup movement limits, maximum and minimum speed, and acceleration ratio. Third segment enables motor and setup new route which will be called from application task.
- Application Task - (code snippet) - Sequentialy moves motor. First part of sequence executes movement until the end. Second part stop motor movement after one second and continues sequence after two seconds.
void applicationTask() { stspin820_start( (T_STSPIN820_OBJ)&myStepper ); while ( myStepper.status.running ) { stspin820_process( (T_STSPIN820_OBJ)&myStepper ); } Delay_ms( 2000 ); stspin820_start( (T_STSPIN820_OBJ)&myStepper ); Delay_ms( 1000 ); stspin820_stop( (T_STSPIN820_OBJ)&myStepper ); Delay_ms( 2000 ); }
In addition to library function calls example carries necessary Timer ISR and Timer initialization. Check Timer initialization setings and update it according to your MCU - Timer Calculator.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
ADC
UART
Conversions
Additional Notes and Information
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
MIKROSDK
The STSPIN820 Click Board™ is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
Software Support
We provide a library for the STSPIN820 Click Board™ on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
Library carries everything needed for stepper motor control including speed and acceleration setup. Library is also adjustable to working on different amount of ticks per second, also speed and acceleration can be provided in float format. Buffer used for movement calculation is defined by user so this library can be adjusted for MCUs with very limited RAM resources. Check documentation for more details how to use it.
Key Functions
uint8_t stspin820_setSpeed( float minSpeed, float maxSpeed, float accelRatio, T_STSPIN820_OBJ obj )
- Setup motor speed.uint8_t stspin820_setRoute( const uint8_t direction, uint32_t steps, T_STSPIN820_OBJ obj )
- Setup new route.void stspin820_start( T_STSPIN820_OBJ obj )
- Start motor movement.
Example Description
The application is composed of the three sections :
- System Initialization - Initializes all GPIO pins found on STSPIN820 Click and timer to 1ms interrupt.
- Application Initialization - First segment initializes driver and stepper control. Second segment setup movement limits, maximum and minimum speed, and acceleration ratio. Third segment enables motor and setup new route which will be called from application task.
- Application Task - (code snippet) - Sequentialy moves motor. First part of sequence executes movement until the end. Second part stop motor movement after one second and continues sequence after two seconds.
void applicationTask() { stspin820_start( (T_STSPIN820_OBJ)&myStepper ); while ( myStepper.status.running ) { stspin820_process( (T_STSPIN820_OBJ)&myStepper ); } Delay_ms( 2000 ); stspin820_start( (T_STSPIN820_OBJ)&myStepper ); Delay_ms( 1000 ); stspin820_stop( (T_STSPIN820_OBJ)&myStepper ); Delay_ms( 2000 ); }
In addition to library function calls example carries necessary Timer ISR and Timer initialization. Check Timer initialization setings and update it according to your MCU - Timer Calculator.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
ADC
UART
Conversions
Additional Notes and Information
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
MIKROSDK
The STSPIN820 Click Board™ is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
Frequently Asked Questions
Have a Question?
Be the first to ask a question about this.