![]() |
ISSDK
1.8
IoT Sensing Software Development Kit
|
The fxos8700_drv.c file implements the fxos8700 sensor driver functional interfaces. More...
Go to the source code of this file.
Functions | |
void | FXOS8700_SPI_ReadPreprocess (void *pCmdOut, uint32_t offset, uint32_t size) |
The SPI Read Pre-Process function to generate Sensor specific SPI Message Header. More... | |
void | FXOS8700_SPI_WritePreprocess (void *pCmdOut, uint32_t offset, uint32_t size, void *pWritebuffer) |
The SPI Write Pre-Process function to generate Sensor specific SPI Message Header. More... | |
int32_t | FXOS8700_SPI_Initialize (fxos8700_spi_sensorhandle_t *pSensorHandle, ARM_DRIVER_SPI *pBus, uint8_t index, void *pSlaveSelect, uint8_t whoAmi) |
The interface function to initialize the sensor. More... | |
void | FXOS8700_SPI_SetIdleTask (fxos8700_spi_sensorhandle_t *pSensorHandle, registeridlefunction_t idleTask, void *userParam) |
: The interface function to set the SPI Idle Task. More... | |
int32_t | FXOS8700_SPI_Configure (fxos8700_spi_sensorhandle_t *pSensorHandle, const registerwritelist_t *pRegWriteList) |
The interface function to configure he sensor. More... | |
int32_t | FXOS8700_SPI_ReadData (fxos8700_spi_sensorhandle_t *pSensorHandle, const registerreadlist_t *pReadList, uint8_t *pBuffer) |
The interface function to read the sensor data. More... | |
int32_t | FXOS8700_SPI_Deinit (fxos8700_spi_sensorhandle_t *pSensorHandle) |
The interface function to De Initialize sensor.. More... | |
int32_t | FXOS8700_I2C_Initialize (fxos8700_i2c_sensorhandle_t *pSensorHandle, ARM_DRIVER_I2C *pBus, uint8_t index, uint16_t sAddress, uint8_t whoAmi) |
The interface function to initialize the sensor. More... | |
void | FXOS8700_I2C_SetIdleTask (fxos8700_i2c_sensorhandle_t *pSensorHandle, registeridlefunction_t idleTask, void *userParam) |
: The interface function to set the I2C Idle Task. More... | |
int32_t | FXOS8700_I2C_Configure (fxos8700_i2c_sensorhandle_t *pSensorHandle, const registerwritelist_t *pRegWriteList) |
The interface function to configure he sensor. More... | |
int32_t | FXOS8700_I2C_ReadData (fxos8700_i2c_sensorhandle_t *pSensorHandle, const registerreadlist_t *pReadList, uint8_t *pBuffer) |
The interface function to read the sensor data. More... | |
int32_t | FXOS8700_I2C_Deinit (fxos8700_i2c_sensorhandle_t *pSensorHandle) |
The interface function to De Initialize sensor.. More... | |
Variables | |
uint8_t | fxos8700_spiRead_CmdBuffer [FXOS8700_SPI_MAX_MSG_SIZE] = {0} |
uint8_t | fxos8700_spiRead_DataBuffer [FXOS8700_SPI_MAX_MSG_SIZE] = {0} |
uint8_t | fxos8700_spiWrite_CmdDataBuffer [FXOS8700_SPI_MAX_MSG_SIZE] = {0} |
The fxos8700_drv.c file implements the fxos8700 sensor driver functional interfaces.
Definition in file fxos8700_drv.c.
int32_t FXOS8700_I2C_Configure | ( | fxos8700_i2c_sensorhandle_t * | pSensorHandle, |
const registerwritelist_t * | pRegWriteList | ||
) |
The interface function to configure he sensor.
This function configure the sensor with requested ODR, Range and registers in the regsiter pair array.
[in] | pSensorHandle | handle to the sensor. |
[in] | pRegWriteList | pointer to the register list. |
Validate for the correct handle and register write list.
Check whether sensor handle is initialized before applying configuration.
Definition at line 260 of file fxos8700_drv.c.
References fxos8700_i2c_sensorhandle_t::deviceInfo, FXOS8700_CTRL_REG1, FXOS8700_CTRL_REG1_ACTIVE_ACTIVE_MODE, FXOS8700_CTRL_REG1_ACTIVE_MASK, FXOS8700_CTRL_REG1_ACTIVE_STANDBY_MODE, int32_t(), fxos8700_i2c_sensorhandle_t::isInitialized, fxos8700_i2c_sensorhandle_t::pCommDrv, Register_I2C_Write(), SENSOR_ERROR_INIT, SENSOR_ERROR_INVALID_PARAM, SENSOR_ERROR_NONE, SENSOR_ERROR_WRITE, Sensor_I2C_Write(), fxos8700_i2c_sensorhandle_t::slaveAddress, and status.
Referenced by apply_register_write(), and main().
int32_t FXOS8700_I2C_Deinit | ( | fxos8700_i2c_sensorhandle_t * | pSensorHandle | ) |
The interface function to De Initialize sensor..
This function made sensor in a power safe state and de initialize its handle.
[in] | pSensorHandle | handle to the sensor. |
Check whether sensor handle is initialized before triggering sensor reset.
Trigger sensor device reset.
Definition at line 334 of file fxos8700_drv.c.
References fxos8700_i2c_sensorhandle_t::deviceInfo, FXOS8700_CTRL_REG2, FXOS8700_CTRL_REG2_RST_EN, FXOS8700_CTRL_REG2_RST_MASK, fxos8700_i2c_sensorhandle_t::isInitialized, fxos8700_i2c_sensorhandle_t::pCommDrv, Register_I2C_Write(), SENSOR_ERROR_INIT, SENSOR_ERROR_INVALID_PARAM, SENSOR_ERROR_NONE, and fxos8700_i2c_sensorhandle_t::slaveAddress.
int32_t FXOS8700_I2C_Initialize | ( | fxos8700_i2c_sensorhandle_t * | pSensorHandle, |
ARM_DRIVER_I2C * | pBus, | ||
uint8_t | index, | ||
uint16_t | sAddress, | ||
uint8_t | whoAmi | ||
) |
The interface function to initialize the sensor.
This function initialize the sensor and sensor handle.
[in] | pSensorHandle | handle to the sensor. |
[in] | pBus | pointer to the CMSIS API compatible I2C bus object. |
[in] | index | the I2C device number. |
[in] | sAddress | slave address of the device on the bus. |
[in] | whoami | WHO_AM_I value of the device. |
Read and store the device's WHO_AM_I.
Initialize the sensor handle.
Definition at line 222 of file fxos8700_drv.c.
References fxos8700_i2c_sensorhandle_t::deviceInfo, registerDeviceInfo_t::deviceInstance, registerDeviceInfo_t::functionParam, FXOS8700_WHO_AM_I, registerDeviceInfo_t::idleFunction, int32_t(), fxos8700_i2c_sensorhandle_t::isInitialized, fxos8700_i2c_sensorhandle_t::pCommDrv, Register_I2C_Read(), SENSOR_ERROR_INIT, SENSOR_ERROR_INVALID_PARAM, SENSOR_ERROR_NONE, fxos8700_i2c_sensorhandle_t::slaveAddress, and status.
Referenced by main().
int32_t FXOS8700_I2C_ReadData | ( | fxos8700_i2c_sensorhandle_t * | pSensorHandle, |
const registerreadlist_t * | pReadList, | ||
uint8_t * | pBuffer | ||
) |
The interface function to read the sensor data.
This function read the sensor data out from the device and returns raw data in a byte stream.
[in] | pSensorHandle | handle to the sensor. |
[in] | pReadList | pointer to the list of device registers and values to read. |
[out] | pBuffer | buffer which holds raw sensor data.This buffer may be back to back databuffer based command read in the list. |
Validate for the correct handle and register read list.
Check whether sensor handle is initialized before reading sensor data.
Parse through the read list and read the data one by one
Definition at line 305 of file fxos8700_drv.c.
References fxos8700_i2c_sensorhandle_t::deviceInfo, int32_t(), fxos8700_i2c_sensorhandle_t::isInitialized, fxos8700_i2c_sensorhandle_t::pCommDrv, SENSOR_ERROR_INIT, SENSOR_ERROR_INVALID_PARAM, SENSOR_ERROR_NONE, SENSOR_ERROR_READ, Sensor_I2C_Read(), fxos8700_i2c_sensorhandle_t::slaveAddress, and status.
Referenced by apply_register_read(), apply_register_readall(), and main().
void FXOS8700_I2C_SetIdleTask | ( | fxos8700_i2c_sensorhandle_t * | pSensorHandle, |
registeridlefunction_t | idleTask, | ||
void * | userParam | ||
) |
: The interface function to set the I2C Idle Task.
[in] | fxos8700_i2c_sensorhandle_t *pSensorHandle, handle to the sensor handle. | |
[in] | registeridlefunction_t idleTask, function pointer to the function to execute on I2C Idle Time. | |
[in] | void *userParam, the pointer to the user idle ftask parameters. |
Definition at line 252 of file fxos8700_drv.c.
References fxos8700_i2c_sensorhandle_t::deviceInfo, registerDeviceInfo_t::functionParam, and registerDeviceInfo_t::idleFunction.
Referenced by main().
int32_t FXOS8700_SPI_Configure | ( | fxos8700_spi_sensorhandle_t * | pSensorHandle, |
const registerwritelist_t * | pRegWriteList | ||
) |
The interface function to configure he sensor.
This function configure the sensor with requested ODR, Range and registers in the regsiter pair array.
[in] | pSensorHandle | handle to the sensor. |
[in] | pRegWriteList | pointer to the register list. |
Validate for the correct handle and register write list.
Check whether sensor handle is initialized before applying configuration.
Put the device into standby mode so that configuration can be applied.
Apply the Sensor Configuration based on the Register Write List
Put the device into active mode and ready for reading data.
Definition at line 124 of file fxos8700_drv.c.
References fxos8700_spi_sensorhandle_t::deviceInfo, FXOS8700_CTRL_REG1, FXOS8700_CTRL_REG1_ACTIVE_ACTIVE_MODE, FXOS8700_CTRL_REG1_ACTIVE_MASK, FXOS8700_CTRL_REG1_ACTIVE_STANDBY_MODE, int32_t(), fxos8700_spi_sensorhandle_t::isInitialized, fxos8700_spi_sensorhandle_t::pCommDrv, Register_SPI_Write(), SENSOR_ERROR_INIT, SENSOR_ERROR_INVALID_PARAM, SENSOR_ERROR_NONE, SENSOR_ERROR_WRITE, Sensor_SPI_Write(), fxos8700_spi_sensorhandle_t::slaveParams, and status.
Referenced by main().
int32_t FXOS8700_SPI_Deinit | ( | fxos8700_spi_sensorhandle_t * | pSensorHandle | ) |
The interface function to De Initialize sensor..
This function made sensor in a power safe state and de initialize its handle.
[in] | pSensorHandle | handle to the sensor. |
Check whether sensor handle is initialized before triggering sensor reset.
Trigger sensor device reset.
De-initialize sensor handle. We do not validate write success since 8700 reset before sensing ack for the transaction.
Definition at line 198 of file fxos8700_drv.c.
References fxos8700_spi_sensorhandle_t::deviceInfo, FXOS8700_CTRL_REG2, FXOS8700_CTRL_REG2_RST_EN, FXOS8700_CTRL_REG2_RST_MASK, fxos8700_spi_sensorhandle_t::isInitialized, fxos8700_spi_sensorhandle_t::pCommDrv, Register_SPI_Write(), SENSOR_ERROR_INIT, SENSOR_ERROR_INVALID_PARAM, SENSOR_ERROR_NONE, and fxos8700_spi_sensorhandle_t::slaveParams.
int32_t FXOS8700_SPI_Initialize | ( | fxos8700_spi_sensorhandle_t * | pSensorHandle, |
ARM_DRIVER_SPI * | pBus, | ||
uint8_t | index, | ||
void * | pSlaveSelect, | ||
uint8_t | whoAmi | ||
) |
The interface function to initialize the sensor.
This function initializes the sensor and sensor handle.
[in] | pSensorHandle | handle to the sensor. |
[in] | pBus | pointer to the CMSIS API compatible SPI bus object. |
[in] | index | the I2C device number. |
[in] | pSlaveSelect | slave select hndle of the device on the bus. |
[in] | whoami | WHO_AM_I value of the device. |
Check the input parameters.
Initialize the sensor handle.
Read and store the device's WHO_AM_I.
Definition at line 67 of file fxos8700_drv.c.
References GENERIC_DRIVER_GPIO::clr_pin, fxos8700_spi_sensorhandle_t::deviceInfo, registerDeviceInfo_t::deviceInstance, Driver_GPIO_KSDK, registerDeviceInfo_t::functionParam, FXOS8700_SPI_CMD_LEN, FXOS8700_SPI_ReadPreprocess(), FXOS8700_SPI_WritePreprocess(), FXOS8700_SS_ACTIVE_VALUE, FXOS8700_WHO_AM_I, GPIO_DIRECTION_OUT, registerDeviceInfo_t::idleFunction, int32_t(), fxos8700_spi_sensorhandle_t::isInitialized, fxos8700_spi_sensorhandle_t::pCommDrv, pGPIODriver, GENERIC_DRIVER_GPIO::pin_init, spiSlaveSpecificParams_t::pReadPreprocessFN, spiSlaveSpecificParams_t::pTargetSlavePinID, spiSlaveSpecificParams_t::pWritePreprocessFN, Register_SPI_Read(), SENSOR_ERROR_INIT, SENSOR_ERROR_INVALID_PARAM, SENSOR_ERROR_NONE, GENERIC_DRIVER_GPIO::set_pin, fxos8700_spi_sensorhandle_t::slaveParams, SPI_SS_ACTIVE_LOW, spiSlaveSpecificParams_t::spiCmdLen, spiSlaveSpecificParams_t::ssActiveValue, and status.
Referenced by main().
int32_t FXOS8700_SPI_ReadData | ( | fxos8700_spi_sensorhandle_t * | pSensorHandle, |
const registerreadlist_t * | pReadList, | ||
uint8_t * | pBuffer | ||
) |
The interface function to read the sensor data.
This function read the sensor data out from the device and returns raw data in a byte stream.
[in] | pSensorHandle | handle to the sensor. |
[in] | pReadList | pointer to the list of device registers and values to read. |
[out] | pBuffer | buffer which holds raw sensor data.This buffer may be back to back databuffer based command read in the list. |
Validate for the correct handle and register read list.
Check whether sensor handle is initialized before reading sensor data.
Parse through the read list and read the data one by one.
Definition at line 169 of file fxos8700_drv.c.
References fxos8700_spi_sensorhandle_t::deviceInfo, int32_t(), fxos8700_spi_sensorhandle_t::isInitialized, fxos8700_spi_sensorhandle_t::pCommDrv, SENSOR_ERROR_INIT, SENSOR_ERROR_INVALID_PARAM, SENSOR_ERROR_NONE, SENSOR_ERROR_READ, Sensor_SPI_Read(), fxos8700_spi_sensorhandle_t::slaveParams, and status.
Referenced by main().
void FXOS8700_SPI_ReadPreprocess | ( | void * | pCmdOut, |
uint32_t | offset, | ||
uint32_t | size | ||
) |
The SPI Read Pre-Process function to generate Sensor specific SPI Message Header.
This function prepares the SPI Read Command Header with register address and R/W bit encoded as the Sensor.
[out] | pCmdOut | handle to the output buffer. |
[in] | offset | the address of the register to start reading from. |
[in] | size | number of bytes to read. |
Definition at line 30 of file fxos8700_drv.c.
References FXOS8700_SPI_CMD_LEN, fxos8700_spiRead_CmdBuffer, fxos8700_spiRead_DataBuffer, spi_mater_SlaveCmd::pReadBuffer, spi_mater_SlaveCmd::pWriteBuffer, and spi_mater_SlaveCmd::size.
Referenced by FXOS8700_SPI_Initialize().
void FXOS8700_SPI_SetIdleTask | ( | fxos8700_spi_sensorhandle_t * | pSensorHandle, |
registeridlefunction_t | idleTask, | ||
void * | userParam | ||
) |
: The interface function to set the SPI Idle Task.
[in] | fxos8700_spi_sensorhandle_t *pSensorHandle, handle to the sensor handle. | |
[in] | registeridlefunction_t idleTask, function pointer to the function to execute on SPI Idle Time. | |
[in] | void *userParam, the pointer to the user idle ftask parameters. |
Definition at line 116 of file fxos8700_drv.c.
References fxos8700_spi_sensorhandle_t::deviceInfo, registerDeviceInfo_t::functionParam, and registerDeviceInfo_t::idleFunction.
Referenced by main().
void FXOS8700_SPI_WritePreprocess | ( | void * | pCmdOut, |
uint32_t | offset, | ||
uint32_t | size, | ||
void * | pWritebuffer | ||
) |
The SPI Write Pre-Process function to generate Sensor specific SPI Message Header.
This function prepares the SPI Write Command Header with register address and R/W bit encoded as the Sensor.
[out] | pCmdOut | handle to the output buffer. |
[in] | offset | the address of the register to start writing from. |
[in] | size | number of bytes to write. |
Definition at line 47 of file fxos8700_drv.c.
References FXOS8700_SPI_CMD_LEN, fxos8700_spiWrite_CmdDataBuffer, spi_mater_SlaveCmd::pReadBuffer, spi_mater_SlaveCmd::pWriteBuffer, and spi_mater_SlaveCmd::size.
Referenced by FXOS8700_SPI_Initialize().
uint8_t fxos8700_spiRead_CmdBuffer[FXOS8700_SPI_MAX_MSG_SIZE] = {0} |
Definition at line 23 of file fxos8700_drv.c.
Referenced by FXOS8700_SPI_ReadPreprocess().
uint8_t fxos8700_spiRead_DataBuffer[FXOS8700_SPI_MAX_MSG_SIZE] = {0} |
Definition at line 24 of file fxos8700_drv.c.
Referenced by FXOS8700_SPI_ReadPreprocess().
uint8_t fxos8700_spiWrite_CmdDataBuffer[FXOS8700_SPI_MAX_MSG_SIZE] = {0} |
Definition at line 25 of file fxos8700_drv.c.
Referenced by FXOS8700_SPI_WritePreprocess().