-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mlx90393 sensor driver #4
base: master
Are you sure you want to change the base?
Changes from all commits
a96f6af
499f354
c108f30
f590ad1
c7b5ceb
fda54ac
7b872d1
a4520fe
2ae152e
9eeb5df
4844ad3
019814d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,15 @@ | ||||||||||||||||||||||||||||||||
# Copyright (c) 2023 mi6527ri | ||||||||||||||||||||||||||||||||
# | ||||||||||||||||||||||||||||||||
# This file is subject to the terms and conditions of the GNU Lesser | ||||||||||||||||||||||||||||||||
# General Public License v2.1. See the file LICENSE in the top level | ||||||||||||||||||||||||||||||||
# directory for more details. | ||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||
config MODULE_MLX90393 | ||||||||||||||||||||||||||||||||
bool "drivers_mlx90393" | ||||||||||||||||||||||||||||||||
depends on TEST_KCONFIG | ||||||||||||||||||||||||||||||||
depends on HAS_PERIPH_GPIO | ||||||||||||||||||||||||||||||||
depends on HAS_PERIPH_GPIO_IRQ | ||||||||||||||||||||||||||||||||
depends on HAS_PERIPH_I2C | ||||||||||||||||||||||||||||||||
select MODULE_PERIPH_GPIO | ||||||||||||||||||||||||||||||||
select MODULE_PERIPH_GPIO_IRQ | ||||||||||||||||||||||||||||||||
select MODULE_PERIPH_I2C | ||||||||||||||||||||||||||||||||
Comment on lines
+1
to
+15
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Im aktuellen Master erfolgt die Dependency-Modellierung nicht mehr über Kconfig. Das File kann komplett entfallen. Allerdings wäre es hilfreich, wenn einige der Parameter per Kconfig einstellbar wären, wie beispielsweise die Thresholds im WOC mode. Das würde alle Sensor-Parameter betreffen, die nicht hardware-mäßig vorgegeben sind, also alles ab |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
include $(RIOTBASE)/Makefile.base |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
ifneq (,$(filter mlx90393,$(USEMODULE))) | ||
USEMODULE += ztimer | ||
USEMODULE += ztimer_msec | ||
endif | ||
|
||
ifneq (,$(filter mlx90393_i2c,$(USEMODULE))) | ||
FEATURES_REQUIRED += periph_i2c | ||
endif | ||
|
||
ifneq (,$(filter mlx90393_spi,$(USEMODULE))) | ||
FEATURES_REQUIRED += periph_spi | ||
endif | ||
|
||
ifneq (,$(filter mlx90393_woc,$(USEMODULE))) | ||
USEMODULE += mlx90393_int | ||
endif | ||
|
||
ifneq (,$(filter mlx90393_int,$(USEMODULE))) | ||
FEATURES_REQUIRED += periph_gpio | ||
FEATURES_REQUIRED += periph_gpio_irq | ||
endif |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# include variants of the MLX90393 drivers as pseudo modules | ||
PSEUDOMODULES += mlx90393_i2c | ||
PSEUDOMODULES += mlx90393_spi | ||
PSEUDOMODULES += mlx90393_int | ||
PSEUDOMODULES += mlx90393_woc | ||
|
||
USEMODULE_INCLUDES_mlx90393 := $(LAST_MAKEFILEDIR)/include | ||
USEMODULE_INCLUDES += $(USEMODULE_INCLUDES_mlx90393) |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,118 @@ | ||||||
/* | ||||||
* Copyright (C) 2023 mi6527ri | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
* | ||||||
* This file is subject to the terms and conditions of the GNU Lesser | ||||||
* General Public License v2.1. See the file LICENSE in the top level | ||||||
* directory for more details. | ||||||
*/ | ||||||
|
||||||
/** | ||||||
* @ingroup drivers_mlx90393 | ||||||
* @{ | ||||||
* | ||||||
* @file | ||||||
* @brief MLX90393 internal addresses, registers and constants | ||||||
* | ||||||
* @author Michael Ristau <[email protected]> | ||||||
*/ | ||||||
|
||||||
#ifndef MLX90393_CONSTANTS_H | ||||||
#define MLX90393_CONSTANTS_H | ||||||
|
||||||
#ifdef __cplusplus | ||||||
extern "C" { | ||||||
#endif | ||||||
|
||||||
/** | ||||||
* @brief Register address map | ||||||
*/ | ||||||
#define MLX90393_REG_CONF0 0x00 /**< Configuration register 0 */ | ||||||
#define MLX90393_REG_CONF1 0x01 /**< Configuration register 1 */ | ||||||
#define MLX90393_REG_CONF2 0x02 /**< Configuration register 2 */ | ||||||
#define MLX90393_REG_SENS_TC 0x03 /**< Sensitivity drift compensation factor */ | ||||||
#define MLX90393_REG_OFFSET_X 0x04 /**< Offset for x axis */ | ||||||
#define MLX90393_REG_OFFSET_Y 0x05 /**< Offset for y axis */ | ||||||
#define MLX90393_REG_OFFSET_Z 0x06 /**< Offset for z axis */ | ||||||
#define MLX90393_REG_WOXY_THRESHOLD 0x07 /**< Wake up on change threshold for x and y axis */ | ||||||
#define MLX90393_REG_WOZ_THRESHOLD 0x08 /**< Wake up on change threshold for z axis */ | ||||||
#define MLX90393_REG_WOT_THRESHOLD 0x09 /**< Wake up on change threshold for temp */ | ||||||
#define MLX90393_REG_CONN_TEST 0x0A /**< Free available register used for | ||||||
connectivity test */ | ||||||
#define MLX90393_REG_REF_TEMP 0x24 /**< Reference temperature */ | ||||||
|
||||||
/** | ||||||
* @brief Configuration parameter bit masks | ||||||
*/ | ||||||
#define MLX90393_MASK_BDR 0x003F /**< burst data rate */ | ||||||
#define MLX90393_MASK_WOC_DIFF 0x1000 /**< wake up on change mode (relative or absolute) */ | ||||||
#define MLX90393_MASK_TCMP_EN 0x0400 /**< enable temperature compensation */ | ||||||
#define MLX90393_MASK_GAIN_SEL 0x0070 /**< analog chain gain */ | ||||||
#define MLX90393_MASK_RES_XYZ 0x07E0 /**< xyz resolution */ | ||||||
#define MLX90393_MASK_COMM_MODE 0x6000 /**< set allowed bus communication (I2C or SPI) */ | ||||||
#define MLX90393_MASK_OSR 0x0003 /**< oversampling ratio magnetic sensor */ | ||||||
#define MLX90393_MASK_OSR2 0x1800 /**< oversampling ratio temperature */ | ||||||
#define MLX90393_MASK_DIG_FILT 0x001C /**< digital filter magnetic sensor */ | ||||||
|
||||||
/** | ||||||
* @brief Number of left shifts in configuration registers | ||||||
*/ | ||||||
#define MLX90393_SHIFT_OSR2 11 /**< oversampling ratio temperature */ | ||||||
#define MLX90393_SHIFT_DIG_FILT 2 /**< digital filter magnetic sensor */ | ||||||
#define MLX90393_SHIFT_GAIN 4 /**< analog chain gain */ | ||||||
#define MLX90393_SHIFT_RES_X 5 /**< x resolution */ | ||||||
#define MLX90393_SHIFT_RES_Y 7 /**< y resolution */ | ||||||
#define MLX90393_SHIFT_RES_Z 9 /**< z resolution */ | ||||||
#define MLX90393_SHIFT_WOC_MODE 12 /**< wake-up on change mode */ | ||||||
|
||||||
/** | ||||||
* @brief Command Set | ||||||
*/ | ||||||
#define MLX90393_COMMAND_SB 0x1F /**< start burst mode */ | ||||||
#define MLX90393_COMMAND_SW 0x2F /**< start wake up on change mode */ | ||||||
#define MLX90393_COMMAND_SM 0x3F /**< start single measurement mode */ | ||||||
#define MLX90393_COMMAND_RM 0x4F /**< read measurement */ | ||||||
#define MLX90393_COMMAND_RR 0x50 /**< read register */ | ||||||
#define MLX90393_COMMAND_WR 0x60 /**< write register */ | ||||||
#define MLX90393_COMMAND_EX 0x80 /**< exit mode */ | ||||||
#define MLX90393_COMMAND_HR 0xD0 /**< memory recall */ | ||||||
#define MLX90393_COMMAND_HS 0xE0 /**< memory store */ | ||||||
#define MLX90393_COMMAND_RT 0xF0 /**< reset */ | ||||||
|
||||||
/** | ||||||
* @brief Status byte bit map | ||||||
*/ | ||||||
#define MLX90393_STATUS_RESET 0x04 /**< reset bit */ | ||||||
#define MLX90393_STATUS_ERROR 0x10 /**< error bit */ | ||||||
|
||||||
/** | ||||||
* @brief Timeout durations in ms | ||||||
*/ | ||||||
#define MLX90393_COMMAND_EX_TIMEOUT 1 /**< Timeout after exit command */ | ||||||
#define MLX90393_COMMAND_RT_TIMEOUT 2 /**< Timeout after reset command */ | ||||||
|
||||||
/** | ||||||
* @brief Temperature conversion constants | ||||||
*/ | ||||||
#define MLX90393_TEMP_OFFSET 3500 /**< Temperature offset in centi celsius */ | ||||||
#define MLX90393_TEMP_RESOLUTION 452 /**< Temperature sensor resolution | ||||||
(45.2 * 10 for avoiding float values) */ | ||||||
|
||||||
/** | ||||||
* @brief Magnetic flux conversion constants | ||||||
*/ | ||||||
#define MLX90393_XY_SENS 150 /**< xy sensitivity in nT/LSB */ | ||||||
#define MLX90393_Z_SENS 242 /**< z sensitivity in nT/LSB */ | ||||||
|
||||||
/** | ||||||
* @brief Timing constants | ||||||
*/ | ||||||
#define MLX90393_T_STBY 264 /**< Time from IDLE to STBY in us */ | ||||||
#define MLX90393_T_ACTIVE 432 /**< Time from STBY to ACTIVE in us */ | ||||||
#define MLX90393_T_CONV_END 120 /**< Time to end analog active mode in us */ | ||||||
|
||||||
#ifdef __cplusplus | ||||||
} | ||||||
#endif | ||||||
|
||||||
#endif /* MLX90393_CONSTANTS_H */ | ||||||
/** @} */ |
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,205 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/* | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* Copyright (C) 2023 mi6527ri | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* This file is subject to the terms and conditions of the GNU Lesser | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* General Public License v2.1. See the file LICENSE in the top level | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* directory for more details. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @ingroup drivers_mlx90393 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @file | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default configuration for MLX90393 device driver | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @author Michael Ristau <[email protected]> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAMS_H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAMS_H | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#include "board.h" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#include "mlx90393.h" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#include "mlx90393_constants.h" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifdef __cplusplus | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
extern "C" { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @name Set default configuration parameters for the MLX90393 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAM_MODE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default measurement mode | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_MODE (MLX90393_MODE_BURST) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#if IS_USED(MODULE_MLX90393_INT) || DOXYGEN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAM_INT_PIN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default interrupt pin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_INT_PIN .int_pin = (GPIO_PIN(PORT_C, 8)), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#else | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_INT_PIN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+41
to
+50
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So kann man das leider nicht realisieren, kein Mensch wird an der
Suggested change
In der Definition von |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAM_GAIN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default gain | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_GAIN (MLX90393_GAIN_1X) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAM_RES | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default resolution | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_RES (MLX90393_RES_19) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAM_ODR | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default sampling rate | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_ODR (MLX90393_ODR_10HZ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAM_OSR | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default oversampling ratio | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_OSR \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.mag = MLX90393_OSR_1, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.temp = MLX90393_OSR_1 \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+73
to
+82
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Das Gleiche wie bei der Definition des Interrupt-Pin, sowas kann man nicht überschreiben, zumindest nicht an der Make-Kommandozeile. Daher wie folgt:
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAM_DIG_FILT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default digital filter | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_DIG_FILT (MLX90393_DIG_FILT_1) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#if IS_USED(MODULE_MLX90393_WOC) || DOXYGEN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAM_THRESHOLD | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default thresholds for Wake-up On Change mode | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_THRESHOLD \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.threshold = \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.xy = 0xFFFF, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.z = 1000, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.temp = 0xFFFF \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#else | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_THRESHOLD | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+91
to
+106
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Das Gleiche wie bei der Definition des Interrupt-Pin, sowas kann man nicht überschreiben, zumindest nicht an der Make-Kommandozeile. Daher wie folgt:
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/* Default configuration for SPI mode */ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#if IS_USED(MODULE_MLX90393_SPI) || DOXYGEN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAM_SPI | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default SPI device | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_SPI (SPI_DEV(0)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAM_SPI_CS_PIN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default SPI chip select pin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_SPI_CS_PIN (GPIO_PIN(PORT_B, 6)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAM_SPI_CLK | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default SPI clock speed | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_SPI_CLK (SPI_CLK_10MHZ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAMS_SPI | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default SPI params | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAMS_SPI { \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.spi = MLX90393_PARAM_SPI, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.cs_pin = MLX90393_PARAM_SPI_CS_PIN, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.clk = MLX90393_PARAM_SPI_CLK, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.mode = MLX90393_PARAM_MODE, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.gain = MLX90393_PARAM_GAIN, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.resolution = MLX90393_PARAM_RES, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.odr = MLX90393_PARAM_ODR, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.oversampling = MLX90393_PARAM_OSR, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.dig_filt = MLX90393_PARAM_DIG_FILT, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MLX90393_PARAM_INT_PIN \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MLX90393_PARAM_THRESHOLD \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/* Default configuration for I2C mode */ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#elif IS_USED(MODULE_MLX90393_I2C) || DOXYGEN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAM_I2C | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default I2C device | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_I2C (I2C_DEV(0)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAM_I2C_ADDR | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default I2C device address | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAM_I2C_ADDR (0x0C) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifndef MLX90393_PARAMS_I2C | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Default I2C params | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#define MLX90393_PARAMS_I2C { \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.i2c = MLX90393_PARAM_I2C, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.addr = MLX90393_PARAM_I2C_ADDR, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.mode = MLX90393_PARAM_MODE, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.gain = MLX90393_PARAM_GAIN, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.resolution = MLX90393_PARAM_RES, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.odr = MLX90393_PARAM_ODR, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.oversampling = MLX90393_PARAM_OSR, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.dig_filt = MLX90393_PARAM_DIG_FILT, \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MLX90393_PARAM_INT_PIN \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MLX90393_PARAM_THRESHOLD \ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/**@}*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
* @brief Configure params for MLX90393 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
*/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
static const mlx90393_params_t mlx90393_params[] = | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
{ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#if IS_USED(MODULE_MLX90393_SPI) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MLX90393_PARAMS_SPI | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#elif IS_USED(MODULE_MLX90393_I2C) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MLX90393_PARAMS_I2C | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#ifdef __cplusplus | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
#endif /* MLX90393_PARAMS_H */ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/** @} */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.