2024-02-08 06:58 AM
Hi,
I'm developing a custom board that using the LSM6DSOTR with NRF52832 microcontroler. In my project I defined that 3 minutes without moviment, the system is turned off and wake up when the LSM6DSOTR detect the movement. Below, the code to init my sensor.
void Wake_up_init(void){
write_register(LSM6DS0_WAKE_UP_DUR, 0x00); // Set Activity/Inactivity threshold
write_register(LSM6DS0_WAKE_UP_THS, 0x02); // Select sleep-change notification - Select Slope Filter
write_register(LSM6DS0_TAP_CFG0, 0x51); // Turn on the gyroscope - ODR_G = 104 Hz, FS_G = ±2000 dps
write_register(LSM6DS0_TAP_CFG2, 0x80); // Set duration for Inactivity detection - Select Activity/Inactivity threshold resolution and duration
write_register(LSM6DS0_CTRL1_XL, 0x70); // Turn on the accelerometer - ODR_XL = 104 Hz, FS_XL = ±2 g
write_register(LSM6DS0_CTRL2_G, 0x4C); // Turn on the gyroscope - ODR_G = 104 Hz, FS_G = ±2000 dps
nrf_delay_ms(4);
write_register(LSM6DS0_CTRL1_XL, 0x10); // Turn on the accelerometer - ODR_XL = 104 Hz, FS_XL = ±2 g
write_register(LSM6DS0_MD1_CFG, 0x20); // Activity/Inactivity interrupt driven to INT1 pin
}
This function works fine in the previous version of my board, but now in new version board always reset. I connected the osciloscope on INT1 pin to verify and the LSM6DSOTR generate pulses without detect any movement.
I suspect that the problem can be the soldering temperature, because, I soldering with 400ºC and the JEDEC J-STD-020 show the critical temperature under 270ºC.
This situation can damage the device?
Can you help me?
Regards