步进电机

步进电机驱动子系统包含两套设备驱动 API:

步进电机 API

步进电机驱动 API 为步进电机驱动提供通用接口。

步进电机运动控制器 API

步进电机运动控制器 API 为步进电机运动控制器提供通用接口。

设备树

对于步进电机运动控制器,Devicetree 为每个步进电机驱动设备提供初始硬件配置。每个设备都必须在 Zephyr 中指定 Devicetree 绑定,理想情况下还应提供一组硬件配置选项,例如电流设置、加减速参数等。随后即可在开发板的 Devicetree 中使用这些选项,将步进电机驱动配置为初始状态。

驱动组合场景

以下是两种典型场景:

步进电机运动控制器 API 测试套件

步进电机运动控制器 API 测试套件提供一组测试,用于验证步进电机运动控制器的功能。

# From the root of the zephyr repository
west build -b <board> --extra-dtc-overlay <path/to/board.overlay> tests/drivers/stepper/stepper_ctrl
west flash

示例输出

以下是 h-bridge-stepper-ctrl 测试输出的片段。

===================================================================
TESTSUITE stepper succeeded

------ TESTSUITE SUMMARY START ------

SUITE PASS - 100.00% [stepper_ctrl]: pass = 10, fail = 0, skip = 0, total = 10 duration = 6.869 seconds
 - PASS - [stepper_ctrl.test_actual_position] duration = 0.001 seconds
 - PASS - [stepper_ctrl.test_move_by_negative_step_count] duration = 2.207 seconds
 - PASS - [stepper_ctrl.test_move_by_positive_step_count] duration = 2.202 seconds
 - PASS - [stepper_ctrl.test_move_to_negative_step_count] duration = 1.106 seconds
 - PASS - [stepper_ctrl.test_move_to_positive_step_count] duration = 1.102 seconds
 - PASS - [stepper_ctrl.test_move_zero_steps] duration = 0.006 seconds
 - PASS - [stepper_ctrl.test_run_negative_direction] duration = 0.115 seconds
 - PASS - [stepper_ctrl.test_run_positive_direction] duration = 0.124 seconds
 - PASS - [stepper_ctrl.test_set_micro_step_interval_invalid_zero] duration = 0.002 seconds
 - PASS - [stepper_ctrl.test_stop] duration = 0.004 seconds

------ TESTSUITE SUMMARY END ------

===================================================================
PROJECT EXECUTION SUCCESSFUL

API 参考

所有步进电机驱动都应实现的一组通用函数。

Stepper Hardware Driver

所有步进电机运动控制器都应实现的一组通用函数。

Stepper Motion Controller

步进电机运动控制器专用 API

Trinamic

Trinamic Stepper Controller