2024-12-20 08:25 AM - edited 2024-12-20 10:58 AM
Hey Everyone,
I bought this sensor
https://www.sparkfun.com/products/21325 and it is default to work as i2c. Which I do. I can read from this imu using regular polling, but I would like to use interrupts. But the issue is, interrupts to do not fire at all, I am not sure why.
I am following the stm32 examples on github
https://github.com/STMicroelectronics/STMems_Standard_C_drivers/tree/master/lsm6dsv16x_STdC/examples
and I still have issues getting this sensor to work as an interrupt. Am I missing something? Do I need a pull down or pull up resistor on the interrupt pin?
I worked with interrupts, theyre not difficult, but not sure why this specific sensor I cannot get to work.
for example, what i am experiencing right now whether I go with fifo or data ready signal, the int pin is always high. It does not go low. I did put a pull down to see if I can bring it down, but even with a 10k resistor, the int2 in this example, is always high. I also checked status register and I do have
2024-12-20 05:00 PM
How do I closed this?
I figured it out. I had to flush/read the interrupt flag right after setting it up. Im not sure if that is the right way?
right after the timestamp I added these lines
lsm6dsv16x_data_ready_t drdy;
lsm6dsv16x_flag_data_ready_get(&xyAccel, &drdy);
if (drdy.drdy_xl) {
int16_t dummy[3];
lsm6dsv16x_acceleration_raw_get(&xyAccel, dummy);
/* Clear existing FIFO data */
and my interrupts started to work. any ideas why this worked?