Stepper 13 Click Board
Stepper 13 Click Board
Overview
The Stepper 13 Click Board™ is a bipolar step motor driver. It features an H-bridge bipolar step motor driver, which supports full-, half-, quarter-, or eighth-step modes. Stepper 13 click also carries a port expander so that the communication can be done with minimal pins through the mikroBUS™ I2C bus. This click board™ offers thermal protection and integrated kickback voltage protection, it has a wide range of input voltage, protection against current shoot-through the H-Bridge and high current capability. These features make Stepper 13 click an ideal solution for driving motors in any application that demands a precise and safe step motor driver.
The Stepper 13 Click Board™ is supported by a mikroSDK compliant library, which includes functions that simplify software development. This Click Board™ comes as a thoroughly tested product, ready to be used on a system equipped with the mikroBUS™ socket.
The Stepper 13 Click Board™ operates from a supply voltage of up to 35V and can deliver motor currents up to 2.5A (depending on the use case and thermal conditions). It also can operate a bipolar stepper motor in full-, half-, quarter-, or eighth-step modes. Thanks to internal safety features, such as over-current protection (OCP), input over-voltage protection (OVP), under-voltage lockout (UVLO), and thermal shutdown, this Click Board™ board™ is perfectly suited for the rapid development of various stepper motor applications, including ATM-related applications, toys, 3D printers, mechatronics, robotics-related applications, etc.
How Does The Stepper 13 Click Board™ Work?
The Stepper 13 Click Board™ is equipped with two integrated circuits. The step motor driver IC is the MP6500, a dual full-bridge motor driver from MPS. This IC internal structure is somewhat symmetrical. It features two MOSFET H-bridges used to drive two coils of a bipolar step motor in both directions. The MP6500 uses a wide input voltage range - from 4.5V to 35V. This is the voltage used to energize the motor coils. A jumper (JP3) is used to select whether to use an external power supply or to obtain the power supply from the mikroBUS™ +5V rail. The MP6500 has two PHASE inputs which are used to control the direction of current flow through H-bridges and thus, the motor coils. It also allows controlling the stepper motor in both full step and half step modes, by toggling states on MS1 and MS1 pins.
The bipolar step motor coils can be connected to the onboard screw terminals. There are two terminals, used to connect each of the step motor coils. The third connector is used to connect an external voltage, ranging from 4.5V to 35V, depending on the used motor voltage requirements. It should be noted that without a valid external voltage connected to this terminal, the motor will not work. Also, it should be noted that 40V is an absolute maximum voltage allowed as per datasheet, thus the overtemperature protection might be activated when driving heavier loads. The recommended maximum voltage should not exceed 35V, as stated on the silkscreen layer of the PCB.
All of the MP6500 control lines are routed to the second IC on the Stepper 13 Click Board™, which is the PCA9538A, a well-known 8bit I/O expander with a serial interface, used on many of the MikroElektronika's designs for its simplicity and reliability. It allows the control lines of the MP6500 IC to be driven via the I2C and few pins it uses - reducing the required pin count of the Stepper 13 Click Board™. This also allows for sending compact I2C messages, instead of toggling several pins at once - which can introduce problems with timing sometimes, especially when those pins belong to different MCU ports. By changing states of the six control pins, it is possible to drive the step motor in full step mode as well as the half step mode. However, provided MikroElektronika libraries contain simple and intuitive functions to fully control the bipolar step motor, connected to Stepper 13 Click Board™. Their usage is demonstrated in the included example application, which can be used as a reference for a custom design.
The motor power supply can be connected to the input terminal labelled as VIN and should be within the range of 4.5V to 35V. Stepper motor coils can be connected to the terminals labelled as A1, B2, B1, and A2. The Stepper 13 Click Board™ supports an optional external power supply for the motor in order to work. However, it also requires 3.3V from the mikroBUS™ rail.
SPECIFICATIONS
Type | Stepper |
Applications | Various stepper motor applications, including ATM-related applications, toys, 3D printers, mechatronics, robotics-related applications, etc. |
On-board modules | MP6500 Dual Full-Bridge 35V, 2.5A, Stepper Motor Driver, from MPS; PCA9538A 8bit I/O Expander with Serial Interface, from NXP |
Key Features | Thermal protection, integrated kickback voltage protection, it has a wide range of input voltage, protection against current shoot-through the H-Bridge and high current capability |
Interface | GPIO,I2C |
Compatibility | mikroBUS |
Click board size | M (42.9 x 25.4 mm) |
Input Voltage | 5V |
PINOUT DIAGRAM
This table shows how the pinout of the Stepper 13 Click Board™ corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes | Pin | Pin | Notes | ||||
---|---|---|---|---|---|---|---|
NC | 1 | AN | PWM | 16 | STP | Step Control | |
NC | 2 | RST | INT | 15 | INT | Interrupt Out | |
Reset In | RST | 3 | CS | RX | 14 | NC | |
NC | 4 | SCK | TX | 13 | NC | ||
NC | 5 | MISO | SCL | 12 | SCL | I2C Clock | |
NC | 6 | MOSI | SDA | 11 | SDA | I2C Data | |
NC | 7 | 3.3V | 5V | 10 | 5V | Power Supply | |
Ground | GND | 8 | GND | GND | 9 | GND | Ground |
ONBOARD SETTINGS AND INDICATORS
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | - | Power LED Indicator |
JP1 | VM | Left | Power select jumper for port expander: left position 5V, right EXT |
TB1 | Screw terminal | - | Terminal used for connecting the first coil of the step motor |
TB2 | Screw terminal | - | Terminal used for connecting the external input voltage |
TB3 | Screw terminal | - | Terminal used for connecting the second coil of the step motor |
STEPPER 13 CLICK ELECTRICAL SPECIFICATIONS
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Receiver inputs voltage range | 4.5 | - | +35 | V |
Receiver inputs current range | - | - | 2.5 | A |
Software Support
We provide a library for the Stepper 13 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 stepper13_setSpeed( float minSpeed, float maxSpeed, float accelRatio, T_STEPPER13_OBJ obj )
- Setup motor speeduint8_t stepper13_setRoute( const uint8_t direction, uint32_t steps, T_STEPPER13_OBJ obj )
- Setup new routevoid stepper13_start( T_STEPPER13_OBJ obj )
- Start motor movement
Example Description
The application is composed of three sections :
- System Initialization - Initializes all GPIO pins found on Stepper_13 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. The third segment enables the motor and set up new route which will be called from the application task.
- Application Task - (code snippet) - Sequentially moves motor. The first part of the sequence executes movement until the end. The second part stops motor movement after one second and continues the sequence after two seconds.
void applicationTask() { stepper13_start( (T_STEPPER13_OBJ)&myStepper ); while ( myStepper.status.running ) { stepper13_process( (T_STEPPER13_OBJ)&myStepper ); } Delay_ms( 2000 ); stepper13_start( (T_STEPPER13_OBJ)&myStepper ); Delay_ms( 1000 ); stepper13_stop( (T_STEPPER13_OBJ)&myStepper ); Delay_ms( 2000 ); }
In addition to library function calls example carries necessay 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.
Additional Notes and Information
Depending on the development board you are using, you may need USB UART Click Board™, USB UART 2 Click Board™ or RS232 Click Board™ 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 Stepper 13 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 Stepper 13 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 stepper13_setSpeed( float minSpeed, float maxSpeed, float accelRatio, T_STEPPER13_OBJ obj )
- Setup motor speeduint8_t stepper13_setRoute( const uint8_t direction, uint32_t steps, T_STEPPER13_OBJ obj )
- Setup new routevoid stepper13_start( T_STEPPER13_OBJ obj )
- Start motor movement
Example Description
The application is composed of three sections :
- System Initialization - Initializes all GPIO pins found on Stepper_13 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. The third segment enables the motor and set up new route which will be called from the application task.
- Application Task - (code snippet) - Sequentially moves motor. The first part of the sequence executes movement until the end. The second part stops motor movement after one second and continues the sequence after two seconds.
void applicationTask() { stepper13_start( (T_STEPPER13_OBJ)&myStepper ); while ( myStepper.status.running ) { stepper13_process( (T_STEPPER13_OBJ)&myStepper ); } Delay_ms( 2000 ); stepper13_start( (T_STEPPER13_OBJ)&myStepper ); Delay_ms( 1000 ); stepper13_stop( (T_STEPPER13_OBJ)&myStepper ); Delay_ms( 2000 ); }
In addition to library function calls example carries necessay 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.
Additional Notes and Information
Depending on the development board you are using, you may need USB UART Click Board™, USB UART 2 Click Board™ or RS232 Click Board™ 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 Stepper 13 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.