diff --git a/boards/shields/mikroe_stepper_19_click/Kconfig.shield b/boards/shields/mikroe_stepper_19_click/Kconfig.shield new file mode 100644 index 00000000000..75e39aaa93f --- /dev/null +++ b/boards/shields/mikroe_stepper_19_click/Kconfig.shield @@ -0,0 +1,5 @@ +# Copyright (c) 2025 Navimatix GmbH +# SPDX-License-Identifier: Apache-2.0 + +config SHIELD_MIKROE_STEPPER_19_CLICK + def_bool $(shields_list_contains,mikroe_stepper_19_click) diff --git a/boards/shields/mikroe_stepper_19_click/doc/index.rst b/boards/shields/mikroe_stepper_19_click/doc/index.rst new file mode 100644 index 00000000000..938697699d0 --- /dev/null +++ b/boards/shields/mikroe_stepper_19_click/doc/index.rst @@ -0,0 +1,45 @@ +.. _mikroe_stepper_19_click_shield: + +MikroElektronika Stepper 19 Click +################################# + +Overview +******** + +Stepper 19 Click shield has a TI DRV8424 stepper driver accessed via GPIO and +a TI TCA9538 GPIO expander accessed via I2C. Some DRV8424 pins are accessed +via the GPIO expander. +The DRV8424 uses by default the work-queue timing source, but that can be changed. + +More information about the shield can be found at +`Mikroe Stepper 19 click`_. + +.. figure:: stepper_19_click.webp + :align: center + :alt: MikroElektronika Stepper 19 Click + + MikroElektronika Stepper 19 Click (Credit: MikroElektronika) + +Requirements +************ + +The shield uses a mikroBUS interface. The target board must define +a ``mikrobus_i2c`` and ``mikrobus_header`` node labels +(see :ref:`shields` for more details). + +Programming +*********** + +.. zephyr-app-commands:: + :zephyr-app: samples/drivers/stepper/generic/ + :board: + :shield: mikroe_stepper_19_click + :goals: build flash + +References +********** + +.. target-notes:: + +.. _Mikroe Stepper 19 click: + https://www.mikroe.com/stepper-19-click diff --git a/boards/shields/mikroe_stepper_19_click/doc/stepper_19_click.webp b/boards/shields/mikroe_stepper_19_click/doc/stepper_19_click.webp new file mode 100644 index 00000000000..337fab7a664 Binary files /dev/null and b/boards/shields/mikroe_stepper_19_click/doc/stepper_19_click.webp differ diff --git a/boards/shields/mikroe_stepper_19_click/mikroe_stepper_19_click.overlay b/boards/shields/mikroe_stepper_19_click/mikroe_stepper_19_click.overlay new file mode 100644 index 00000000000..48cb3cb607a --- /dev/null +++ b/boards/shields/mikroe_stepper_19_click/mikroe_stepper_19_click.overlay @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2025 Navimatix GmbH + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + stepper = &drv8424_mikroe_stepper_19_click; + }; +}; + +&mikrobus_i2c { + status = "okay"; + + tca9538a_mikroe_stepper_19_click: tca9538a@70 { + status = "okay"; + compatible = "ti,tca9538"; + + reg = <0x70>; + + gpio-controller; + ngpios = <8>; + #gpio-cells = <2>; + + gpio-reserved-ranges = <7 1>; + + gpio-line-names = + "M0", + "M1", + "DEC0", + "DEC1", + "TOFF", + "STP", + "DIR"; + }; +}; + +/ { + drv8424_mikroe_stepper_19_click: drv8424 { + status = "okay"; + compatible = "ti,drv84xx"; + + dir-gpios = <&mikrobus_header 0 0>; + step-gpios = <&mikrobus_header 6 0>; + sleep-gpios = <&mikrobus_header 1 GPIO_ACTIVE_LOW>; + en-gpios = <&mikrobus_header 2 0>; + fault-gpios = <&mikrobus_header 7 GPIO_ACTIVE_LOW>; + m0-gpios = <&tca9538a_mikroe_stepper_19_click 0 0>; + m1-gpios = <&tca9538a_mikroe_stepper_19_click 1 0>; + }; +}; diff --git a/boards/shields/mikroe_stepper_19_click/shield.yml b/boards/shields/mikroe_stepper_19_click/shield.yml new file mode 100644 index 00000000000..c55e8d10588 --- /dev/null +++ b/boards/shields/mikroe_stepper_19_click/shield.yml @@ -0,0 +1,6 @@ +shield: + name: mikroe_stepper_19_click + full_name: Stepper 19 Click + vendor: mikroe + supported_features: + - stepper