hi,
yes, it is configured as data ready interrupt pin, to tell the master the data is ready every 40ms. the problem is what I expect is the INT1 pin should keep for the same time each interrupt, however, what I got from the oscilloscope is the INT1 PIN's keeping time is increasing from 200us to 10ms , then back to 200us and increase to 10ms again. That means the LPI2C reading task's keeping time is varying, not fixed. And I hope the LPI2C reading task's keeping time is very short, nearly 300us.
Besides, I use the following to get the fxls8962's data. Thank you.
Status = LPI2C_DRV_MasterSendDataBlocking(INST_LPI2C1, &TxBuffer,TRANSFER_SIZE_BYTE , true,GSM_SPI_TIMEOUT);
if (STATUS_SUCCESS != Status)
{
return G_SENSOR_ERROR_WRITE;
}
/* Request data from the bus slave */
// DISABLE_INTERRUPTS();//must be blocked
Status = LPI2C_DRV_MasterReceiveDataBlocking(INST_LPI2C1, pBuffer, len, true,GSM_SPI_TIMEOUT);// len =6 byte or 1 byte is the same result
// ENABLE_INTERRUPTS();
if (STATUS_SUCCESS != Status)
{
return G_SENSOR_ERROR_READ;
}
or, the configuration of fxls8962 is not correct? But I can read the data by I2C. my configuration is as the following.
registerwritelist_t cFxls8962ConfigMotionDetect[] = {
{FXLS8962_SENS_CONFIG3, FXLS8962_SENS_CONFIG3_WAKE_ODR_100HZ, FXLS8962_SENS_CONFIG3_WAKE_ODR_MASK},
{FXLS8962_SENS_CONFIG4, FXLS8962_SENS_CONFIG4_DRDY_PUL_DIS, FXLS8962_SENS_CONFIG4_DRDY_PUL_MASK},
{FXLS8962_INT_EN, FXLS8962_INT_EN_DRDY_EN_EN, FXLS8962_INT_EN_DRDY_EN_MASK},
/* {FXLS8962_INT_EN, FXLS8962_INT_EN_SDCD_OT_EN_EN, FXLS8962_INT_EN_SDCD_OT_EN_MASK},*/
{FXLS8962_ORIENT_CONFIG, FXLS8962_ORIENT_CONFIG_ORIENT_ENABLE_DIS, FXLS8962_ORIENT_CONFIG_ORIENT_ENABLE_MASK},
{FXLS8962_SDCD_CONFIG1,
FXLS8962_SDCD_CONFIG1_X_OT_EN_EN | FXLS8962_SDCD_CONFIG1_Y_OT_EN_DIS | FXLS8962_SDCD_CONFIG1_Z_OT_EN_DIS,
FXLS8962_SDCD_CONFIG1_X_OT_EN_MASK | FXLS8962_SDCD_CONFIG1_Y_OT_EN_MASK | FXLS8962_SDCD_CONFIG1_Z_OT_EN_MASK},
{FXLS8962_SDCD_CONFIG2, FXLS8962_SDCD_CONFIG2_SDCD_EN_DIS | FXLS8962_SDCD_CONFIG2_REF_UPDM_FIXED_VAL |
FXLS8962_SDCD_CONFIG2_OT_DBCTM_CLEARED | FXLS8962_SDCD_CONFIG2_WT_DBCTM_CLEARED,
FXLS8962_SDCD_CONFIG2_SDCD_EN_MASK | FXLS8962_SDCD_CONFIG2_REF_UPDM_MASK | FXLS8962_SDCD_CONFIG2_OT_DBCTM_MASK |
FXLS8962_SDCD_CONFIG2_WT_DBCTM_MASK},
{FXLS8962_SDCD_WT_DBCNT, MD_SDCD_WT_DBCNT, 0},
{FXLS8962_SDCD_LTHS_LSB, SDCD_LTHS_LSB, 0},
{FXLS8962_SDCD_LTHS_MSB, SDCD_LTHS_MSB, 0},
{FXLS8962_SDCD_UTHS_LSB, SDCD_UTHS_LSB, 0},
{FXLS8962_SDCD_UTHS_MSB, SDCD_UTHS_MSB, 0}
};
Yanpo, li
Regards,