You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2023/11/28 19:48:57 UTC
(nuttx) branch master updated (6dfe1bf58c -> e11627d0fb)
This is an automated email from the ASF dual-hosted git repository.
acassis pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
from 6dfe1bf58c Documentation: port warnings_filter Sphinx extension from Zephyr
new 3353bd3ced sensors: mx5611: Add support for MS5607
new e11627d0fb boards: Use MS56XX instead of MS5611
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
boards/arm/stm32/common/src/Make.defs | 2 +-
boards/arm/stm32/common/src/stm32_ms5611.c | 4 +-
.../arm/stm32/stm32f4discovery/src/stm32_bringup.c | 4 +-
boards/xtensa/esp32/common/src/Make.defs | 2 +-
boards/xtensa/esp32/common/src/esp32_ms5611.c | 4 +-
.../esp32/esp32-devkitc/configs/ms5611/defconfig | 4 +-
.../xtensa/esp32/esp32-devkitc/src/esp32_bringup.c | 4 +-
.../xtensa/esp32/ttgo_eink5_v2/src/esp32_bringup.c | 4 +-
.../esp32/ttgo_t_display_esp32/src/esp32_bringup.c | 4 +-
drivers/sensors/CMakeLists.txt | 4 +-
drivers/sensors/Kconfig | 28 +--
drivers/sensors/Make.defs | 4 +-
drivers/sensors/{ms5611_uorb.c => ms56xx_uorb.c} | 233 +++++++++++----------
include/nuttx/sensors/{ms5611.h => ms56xx.h} | 38 ++--
14 files changed, 181 insertions(+), 158 deletions(-)
rename drivers/sensors/{ms5611_uorb.c => ms56xx_uorb.c} (71%)
rename include/nuttx/sensors/{ms5611.h => ms56xx.h} (76%)
(nuttx) 01/02: sensors: mx5611: Add support for MS5607
Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 3353bd3ced0fe174ad648517ca3da6c5bb188584
Author: Takumi Ando <t-...@advaly.co.jp>
AuthorDate: Tue Nov 28 10:06:04 2023 +0900
sensors: mx5611: Add support for MS5607
MS5607 has few differences between MS5611.
Signed-off-by: Takumi Ando <t-...@advaly.co.jp>
---
drivers/sensors/CMakeLists.txt | 4 +-
drivers/sensors/Kconfig | 28 +--
drivers/sensors/Make.defs | 4 +-
drivers/sensors/{ms5611_uorb.c => ms56xx_uorb.c} | 233 ++++++++++++-----------
include/nuttx/sensors/{ms5611.h => ms56xx.h} | 38 ++--
5 files changed, 165 insertions(+), 142 deletions(-)
diff --git a/drivers/sensors/CMakeLists.txt b/drivers/sensors/CMakeLists.txt
index 0f297b3fa5..d803163b64 100644
--- a/drivers/sensors/CMakeLists.txt
+++ b/drivers/sensors/CMakeLists.txt
@@ -188,8 +188,8 @@ if(CONFIG_SENSORS)
list(APPEND SRCS mlx90614.c)
endif()
- if(CONFIG_SENSORS_MS5611)
- list(APPEND SRCS ms5611_uorb.c)
+ if(CONFIG_SENSORS_MS56XX)
+ list(APPEND SRCS ms56xx_uorb.c)
endif()
if(CONFIG_SENSORS_MS58XX)
diff --git a/drivers/sensors/Kconfig b/drivers/sensors/Kconfig
index 43a04341d7..d32c210a75 100644
--- a/drivers/sensors/Kconfig
+++ b/drivers/sensors/Kconfig
@@ -737,45 +737,45 @@ config MCP9844_I2C_FREQUENCY
range 1 400000
depends on SENSORS_MCP9844
-config SENSORS_MS5611
- bool "MS5611 Barometric Pressure Sensor support"
+config SENSORS_MS56XX
+ bool "MS56XX Barometric Pressure Sensor support"
default n
---help---
Enable driver support for MEAS MS5511 barometer.
-if SENSORS_MS5611
+if SENSORS_MS56XX
choice
- prompt "MS5611 Interface"
- default MS5611_I2C
+ prompt "MS56XX Interface"
+ default MS56XX_I2C
-config MS5611_I2C
- bool "MS5611 I2C Interface"
+config MS56XX_I2C
+ bool "MS56XX I2C Interface"
select I2C
---help---
Enables support for the I2C interface
-config MS5611_SPI
- bool "MS5611 SPI Interface"
+config MS56XX_SPI
+ bool "MS56XX SPI Interface"
select SPI
---help---
Enables support for the SPI interface.
endchoice
-config MS5611_THREAD_STACKSIZE
+config MS56XX_THREAD_STACKSIZE
int "Worker thread stack size"
default 1024
---help---
The stack size for the worker thread
-config MS5611_I2C_FREQUENCY
- int "MS5611 I2C frequency"
+config MS56XX_I2C_FREQUENCY
+ int "MS56XX I2C frequency"
default 400000
range 1 400000
- depends on MS5611_I2C
+ depends on MS56XX_I2C
-endif # SENSORS_MS5611
+endif # SENSORS_MS56XX
config SENSORS_MS58XX
bool "MEAS MS58XX Altimeter support"
diff --git a/drivers/sensors/Make.defs b/drivers/sensors/Make.defs
index 3dcd48fe9d..8e513ab06e 100644
--- a/drivers/sensors/Make.defs
+++ b/drivers/sensors/Make.defs
@@ -210,8 +210,8 @@ ifeq ($(CONFIG_SENSORS_MLX90614),y)
CSRCS += mlx90614.c
endif
-ifeq ($(CONFIG_SENSORS_MS5611),y)
- CSRCS += ms5611_uorb.c
+ifeq ($(CONFIG_SENSORS_MS56XX),y)
+ CSRCS += ms56xx_uorb.c
endif
ifeq ($(CONFIG_SENSORS_MS58XX),y)
diff --git a/drivers/sensors/ms5611_uorb.c b/drivers/sensors/ms56xx_uorb.c
similarity index 71%
rename from drivers/sensors/ms5611_uorb.c
rename to drivers/sensors/ms56xx_uorb.c
index 8c9d33c95d..33249a9135 100644
--- a/drivers/sensors/ms5611_uorb.c
+++ b/drivers/sensors/ms56xx_uorb.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * drivers/sensors/ms5611_uorb.c
+ * drivers/sensors/ms56xx_uorb.c
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -39,36 +39,36 @@
#include <nuttx/semaphore.h>
#include <nuttx/i2c/i2c_master.h>
#include <nuttx/sensors/sensor.h>
-#include <nuttx/sensors/ms5611.h>
+#include <nuttx/sensors/ms56xx.h>
#include <nuttx/sensors/msxxxx_crc4.h>
-#if defined(CONFIG_SENSORS_MS5611) && \
+#if defined(CONFIG_SENSORS_MS56XX) && \
(defined(CONFIG_I2C) || defined(CONFIG_SPI))
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
-#define MS5611_CMD_RESET 0x1e
-#define MS5611_CMD_START_ADC_READ 0x00
-#define MS5611_CMD_CONV_D1_OSR_256 0x40 /* D1 = uncompensated pressure */
-#define MS5611_CMD_CONV_D1_OSR_512 0x42
-#define MS5611_CMD_CONV_D1_OSR_1024 0x44
-#define MS5611_CMD_CONV_D1_OSR_2048 0x46
-#define MS5611_CMD_CONV_D1_OSR_4096 0x48
-#define MS5611_CMD_CONV_D2_OSR_256 0x50 /* D2 = uncompensated pressure */
-#define MS5611_CMD_CONV_D2_OSR_512 0x52
-#define MS5611_CMD_CONV_D2_OSR_1024 0x54
-#define MS5611_CMD_CONV_D2_OSR_2048 0x56
-#define MS5611_CMD_CONV_D2_OSR_4096 0x58
-#define MS5611_CMD_ADC_READ 0x00
-#define MS5611_CMD_ADC_PROM_READ(i) (0xa0 + (i)*2) /* 0xA0 - 0xAE */
+#define MS56XX_CMD_RESET 0x1e
+#define MS56XX_CMD_START_ADC_READ 0x00
+#define MS56XX_CMD_CONV_D1_OSR_256 0x40 /* D1 = uncompensated pressure */
+#define MS56XX_CMD_CONV_D1_OSR_512 0x42
+#define MS56XX_CMD_CONV_D1_OSR_1024 0x44
+#define MS56XX_CMD_CONV_D1_OSR_2048 0x46
+#define MS56XX_CMD_CONV_D1_OSR_4096 0x48
+#define MS56XX_CMD_CONV_D2_OSR_256 0x50 /* D2 = uncompensated pressure */
+#define MS56XX_CMD_CONV_D2_OSR_512 0x52
+#define MS56XX_CMD_CONV_D2_OSR_1024 0x54
+#define MS56XX_CMD_CONV_D2_OSR_2048 0x56
+#define MS56XX_CMD_CONV_D2_OSR_4096 0x58
+#define MS56XX_CMD_ADC_READ 0x00
+#define MS56XX_CMD_ADC_PROM_READ(i) (0xa0 + (i)*2) /* 0xA0 - 0xAE */
/****************************************************************************
* Private Type Definitions
****************************************************************************/
-struct ms5611_calib_s
+struct ms56xx_calib_s
{
uint16_t reversed;
uint16_t c1;
@@ -80,23 +80,24 @@ struct ms5611_calib_s
uint16_t crc;
};
-struct ms5611_dev_s
+struct ms56xx_dev_s
{
FAR struct sensor_lowerhalf_s sensor_lower;
-#ifdef CONFIG_MS5611_I2C
+#ifdef CONFIG_MS56XX_I2C
FAR struct i2c_master_s *i2c; /* I2C interface */
uint8_t addr; /* I2C address */
#endif
-#ifdef CONFIG_MS5611_SPI
+#ifdef CONFIG_MS56XX_SPI
FAR struct spi_dev_s *spi; /* SPI interface */
#endif
+ enum ms56xx_model_e model; /* Model of MS56XX */
uint32_t freq; /* Bus Frequency I2C/SPI */
- struct ms5611_calib_s calib; /* Calib. params from ROM */
+ struct ms56xx_calib_s calib; /* Calib. params from ROM */
unsigned long interval; /* Polling interval */
- bool enabled; /* Enable/Disable MS5611 */
+ bool enabled; /* Enable/Disable MS56XX */
sem_t run; /* Locks measure cycle */
mutex_t lock; /* Manages exclusive to device */
};
@@ -105,30 +106,30 @@ struct ms5611_dev_s
* Private Function Prototypes
****************************************************************************/
-static int ms5611_sendcmd(FAR struct ms5611_dev_s *priv,
+static int ms56xx_sendcmd(FAR struct ms56xx_dev_s *priv,
uint8_t cmd);
-static int ms5611_read16(FAR struct ms5611_dev_s *priv,
+static int ms56xx_read16(FAR struct ms56xx_dev_s *priv,
FAR uint8_t *regval);
-static int ms5611_read24(FAR struct ms5611_dev_s *priv,
+static int ms56xx_read24(FAR struct ms56xx_dev_s *priv,
FAR uint8_t *regval);
-static int32_t ms5611_compensate_temp(FAR struct ms5611_dev_s *priv,
+static int32_t ms56xx_compensate_temp(FAR struct ms56xx_dev_s *priv,
uint32_t temp, int32_t *deltat);
-static uint32_t ms5611_compensate_press(FAR struct ms5611_dev_s *priv,
+static uint32_t ms56xx_compensate_press(FAR struct ms56xx_dev_s *priv,
uint32_t press, uint32_t dt);
-static unsigned long ms5611_curtime(void);
+static unsigned long ms56xx_curtime(void);
/* Sensor methods */
-static int ms5611_set_interval(FAR struct sensor_lowerhalf_s *lower,
+static int ms56xx_set_interval(FAR struct sensor_lowerhalf_s *lower,
FAR struct file *filep,
FAR unsigned long *period_us);
-static int ms5611_activate(FAR struct sensor_lowerhalf_s *lower,
+static int ms56xx_activate(FAR struct sensor_lowerhalf_s *lower,
FAR struct file *filep, bool enable);
#if 0 /* Please read below */
-static int ms5611_fetch(FAR struct sensor_lowerhalf_s *lower,
+static int ms56xx_fetch(FAR struct sensor_lowerhalf_s *lower,
FAR char *buffer, size_t buflen);
#endif
@@ -138,9 +139,9 @@ static int ms5611_fetch(FAR struct sensor_lowerhalf_s *lower,
static const struct sensor_ops_s g_sensor_ops =
{
- .activate = ms5611_activate,
- .fetch = NULL, /* ms5611_fetch */
- .set_interval = ms5611_set_interval,
+ .activate = ms56xx_activate,
+ .fetch = NULL, /* ms56xx_fetch */
+ .set_interval = ms56xx_set_interval,
};
/****************************************************************************
@@ -148,7 +149,7 @@ static const struct sensor_ops_s g_sensor_ops =
****************************************************************************/
/****************************************************************************
- * Name: ms5611_curtime
+ * Name: ms56xx_curtime
*
* Description: Helper to get current timestamp.
*
@@ -156,7 +157,7 @@ static const struct sensor_ops_s g_sensor_ops =
* Timestamp in microseconds
****************************************************************************/
-static unsigned long ms5611_curtime(void)
+static unsigned long ms56xx_curtime(void)
{
struct timespec ts;
@@ -165,14 +166,14 @@ static unsigned long ms5611_curtime(void)
}
/****************************************************************************
- * Name: ms5611_sendcmd
+ * Name: ms56xx_sendcmd
*
* Description:
- * Send a command (8-bit) to MS5611
+ * Send a command (8-bit) to MS56XX
*
****************************************************************************/
-static int ms5611_sendcmd(FAR struct ms5611_dev_s *priv, uint8_t cmd)
+static int ms56xx_sendcmd(FAR struct ms56xx_dev_s *priv, uint8_t cmd)
{
struct i2c_msg_s msg;
int ret;
@@ -194,14 +195,14 @@ static int ms5611_sendcmd(FAR struct ms5611_dev_s *priv, uint8_t cmd)
}
/****************************************************************************
- * Name: ms5611_read16
+ * Name: ms56xx_read16
*
* Description:
- * Read 16-bit from a MS5611 register
+ * Read 16-bit from a MS56XX register
*
****************************************************************************/
-static int ms5611_read16(FAR struct ms5611_dev_s *priv, FAR uint8_t *regval)
+static int ms56xx_read16(FAR struct ms56xx_dev_s *priv, FAR uint8_t *regval)
{
struct i2c_msg_s msg;
int ret;
@@ -223,14 +224,14 @@ static int ms5611_read16(FAR struct ms5611_dev_s *priv, FAR uint8_t *regval)
}
/****************************************************************************
- * Name: ms5611_read24
+ * Name: ms56xx_read24
*
* Description:
- * Read 24-bit from a MS5611 register
+ * Read 24-bit from a MS56XX register
*
****************************************************************************/
-static int ms5611_read24(FAR struct ms5611_dev_s *priv, uint8_t *regval)
+static int ms56xx_read24(FAR struct ms56xx_dev_s *priv, uint8_t *regval)
{
struct i2c_msg_s msg;
int ret;
@@ -251,7 +252,7 @@ static int ms5611_read24(FAR struct ms5611_dev_s *priv, uint8_t *regval)
return OK;
}
-static inline void baro_measure_read(FAR struct ms5611_dev_s *priv,
+static inline void baro_measure_read(FAR struct ms56xx_dev_s *priv,
FAR struct sensor_baro *baro)
{
uint32_t press;
@@ -270,10 +271,10 @@ static inline void baro_measure_read(FAR struct ms5611_dev_s *priv,
/* Send command to start a D1 (pressure) conversion */
- ret = ms5611_sendcmd(priv, MS5611_CMD_CONV_D1_OSR_4096);
+ ret = ms56xx_sendcmd(priv, MS56XX_CMD_CONV_D1_OSR_4096);
if (ret < 0)
{
- snerr("Fail to send cmd MS5611_CMD_CONV_D1_OSR_4096!\n");
+ snerr("Fail to send cmd MS56XX_CMD_CONV_D1_OSR_4096!\n");
return;
}
@@ -283,10 +284,10 @@ static inline void baro_measure_read(FAR struct ms5611_dev_s *priv,
/* Send command to start a read sequence */
- ret = ms5611_sendcmd(priv, MS5611_CMD_START_ADC_READ);
+ ret = ms56xx_sendcmd(priv, MS56XX_CMD_START_ADC_READ);
if (ret < 0)
{
- snerr("Fail to send cmd MS5611_CMD_START_ADC_READ!\n");
+ snerr("Fail to send cmd MS56XX_CMD_START_ADC_READ!\n");
return;
}
@@ -294,7 +295,7 @@ static inline void baro_measure_read(FAR struct ms5611_dev_s *priv,
up_udelay(4000);
- ret = ms5611_read24(priv, buffer);
+ ret = ms56xx_read24(priv, buffer);
if (ret < 0)
{
snerr("Fail to read pressure!\n");
@@ -307,10 +308,10 @@ static inline void baro_measure_read(FAR struct ms5611_dev_s *priv,
/* Send command to start a D2 (temperature) conversion */
- ret = ms5611_sendcmd(priv, MS5611_CMD_CONV_D2_OSR_4096);
+ ret = ms56xx_sendcmd(priv, MS56XX_CMD_CONV_D2_OSR_4096);
if (ret < 0)
{
- snerr("Fail to send cmd MS5611_CMD_CONV_D2_OSR_4096!\n");
+ snerr("Fail to send cmd MS56XX_CMD_CONV_D2_OSR_4096!\n");
return;
}
@@ -320,10 +321,10 @@ static inline void baro_measure_read(FAR struct ms5611_dev_s *priv,
/* Send command to start a read sequence */
- ret = ms5611_sendcmd(priv, MS5611_CMD_START_ADC_READ);
+ ret = ms56xx_sendcmd(priv, MS56XX_CMD_START_ADC_READ);
if (ret < 0)
{
- snerr("Fail to send cmd MS5611_CMD_START_ADC_READ!\n");
+ snerr("Fail to send cmd MS56XX_CMD_START_ADC_READ!\n");
return;
}
@@ -331,7 +332,7 @@ static inline void baro_measure_read(FAR struct ms5611_dev_s *priv,
up_udelay(4000);
- ret = ms5611_read24(priv, buffer);
+ ret = ms56xx_read24(priv, buffer);
if (ret < 0)
{
snerr("Fail to read temperature!\n");
@@ -348,16 +349,16 @@ static inline void baro_measure_read(FAR struct ms5611_dev_s *priv,
/* Compensate the temp/press with calibration data */
- temp = ms5611_compensate_temp(priv, temp, &deltat);
- press = ms5611_compensate_press(priv, press, deltat);
+ temp = ms56xx_compensate_temp(priv, temp, &deltat);
+ press = ms56xx_compensate_press(priv, press, deltat);
- baro->timestamp = ms5611_curtime();
+ baro->timestamp = ms56xx_curtime();
baro->pressure = press / 100.0f;
baro->temperature = temp / 100.0f;
}
/****************************************************************************
- * Name: ms5611_thread
+ * Name: ms56xx_thread
*
* Description: Thread for performing interval measurement cycle and data
* read.
@@ -367,9 +368,9 @@ static inline void baro_measure_read(FAR struct ms5611_dev_s *priv,
* argv - Pointer to argument list
****************************************************************************/
-static int ms5611_thread(int argc, char **argv)
+static int ms56xx_thread(int argc, char **argv)
{
- FAR struct ms5611_dev_s *priv = (FAR struct ms5611_dev_s *)
+ FAR struct ms56xx_dev_s *priv = (FAR struct ms56xx_dev_s *)
((uintptr_t)strtoul(argv[1], NULL, 16));
struct sensor_baro baro_data;
@@ -403,14 +404,14 @@ static int ms5611_thread(int argc, char **argv)
}
/****************************************************************************
- * Name: ms5611_initialize
+ * Name: ms56xx_initialize
*
* Description:
- * Initialize MS5611 device
+ * Initialize MS56XX device
*
****************************************************************************/
-static int ms5611_initialize(FAR struct ms5611_dev_s *priv)
+static int ms56xx_initialize(FAR struct ms56xx_dev_s *priv)
{
uint16_t prom[8];
uint8_t data[2];
@@ -420,10 +421,10 @@ static int ms5611_initialize(FAR struct ms5611_dev_s *priv)
/* Get calibration data. */
- ret = ms5611_sendcmd(priv, MS5611_CMD_RESET);
+ ret = ms56xx_sendcmd(priv, MS56XX_CMD_RESET);
if (ret < 0)
{
- snerr("ms5611 reset failed\n");
+ snerr("ms56xx reset failed\n");
return ret;
}
@@ -433,17 +434,17 @@ static int ms5611_initialize(FAR struct ms5611_dev_s *priv)
for (i = 0; i < 8; i++)
{
- ret = ms5611_sendcmd(priv, MS5611_CMD_ADC_PROM_READ(i));
+ ret = ms56xx_sendcmd(priv, MS56XX_CMD_ADC_PROM_READ(i));
if (ret < 0)
{
- snerr("ms5611_sendcmd failed\n");
+ snerr("ms56xx_sendcmd failed\n");
return ret;
}
- ret = ms5611_read16(priv, data);
+ ret = ms56xx_read16(priv, data);
if (ret < 0)
{
- snerr("ms5611_read16 failed\n");
+ snerr("ms56xx_read16 failed\n");
return ret;
}
@@ -475,7 +476,7 @@ static int ms5611_initialize(FAR struct ms5611_dev_s *priv)
}
/****************************************************************************
- * Name: ms5611_compensate_temp
+ * Name: ms56xx_compensate_temp
*
* Description:
* calculate compensate temperature
@@ -488,10 +489,10 @@ static int ms5611_initialize(FAR struct ms5611_dev_s *priv)
*
****************************************************************************/
-static int32_t ms5611_compensate_temp(FAR struct ms5611_dev_s *priv,
+static int32_t ms56xx_compensate_temp(FAR struct ms56xx_dev_s *priv,
uint32_t temp, int32_t *deltat)
{
- struct ms5611_calib_s *c = &priv->calib;
+ struct ms56xx_calib_s *c = &priv->calib;
int32_t dt;
/* dt = d1 - c5 * 256 */
@@ -510,7 +511,7 @@ static int32_t ms5611_compensate_temp(FAR struct ms5611_dev_s *priv,
}
/****************************************************************************
- * Name: ms5611_compensate_press
+ * Name: ms56xx_compensate_press
*
* Description:
* calculate compensate pressure
@@ -523,30 +524,41 @@ static int32_t ms5611_compensate_temp(FAR struct ms5611_dev_s *priv,
*
****************************************************************************/
-static uint32_t ms5611_compensate_press(FAR struct ms5611_dev_s *priv,
+static uint32_t ms56xx_compensate_press(FAR struct ms56xx_dev_s *priv,
uint32_t press, uint32_t dt)
{
- struct ms5611_calib_s *c = &priv->calib;
- int64_t off;
- int64_t sens;
+ struct ms56xx_calib_s *c = &priv->calib;
+ int64_t off = 0;
+ int64_t sens = 0;
- off = ((int64_t) c->c2 * 65536) + ((int64_t) (c->c4 * dt) / 128);
- sens = ((int64_t) c->c1 * 32768) + ((int64_t) (c->c3 * dt) / 256);
- press = (((press * sens) / 2097152) - off) / 32768;
+ switch (priv->model)
+ {
+ case MS56XX_MODEL_MS5607:
+ off = ((int64_t) c->c2 << 17) + ((int64_t) (c->c4 * dt) >> 6);
+ sens = ((int64_t) c->c1 << 16) + ((int64_t) (c->c3 * dt) >> 7);
+ break;
+
+ case MS56XX_MODEL_MS5611:
+ off = ((int64_t) c->c2 << 16) + ((int64_t) (c->c4 * dt) >> 7);
+ sens = ((int64_t) c->c1 << 15) + ((int64_t) (c->c3 * dt) >> 8);
+ break;
+ }
+
+ press = (((press * sens) >> 21) - off) >> 15;
return press;
}
/****************************************************************************
- * Name: ms5611_set_interval
+ * Name: ms56xx_set_interval
****************************************************************************/
-static int ms5611_set_interval(FAR struct sensor_lowerhalf_s *lower,
+static int ms56xx_set_interval(FAR struct sensor_lowerhalf_s *lower,
FAR struct file *filep,
FAR unsigned long *period_us)
{
- FAR struct ms5611_dev_s *priv = container_of(lower,
- FAR struct ms5611_dev_s,
+ FAR struct ms56xx_dev_s *priv = container_of(lower,
+ FAR struct ms56xx_dev_s,
sensor_lower);
priv->interval = *period_us;
@@ -554,14 +566,14 @@ static int ms5611_set_interval(FAR struct sensor_lowerhalf_s *lower,
}
/****************************************************************************
- * Name: ms5611_activate
+ * Name: ms56xx_activate
****************************************************************************/
-static int ms5611_activate(FAR struct sensor_lowerhalf_s *lower,
+static int ms56xx_activate(FAR struct sensor_lowerhalf_s *lower,
FAR struct file *filep, bool enable)
{
bool start_thread = false;
- struct ms5611_dev_s *priv = (FAR struct ms5611_dev_s *)lower;
+ struct ms56xx_dev_s *priv = (FAR struct ms56xx_dev_s *)lower;
if (enable)
{
@@ -584,7 +596,7 @@ static int ms5611_activate(FAR struct sensor_lowerhalf_s *lower,
}
/****************************************************************************
- * Name: ms5611_fetch
+ * Name: ms56xx_fetch
****************************************************************************/
/* N.B. When fetch is enabled the sensortest doesn't respect the
@@ -593,11 +605,11 @@ static int ms5611_activate(FAR struct sensor_lowerhalf_s *lower,
*/
#if 0
-static int ms5611_fetch(FAR struct sensor_lowerhalf_s *lower,
+static int ms56xx_fetch(FAR struct sensor_lowerhalf_s *lower,
FAR char *buffer, size_t buflen)
{
- FAR struct ms5611_dev_s *priv = container_of(lower,
- FAR struct ms5611_dev_s,
+ FAR struct ms56xx_dev_s *priv = container_of(lower,
+ FAR struct ms56xx_dev_s,
sensor_lower);
struct sensor_baro baro_data;
@@ -619,33 +631,35 @@ static int ms5611_fetch(FAR struct sensor_lowerhalf_s *lower,
****************************************************************************/
/****************************************************************************
- * Name: ms5611_register
+ * Name: ms56xx_register
*
* Description:
- * Register the MS5611 character device
+ * Register the MS56XX character device
*
* Input Parameters:
* i2c - An instance of the I2C interface to use to communicate with
- * MS5611
+ * MS56XX
* devno - Instance number for driver
- * addr - The I2C address of the MS5611.
+ * addr - The I2C address of the MS56XX.
+ * model - The MS56XX model.
*
* Returned Value:
* Zero (OK) on success; a negated errno value on failure.
*
****************************************************************************/
-int ms5611_register(FAR struct i2c_master_s *i2c, int devno, uint8_t addr)
+int ms56xx_register(FAR struct i2c_master_s *i2c, int devno, uint8_t addr,
+ enum ms56xx_model_e model)
{
- FAR struct ms5611_dev_s *priv;
+ FAR struct ms56xx_dev_s *priv;
FAR char *argv[2];
char arg1[32];
int ret;
- /* Initialize the MS5611 device structure */
+ /* Initialize the MS56XX device structure */
- priv = kmm_zalloc(sizeof(struct ms5611_dev_s));
+ priv = kmm_zalloc(sizeof(struct ms56xx_dev_s));
if (priv == NULL)
{
snerr("Failed to allocate instance\n");
@@ -654,7 +668,8 @@ int ms5611_register(FAR struct i2c_master_s *i2c, int devno, uint8_t addr)
priv->i2c = i2c;
priv->addr = addr;
- priv->freq = CONFIG_MS5611_I2C_FREQUENCY;
+ priv->model = model;
+ priv->freq = CONFIG_MS56XX_I2C_FREQUENCY;
priv->interval = 1000000; /* Default interval 1s */
nxsem_init(&priv->run, 0, 0);
@@ -663,10 +678,10 @@ int ms5611_register(FAR struct i2c_master_s *i2c, int devno, uint8_t addr)
priv->sensor_lower.ops = &g_sensor_ops;
priv->sensor_lower.type = SENSOR_TYPE_BAROMETER;
- ret = ms5611_initialize(priv);
+ ret = ms56xx_initialize(priv);
if (ret < 0)
{
- snerr("Failed to initialize physical device ms5611:%d\n", ret);
+ snerr("Failed to initialize physical device ms56xx:%d\n", ret);
nxmutex_destroy(&priv->lock);
nxsem_destroy(&priv->run);
kmm_free(priv);
@@ -690,9 +705,9 @@ int ms5611_register(FAR struct i2c_master_s *i2c, int devno, uint8_t addr)
snprintf(arg1, 16, "%p", priv);
argv[0] = arg1;
argv[1] = NULL;
- ret = kthread_create("ms5611_thread", SCHED_PRIORITY_DEFAULT,
- CONFIG_MS5611_THREAD_STACKSIZE,
- ms5611_thread, argv);
+ ret = kthread_create("ms56xx_thread", SCHED_PRIORITY_DEFAULT,
+ CONFIG_MS56XX_THREAD_STACKSIZE,
+ ms56xx_thread, argv);
if (ret < 0)
{
snerr("Failed to create the notification kthread!\n");
@@ -703,7 +718,7 @@ int ms5611_register(FAR struct i2c_master_s *i2c, int devno, uint8_t addr)
return ret;
}
- sninfo("MS5611 driver loaded successfully!\n");
+ sninfo("MS56XX driver loaded successfully!\n");
return OK;
}
diff --git a/include/nuttx/sensors/ms5611.h b/include/nuttx/sensors/ms56xx.h
similarity index 76%
rename from include/nuttx/sensors/ms5611.h
rename to include/nuttx/sensors/ms56xx.h
index bd30edaef0..2d3f465396 100644
--- a/include/nuttx/sensors/ms5611.h
+++ b/include/nuttx/sensors/ms56xx.h
@@ -1,5 +1,5 @@
/****************************************************************************
- * include/nuttx/sensors/ms5611.h
+ * include/nuttx/sensors/ms56xx.h
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -18,8 +18,8 @@
*
****************************************************************************/
-#ifndef __INCLUDE_NUTTX_SENSORS_MS5611_H
-#define __INCLUDE_NUTTX_SENSORS_MS5611_H
+#ifndef __INCLUDE_NUTTX_SENSORS_MS56XX_H
+#define __INCLUDE_NUTTX_SENSORS_MS56XX_H
/****************************************************************************
* Included Files
@@ -28,7 +28,7 @@
#include <nuttx/config.h>
#include <nuttx/sensors/ioctl.h>
-#if defined(CONFIG_I2C) && defined(CONFIG_SENSORS_MS5611)
+#if defined(CONFIG_I2C) && defined(CONFIG_SENSORS_MS56XX)
/****************************************************************************
* Pre-processor Definitions
@@ -39,20 +39,26 @@
*
* CONFIG_I2C
* Enables support for I2C drivers
- * CONFIG_SENSORS_MS5611
- * Enables support for the MS5611 driver
+ * CONFIG_SENSORS_MS56XX
+ * Enables support for the MS56XX driver
*/
/* I2C Address **************************************************************/
-#define MS5611_ADDR0 0x77
-#define MS5611_ADDR1 0x76
+#define MS56XX_ADDR0 0x77
+#define MS56XX_ADDR1 0x76
/****************************************************************************
* Public Types
****************************************************************************/
-struct ms5611_measure_s
+enum ms56xx_model_e
+{
+ MS56XX_MODEL_MS5607 = 0,
+ MS56XX_MODEL_MS5611 = 1,
+};
+
+struct ms56xx_measure_s
{
int32_t temperature; /* in Degree x100 */
int32_t pressure; /* in mBar x10 */
@@ -73,27 +79,29 @@ extern "C"
#endif
/****************************************************************************
- * Name: ms5611_register
+ * Name: ms56xx_register
*
* Description:
- * Register the MS5611 character device as 'devpath'.
+ * Register the MS56XX character device as 'devpath'.
*
* Input Parameters:
* i2c - An I2C driver instance.
* devno - Number of device (i.e. baro0, baro1, ...)
- * addr - The I2C address of the MS5611.
+ * addr - The I2C address of the MS56XX.
+ * model - The MS56XX model.
*
* Returned Value:
* Zero (OK) on success; a negated errno value on failure.
*
****************************************************************************/
-int ms5611_register(FAR struct i2c_master_s *i2c, int devno, uint8_t addr);
+int ms56xx_register(FAR struct i2c_master_s *i2c, int devno, uint8_t addr,
+ enum ms56xx_model_e model);
#undef EXTERN
#ifdef __cplusplus
}
#endif
-#endif /* CONFIG_I2C && CONFIG_SENSORS_MS5611 */
-#endif /* __INCLUDE_NUTTX_SENSORS_MS5611_H */
+#endif /* CONFIG_I2C && CONFIG_SENSORS_MS56XX */
+#endif /* __INCLUDE_NUTTX_SENSORS_MS56XX_H */
(nuttx) 02/02: boards: Use MS56XX instead of MS5611
Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit e11627d0fba481086ccc1e640eeadd39bfa38ccf
Author: Takumi Ando <t-...@advaly.co.jp>
AuthorDate: Tue Nov 28 11:17:23 2023 +0900
boards: Use MS56XX instead of MS5611
Signed-off-by: Takumi Ando <t-...@advaly.co.jp>
---
boards/arm/stm32/common/src/Make.defs | 2 +-
boards/arm/stm32/common/src/stm32_ms5611.c | 4 ++--
boards/arm/stm32/stm32f4discovery/src/stm32_bringup.c | 4 ++--
boards/xtensa/esp32/common/src/Make.defs | 2 +-
boards/xtensa/esp32/common/src/esp32_ms5611.c | 4 ++--
boards/xtensa/esp32/esp32-devkitc/configs/ms5611/defconfig | 4 ++--
boards/xtensa/esp32/esp32-devkitc/src/esp32_bringup.c | 4 ++--
boards/xtensa/esp32/ttgo_eink5_v2/src/esp32_bringup.c | 4 ++--
boards/xtensa/esp32/ttgo_t_display_esp32/src/esp32_bringup.c | 4 ++--
9 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/boards/arm/stm32/common/src/Make.defs b/boards/arm/stm32/common/src/Make.defs
index 720dc66e0a..4cdb9f7ac2 100644
--- a/boards/arm/stm32/common/src/Make.defs
+++ b/boards/arm/stm32/common/src/Make.defs
@@ -24,7 +24,7 @@ ifeq ($(CONFIG_SENSORS_BMP180),y)
CSRCS += stm32_bmp180.c
endif
-ifeq ($(CONFIG_SENSORS_MS5611),y)
+ifeq ($(CONFIG_SENSORS_MS56XX),y)
CSRCS += stm32_ms5611.c
endif
diff --git a/boards/arm/stm32/common/src/stm32_ms5611.c b/boards/arm/stm32/common/src/stm32_ms5611.c
index c016d01c81..9ef08a1e2b 100644
--- a/boards/arm/stm32/common/src/stm32_ms5611.c
+++ b/boards/arm/stm32/common/src/stm32_ms5611.c
@@ -28,7 +28,7 @@
#include <debug.h>
#include <nuttx/arch.h>
-#include <nuttx/sensors/ms5611.h>
+#include <nuttx/sensors/ms56xx.h>
#include <nuttx/i2c/i2c_master.h>
#include "stm32_i2c.h"
@@ -69,7 +69,7 @@ int board_ms5611_initialize(int devno, int busno)
snprintf(devpath, sizeof(devpath), "/dev/press%d", devno);
- ret = ms5611_register(i2c, devno, MS5611_ADDR0);
+ ret = ms56xx_register(i2c, devno, MS56XX_ADDR0, MS56XX_MODEL_MS5611);
if (ret < 0)
{
snerr("ERROR: Error registering MS5611 in I2C%d\n", busno);
diff --git a/boards/arm/stm32/stm32f4discovery/src/stm32_bringup.c b/boards/arm/stm32/stm32f4discovery/src/stm32_bringup.c
index 855f85a3ea..4a62e0b64a 100644
--- a/boards/arm/stm32/stm32f4discovery/src/stm32_bringup.c
+++ b/boards/arm/stm32/stm32f4discovery/src/stm32_bringup.c
@@ -76,7 +76,7 @@
#include "stm32_bmp180.h"
#endif
-#ifdef CONFIG_SENSORS_MS5611
+#ifdef CONFIG_SENSORS_MS56XX
#include "stm32_ms5611.h"
#endif
@@ -217,7 +217,7 @@ int stm32_bringup(void)
}
#endif
-#ifdef CONFIG_SENSORS_MS5611
+#ifdef CONFIG_SENSORS_MS56XX
/* Initialize the MS5611 pressure sensor. */
ret = board_ms5611_initialize(0, 1);
diff --git a/boards/xtensa/esp32/common/src/Make.defs b/boards/xtensa/esp32/common/src/Make.defs
index 946c0e28b9..121dea0e4f 100644
--- a/boards/xtensa/esp32/common/src/Make.defs
+++ b/boards/xtensa/esp32/common/src/Make.defs
@@ -92,7 +92,7 @@ ifeq ($(CONFIG_SENSORS_SHT3X),y)
CSRCS += esp32_sht3x.c
endif
-ifeq ($(CONFIG_SENSORS_MS5611),y)
+ifeq ($(CONFIG_SENSORS_MS56XX),y)
CSRCS += esp32_ms5611.c
endif
diff --git a/boards/xtensa/esp32/common/src/esp32_ms5611.c b/boards/xtensa/esp32/common/src/esp32_ms5611.c
index ced7296304..0f5e911701 100644
--- a/boards/xtensa/esp32/common/src/esp32_ms5611.c
+++ b/boards/xtensa/esp32/common/src/esp32_ms5611.c
@@ -28,7 +28,7 @@
#include <debug.h>
#include <nuttx/arch.h>
-#include <nuttx/sensors/ms5611.h>
+#include <nuttx/sensors/ms56xx.h>
#include <nuttx/i2c/i2c_master.h>
#include "esp32_board_i2c.h"
@@ -83,7 +83,7 @@ int board_ms5611_initialize(int devno, int busno)
{
/* Then try to register the barometer sensor in I2C0 */
- ret = ms5611_register(i2c, devno, MS5611_ADDR0);
+ ret = ms56xx_register(i2c, devno, MS56XX_ADDR0, MS56XX_MODEL_MS5611);
if (ret < 0)
{
snerr("ERROR: Error registering MS5611 in I2C%d\n", busno);
diff --git a/boards/xtensa/esp32/esp32-devkitc/configs/ms5611/defconfig b/boards/xtensa/esp32/esp32-devkitc/configs/ms5611/defconfig
index 85deb18709..e90cbf8b9b 100644
--- a/boards/xtensa/esp32/esp32-devkitc/configs/ms5611/defconfig
+++ b/boards/xtensa/esp32/esp32-devkitc/configs/ms5611/defconfig
@@ -35,7 +35,7 @@ CONFIG_IDLETHREAD_STACKSIZE=3072
CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_INTELHEX_BINARY=y
CONFIG_MM_REGIONS=3
-CONFIG_MS5611_I2C_FREQUENCY=100000
+CONFIG_MS56XX_I2C_FREQUENCY=100000
CONFIG_NSH_ARCHINIT=y
CONFIG_NSH_BUILTIN_APPS=y
CONFIG_NSH_FILEIOSIZE=512
@@ -47,7 +47,7 @@ CONFIG_RAM_START=0x20000000
CONFIG_RR_INTERVAL=200
CONFIG_SCHED_WAITPID=y
CONFIG_SENSORS=y
-CONFIG_SENSORS_MS5611=y
+CONFIG_SENSORS_MS56XX=y
CONFIG_START_DAY=6
CONFIG_START_MONTH=12
CONFIG_START_YEAR=2011
diff --git a/boards/xtensa/esp32/esp32-devkitc/src/esp32_bringup.c b/boards/xtensa/esp32/esp32-devkitc/src/esp32_bringup.c
index ec2f5b24f2..cf023e0b59 100644
--- a/boards/xtensa/esp32/esp32-devkitc/src/esp32_bringup.c
+++ b/boards/xtensa/esp32/esp32-devkitc/src/esp32_bringup.c
@@ -116,7 +116,7 @@
# include "esp32_sht3x.h"
#endif
-#ifdef CONFIG_SENSORS_MS5611
+#ifdef CONFIG_SENSORS_MS56XX
# include "esp32_ms5611.h"
#endif
@@ -590,7 +590,7 @@ int esp32_bringup(void)
}
#endif
-#ifdef CONFIG_SENSORS_MS5611
+#ifdef CONFIG_SENSORS_MS56XX
/* Try to register MS5611 device in I2C0 as device 0: I2C addr 0x77 */
ret = board_ms5611_initialize(0, 0);
diff --git a/boards/xtensa/esp32/ttgo_eink5_v2/src/esp32_bringup.c b/boards/xtensa/esp32/ttgo_eink5_v2/src/esp32_bringup.c
index 845cfd103c..f06819b4c9 100644
--- a/boards/xtensa/esp32/ttgo_eink5_v2/src/esp32_bringup.c
+++ b/boards/xtensa/esp32/ttgo_eink5_v2/src/esp32_bringup.c
@@ -103,7 +103,7 @@
# include "esp32_sht3x.h"
#endif
-#ifdef CONFIG_SENSORS_MS5611
+#ifdef CONFIG_SENSORS_MS56XX
# include "esp32_ms5611.h"
#endif
@@ -459,7 +459,7 @@ int esp32_bringup(void)
}
#endif
-#ifdef CONFIG_SENSORS_MS5611
+#ifdef CONFIG_SENSORS_MS56XX
/* Try to register MS5611 device in I2C0 as device 0: I2C addr 0x77 */
ret = board_ms5611_initialize(0, 0);
diff --git a/boards/xtensa/esp32/ttgo_t_display_esp32/src/esp32_bringup.c b/boards/xtensa/esp32/ttgo_t_display_esp32/src/esp32_bringup.c
index 9e054b7682..9c39a8789f 100644
--- a/boards/xtensa/esp32/ttgo_t_display_esp32/src/esp32_bringup.c
+++ b/boards/xtensa/esp32/ttgo_t_display_esp32/src/esp32_bringup.c
@@ -103,7 +103,7 @@
# include "esp32_sht3x.h"
#endif
-#ifdef CONFIG_SENSORS_MS5611
+#ifdef CONFIG_SENSORS_MS56XX
# include "esp32_ms5611.h"
#endif
@@ -473,7 +473,7 @@ int esp32_bringup(void)
}
#endif
-#ifdef CONFIG_SENSORS_MS5611
+#ifdef CONFIG_SENSORS_MS56XX
/* Try to register MS5611 device in I2C0 as device 0: I2C addr 0x77 */
ret = board_ms5611_initialize(0, 0);