How does it work?
Silent Step 2 Click is based on the TMC2130, a high-performance two-phase stepper motor driver from Analog Devices. The highest resolution is 256 microsteps per full step. Some other integrated techniques are SpreadCycle™ as a highly dynamic motor control chopper, DcStep™ as load-dependent speed control, sTallGuard2™ as a high precision sensorless motor load detection, and more. The motor driver supports passive breaking and freewheeling mode. This motor driver also supports a few operating modes that can be used per your needs.
Silent Step 2 Click can communicate with the host MCU using a standard 4-wire SPI serial interface. It can also use the step/direction driver mode, which allows you to control the motor position by sending pulses on the step signal STP pin while indicating the direction on the direction signal DIR pin. The driver uses an external motor power supply of 4.75 up to 43V to power a 2-phase stepper motor up to 2A coil current (2.5A peak). The motor current can be set over the onboard VREF potentiometer.
Additional functionalities on this Click board™ are achieved over the PCA9538A, an 8-bit I/O port from NXP. This I/O port communicates with the host MCU over the I2C interface, and you can change the I2C address over the ADDR SEL jumpers. The PCA9538A allows you to control the driver enable function of the motor driver. It also monitors two driver motors’ diagnostic outputs, and if a condition is met (say, stall of the motor), it will interrupt the host MCU over the INT pin. The I/O port can be reset over the RST pin.
This Click board™ can operate with either 3.3V or 5V logic voltage levels selected via the VCC SEL jumper. This way, both 3.3V and 5V capable MCUs can use the communication lines properly. Also, this Click board™ comes equipped with a library containing easy-to-use functions and an example code that can be used as a reference for further development.
Specifications
Type
Stepper
Applications
Can be used for the development of a direct substitution for many complex motion controllers for various industrial purposes
On-board modules
TMC2130 – high-performance two-phase stepper motor driver from Analog Devices
Key Features
2-phase stepper motor driver, high resolution per full step, wide input voltage range, passive braking and freewheeling mode, full protection and diagnostic, load-dependent speed control, highly dynamic motor control chopper, and more
Interface
GPIO,I2C,SPI
Feature
ClickID
Compatibility
mikroBUS™
Click board size
L (57.15 x 25.4 mm)
Input Voltage
3.3V or 5V,External
Pinout diagram
This table shows how the pinout on Silent Step 2 Click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | – | Power LED Indicator |
JP1 | VCC SEL | Left | Logic Level Voltage Selection 3V3/5V: Left position 3V3, Right position 5V |
JP2-JP3 | ADDR SEL | Left | I2C Address Selection 0/1: Left position 0, Right position 1 |
P1 | VREF | – | Current Scaling Potentiometer |
Silent Step 2 Click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Supply Voltage | 3.3 | – | 5 | V |
External Power Supply | 4.75 | – | 43 | V |
Output Current | – | – | 2 | A |
Software Support
We provide a library for the Silent Step 2 Click as well as a demo application (example), developed using MIKROE compilers. The demo can run on all the main MIKROE development boards.
Package can be downloaded/installed directly from NECTO Studio Package Manager (recommended), downloaded from our LibStock™ or found on Mikroe github account.
Library Description
This library contains API for Silent Step 2 Click driver.
Key functions
-
silentstep2_rotate_by_angle
Silent Step 2 rotates the shaft through a desired angle function. -
silentstep2_set_direction
Silent Step 2 sets the clockwise or counterclockwise direction movement function.
Example Description
This example demonstrates the use of Silent Step 2 Click board™ by driving the motor in both directions for a desired rotation angle.
void application_task ( void )
{
log_printf( &logger, " Clockwise motionrn" );
log_printf( &logger, " Angle of rotation : 90 degreesrn" );
log_printf( &logger, " Step speed : 50 %%rn" );
silentstep2_set_direction( &silentstep2, SILENTSTEP2_DIRECTION_CLOCKWISE );
if ( SILENTSTEP2_OK == silentstep2_rotate_by_angle( &silentstep2, 50, 90, SILENTSTEP2_STEP_RES_200 ) )
{
log_printf( &logger, "-----------------------------rn" );
Delay_ms( 2000 );
}
log_printf( &logger, " Counterclockwise motionrn" );
log_printf( &logger, " Angle of rotation : 180 degrn" );
log_printf( &logger, " Step speed : 50 %%rn" );
silentstep2_set_direction( &silentstep2, SILENTSTEP2_DIRECTION_COUNTERCLOCKWISE );
if ( SILENTSTEP2_OK == silentstep2_rotate_by_angle( &silentstep2, 50, 180, SILENTSTEP2_STEP_RES_200 ) )
{
log_printf( &logger, "-----------------------------rn" );
Delay_ms( 2000 );
}
log_printf( &logger, " Clockwise motionrn" );
log_printf( &logger, " Angle of rotation : 270 degrn" );
log_printf( &logger, " Step speed : 50 %% rn" );
silentstep2_set_direction( &silentstep2, SILENTSTEP2_DIRECTION_CLOCKWISE );
if ( SILENTSTEP2_OK == silentstep2_rotate_by_angle( &silentstep2, 50, 270, SILENTSTEP2_STEP_RES_200 ) )
{
log_printf( &logger, "-----------------------------rn" );
Delay_ms( 2000 );
}
log_printf( &logger, " Counterclockwise motionrn" );
log_printf( &logger, " Angle of rotation : 360 degrn" );
log_printf( &logger, " Step speed : 90 %%rn" );
silentstep2_set_direction( &silentstep2, SILENTSTEP2_DIRECTION_COUNTERCLOCKWISE );
if ( SILENTSTEP2_OK == silentstep2_rotate_by_angle( &silentstep2, 90, 360, SILENTSTEP2_STEP_RES_200 ) )
{
log_printf( &logger, "-----------------------------rn" );
Delay_ms( 2000 );
}
log_printf( &logger, " Clockwise motionrn" );
log_printf( &logger, " Angle of rotation : 360 degrn" );
log_printf( &logger, " Step speed : 90 %% rn" );
silentstep2_set_direction( &silentstep2, SILENTSTEP2_DIRECTION_CLOCKWISE );
if ( SILENTSTEP2_OK == silentstep2_rotate_by_angle( &silentstep2, 90, 360, SILENTSTEP2_STEP_RES_200 ) )
{
log_printf( &logger, "-----------------------------rn" );
Delay_ms( 2000 );
}
}
The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager (recommended), downloaded from our LibStock™ or found on Mikroe github account.
Other Mikroe Libraries used in the example:
- MikroSDK.Board
- MikroSDK.Log
- Click.SilentStep2
Additional notes and informations
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. UART terminal is available in all MIKROE compilers.
mikroSDK
This Click board™ is supported with mikroSDK – MIKROE 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.
For more information about mikroSDK, visit the official page.