Skip to content

Commit 52c6a28

Browse files
jilaypandyafabiobaltieri
authored andcommitted
drivers: stepper: adi: trinamic tmc5041
This commit introduces initial structure for trinamic drivers TMC5041 is implemented with following features: - StallGuard - RAMPSTAT_POLL - RAMP_GEN Signed-off-by: Dipak Shetty <[email protected]> Signed-off-by: Jilay Pandya <[email protected]>
1 parent 42c43b9 commit 52c6a28

File tree

15 files changed

+1652
-1
lines changed

15 files changed

+1652
-1
lines changed

drivers/stepper/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,13 @@
33

44
zephyr_syscall_header(${ZEPHYR_BASE}/include/zephyr/drivers/stepper.h)
55

6+
# zephyr-keep-sorted-start
7+
add_subdirectory_ifdef(CONFIG_STEPPER_ADI_TMC adi_tmc)
8+
# zephyr-keep-sorted-stop
9+
610
zephyr_library()
11+
zephyr_library_property(ALLOW_EMPTY TRUE)
712

813
zephyr_library_sources_ifdef(CONFIG_FAKE_STEPPER fake_stepper_controller.c)
914
zephyr_library_sources_ifdef(CONFIG_GPIO_STEPPER gpio_stepper_controller.c)
10-
1115
zephyr_library_sources_ifdef(CONFIG_STEPPER_SHELL stepper_shell.c)

drivers/stepper/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ config STEPPER_SHELL_THREAD_PRIORITY
4949

5050
comment "Stepper Drivers"
5151

52+
rsource "adi_tmc/Kconfig"
5253
rsource "Kconfig.fake"
5354
rsource "Kconfig.gpio"
5455

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2024 Carl Zeiss Meditec AG
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
zephyr_library()
5+
zephyr_library_sources_ifdef(CONFIG_STEPPER_ADI_TMC_SPI adi_tmc_spi.c)
6+
zephyr_library_sources_ifdef(CONFIG_STEPPER_ADI_TMC5041 adi_tmc5041_stepper_controller.c)

drivers/stepper/adi_tmc/Kconfig

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2024 Carl Zeiss Meditec AG
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
menuconfig STEPPER_ADI_TMC
5+
bool "Trinamic Stepper Controller"
6+
depends on STEPPER
7+
default y
8+
help
9+
Enable trinamic stepper controller
10+
11+
if STEPPER_ADI_TMC
12+
13+
config STEPPER_ADI_TMC_RAMP_GEN
14+
bool "Use Trinamic Stepper Controller with Ramp Generator"
15+
depends on STEPPER_ADI_TMC
16+
default y
17+
help
18+
Enable ramp generator for trinamic stepper controller
19+
20+
config STEPPER_ADI_TMC_SPI
21+
bool "Use Trinamic Stepper Controller with SPI"
22+
depends on STEPPER_ADI_TMC
23+
select SPI
24+
help
25+
A Trinamic Stepper Controller with SPI is enabled
26+
27+
comment "Trinamic Stepper Drivers"
28+
29+
config STEPPER_ADI_TMC5041
30+
bool "Activate trinamic tmc5041 stepper driver"
31+
depends on DT_HAS_ADI_TMC5041_ENABLED && STEPPER_ADI_TMC
32+
select STEPPER_ADI_TMC_SPI
33+
default y
34+
help
35+
Stepper driver for TMC5041.
36+
37+
config STEPPER_ADI_TMC5041_RAMPSTAT_POLL
38+
bool "TMC5041 poll ramp status"
39+
depends on STEPPER_ADI_TMC5041
40+
select POLL
41+
default y
42+
help
43+
When enabled, the ramp status will be polled on TMC5041, to check for events:
44+
- TMC5041_POS_REACHED_EVENT
45+
- TMC5041_STOP_SG_EVENT
46+
- TMC5041_STOP_LEFT_EVENT
47+
- TMC5041_STOP_RIGHT_EVENT
48+
49+
config STEPPER_ADI_TMC5041_RAMPSTAT_POLL_INTERVAL_IN_MSEC
50+
int "TMC5041 poll ramp status interval in ms"
51+
depends on STEPPER_ADI_TMC5041_RAMPSTAT_POLL
52+
default 100
53+
help
54+
The interval in ms to poll the ramp status on TMC5041.
55+
56+
endif # STEPPER_ADI_TMC

0 commit comments

Comments
 (0)