[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240609120323.5af232f9@jic23-huawei>
Date: Sun, 9 Jun 2024 12:03:23 +0100
From: Jonathan Cameron <jic23@...nel.org>
To: Vasileios Amoiridis <vassilisamir@...il.com>
Cc: dpfrey@...il.com, himanshujha199640@...il.com, lars@...afoo.de,
linux-iio@...r.kernel.org, linux-kernel@...r.kernel.org,
mike.looijmans@...ic.nl
Subject: Re: [PATCH v2 04/19] iio: chemical: bme680: Fix sensor data read
operation
On Thu, 6 Jun 2024 23:22:56 +0200
Vasileios Amoiridis <vassilisamir@...il.com> wrote:
> A read operation is happening as follows:
>
> a) Set sensor to forced mode
> b) Sensor measures values and update data registers and sleeps again
> c) Read data registers
>
> In the current implementation the read operation happens immediately
> after the sensor is set to forced mode so the sensor does not have
> the time to update properly the registers. This leads to the following
> 2 problems:
>
> 1) The first ever value which is read by the register is always wrong
> 2) Every read operation, puts the register into forced mode and reads
> the data that were calculated in the previous conversion.
>
> This behaviour was tested in 2 ways:
>
> 1) The internal meas_status_0 register was read before and after every
> read operation in order to verify that the data were ready even before
> the register was set to forced mode and also to check that after the
> forced mode was set the new data were not yet ready.
>
> 2) Physically changing the temperature and measuring the temperature
>
> This commit adds the waiting time in between the set of the forced mode
> and the read of the data. The function is taken from the Bosch BME68x
> Sensor API [1].
>
> [1]: https://github.com/boschsensortec/BME68x_SensorAPI/blob/v4.4.8/bme68x.c#L490
> Fixes: 1b3bd8592780 ("iio: chemical: Add support for Bosch BME680 sensor")
> Signed-off-by: Vasileios Amoiridis <vassilisamir@...il.com>
Applied and marked for stable.
Powered by blists - more mailing lists