43 #include "gpio_driver.h" 65 *pWBuff = offset & 0x7F;
81 *pWBuff = offset | 0x80;
84 memcpy(pWBuff + DIFF_P_SPI_CMD_LEN, pWritebuffer, size);
96 uint8_t reg, retries = 1;
100 if ((pSensorHandle == NULL) || (pBus == NULL) || (pSlaveSelect == NULL))
121 pGPIODriver->
set_pin(pSlaveSelect);
125 pGPIODriver->
clr_pin(pSlaveSelect);
131 if ((ARM_DRIVER_OK != status) || (whoAmi != reg))
143 if (ARM_DRIVER_OK != status)
151 if (ARM_DRIVER_OK != status)
160 if (ARM_DRIVER_OK != status)
169 if (ARM_DRIVER_OK != status)
194 if ((pSensorHandle == NULL) || (pRegWriteList == NULL))
208 if (ARM_DRIVER_OK != status)
216 if (ARM_DRIVER_OK != status)
224 if (ARM_DRIVER_OK != status)
239 if ((pSensorHandle == NULL) || (pReadList == NULL) || (pBuffer == NULL))
253 if (ARM_DRIVER_OK != status)
265 if (pSensorHandle == NULL)
279 if (ARM_DRIVER_OK != status)
296 uint8_t reg, retries = 1;
299 if ((pSensorHandle == NULL) || (pBus == NULL))
310 if ((ARM_DRIVER_OK != status) || (whoAmi != reg))
325 if (ARM_DRIVER_OK != status)
334 if (ARM_DRIVER_OK != status)
343 if (ARM_DRIVER_OK != status)
352 if (ARM_DRIVER_OK != status)
377 if ((pSensorHandle == NULL) || (pRegWriteList == NULL))
391 if (ARM_DRIVER_OK != status)
399 if (ARM_DRIVER_OK != status)
407 if (ARM_DRIVER_OK != status)
422 if ((pSensorHandle == NULL) || (pReadList == NULL) || (pBuffer == NULL))
436 if (ARM_DRIVER_OK != status)
448 if (pSensorHandle == NULL)
462 if (ARM_DRIVER_OK != status)
This defines the sensor specific information for I2C.
void DIFF_P_I2C_SetIdleTask(diff_p_i2c_sensorhandle_t *pSensorHandle, registeridlefunction_t idleTask, void *userParam)
: The interface function to set the I2C Idle Task.
fpSpiWritePreprocessFn_t pWritePreprocessFN
registeridlefunction_t idleFunction
int32_t DIFF_P_I2C_Configure(diff_p_i2c_sensorhandle_t *pSensorHandle, const registerwritelist_t *pRegWriteList)
The interface function to configure he sensor.
#define DIFF_P_CTRL_REG1_SBYB_ACTIVE
void(* pin_init)(pinID_t aPinId, gpio_direction_t dir, void *apPinConfig, gpio_isr_handler_t aIsrHandler, void *apUserData)
#define DIFF_P_STATUS_STAT_EP_MASK
void DIFF_P_SPI_ReadPreprocess(void *pCmdOut, uint32_t offset, uint32_t size)
The SPI Read Pre-Process function to generate Sensor specific SPI Message Header. ...
spiSlaveSpecificParams_t slaveParams
int32_t DIFF_P_I2C_ReadData(diff_p_i2c_sensorhandle_t *pSensorHandle, const registerreadlist_t *pReadList, uint8_t *pBuffer)
The interface function to read the sensor data.
void BOARD_DELAY_ms(uint32_t delay_ms)
Function to insert delays.
int32_t Sensor_I2C_Read(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, const registerreadlist_t *pReadList, uint8_t *pOutBuffer)
Read register data from a sensor.
#define DIFF_P_CTRL_REG1_SBYB_MASK
void(* registeridlefunction_t)(void *userParam)
This is the register idle function type.
#define DIFF_P_SPI_CMD_LEN
The size of the Sensor specific SPI Header.
#define DIFF_P_CTRL_REG1_RST_MASK
registerDeviceInfo_t deviceInfo
int32_t DIFF_P_I2C_Initialize(diff_p_i2c_sensorhandle_t *pSensorHandle, ARM_DRIVER_I2C *pBus, uint8_t index, uint16_t sAddress, uint8_t whoAmi)
The interface function to initialize the sensor.
The diff_p_drv.h file describes the DIFF_P driver interface and structures.
int32_t DIFF_P_SPI_Configure(diff_p_spi_sensorhandle_t *pSensorHandle, const registerwritelist_t *pRegWriteList)
The interface function to configure he sensor.
void DIFF_P_SPI_SetIdleTask(diff_p_spi_sensorhandle_t *pSensorHandle, registeridlefunction_t idleTask, void *userParam)
: The interface function to set the SPI Idle Task.
registerDeviceInfo_t deviceInfo
uint8_t diff_p_spiRead_CmdBuffer[DIFF_P_SPI_MAX_MSG_SIZE]
void(* set_pin)(pinID_t aPinId)
void(* clr_pin)(pinID_t aPinId)
The SPI Slave Transfer Command Params SDK2.0 Driver.
#define SPI_SS_ACTIVE_LOW
int32_t DIFF_P_SPI_ReadData(diff_p_spi_sensorhandle_t *pSensorHandle, const registerreadlist_t *pReadList, uint8_t *pBuffer)
The interface function to read the sensor data.
#define DIFF_P_CTRL_REG1_SBYB_STANDBY
This defines the sensor specific information for SPI.
int32_t DIFF_P_SPI_DeInit(diff_p_spi_sensorhandle_t *pSensorHandle)
The interface function to De Initialize sensor..
#define DIFF_P_CTRL_REG1_RST_RESET
GENERIC_DRIVER_GPIO * pGPIODriver
int32_t Sensor_SPI_Write(ARM_DRIVER_SPI *pCommDrv, registerDeviceInfo_t *devInfo, void *pWriteParams, const registerwritelist_t *pRegWriteList)
Write register data to a sensor.
GENERIC_DRIVER_GPIO Driver_GPIO_KSDK
void DIFF_P_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.
uint8_t diff_p_spiWrite_CmdDataBuffer[DIFF_P_SPI_MAX_MSG_SIZE]
#define DIFF_P_CTRL_REG2_CTRL_AC_CALRUN
Access structure of the GPIO Driver.
int32_t Register_SPI_Read(ARM_DRIVER_SPI *pCommDrv, registerDeviceInfo_t *devInfo, void *pReadParams, uint8_t offset, uint8_t length, uint8_t *pOutBuffer)
The interface function to read a sensor register.
int32_t Register_I2C_Read(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, uint8_t offset, uint8_t length, uint8_t *pOutBuffer)
The interface function to read a sensor register.
ARM_DRIVER_I2C * pCommDrv
#define DIFF_P_CTRL_REG2_CTRL_AC_MASK
int32_t Register_I2C_Write(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, uint8_t offset, uint8_t value, uint8_t mask, bool repeatedStart)
The interface function to write a sensor register.
This structure defines the Write command List.
This structure defines the Read command List.
uint8_t diff_p_spiRead_DataBuffer[DIFF_P_SPI_MAX_MSG_SIZE]
int32_t DIFF_P_I2C_DeInit(diff_p_i2c_sensorhandle_t *pSensorHandle)
The interface function to De Initialize sensor..
int32_t Sensor_SPI_Read(ARM_DRIVER_SPI *pCommDrv, registerDeviceInfo_t *devInfo, void *pReadParams, const registerreadlist_t *pReadList, uint8_t *pOutBuffer)
Read register data from a sensor.
#define DIFF_P_SPI_MAX_MSG_SIZE
The MAX size of SPI message.
int32_t DIFF_P_SPI_Initialize(diff_p_spi_sensorhandle_t *pSensorHandle, ARM_DRIVER_SPI *pBus, uint8_t index, void *pSlaveSelect, uint8_t whoAmi)
The interface function to initialize the sensor.
ARM_DRIVER_SPI * pCommDrv
#define DIFF_P_SS_ACTIVE_VALUE
Is the Slave Select Pin Active Low or High.
fpSpiReadPreprocessFn_t pReadPreprocessFN
int32_t Register_SPI_Write(ARM_DRIVER_SPI *pCommDrv, registerDeviceInfo_t *devInfo, void *pWriteParams, uint8_t offset, uint8_t value, uint8_t mask)
The interface function to write a sensor register.
int32_t Sensor_I2C_Write(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, const registerwritelist_t *pRegWriteList)
Write register data to a sensor.