Re: [PATCH 1/2] iio: lsm6dsx: Support temperature channel

From: Lorenzo Bianconi
Date: Sat Aug 12 2023 - 05:18:25 EST


> Hi Lorenzo!
>
> thanks for the review!
>
> On Fri, Aug 11, 2023 at 12:07 PM Lorenzo Bianconi <lorenzo@xxxxxxxxxx> wrote:
>
> > > + [ST_LSM6DSX_ID_TEMP] = {
> > > + .reg = {
> > > + .addr = 0x0A,
> > > + .mask = GENMASK(5, 4),
> > > + },
> >
> > looking at the ISM330DHCX datasheet, the temperature sensor ODR is just 52Hz,
> > while values in 0x0A register are used only for FIFO decimation, they are not
> > values you can configure the sensor e.g. for read_one_shot().
> >
> > > + .odr_avl[0] = { 26000, 0x02 },
> > > + .odr_avl[1] = { 52000, 0x03 },
> > > + .odr_len = 2,
>
> I look at page 44, paragraph 9.6 about bits 4-5:
>
> ODR_T_BATCH_[1:0]
> Selects batch data rate (write frequency in FIFO) for temperature data
> (00: Temperature not batched in FIFO (default);
> 01: 1.6 Hz;
> 10: 12.5 Hz;
> 11: 52 Hz)

AFAIR the batch register is used to sub-sample sensor data before queueing them
into the FIFO (please check st_lsm6dsx_set_fifo_odr()), but it does not refer
to the configured sensor ODR.
Looking at the device application-note [0], the temperature sensor ODR depends
on the accel/gyro one:

- temperature sensor ODR == accel sensor ODR if accel ODR is < 52Hz and the
gyro is in power-down
- temperature sensor ODR = 52Hz if accel ODR > 52Hz or if the gyro is not in
power-down

Regards,
Lorenzo

[0] https://www.st.com/resource/en/application_note/an5398-ism330dhcx-alwayson-3d-accelerometer-and-3d-gyroscope-with-digital-output-for-industrial-applications-stmicroelectronics.pdf

>
> That reads to me that I should actually add the odr for 1.6 and 12.5 Hz
> and the above 26 Hz is wrong but the .odr_avl[1] = { 52000, 0x03 },
> 52000 milli-Hz is fine?
>
> Yours,
> Linus Walleij

Attachment: signature.asc
Description: PGP signature