2025-12-08 5:57 AM - edited 2025-12-08 6:03 AM
Hello group,
I'm a humble hardware guy integrating the LSM6DSV16X into a robotic application.
We are going to use it in control loops, between 3kHz and 5kHz sampling.
Between the main mode and the OIS mode, there are tons of ODR to choose from.
However, is there a way to make the ADC sample at EXACTLY 5kHz?? Like a triggered or synced ODR?
Or do I have to set the ODR at 7.68kHz and read the latest value from the FIFO and deal with the small discontinuities?
I see the Triggered-ODR section 6.6 in the datasheet. Does it means enabling this will sync the ADC with an external INT2 pulses? Does the new values appears in the FIFO after a defined short delay?
Thanks!
2025-12-11 6:28 AM
Hi @LionRelaxe ,
Triggered-ODR allows the sensor to sample synchronously with an external trigger pulse applied on the INT2 pin.
When enabled, the sensor’s ADC and data acquisition are triggered by the rising edge of the external pulse.
This mode effectively synchronizes the sensor sampling to an external clock or event, enabling deterministic timing.
If your external trigger is a 5 kHz pulse, the sensor will sample exactly at 5 kHz. The new sample becomes available in the FIFO after a short delay (sensor internal latency). You should read the FIFO accordingly, ensuring you process data at the trigger rate.
2025-12-11 1:02 PM
this helps!
Can you help me figure out what is the sensor internal latency?
I plan on using ODR-triggered mode, with ODR/2 base LPF1 and no LPF2. I would like to extract a pair of data (XL and G) from the FIFO as soon as it's available.
I see a lot of information about the multiple ways to configure the ODR and filter cutoffs, but very little information on delays for ADC and filters. Is there a way to estimate it?
Should I configure INT1 with INT1_FIFO_TH = 1 and FIFO_CTRL1 = 1, so it will toggle at each data valid event? Or should I use INT1_DRDY_G = 1 so the interrupt is on Gyro ready, and assume the Accelerometer will be also valid?
Or is there a better way?
Thanks!
2025-12-11 1:06 PM
The LSM6DSV16X doesn’t let you force the internal ADC to run at an exact external-locked 5 kHz, but you can get close using Triggered ODR. With Triggered-ODR enabled, the sensor waits for external pulses (usually on INT2) and performs a conversion each time, effectively syncing sampling to your trigger rate. The new sample appears after a short, fixed internal delay, and then becomes available through the FIFO.
If you need a strict 5 kHz loop, triggering is more reliable than running the IMU at 7.68 kHz and pulling the latest FIFO value, which will always introduce tiny timing mismatches.
2025-12-11 1:54 PM
I agree, syncing with an external clock trough INT2 on Tiggered-ODR is the perfect solution for me.
After triggering INT2, how long must I wait before the data in the FIFO is updated? I see no mention of the time it takes between triggering and FIFO ready. What is the "short, fixed internal delay", in microseconds?
Thanks!