FXOS8700CQ is not generating Data ready interrupt on INT1

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

FXOS8700CQ is not generating Data ready interrupt on INT1

2,391 次查看
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 项奖励
5 回复数

2,380 次查看
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 项奖励

2,346 次查看
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 项奖励

2,314 次查看
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 项奖励

2,296 次查看
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 项奖励

2,289 次查看
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 项奖励
%3CLINGO-SUB%20id%3D%22lingo-sub-1611118%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EFXOS8700CQ%20%E6%9C%AA%E5%9C%A8%20INT1%20%E4%B8%8A%E4%BA%A7%E7%94%9F%E6%95%B0%E6%8D%AE%E5%B0%B1%E7%BB%AA%E4%B8%AD%E6%96%AD%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1611118%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%3C%2FP%3E%3CP%3E%E6%88%91%E4%BD%BF%E7%94%A8%E7%9A%84%E6%98%AF%20Hexiwear%20%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6%E3%80%82%E6%88%91%E5%B7%B2%E5%B0%86%20%3CSPAN%3EFXOS8700CQ%20%E9%85%8D%E7%BD%AE%E4%B8%BA%E5%9C%A8%20INT1%20(PTC1)%20%E4%B8%8A%E7%94%9F%E6%88%90%E6%95%B0%E6%8D%AE%E5%B0%B1%E7%BB%AA%E4%B8%AD%E6%96%AD%E3%80%82%E4%BD%86%E6%98%AF%20INT1%20%E4%B8%AD%E6%96%AD%E4%BB%8E%E6%9C%AA%E8%A7%A6%E5%8F%91%E3%80%82FXOS8700CQ%20%E9%85%8D%E7%BD%AE%E5%A6%82%E4%B8%8B%E6%89%80%E8%BF%B0%E3%80%82%E8%AF%B7%E5%91%8A%E8%AF%89%E6%88%91%EF%BC%8C%E6%88%91%E9%94%99%E8%BF%87%E4%BA%86%E4%BB%80%E4%B9%88%E5%90%97%EF%BC%9F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3Efxos_status_t%20FXOS_Init(%20handleFXOS_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*%20%E5%88%9D%E5%A7%8B%E5%8C%96%E5%AE%9E%E4%B9%A0%E7%BB%93%E6%9E%84%EF%BC%8C%3CBR%20%2F%3E*%20%E4%BB%8E%E7%8E%B0%E5%9C%A8%E8%B5%B7%E5%B0%86%E4%BD%BF%E7%94%A8%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%EF%BC%9B%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)%EF%BC%9B%3C%2FP%3E%3CP%3EstatusI2C_t%3CBR%20%2F%3Estatus%20%3D%20I2C_Init(%26amp%3B(self.protocol)%E3%80%81%E8%AE%BE%E7%BD%AE%E5%9C%B0%E5%9D%80%E3%80%81settings.baudRate_kbps)%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%EF%BC%9B%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_ReadReg(%26amp%3B(self.protocol)%E3%80%81WHO_AM_I_REG%2C%26amp%3Bchip_ID%EF%BC%89%EF%BC%9B%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**%20%E8%BF%9B%E5%85%A5%E5%BE%85%E6%9C%BA%E7%8A%B6%E6%80%81%20*%2F%3CBR%20%2F%3EdevStatus%20%7C%3D%20I2C_ReadReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%20tmp)%EF%BC%9B%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%20tmp%5B0%5D%26amp%3B%20(uint8_t)~ACTIVE_MASK)%EF%BC%9B%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%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%20%E7%A6%81%E7%94%A8%E5%85%88%E8%BF%9B%E5%85%88%E5%87%BA%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*%20%E5%90%AF%E7%94%A8%E8%87%AA%E5%8A%A8%E4%BC%91%E7%9C%A0%EF%BC%8C%E4%BC%91%E7%9C%A0%E6%97%B6%E4%BD%8E%E5%8A%9F%E8%80%97%EF%BC%8C%E5%94%A4%E9%86%92%E6%97%B6%E9%AB%98%E5%88%86%E8%BE%A8%E7%8E%87%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))%EF%BC%9B%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%20%E8%8C%83%E5%9B%B4%E4%B8%BA%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%20devStatus%20%7C%3D%20I2C_WriteReg(%20(self.protocol)%2C%20FXOS_CTRL_REG4%2C%200x01)%3B%20%2F%2F%20Enable%20DRDY%20interrupt%20protocol)%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)%EF%BC%9B%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_ReadReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%20tmp)%EF%BC%9B%3C%2FP%3E%3CP%3Eif%20((tmp%5B0%5D%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%2F%E4%B8%AD%E6%96%AD%E9%85%8D%E7%BD%AE%3C%2FP%3E%3CP%3E%2F**%20%E5%88%9B%E5%BB%BA%E5%9F%BA%E6%9C%AC%E4%BB%BB%E5%8A%A1%20*%2F%3CBR%20%2F%3Estatus%20%7C%3D%20HostInterface_Init()%EF%BC%9B%3C%2FP%3E%3CP%3ESIM_SCGC5%20%7C%3D%20SIM_SCGC5_PORTC_MASK%3B%20%2F%2F%20%E6%89%93%E5%BC%80%E7%AB%AF%E5%8F%A3%20C%20%E6%A8%A1%E5%9D%97%E7%9A%84%E6%97%B6%E9%92%9F%3C%2FP%3E%3CP%3Eportc_pcr1%20%7C%3D%20(0%7Cport_pcr_isf_mask%20%7C)%20%3C%2FP%3E%3CP%3EPORT_PCR_MUX(0x1)%20%7C%20PORT_PCR_MUX(0x1)%20%3C%2FP%3E%3CP%3EPORT_PCR_IRQC(0xA))%3B%20%2F%2F%20PC1%20%E5%B7%B2%E9%85%8D%E7%BD%AE%E4%B8%BA%E4%B8%8B%E9%99%8D%E6%B2%BF%E4%B8%AD%E6%96%AD%3C%2FP%3E%3CP%3E%2F%2FEnable%20PORTC%20interrupt%20on%20NVIC%3CBR%20%2F%3ENVIC_SetPriority(PORTC_IRQn%EF%BC%8CHEXIWEAR_TAP_IRQ_PRIO)%EF%BC%9B%3C%2FP%3E%3CP%3E%E8%B0%A2%E8%B0%A2%EF%BC%81%3C%2FP%3E%3CP%3EJ.%E9%92%B1%E5%BE%B7%E6%8B%89-%E5%A1%9E%E5%8D%A1%E5%B0%94%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%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E9%92%B1%E5%BE%B7%E6%8B%89%3C%2FP%3E%0A%3CP%3E%E6%88%91%E7%A1%AE%E5%AE%9E%E5%BB%BA%E8%AE%AE%E7%9B%B4%E6%8E%A5%E5%B0%86%200x40%20%E5%86%99%E5%85%A5%20CTRL_REG2%20%E5%AF%84%E5%AD%98%E5%99%A8%E6%9D%A5%E6%89%A7%E8%A1%8C%20RESET%E3%80%82%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%3E%E8%83%BD%E5%90%A6%E7%A1%AE%E4%BF%9D%20INT1%20%E5%BC%95%E8%84%9A%E8%BF%9E%E6%8E%A5%E5%88%B0%20MCU%2FMPU%20%E8%BE%93%E5%85%A5%E5%BC%95%E8%84%9A%EF%BC%9F%E8%BE%93%E5%85%A5%E5%BC%95%E8%84%9A%E6%98%AF%E5%90%A6%E9%85%8D%E7%BD%AE%E4%B8%BA%3CSTRONG%3E%E4%B8%8B%E9%99%8D%E6%B2%BF%20%3C%2FSTRONG%3E%E4%B8%AD%E6%96%AD%EF%BC%9F%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2FP%3E%0A%3CP%3E%E6%AD%A4%E8%87%B4%EF%BC%8C%3C%2FP%3E%0A%3CP%3E%E6%88%B4%E7%BB%B4%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%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%3C%2FP%3E%3CP%3E%E4%B8%BA%E4%BA%86%E6%89%A7%E8%A1%8C%E8%BD%AF%E5%A4%8D%E4%BD%8D%EF%BC%8C%E6%88%91%E4%BD%BF%E7%94%A8%E4%BA%86%E4%B8%8B%E9%9D%A2%E7%9A%84%E4%BB%A3%E7%A0%81%E3%80%82%E4%BD%86%E8%AF%A5%E5%91%BD%E4%BB%A4%E4%BC%9A%E5%AF%BC%E8%87%B4%20STATUS_I2C_ERROR%E3%80%82%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(%26amp%3B(self.protocol)%E3%80%81fxos_ctrl_reg2%2C%20rst_mask%20%EF%BC%89%EF%BC%9B%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%3E%E8%B0%A2%E8%B0%A2%EF%BC%81%3C%2FP%3E%3CP%3EJ.%E9%92%B1%E5%BE%B7%E6%8B%89-%E5%A1%9E%E5%8D%A1%E5%B0%94%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%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E9%92%B1%E5%BE%B7%E6%8B%89%3C%2FP%3E%0A%3CP%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E4%BD%BF%E7%94%A8%E6%9C%AC%E7%A4%BE%E5%8C%BA%E3%80%82%20%3C%2FP%3E%0A%3CP%3E%E6%82%A8%E7%9A%84%E8%AE%BE%E5%A4%87%E9%85%8D%E7%BD%AE%E4%BC%BC%E4%B9%8E%E6%AD%A3%E7%A1%AE%E3%80%82%E6%88%91%E5%8F%AA%E6%83%B3%E5%BB%BA%E8%AE%AE%E5%9C%A8%E8%AE%BE%E5%A4%87%E9%85%8D%E7%BD%AE%E4%B9%8B%E5%89%8D%E5%AF%B9%E6%89%80%E6%9C%89%E5%AF%84%E5%AD%98%E5%99%A8%E8%BF%9B%E8%A1%8CRESET%E3%80%82%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%3E%E8%83%BD%E5%90%A6%E7%A1%AE%E4%BF%9D%20INT1%20%E5%BC%95%E8%84%9A%E8%BF%9E%E6%8E%A5%E5%88%B0%20MCU%2FMPU%20%E8%BE%93%E5%85%A5%E5%BC%95%E8%84%9A%EF%BC%9F%E8%BE%93%E5%85%A5%E5%BC%95%E8%84%9A%E6%98%AF%E5%90%A6%E9%85%8D%E7%BD%AE%E4%B8%BA%3CSTRONG%3E%E4%B8%8B%E9%99%8D%E6%B2%BF%20%3C%2FSTRONG%3E%E4%B8%AD%E6%96%AD%EF%BC%9F%3C%2FP%3E%0A%3CP%3E%E6%AD%A4%E8%87%B4%EF%BC%8C%3C%2FP%3E%0A%3CP%3E%E6%88%B4%E7%BB%B4%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%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%3C%2FP%3E%3CP%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%9B%9E%E5%A4%8D%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E5%B7%B2%E7%BB%8F%E6%A3%80%E6%9F%A5%E4%BA%86%E4%BB%A3%E7%A0%81%E5%B9%B6%E5%9C%A8%E6%88%91%E7%9A%84%20Hexiwear%20%E6%9D%BF%E4%B8%AD%E8%BF%9B%E8%A1%8C%E4%BA%86%E7%B1%BB%E4%BC%BC%E7%9A%84%E9%85%8D%E7%BD%AE%E3%80%82%E4%BD%86%E8%BF%98%E6%98%AF%E4%B8%80%E6%A0%B7%EF%BC%8CFXOS8700CQ%20%E4%BC%A0%E6%84%9F%E5%99%A8%E6%B2%A1%E6%9C%89%E4%BA%A7%E7%94%9F%E4%B8%AD%E6%96%AD%E3%80%82%20%20%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%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%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%3D%20gpio_pins_out_of_range%EF%BC%8C%3CBR%20%2F%3E%7D%3CBR%20%2F%3E%7D%EF%BC%9B%3C%2FP%3E%3CP%3E%2F%2F%E5%B0%86%20PORTC%20%E7%9A%84%E5%BC%95%E8%84%9A%201%20%E9%85%8D%E7%BD%AE%E4%B8%BA%E8%BE%93%E5%85%A5%E7%AB%AF%3C%2FP%3E%3CP%3EGPIO_DRV_Init(%20Acc_cfg%2C%20NULL%20)%EF%BC%9B%20%3C%2FP%3E%3CP%3E%2F%2F%E4%BC%A0%E6%84%9F%E5%99%A8%E9%85%8D%E7%BD%AE%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_ReadReg(%26amp%3B(self.protocol)%E3%80%81WHO_AM_I_REG%2C%26amp%3Bchip_ID%EF%BC%89%EF%BC%9B%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**%20%E8%BF%9B%E5%85%A5%E5%BE%85%E6%9C%BA%E7%8A%B6%E6%80%81%20*%2F%3CBR%20%2F%3EFXOS_GotoStandby()%EF%BC%9B%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_ReadReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%20tmp)%EF%BC%9B%3C%2FP%3E%3CP%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG1%2C%20tmp%5B0%5D%26amp%3B%20(uint8_t)~ACTIVE_MASK)%EF%BC%9B%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%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%20%E8%8C%83%E5%9B%B4%E4%B8%BA%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%20%E6%B7%B7%E5%90%88%E6%A8%A1%E5%BC%8F%EF%BC%88%E5%8A%A0%E9%80%9F%E5%BA%A6%E8%AE%A1%20%2B%20%E7%A3%81%E5%8A%9B%E8%AE%A1%EF%BC%89%EF%BC%8C%E6%9C%80%E5%A4%A7%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%20%E5%AF%84%E5%AD%98%E5%99%A8%200x33%20%E7%B4%A7%E8%B7%9F%20OUT_Z_LSB%20%E5%AF%84%E5%AD%98%E5%99%A8%200x06%EF%BC%88%E7%94%A8%E4%BA%8E%E7%AA%81%E5%8F%91%E8%AF%BB%E5%8F%96%EF%BC%89%E3%80%82%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%20%E9%AB%98%E5%88%86%E8%BE%A8%E7%8E%87%E6%A8%A1%E5%BC%8F%3CBR%20%2F%3EdevStatus%20%7C%3D%20I2C_WriteReg(%26amp%3B(self.protocol)%2C%20FXOS_CTRL_REG3%2C%200x00)%3B%20%2F%2F%20%E6%8E%A8%E6%8C%BD%EF%BC%8C%E4%BD%8E%E7%94%B5%E5%B9%B3%E6%9C%89%E6%95%88%E3%80%82%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_WritereReg%20(%26amp%3B%20(self.protocol)%EF%BC%8CFXOS_CTRL_REG1%EF%BC%8C0x35)%3B%2F%2FODR%20%3D%203.125Hz%EF%BC%8C%E9%99%8D%E5%99%AA%EF%BC%8C%E8%BF%90%E8%A1%8C%E6%A8%A1%E5%BC%8F%3C%2FP%3E%3CP%3EFXOS_SetActive()%EF%BC%9B%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%2F%E4%B8%AD%E6%96%AD%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%3C%2FP%3E%3CP%3Evoid%20portc_irqHandler%20(void)%20%3CBR%20%2F%3E%20%7Bport_%20%3CBR%20%2F%3E%20HAL_ClearPortintFlag%20(PORTC_BASE_PTR)%3B%20%2F**%20%E5%9C%A8%E8%BF%99%E9%87%8C%E5%86%99%E4%BD%A0%E7%9A%84%E4%BB%A3%E7%A0%81...%20%3CBR%20%2F%3E*%2F%20%3CBR%20%2F%3E%20%2F*%20%E9%80%9A%E8%BF%87%E9%87%8A%E6%94%BE%E4%BF%A1%E5%8F%B7%E9%87%8F%E6%9D%A5%E8%A7%A3%E9%94%81%E4%BB%BB%E5%8A%A1%E3%80%82*%2F%3CBR%20%2F%3EportBASE_TYPE%20taskToWake%20%3D%20pdFALSE%EF%BC%9B%3C%2FP%3E%3CP%3Eif%20(pdTRUE%3D%3DxSemaphoreGiveFromISR(xReadRawDataSemaphore%2C%26amp%3BtaskoWake))%3CBR%20%2F%3E%7B%3CBR%20%2F%3EFXOS8700CQ_DataReady%20%3D%201%3B%3CBR%20%2F%3Eif%20(pdTRUE%20%3D%3D%20taskoWake)%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%2F%20%E4%BB%8E%E4%BC%A0%E6%84%9F%E5%99%A8%E8%AF%BB%E5%8F%96%E6%95%B0%E6%8D%AE%E7%9A%84%E4%BB%BB%E5%8A%A1%3C%2FP%3E%3CP%3Evoid%20ReadRawData(task_param_t%20param)%3CBR%20%2F%3E%7B%3C%2FP%3E%3CP%3ExReadRawDataSemaphore%20%3D%20xSemaphoreCreateBinary()%EF%BC%9B%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*%E9%98%BB%E5%A1%9E%E7%AD%89%E5%BE%85%E5%AF%84%E5%AD%98%E5%99%A8%E5%8F%AF%E7%94%A8%E3%80%82*%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%EF%BC%9B%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%3E%E5%87%A0%E5%A4%A9%E6%9D%A5%E4%B8%80%E7%9B%B4%E5%9C%A8%E5%B0%9D%E8%AF%95%EF%BC%8C%E4%BD%86%E6%B2%A1%E6%9C%89%E6%88%90%E5%8A%9F%E3%80%82%E8%AF%B7%E6%B1%82%E6%82%A8%E7%9A%84%E6%94%AF%E6%8C%81%E3%80%82%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%E8%B0%A2%E8%B0%A2%EF%BC%81%3C%2FP%3E%3CP%3EJ.%E9%92%B1%E5%BE%B7%E6%8B%89-%E5%A1%9E%E5%8D%A1%E5%B0%94%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%3E%E4%BD%A0%E5%A5%BD%EF%BC%8C%E9%92%B1%E5%BE%B7%E6%8B%89%3C%2FP%3E%0A%3CP%3E%E5%B8%8C%E6%9C%9B%E4%BD%A0%E4%B8%80%E5%88%87%E9%83%BD%E5%A5%BD%E3%80%82%E6%84%9F%E8%B0%A2%E6%82%A8%E4%BD%BF%E7%94%A8%E6%81%A9%E6%99%BA%E6%B5%A6%E7%A4%BE%E5%8C%BA%E3%80%82%3C%2FP%3E%0A%3CP%3E%E5%9C%A8%E8%BF%99%E7%A7%8D%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8C%E6%88%91%E5%BC%BA%E7%83%88%E5%BB%BA%E8%AE%AE%E4%BD%BF%E7%94%A8%E4%BB%A5%E4%B8%8B%E8%A3%B8%E6%9C%BA%E9%A1%B9%E7%9B%AE%E4%BD%9C%E4%B8%BA%E8%AE%BE%E8%AE%A1%E5%8F%82%E8%80%83%EF%BC%9A%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%E2%80%94%E2%80%94%E8%A3%B8%E6%9C%BA%E9%A1%B9%E7%9B%AE%E7%A4%BA%E4%BE%8B%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E5%B8%8C%E6%9C%9B%E8%BF%99%E4%BA%9B%E4%BF%A1%E6%81%AF%E5%AF%B9%E6%82%A8%E6%9C%89%E6%89%80%E5%B8%AE%E5%8A%A9%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%AD%A4%E8%87%B4%EF%BC%8C%3C%2FP%3E%0A%3CP%3E%E6%88%B4%E7%BB%B4%3C%2FP%3E%3C%2FLINGO-BODY%3E