[LSM6DSL] I2C Mode replying NACK to all data transfers.
Hi,
We are using the LSM6DSL sensor in a custom PCB, we are also using the X-CUBE-MEMS extension drivers to communicate with the MEMS sensor. The image below is the schematic part of the LSM6DSL. VCC_IMU being 3v3, W1 is closed with a solder jumper to VCC_IMU, the microcontroller is also powered at 3v3 and the I2C logic signals are 3v3, the Pull-Up resistors are 4k7 each one, the bus is running at 100000.

The configuration of the IMU using the X-CUBE-MEMS API is:
static LSM6DSL_Object_t lsm;
static LSM6DSL_IO_t io_ctx = {
.Address = LSM6DSL_I2C_ADD_H,
.BusType = LSM6DSL_I2C_BUS,
.Init = BSP_I2C1_Init,
.DeInit = BSP_I2C1_DeInit,
.GetTick = BSP_GetTick,
.ReadReg = BSP_I2C1_ReadReg,
.WriteReg = BSP_I2C1_WriteReg
};
When trying to use LSM6DSL_Init, LSM6DSL_ACC_Enable or LSM6DSL_GYRO_Enable the IMU replies with an NACK. Here is the logic analyzer capture of the microcontroller trying to communicate with the IMU.
So my questions are:
- Besides of wiring CS to logic high, do i need to do anything else to configure the LSM6DSL to use the I2C bus?
Regards,
Carlos
