Zephyr API 3.6.99
|
Stepper Motor Controller Interface . More...
Enumerations | |
enum | micro_step_resolution { STEPPER_FULL_STEP = 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 micro step resolution options. More... | |
enum | stepper_direction { STEPPER_DIRECTION_POSITIVE = 0 , STEPPER_DIRECTION_NEGATIVE } |
Stepper Motor direction options. More... | |
enum | stepper_run_mode { STEPPER_HOLD_MODE = 0 , STEPPER_POSITION_MODE , STEPPER_VELOCITY_MODE } |
Stepper Motor run mode options. More... | |
enum | stepper_signal_result { STEPPER_SIGNAL_STEPS_COMPLETED = 0 } |
Stepper Motor signal results. More... | |
Functions | |
int | stepper_enable (const struct device *dev, const bool enable) |
Enable or Disable Motor Controller. | |
int | stepper_move (const struct device *dev, int32_t micro_steps, struct k_poll_signal *async) |
Set the micro_steps to be moved from the current position i.e. | |
int | stepper_set_max_velocity (const struct device *dev, uint32_t micro_steps_per_second) |
Set the target velocity to be reached by the motor. | |
int | stepper_set_micro_step_res (const struct device *dev, enum micro_step_resolution resolution) |
Set the microstep resolution in stepper motor controller. | |
int | stepper_get_micro_step_res (const struct device *dev, enum micro_step_resolution *resolution) |
Get the microstep resolution in stepper motor controller. | |
int | stepper_set_actual_position (const struct device *dev, int32_t value) |
Set the actual a.k.a 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_set_target_position (const struct device *dev, int32_t value, struct k_poll_signal *async) |
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_enable_constant_velocity_mode (const struct device *dev, enum stepper_direction direction, uint32_t value) |
Enable constant velocity mode for the stepper with a given velocity. | |
Stepper Motor Controller Interface .
#include <zephyr/drivers/stepper.h>
Stepper Motor micro step resolution options.
enum stepper_direction |
#include <zephyr/drivers/stepper.h>
Stepper Motor direction options.
Enumerator | |
---|---|
STEPPER_DIRECTION_POSITIVE | Positive direction. |
STEPPER_DIRECTION_NEGATIVE | Negative direction. |
enum stepper_run_mode |
#include <zephyr/drivers/stepper.h>
Stepper Motor run mode options.
Enumerator | |
---|---|
STEPPER_HOLD_MODE | Hold Mode. |
STEPPER_POSITION_MODE | Position Mode. |
STEPPER_VELOCITY_MODE | Velocity Mode. |
#include <zephyr/drivers/stepper.h>
Stepper Motor signal results.
Enumerator | |
---|---|
STEPPER_SIGNAL_STEPS_COMPLETED | Steps set using move or set_target_position have been executed. |
#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 |
int stepper_enable_constant_velocity_mode | ( | const struct device * | dev, |
enum stepper_direction | direction, | ||
uint32_t | value ) |
#include <zephyr/drivers/stepper.h>
Enable constant velocity mode for the stepper with a given velocity.
activate constant velocity mode with the given velocity in micro_steps_per_second. If velocity > 0, motor shall be set into motion and run incessantly until and unless stalled or stopped using some other command, for instance, motor_enable(false).
dev | pointer to the stepper motor controller instance |
direction | The direction to set |
value | The velocity to set in steps per second where one step is dependent on the current microstepping resolution:
|
-EIO | General input / output error |
-ENOSYS | If not implemented by device driver |
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 micro_steps |
-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 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 |
int stepper_move | ( | const struct device * | dev, |
int32_t | micro_steps, | ||
struct k_poll_signal * | async ) |
#include <zephyr/drivers/stepper.h>
Set the micro_steps to be moved from the current position i.e.
relative movement
dev | pointer to the stepper motor controller instance |
micro_steps | target micro_steps to be moved from the current position |
async | Pointer to a valid and ready to be signaled struct k_poll_signal. (Note: if NULL this function will not notify the end of the transaction, and whether it went successfully or not). |
-EIO | General input / output error |
0 | Success |
#include <zephyr/drivers/stepper.h>
Set the actual a.k.a 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 |
#include <zephyr/drivers/stepper.h>
Set the target velocity to be reached by the motor.
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. For controllers where velocity can be set, this parameter corresponds to max_velocity
dev | pointer to the stepper motor controller instance |
micro_steps_per_second | speed in micro_steps per second |
-EIO | General input / output error |
-EINVAL | If the requested velocity is not supported |
0 | Success |
int stepper_set_micro_step_res | ( | const struct device * | dev, |
enum 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 |
int stepper_set_target_position | ( | const struct device * | dev, |
int32_t | value, | ||
struct k_poll_signal * | async ) |
#include <zephyr/drivers/stepper.h>
Set the absolute target position of the stepper.
dev | pointer to the stepper motor controller instance |
value | target position to set in micro_steps |
async | Pointer to a valid and ready to be signaled struct k_poll_signal. If changing the target position triggers stepper movement, this can be used to await the end of the transaction. (Note: can be left NULL) |
-EIO | General input / output error |
-ENOSYS | If not implemented by device driver |
0 | Success |