Stepper 13 click operates from a supply voltage of up to 35V and can deliver motor currents up to 2.5A (depending on 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™ is perfectly suited for rapid development of various stepper motor applications, including ATM-related applications, toys, 3D printers, mechatronics, robotics-related applications, etc.
How does it work?
This 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 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 step 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 Stepper 13 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. 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. 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 labeled as VIN and should be within the range of 4.5V to 35V. Stepper motor coils can be connected to the terminals labeled as A1, B2, B1, and A2. The 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
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
M (42.9 x 25.4 mm)
Input Voltage
5V
Pinout diagram
This table shows how the pinout on Stepper 13 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 | 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 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
Examples 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. 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() { 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 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. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
This 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.
For more information about mikroSDK, visit the official page.