FXOS8700CQ is not generating Data ready interrupt on INT1

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

FXOS8700CQ is not generating Data ready interrupt on INT1

2,392 Views
chandra010
Contributor I

Hi,

I am using Hexiwear development kit. I have configured FXOS8700CQ to generate Data ready interrupt on INT1 (PTC1). But the INT1 interrupt never triggered. FXOS8700CQ configuration is mentioned below. Please let me know, am i missing some thing?

fxos_status_t FXOS_Init( handleFXOS_t* fxosHandle, const settingsFXOS_t* fxosSettings
)
{
/**
* initialize intern structures,
* which will be used from now on
*/

uint8_t chip_ID = 0x00;
uint8_t tmp[1] = {0};

memcpy( (void*)&self, (void*)fxosHandle, sizeof(self) );
memcpy( (void*)&settings, (void*)fxosSettings, sizeof(settings) );

statusI2C_t
status = I2C_Init( &(self.protocol), settings.address, settings.baudRate_kbps );

if ( STATUS_I2C_SUCCESS != status )
{
return status;
}

else
{
statusI2C_t
devStatus = STATUS_I2C_SUCCESS;

devStatus |= I2C_ReadReg( &(self.protocol), WHO_AM_I_REG, &chip_ID);

if(kFXOS_WHO_AM_I_Device_ID == chip_ID)
{

/** go to standby */
devStatus |= I2C_ReadReg(&(self.protocol), FXOS_CTRL_REG1, tmp);

devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG1, tmp[0] & (uint8_t)~ACTIVE_MASK);

devStatus |= I2C_ReadReg(&(self.protocol), FXOS_CTRL_REG1, tmp);
if ((tmp[0] & ACTIVE_MASK) == ACTIVE_MASK)
{
catch( CATCH_I2C );
}

devStatus |= I2C_WriteReg(&(self.protocol), F_SETUP_REG, F_MODE_DISABLED); // Disable the FIFO
devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG2, MOD_HIGH_RES); // /* enable auto-sleep, low power in sleep, high res in wake */

devStatus |= I2C_WriteReg(&(self.protocol), FXOS_M_CTRL_REG1, (M_RST_MASK | M_OSR_MASK | M_HMS_MASK));
devStatus |= I2C_WriteReg(&(self.protocol), FXOS_M_CTRL_REG2, (M_HYB_AUTOINC_MASK));

devStatus |= I2C_WriteReg(&(self.protocol), XYZ_DATA_CFG_REG, FULL_SCALE_4G); // +/-4g range with 0.244mg/LSB

devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG4, 0x01); // Enable DRDY interrupt
devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG5, INT_CFG_DRDY_MASK);
devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG3, WAKE_FF_MT_MASK);
devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG1, HYB_ASLP_RATE_0_8HZ | HYB_DATA_RATE_100HZ | ACTIVE_MASK);

devStatus |= I2C_ReadReg(&(self.protocol), FXOS_CTRL_REG1, tmp);

if ((tmp[0] & ACTIVE_MASK) != ACTIVE_MASK)
{
catch( CATCH_I2C );
}


if ( STATUS_I2C_SUCCESS != devStatus )
{
catch( CATCH_I2C );
}

}

return devStatus;
}
}

//Interrupt configuration

/** create basic tasks */
status |= HostInterface_Init();

SIM_SCGC5 |= SIM_SCGC5_PORTC_MASK; // Turn on clock to Port C module

PORTC_PCR1 |= (0|PORT_PCR_ISF_MASK | 

PORT_PCR_MUX(0x1) | 

PORT_PCR_IRQC(0xA)); // PC1 is configured for falling edge interrupts

//Enable PORTC interrupt on NVIC
NVIC_SetPriority( PORTC_IRQn, HEXIWEAR_TAP_IRQ_PRIO);

Thanks,

J. Chandra Sekhar

0 Kudos
5 Replies

2,381 Views
diazmarin09
NXP TechSupport
NXP TechSupport

Hello Chandra,

I hope all is great with you. Thank you for using the NXP communities.

In this case, I highly recommend using the following bare metal project as a reference for your design:

FXOS8700CQ - Bare metal example project

I hope this information helps.

Regards,

David

0 Kudos

2,347 Views
chandra010
Contributor I

Hi,

Thanks for your response.

I have checked the code and configured similarly in my Hexiwear board. But still the same, FXOS8700CQ sensor is not generating interrupt.  

const gpio_input_pin_user_config_t Acc_cfg[] = {
{
.pinName = ACC_INT1,
.config.isPullEnable = false,
.config.pullSelect = kPortPullDown,
.config.isPassiveFilterEnabled = false,
.config.isDigitalFilterEnabled = false,
.config.interrupt = kPortIntDisabled
},
{
.pinName = ACC_INT2,
.config.isPullEnable = false,
.config.pullSelect = kPortPullDown,
.config.isPassiveFilterEnabled = false,
.config.isDigitalFilterEnabled = false,
.config.interrupt = kPortIntDisabled
},
{
.pinName = GPIO_PINS_OUT_OF_RANGE,
}
};

//Configured Pin 1 of PORTC as input

GPIO_DRV_Init( Acc_cfg, NULL ); 

//Sensor configuration

devStatus |= I2C_ReadReg( &(self.protocol), WHO_AM_I_REG, &chip_ID);

if(kFXOS_WHO_AM_I_Device_ID == chip_ID)
{
/** go to standby */
FXOS_GotoStandby();

devStatus |= I2C_ReadReg(&(self.protocol), FXOS_CTRL_REG1, tmp);

devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG1, tmp[0] & (uint8_t)~ACTIVE_MASK);

devStatus |= I2C_ReadReg(&(self.protocol), FXOS_CTRL_REG1, tmp);
if ((tmp[0] & ACTIVE_MASK) == ACTIVE_MASK)
{
catch( CATCH_I2C );
}

devStatus |= I2C_WriteReg(&(self.protocol), XYZ_DATA_CFG_REG, FULL_SCALE_2G); // +/-2g range with 0.244mg/LSB

devStatus |= I2C_WriteReg(&(self.protocol), FXOS_M_CTRL_REG1, (0x1F)); // Hybrid mode (accelerometer + magnetometer), max OSR
devStatus |= I2C_WriteReg(&(self.protocol), FXOS_M_CTRL_REG2, 0x20); // M_OUT_X_MSB register 0x33 follows the OUT_Z_LSB register 0x06 (used for burst read)


devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG2, 0x02); // High Resolution mode
devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG3, 0x00); // Push-pull, active low

devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG4, 0x01); // Enable DRDY interrupt
devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG5, 0x01); // DRDY interrupt routed to INT1 - PTC1

devStatus |= I2C_WriteReg(&(self.protocol), FXOS_CTRL_REG1, 0x35); // ODR = 3.125Hz, Reduced noise, Active mode

FXOS_SetActive();

if ( STATUS_I2C_SUCCESS != devStatus )
{
catch( CATCH_I2C );
}

}

//Interrupt handler

void PORTC_IRQHandler(void)
{
PORT_HAL_ClearPortIntFlag(PORTC_BASE_PTR);
/** Write your code here ... */
/* Unblock the task by releasing the semaphore. */
portBASE_TYPE taskToWake = pdFALSE;

if (pdTRUE==xSemaphoreGiveFromISR(xReadRawDataSemaphore, &taskToWake))
{
FXOS8700CQ_DataReady = 1;
if (pdTRUE == taskToWake)
{
vPortYieldFromISR();
}
}
}

//Task to read data from sensor

void ReadRawData(task_param_t param)
{

xReadRawDataSemaphore = xSemaphoreCreateBinary();

if( xReadRawDataSemaphore == NULL )
{
configASSERT(0);
}

for(;;)
{
/*Block waiting for the semaphore to become available. */
if( xSemaphoreTake( xReadRawDataSemaphore, LONG_TIME ) == pdTRUE )
{
if(FXOS8700CQ_DataReady)
{
FXOS8700CQ_DataReady = 0;

FXOS_ReadRawData(&AccelMagData[0]);
}

vPortYieldFromISR();
}

}

}

Trying this from few days, but no luck. Request your support.

 

Thanks,

J. Chandra Sekhar

 

 

 

 

 

 

 

0 Kudos

2,315 Views
diazmarin09
NXP TechSupport
NXP TechSupport

Hello Chandra,

Thank you for using the community. 

Your device configuration seems correct. I just want to recommend applying a reset to all registers before device the configuration.

diazmarin09_0-1678823128560.png

Could you please make sure the INT1 pin is connected to your MCU/MPU input pin? Is your input pin configured for falling edge interrupts?

Regards,

David

0 Kudos

2,297 Views
chandra010
Contributor I

Hi,

To perform Soft reset, i have used below code. But this command resulting the STATUS_I2C_ERROR.

fxos_status_t FXOS_SoftReset()
{
statusI2C_t
i2cStatus = I2C_WriteReg( &(self.protocol), FXOS_CTRL_REG2, RST_MASK );

if ( STATUS_I2C_SUCCESS != i2cStatus )
{
return STATUS_FXOS_PROTOCOL_ERROR;
}
else
{
return STATUS_FXOS_SUCCESS;
}
}

 

Thanks,

J. Chandra Sekhar

0 Kudos

2,290 Views
diazmarin09
NXP TechSupport
NXP TechSupport

Hello Chandra,

I do recommend performing the reset just writing 0x40 to the CTRL_REG2 register.

diazmarin09_1-1679078726099.png

Could you please make sure the INT1 pin is connected to your MCU/MPU input pin? Is your input pin configured for falling edge interrupts?               

Regards,

David

0 Kudos
%3CLINGO-SUB%20id%3D%22lingo-sub-1611118%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EFXOS8700CQ%20is%20not%20generating%20Data%20ready%20interrupt%20on%20INT1%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1611118%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CP%3EI%20am%20using%20Hexiwear%20development%20kit.%20I%20have%20configured%26nbsp%3B%3CSPAN%3EFXOS8700CQ%20to%20generate%20Data%20ready%20interrupt%20on%20INT1%20(PTC1).%20But%20the%20INT1%20interrupt%20never%20triggered.%26nbsp%3BFXOS8700CQ%20configuration%20is%20mentioned%20below.%20Please%20let%20me%20know%2C%20am%20i%20missing%20some%20thing%3F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3Efxos_status_t%20FXOS_Init(%26nbsp%3BhandleFXOS_t*%20fxosHandle%2C%20const%20settingsFXOS_t*%20fxosSettings%3CBR%20%2F%3E)%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%2F**%3CBR%20%2F%3E*%20initialize%20intern%20structures%2C%3CBR%20%2F%3E*%20which%20will%20be%20used%20from%20now%20on%3CBR%20%2F%3E*%2F%3C%2FP%3E%3CP%3Euint8_t%20chip_ID%20%3D%200x00%3B%3CBR%20%2F%3Euint8_t%20tmp%5B1%5D%20%3D%20%7B0%7D%3B%3C%2FP%3E%3CP%3Ememcpy(%20(void*)%26amp%3Bself%2C%20(void*)fxosHandle%2C%20sizeof(self)%20)%3B%3CBR%20%2F%3Ememcpy(%20(void*)%26amp%3Bsettings%2C%20(void*)fxosSettings%2C%20sizeof(settings)%20)%3B%3C%2FP%3E%3CP%3EstatusI2C_t%3CBR%20%2F%3Estatus%20%3D%20I2C_Init(%20%26amp%3B(self.protocol)%2C%20settings.address%2C%20settings.baudRate_kbps%20)%3B%3C%2FP%3E%3CP%3Eif%20(%20STATUS_I2C_SUCCESS%20!%3D%20status%20)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Ereturn%20status%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3Eelse%3CBR%20%2F%3E%7B%3CBR%20%2F%3EstatusI2C_t%3CBR%20%2F%3EdevStatus%20%3D%20STATUS_I2C_SUCCESS%3B%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_ReadReg(%20%26amp%3B(self.protocol)%2C%20WHO_AM_I_REG%2C%20%26amp%3Bchip_ID)%3B%3C%2FP%3E%3CP%3Eif(kFXOS_WHO_AM_I_Device_ID%20%3D%3D%20chip_ID)%3CBR%20%2F%3E%7B%3C%2FP%3E%3CP%3E%2F**%20go%20to%20standby%20*%2F%3CBR%20%2F%3EdevStatus%20%7C%3D%20I2C_ReadReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%20tmp)%3B%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%20tmp%5B0%5D%20%26amp%3B%20(uint8_t)~ACTIVE_MASK)%3B%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_ReadReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%20tmp)%3B%3CBR%20%2F%3Eif%20((tmp%5B0%5D%20%26amp%3B%20ACTIVE_MASK)%20%3D%3D%20ACTIVE_MASK)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Ecatch(%20CATCH_I2C%20)%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20F_SETUP_REG%2C%20F_MODE_DISABLED)%3B%20%2F%2F%20Disable%20the%20FIFO%3CBR%20%2F%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG2%2C%20MOD_HIGH_RES)%3B%20%2F%2F%20%2F*%20enable%20auto-sleep%2C%20low%20power%20in%20sleep%2C%20high%20res%20in%20wake%20*%2F%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_M_CTRL_REG1%2C%20(M_RST_MASK%20%7C%20M_OSR_MASK%20%7C%20M_HMS_MASK))%3B%3CBR%20%2F%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_M_CTRL_REG2%2C%20(M_HYB_AUTOINC_MASK))%3B%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20XYZ_DATA_CFG_REG%2C%20FULL_SCALE_4G)%3B%20%2F%2F%20%2B%2F-4g%20range%20with%200.244mg%2FLSB%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG4%2C%200x01)%3B%20%2F%2F%20Enable%20DRDY%20interrupt%3CBR%20%2F%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG5%2C%20INT_CFG_DRDY_MASK)%3B%3CBR%20%2F%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG3%2C%20WAKE_FF_MT_MASK)%3B%3CBR%20%2F%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%20HYB_ASLP_RATE_0_8HZ%20%7C%20HYB_DATA_RATE_100HZ%20%7C%20ACTIVE_MASK)%3B%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_ReadReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%20tmp)%3B%3C%2FP%3E%3CP%3Eif%20((tmp%5B0%5D%20%26amp%3B%20ACTIVE_MASK)%20!%3D%20ACTIVE_MASK)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Ecatch(%20CATCH_I2C%20)%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3E%3CBR%20%2F%3Eif%20(%20STATUS_I2C_SUCCESS%20!%3D%20devStatus%20)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Ecatch(%20CATCH_I2C%20)%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3E%7D%3C%2FP%3E%3CP%3Ereturn%20devStatus%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3E%2F%2FInterrupt%20configuration%3C%2FP%3E%3CP%3E%2F**%20create%20basic%20tasks%20*%2F%3CBR%20%2F%3Estatus%20%7C%3D%20HostInterface_Init()%3B%3C%2FP%3E%3CP%3ESIM_SCGC5%20%7C%3D%20SIM_SCGC5_PORTC_MASK%3B%20%2F%2F%20Turn%20on%20clock%20to%20Port%20C%20module%3C%2FP%3E%3CP%3EPORTC_PCR1%20%7C%3D%20(0%7CPORT_PCR_ISF_MASK%20%7C%26nbsp%3B%3C%2FP%3E%3CP%3EPORT_PCR_MUX(0x1)%20%7C%26nbsp%3B%3C%2FP%3E%3CP%3EPORT_PCR_IRQC(0xA))%3B%20%2F%2F%20PC1%20is%20configured%20for%20falling%20edge%20interrupts%3C%2FP%3E%3CP%3E%2F%2FEnable%20PORTC%20interrupt%20on%20NVIC%3CBR%20%2F%3ENVIC_SetPriority(%20PORTC_IRQn%2C%20HEXIWEAR_TAP_IRQ_PRIO)%3B%3C%2FP%3E%3CP%3EThanks%2C%3C%2FP%3E%3CP%3EJ.%20Chandra%20Sekhar%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1617865%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20FXOS8700CQ%20is%20not%20generating%20Data%20ready%20interrupt%20on%20INT1%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1617865%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%20Chandra%2C%3C%2FP%3E%0A%3CP%3EI%20do%20recommend%20performing%20the%20reset%20just%20writing%200x40%20to%20the%20CTRL_REG2%20register.%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22diazmarin09_1-1679078726099.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22diazmarin09_1-1679078726099.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F215230i6E5EB83580CD48E4%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22diazmarin09_1-1679078726099.png%22%20alt%3D%22diazmarin09_1-1679078726099.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3ECould%20you%20please%20make%20sure%20the%20INT1%20pin%20is%20connected%20to%20your%20MCU%2FMPU%20input%20pin%3F%20Is%20your%20input%20pin%20configured%20for%20%3CSTRONG%3Efalling%20edge%20%3C%2FSTRONG%3Einterrupts%3F%20%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%3C%2FP%3E%0A%3CP%3ERegards%2C%3C%2FP%3E%0A%3CP%3EDavid%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1617735%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20FXOS8700CQ%20is%20not%20generating%20Data%20ready%20interrupt%20on%20INT1%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1617735%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CP%3ETo%20perform%20Soft%20reset%2C%20i%20have%20used%20below%20code.%20But%20this%20command%20resulting%20the%26nbsp%3BSTATUS_I2C_ERROR.%3C%2FP%3E%3CP%3Efxos_status_t%20FXOS_SoftReset()%3CBR%20%2F%3E%7B%3CBR%20%2F%3EstatusI2C_t%3CBR%20%2F%3Ei2cStatus%20%3D%20I2C_WriteReg(%20%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG2%2C%20RST_MASK%20)%3B%3C%2FP%3E%3CP%3Eif%20(%20STATUS_I2C_SUCCESS%20!%3D%20i2cStatus%20)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Ereturn%20STATUS_FXOS_PROTOCOL_ERROR%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3Eelse%3CBR%20%2F%3E%7B%3CBR%20%2F%3Ereturn%20STATUS_FXOS_SUCCESS%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EThanks%2C%3C%2FP%3E%3CP%3EJ.%20Chandra%20Sekhar%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1615194%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20FXOS8700CQ%20is%20not%20generating%20Data%20ready%20interrupt%20on%20INT1%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1615194%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%20Chandra%2C%3C%2FP%3E%0A%3CP%3EThank%20you%20for%20using%20the%20community.%26nbsp%3B%3C%2FP%3E%0A%3CP%3EYour%20device%20configuration%20seems%20correct.%20I%20just%20want%20to%20recommend%20applying%20a%20reset%20to%20all%20registers%20before%20device%20the%20configuration.%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22diazmarin09_0-1678823128560.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22diazmarin09_0-1678823128560.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F214571iD106449206949193%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22diazmarin09_0-1678823128560.png%22%20alt%3D%22diazmarin09_0-1678823128560.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3ECould%20you%20please%20make%20sure%20the%20INT1%20pin%20is%20connected%20to%20your%20MCU%2FMPU%20input%20pin%3F%20Is%20your%20input%20pin%20configured%20for%20%3CSTRONG%3Efalling%20edge%20%3C%2FSTRONG%3Einterrupts%3F%3C%2FP%3E%0A%3CP%3ERegards%2C%3C%2FP%3E%0A%3CP%3EDavid%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1613439%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20FXOS8700CQ%20is%20not%20generating%20Data%20ready%20interrupt%20on%20INT1%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1613439%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CP%3EThanks%20for%20your%20response.%3C%2FP%3E%3CP%3EI%20have%20checked%20the%20code%20and%20configured%20similarly%20in%20my%20Hexiwear%20board.%20But%20still%20the%20same%2C%26nbsp%3BFXOS8700CQ%20sensor%20is%20not%20generating%20interrupt.%26nbsp%3B%26nbsp%3B%3C%2FP%3E%3CP%3Econst%20gpio_input_pin_user_config_t%20Acc_cfg%5B%5D%20%3D%20%7B%3CBR%20%2F%3E%7B%3CBR%20%2F%3E.pinName%20%3D%20ACC_INT1%2C%3CBR%20%2F%3E.config.isPullEnable%20%3D%20false%2C%3CBR%20%2F%3E.config.pullSelect%20%3D%20kPortPullDown%2C%3CBR%20%2F%3E.config.isPassiveFilterEnabled%20%3D%20false%2C%3CBR%20%2F%3E.config.isDigitalFilterEnabled%20%3D%20false%2C%3CBR%20%2F%3E.config.interrupt%20%3D%20kPortIntDisabled%3CBR%20%2F%3E%7D%2C%3CBR%20%2F%3E%7B%3CBR%20%2F%3E.pinName%20%3D%20ACC_INT2%2C%3CBR%20%2F%3E.config.isPullEnable%20%3D%20false%2C%3CBR%20%2F%3E.config.pullSelect%20%3D%20kPortPullDown%2C%3CBR%20%2F%3E.config.isPassiveFilterEnabled%20%3D%20false%2C%3CBR%20%2F%3E.config.isDigitalFilterEnabled%20%3D%20false%2C%3CBR%20%2F%3E.config.interrupt%20%3D%20kPortIntDisabled%3CBR%20%2F%3E%7D%2C%3CBR%20%2F%3E%7B%3CBR%20%2F%3E.pinName%20%3D%20GPIO_PINS_OUT_OF_RANGE%2C%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%3B%3C%2FP%3E%3CP%3E%2F%2FConfigured%20Pin%201%20of%20PORTC%20as%20input%3C%2FP%3E%3CP%3EGPIO_DRV_Init(%20Acc_cfg%2C%20NULL%20)%3B%26nbsp%3B%3C%2FP%3E%3CP%3E%2F%2FSensor%20configuration%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_ReadReg(%20%26amp%3B(self.protocol)%2C%20WHO_AM_I_REG%2C%20%26amp%3Bchip_ID)%3B%3C%2FP%3E%3CP%3Eif(kFXOS_WHO_AM_I_Device_ID%20%3D%3D%20chip_ID)%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%2F**%20go%20to%20standby%20*%2F%3CBR%20%2F%3EFXOS_GotoStandby()%3B%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_ReadReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%20tmp)%3B%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%20tmp%5B0%5D%20%26amp%3B%20(uint8_t)~ACTIVE_MASK)%3B%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_ReadReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%20tmp)%3B%3CBR%20%2F%3Eif%20((tmp%5B0%5D%20%26amp%3B%20ACTIVE_MASK)%20%3D%3D%20ACTIVE_MASK)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Ecatch(%20CATCH_I2C%20)%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20XYZ_DATA_CFG_REG%2C%20FULL_SCALE_2G)%3B%20%2F%2F%20%2B%2F-2g%20range%20with%200.244mg%2FLSB%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_M_CTRL_REG1%2C%20(0x1F))%3B%20%2F%2F%20Hybrid%20mode%20(accelerometer%20%2B%20magnetometer)%2C%20max%20OSR%3CBR%20%2F%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_M_CTRL_REG2%2C%200x20)%3B%20%2F%2F%20M_OUT_X_MSB%20register%200x33%20follows%20the%20OUT_Z_LSB%20register%200x06%20(used%20for%20burst%20read)%3C%2FP%3E%3CP%3E%3CBR%20%2F%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG2%2C%200x02)%3B%20%2F%2F%20High%20Resolution%20mode%3CBR%20%2F%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG3%2C%200x00)%3B%20%2F%2F%20Push-pull%2C%20active%20low%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG4%2C%200x01)%3B%20%2F%2F%20Enable%20DRDY%20interrupt%3CBR%20%2F%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG5%2C%200x01)%3B%20%2F%2F%20DRDY%20interrupt%20routed%20to%20INT1%20-%20PTC1%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%200x35)%3B%20%2F%2F%20ODR%20%3D%203.125Hz%2C%20Reduced%20noise%2C%20Active%20mode%3C%2FP%3E%3CP%3EFXOS_SetActive()%3B%3C%2FP%3E%3CP%3Eif%20(%20STATUS_I2C_SUCCESS%20!%3D%20devStatus%20)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Ecatch(%20CATCH_I2C%20)%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3E%7D%3C%2FP%3E%3CP%3E%2F%2FInterrupt%20handler%3C%2FP%3E%3CP%3Evoid%20PORTC_IRQHandler(void)%3CBR%20%2F%3E%7B%3CBR%20%2F%3EPORT_HAL_ClearPortIntFlag(PORTC_BASE_PTR)%3B%3CBR%20%2F%3E%2F**%20Write%20your%20code%20here%20...%20*%2F%3CBR%20%2F%3E%2F*%20Unblock%20the%20task%20by%20releasing%20the%20semaphore.%20*%2F%3CBR%20%2F%3EportBASE_TYPE%20taskToWake%20%3D%20pdFALSE%3B%3C%2FP%3E%3CP%3Eif%20(pdTRUE%3D%3DxSemaphoreGiveFromISR(xReadRawDataSemaphore%2C%20%26amp%3BtaskToWake))%3CBR%20%2F%3E%7B%3CBR%20%2F%3EFXOS8700CQ_DataReady%20%3D%201%3B%3CBR%20%2F%3Eif%20(pdTRUE%20%3D%3D%20taskToWake)%3CBR%20%2F%3E%7B%3CBR%20%2F%3EvPortYieldFromISR()%3B%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3E%2F%2FTask%20to%20read%20data%20from%20sensor%3C%2FP%3E%3CP%3Evoid%20ReadRawData(task_param_t%20param)%3CBR%20%2F%3E%7B%3C%2FP%3E%3CP%3ExReadRawDataSemaphore%20%3D%20xSemaphoreCreateBinary()%3B%3C%2FP%3E%3CP%3Eif(%20xReadRawDataSemaphore%20%3D%3D%20NULL%20)%3CBR%20%2F%3E%7B%3CBR%20%2F%3EconfigASSERT(0)%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3Efor(%3B%3B)%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%2F*Block%20waiting%20for%20the%20semaphore%20to%20become%20available.%20*%2F%3CBR%20%2F%3Eif(%20xSemaphoreTake(%20xReadRawDataSemaphore%2C%20LONG_TIME%20)%20%3D%3D%20pdTRUE%20)%3CBR%20%2F%3E%7B%3CBR%20%2F%3Eif(FXOS8700CQ_DataReady)%3CBR%20%2F%3E%7B%3CBR%20%2F%3EFXOS8700CQ_DataReady%20%3D%200%3B%3C%2FP%3E%3CP%3EFXOS_ReadRawData(%26amp%3BAccelMagData%5B0%5D)%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3EvPortYieldFromISR()%3B%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3E%7D%3C%2FP%3E%3CP%3E%7D%3C%2FP%3E%3CP%3ETrying%20this%20from%20few%20days%2C%20but%20no%20luck.%20Request%20your%20support.%3C%2FP%3E%3CBR%20%2F%3E%3CP%3EThanks%2C%3C%2FP%3E%3CP%3EJ.%20Chandra%20Sekhar%3C%2FP%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1611163%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20FXOS8700CQ%20is%20not%20generating%20Data%20ready%20interrupt%20on%20INT1%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1611163%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%20Chandra%2C%3C%2FP%3E%0A%3CP%3EI%20hope%20all%20is%20great%20with%20you.%20Thank%20you%20for%20using%20the%20NXP%20communities.%3C%2FP%3E%0A%3CP%3EIn%20this%20case%2C%20I%20highly%20recommend%20using%20the%20following%20bare%20metal%20project%20as%20a%20reference%20for%20your%20design%3A%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2FSensors-Knowledge-Base%2FFXOS8700CQ-Bare-metal-example-project%2Fta-p%2F1103701%22%20target%3D%22_blank%22%3EFXOS8700CQ%20-%20Bare%20metal%20example%20project%3C%2FA%3E%3C%2FP%3E%0A%3CP%3EI%20hope%20this%20information%20helps.%3C%2FP%3E%0A%3CP%3ERegards%2C%3C%2FP%3E%0A%3CP%3EDavid%3C%2FP%3E%3C%2FLINGO-BODY%3E