Zephyr API Documentation 4.0.99
A Scalable Open Source RTOS
|
Stepper Controller Interface . More...
Topics | |
Trinamic Stepper Controller Interface | |
Trinamic Stepper Controller Interface . | |
Macros | |
#define | MICRO_STEP_RES_INDEX(res) |
Macro to calculate the index of the microstep resolution. | |
Enumerations | |
enum | stepper_micro_step_resolution { STEPPER_MICRO_STEP_1 = 1 , STEPPER_MICRO_STEP_2 = 2 , STEPPER_MICRO_STEP_4 = 4 , STEPPER_MICRO_STEP_8 = 8 , STEPPER_MICRO_STEP_16 = 16 , STEPPER_MICRO_STEP_32 = 32 , STEPPER_MICRO_STEP_64 = 64 , STEPPER_MICRO_STEP_128 = 128 , STEPPER_MICRO_STEP_256 = 256 } |
Stepper Motor microstep resolution options. More... | |
enum | stepper_direction { STEPPER_DIRECTION_NEGATIVE = 0 , STEPPER_DIRECTION_POSITIVE = 1 } |
Stepper Motor direction options. More... | |
enum | stepper_run_mode { STEPPER_RUN_MODE_HOLD = 0 , STEPPER_RUN_MODE_POSITION = 1 , STEPPER_RUN_MODE_VELOCITY = 2 } |
Stepper Motor run mode options. More... | |
enum | stepper_event { STEPPER_EVENT_STEPS_COMPLETED = 0 , STEPPER_EVENT_STALL_DETECTED = 1 , STEPPER_EVENT_LEFT_END_STOP_DETECTED = 2 , STEPPER_EVENT_RIGHT_END_STOP_DETECTED = 3 } |
Stepper Events. More... | |
Functions | |
int | stepper_enable (const struct device *dev, const bool enable) |
Enable or disable motor controller. | |
int | stepper_move_by (const struct device *dev, int32_t micro_steps) |
Set the microsteps to be moved from the current position i.e. | |
int | stepper_set_microstep_interval (const struct device *dev, uint64_t microstep_interval_ns) |
Set the time interval between steps in microseconds. | |
int | stepper_set_micro_step_res (const struct device *dev, enum stepper_micro_step_resolution resolution) |
Set the microstep resolution in stepper motor controller. | |
int | stepper_get_micro_step_res (const struct device *dev, enum stepper_micro_step_resolution *resolution) |
Get the microstep resolution in stepper motor controller. | |
int | stepper_set_reference_position (const struct device *dev, int32_t value) |
Set the reference position of the stepper. | |
int | stepper_get_actual_position (const struct device *dev, int32_t *value) |
Get the actual a.k.a reference position of the stepper. | |
int | stepper_move_to (const struct device *dev, int32_t micro_steps) |
Set the absolute target position of the stepper. | |
int | stepper_is_moving (const struct device *dev, bool *is_moving) |
Check if the stepper motor is currently moving. | |
int | stepper_run (const struct device *dev, enum stepper_direction direction) |
Run the stepper with a given step interval in a given direction. | |
int | stepper_set_event_callback (const struct device *dev, stepper_event_callback_t callback, void *user_data) |
Set the callback function to be called when a stepper event occurs. | |
Stepper Controller Interface .
#define MICRO_STEP_RES_INDEX | ( | res | ) |
#include <zephyr/drivers/stepper.h>
Macro to calculate the index of the microstep resolution.
res | Microstep resolution |
enum stepper_direction |
#include <zephyr/drivers/stepper.h>
Stepper Motor direction options.
Enumerator | |
---|---|
STEPPER_DIRECTION_NEGATIVE | Negative direction. |
STEPPER_DIRECTION_POSITIVE | Positive direction. |
enum stepper_event |
#include <zephyr/drivers/stepper.h>
Stepper Events.
#include <zephyr/drivers/stepper.h>
Stepper Motor microstep resolution options.
enum stepper_run_mode |
#include <zephyr/drivers/stepper.h>
Stepper Motor run mode options.
Enumerator | |
---|---|
STEPPER_RUN_MODE_HOLD | Hold Mode. |
STEPPER_RUN_MODE_POSITION | Position Mode. |
STEPPER_RUN_MODE_VELOCITY | Velocity Mode. |
#include <zephyr/drivers/stepper.h>
Enable or disable motor controller.
dev | pointer to the stepper motor controller instance |
enable | Input enable or disable motor controller |
-EIO | Error during Enabling |
0 | Success |
#include <zephyr/drivers/stepper.h>
Get the actual a.k.a reference position of the stepper.
dev | pointer to the stepper motor controller instance |
value | The actual position to get in microsteps |
-EIO | General input / output error |
-ENOSYS | If not implemented by device driver |
0 | Success |
int stepper_get_micro_step_res | ( | const struct device * | dev, |
enum stepper_micro_step_resolution * | resolution ) |
#include <zephyr/drivers/stepper.h>
Get the microstep resolution in stepper motor controller.
dev | pointer to the stepper motor controller instance |
resolution | microstep resolution |
-EIO | General input / output error |
-ENOSYS | If not implemented by device driver |
0 | Success |
#include <zephyr/drivers/stepper.h>
Check if the stepper motor is currently moving.
dev | pointer to the stepper motor controller instance |
is_moving | Pointer to a boolean to store the moving status of the stepper motor |
-EIO | General input / output error |
-ENOSYS | If not implemented by device driver |
0 | Success |
#include <zephyr/drivers/stepper.h>
Set the microsteps to be moved from the current position i.e.
relative movement
The motor will move by the given number of microsteps from the current position. This function is non-blocking.
dev | pointer to the stepper motor controller instance |
micro_steps | target microsteps to be moved from the current position |
-ECANCELED | If the stepper is disabled |
-EIO | General input / output error |
0 | Success |
#include <zephyr/drivers/stepper.h>
Set the absolute target position of the stepper.
The motor will move to the given microsteps position from the reference position. This function is non-blocking.
dev | pointer to the stepper motor controller instance |
micro_steps | target position to set in microsteps |
-ECANCELED | If the stepper is disabled |
-EIO | General input / output error |
-ENOSYS | If not implemented by device driver |
0 | Success |
int stepper_run | ( | const struct device * | dev, |
enum stepper_direction | direction ) |
#include <zephyr/drivers/stepper.h>
Run the stepper with a given step interval in a given direction.
The motor shall be set into motion and run continuously until stalled or stopped using some other command, for instance, motor_enable(false). This function is non-blocking.
dev | pointer to the stepper motor controller instance |
direction | The direction to set |
-ECANCELED | If the stepper is disabled |
-EIO | General input / output error |
-ENOSYS | If not implemented by device driver |
0 | Success |
int stepper_set_event_callback | ( | const struct device * | dev, |
stepper_event_callback_t | callback, | ||
void * | user_data ) |
#include <zephyr/drivers/stepper.h>
Set the callback function to be called when a stepper event occurs.
dev | pointer to the stepper motor controller instance |
callback | Callback function to be called when a stepper event occurs passing NULL will disable the callback |
user_data | User data to be passed to the callback function |
-ENOSYS | If not implemented by device driver |
0 | Success |
int stepper_set_micro_step_res | ( | const struct device * | dev, |
enum stepper_micro_step_resolution | resolution ) |
#include <zephyr/drivers/stepper.h>
Set the microstep resolution in stepper motor controller.
dev | pointer to the stepper motor controller instance |
resolution | microstep resolution |
-EIO | General input / output error |
-ENOSYS | If not implemented by device driver |
-ENOTSUP | If the requested resolution is not supported |
0 | Success |
#include <zephyr/drivers/stepper.h>
Set the time interval between steps in microseconds.
For controllers such as DRV8825 where you toggle the STEP Pin, the pulse_length would have to be calculated based on this parameter in the driver.
dev | pointer to the stepper motor controller instance |
microstep_interval_ns | time interval between steps in microseconds |
-EIO | General input / output error |
-EINVAL | If the requested step interval is not supported |
0 | Success |
#include <zephyr/drivers/stepper.h>
Set the reference position of the stepper.
dev | Pointer to the stepper motor controller instance. |
value | The reference position to set in micro-steps. |
-EIO | General input / output error |
-ENOSYS | If not implemented by device driver |
0 | Success |