From 06cf12617c11cdd6fb3a727b0d53ba94606ce2fc Mon Sep 17 00:00:00 2001 From: raiden00pl Date: Wed, 18 Aug 2021 14:05:06 +0200 Subject: [PATCH] nucleo-f446re: add 3-phase Hall effect sensor support --- .../stm32/nucleo-f446re/src/nucleo-f446re.h | 11 ++++++++++ .../stm32/nucleo-f446re/src/stm32_bringup.c | 22 +++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/boards/arm/stm32/nucleo-f446re/src/nucleo-f446re.h b/boards/arm/stm32/nucleo-f446re/src/nucleo-f446re.h index 7b9b3bf383..5e1e069f5f 100644 --- a/boards/arm/stm32/nucleo-f446re/src/nucleo-f446re.h +++ b/boards/arm/stm32/nucleo-f446re/src/nucleo-f446re.h @@ -216,6 +216,17 @@ #define GPIO_FIRE GPIO_BUTTON_2 #define GPIO_JUMP GPIO_BUTTON_3 +#ifdef CONFIG_SENSORS_HALL3PHASE +/* GPIO pins used by the 3-phase Hall effect sensor */ + +# define GPIO_HALL_PHA (GPIO_INPUT | GPIO_SPEED_2MHz | \ + GPIO_PORTA | GPIO_PIN15) +# define GPIO_HALL_PHB (GPIO_INPUT | GPIO_SPEED_2MHz | \ + GPIO_PORTB | GPIO_PIN3) +# define GPIO_HALL_PHC (GPIO_INPUT | GPIO_SPEED_2MHz | \ + GPIO_PORTB | GPIO_PIN10) +#endif + /**************************************************************************** * Public Data ****************************************************************************/ diff --git a/boards/arm/stm32/nucleo-f446re/src/stm32_bringup.c b/boards/arm/stm32/nucleo-f446re/src/stm32_bringup.c index 773e1ff6e6..6f913aee56 100644 --- a/boards/arm/stm32/nucleo-f446re/src/stm32_bringup.c +++ b/boards/arm/stm32/nucleo-f446re/src/stm32_bringup.c @@ -44,11 +44,15 @@ #endif #ifdef CONFIG_SENSORS_QENCODER -#include "board_qencoder.h" +# include "board_qencoder.h" +#endif + +#ifdef CONFIG_SENSORS_HALL3PHASE +# include "board_hall3ph.h" #endif #ifdef CONFIG_VIDEO_FB -#include +# include #endif #include "nucleo-f446re.h" @@ -169,6 +173,20 @@ int stm32_bringup(void) } #endif +#ifdef CONFIG_SENSORS_HALL3PHASE + /* Initialize and register the 3-phase Hall effect sensor driver */ + + ret = board_hall3ph_initialize(0, GPIO_HALL_PHA, GPIO_HALL_PHB, + GPIO_HALL_PHC); + if (ret != OK) + { + syslog(LOG_ERR, + "ERROR: Failed to register the hall : %d\n", + ret); + return ret; + } +#endif + #ifdef CONFIG_INPUT_AJOYSTICK /* Initialize and register the joystick driver */