43 #include "gpio_driver.h"    55 static uint8_t SuspendPedometer[] = {0x17, 0x20, 0x05, 0x01, 0x20};
    58 static uint8_t SuspendAFE[] = {0x17, 0x20, 0x07, 0x01, 0x40};
    61 static const uint8_t ReadSuspendRegisters[] = {0x17, 0x10, 0x04, 0x04};
    64 static uint8_t WriteSuspendRegisters[] = {0x17, 0x20, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00};
    73 const uint8_t 
MBoxQRDataXYZ[16] = {0x04, 0x20, 0x2C, 0x0C, 0x06, 0x13, 0x06, 0x12,
    74                                    0x06, 0x15, 0x06, 0x14, 0x06, 0x17, 0x06, 0x16};
   138     {SuspendAFE, 0, 
sizeof(SuspendAFE)}, {SuspendPedometer, 0, 
sizeof(SuspendPedometer)}, 
__END_WRITE_CMD__};
   155         (offset & 0x7F) << 1; 
   172         (offset | 0x40) << 1; 
   175     memcpy(pWBuff + MMA9553_SPI_CMD_LEN, pWritebuffer, size);
   191     if (pSensorHandle == NULL || pBus == NULL || pSlaveSelect == NULL || pReset == NULL)
   213     pGPIODriver->
clr_pin(pSlaveSelect);
   220     pGPIODriver->
set_pin(pSlaveSelect);
   228                                sizeof(cmdRespHdr), cmdRespHdr);
   229     if (ARM_DRIVER_OK != status || (cmdRespHdr[1] & 0x80) != 0x80 || cmdRespHdr[2] != 
ReadVersionInfo[3] ||
   239     if (ARM_DRIVER_OK != status)
   262     if ((pSensorHandle == NULL) || (pCommandList == NULL))
   276     if (ARM_DRIVER_OK != status)
   283                                sizeof(standbyRegister), standbyRegister);
   284     if (ARM_DRIVER_OK != status)
   296     if (ARM_DRIVER_OK != status)
   304     if (ARM_DRIVER_OK != status)
   313     if (ARM_DRIVER_OK != status)
   329     if (pSensorHandle == NULL || (pCommandList == NULL && pResponseList == NULL))
   340     if (pCommandList != NULL)
   344         if (ARM_DRIVER_OK != status)
   351     if (pResponseList != NULL)
   354                                  pResponseList, pBuffer);
   355         if (ARM_DRIVER_OK != status)
   368     if (pSensorHandle == NULL)
   382     if (ARM_DRIVER_OK != status)
   396                                ARM_DRIVER_I2C *pBus,
   404     if ((pSensorHandle == NULL) || (pBus == NULL))
   418     if (ARM_DRIVER_OK != status || (cmdRespHdr[1] & 0x80) != 0x80 || cmdRespHdr[2] != 
ReadVersionInfo[3] ||
   428     if (ARM_DRIVER_OK != status)
   454     if ((pSensorHandle == NULL) || (pCommandList == NULL))
   468     if (ARM_DRIVER_OK != status)
   475                                sizeof(standbyRegister), standbyRegister);
   476     if (ARM_DRIVER_OK != status)
   488     if (ARM_DRIVER_OK != status)
   496     if (ARM_DRIVER_OK != status)
   505     if (ARM_DRIVER_OK != status)
   521     if (pSensorHandle == NULL || (pCommandList == NULL && pResponseList == NULL))
   532     if (pCommandList != NULL)
   536         if (ARM_DRIVER_OK != status)
   542     if (pResponseList != NULL)
   545                                  pResponseList, pBuffer);
   546         if (ARM_DRIVER_OK != status)
   559     if (pSensorHandle == NULL)
   573     if (ARM_DRIVER_OK != status)
 const registercommandlist_t MMA9553_ResetCommand[]
 
const uint8_t SetMBoxPriority_for488Hz[5]
MBox Priority Commands. 
 
const registercommandlist_t MMA9553_StandbyCommands[]
 
int32_t MMA9553_SPI_Initialize(mma9553_spi_sensorhandle_t *pSensorHandle, ARM_DRIVER_SPI *pBus, uint8_t index, void *pSlaveSelect, void *pReset)
The interface function to initialize the sensor. 
 
fpSpiWritePreprocessFn_t pWritePreprocessFN
 
const uint8_t SetAFEPriority_for15Hz[5]
 
int32_t MMA9553_I2C_CommandResponse(mma9553_i2c_sensorhandle_t *pSensorHandle, const registercommandlist_t *pCommandList, const registerreadlist_t *pResponseList, uint8_t *pBuffer)
The interface function to read the sensor data. 
 
const uint8_t SetMBoxPriority_for3Hz[5]
 
#define MMA9553_COCO_ERROR_MASK
The Error Bit Mask in COCO Byte. 
 
registeridlefunction_t idleFunction
 
#define MMA9553_SS_ACTIVE_VALUE
Is the Slave Select Pin Active Low or High. 
 
const registercommandlist_t MMA9553_ReadSuspendRegistersCommand[]
 
uint8_t mma9553_spiWrite_CmdDataBuffer[MMA9553_SPI_MAX_MSG_SIZE]
 
const uint8_t SetLegacyIntMode[5]
Set Sensor to Legacy Mode with INT_O interrupt on completion of the AFE sampling. ...
 
const uint8_t SetAFEPriority_for122Hz[5]
 
void(* pin_init)(pinID_t aPinId, gpio_direction_t dir, void *apPinConfig, gpio_isr_handler_t aIsrHandler, void *apUserData)
 
int32_t Sensor_I2C_BlockWrite(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, const registercommandlist_t *pCommandList, uint8_t error_mask)
Write commands to a sensor. 
 
const uint8_t SetSampleRate_61Hz[5]
 
const uint8_t SetSampleRate_488Hz[5]
Sample Rate Commands. 
 
const uint8_t MBoxQRDataXYZ[16]
Configure MBOX for QR Data and XYZ Axes Command. 
 
ARM_DRIVER_SPI * pCommDrv
 
int32_t Register_SPI_BlockWrite(ARM_DRIVER_SPI *pCommDrv, registerDeviceInfo_t *devInfo, void *pWriteParams, uint8_t offset, const uint8_t *pBuffer, uint8_t bytesToWrite)
The interface function to block write to a sensor register. 
 
const uint8_t SetAFEPriority_for7Hz[5]
 
uint8_t mma9553_spiRead_DataBuffer[MMA9553_SPI_MAX_MSG_SIZE]
 
const uint8_t SetMBoxPriority_for7Hz[5]
 
This defines the sensor specific information for I2C. 
 
int32_t MMA9553_SPI_DeInit(mma9553_spi_sensorhandle_t *pSensorHandle)
The interface function to De Initialize sensor.. 
 
const uint8_t ResetApplication[5]
Command to reset all applications of the sensor. 
 
void BOARD_DELAY_ms(uint32_t delay_ms)
Function to insert delays. 
 
This defines the sensor specific information for SPI. 
 
const uint8_t SetFSRange_4g[5]
 
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. 
 
const uint8_t SetAFEPriority_for30Hz[5]
 
void(* registeridlefunction_t)(void *userParam)
This is the register idle function type. 
 
const uint8_t WakeApplication[5]
Set sensor to Wake Mode Command. 
 
void MMA9553_I2C_SetIdleTask(mma9553_i2c_sensorhandle_t *pSensorHandle, registeridlefunction_t idleTask, void *userParam)
: The interface function to set the I2C Idle Task. 
 
const uint8_t SetSampleRate_15Hz[5]
 
const registercommandlist_t MMA9553_InitializeCommand[]
 
const uint8_t SetAFEPriority_for488Hz[5]
AFE Priority Commands. 
 
int32_t MMA9553_I2C_Configure(mma9553_i2c_sensorhandle_t *pSensorHandle, const registercommandlist_t *pCommandList)
The interface function to configure he sensor. 
 
const uint8_t SetMBoxPriority_for244Hz[5]
 
const uint8_t SetFSRange_2g[5]
Full-Scale Range Selections. 
 
int32_t Sensor_SPI_BlockWrite(ARM_DRIVER_SPI *pCommDrv, registerDeviceInfo_t *devInfo, void *pWriteParams, const registercommandlist_t *pCommandList, uint8_t error_mask)
Write commands to a sensor. 
 
const uint8_t SetMBoxPriority_for30Hz[5]
 
#define MMA9553_SPI_CMD_LEN
The size of the Sensor specific SPI Header. 
 
const uint8_t SetAFEPriority_for61Hz[5]
 
registerDeviceInfo_t deviceInfo
 
const uint8_t SetSampleRate_244Hz[5]
 
const uint8_t SetLegacyMode[5]
Set Sensor to Legacy (free running) Mode Command. 
 
const uint8_t SetFSRange_8g[5]
 
const uint8_t SetAFEPriority_for3Hz[5]
 
const uint8_t SetSampleRate_30Hz[5]
 
#define __END_WRITE_CMD__
 
int32_t MMA9553_SPI_Configure(mma9553_spi_sensorhandle_t *pSensorHandle, const registercommandlist_t *pCommandList)
The interface function to configure he sensor. 
 
int32_t Register_I2C_BlockWrite(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, uint8_t offset, const uint8_t *pBuffer, uint8_t bytesToWrite)
The interface function to write a sensor register. 
 
registerDeviceInfo_t deviceInfo
 
const uint8_t SetSampleRate_7Hz[5]
 
void(* set_pin)(pinID_t aPinId)
 
const uint8_t SetSampleRate_122Hz[5]
 
void(* clr_pin)(pinID_t aPinId)
 
void MMA9553_SPI_ReadPreprocess(void *pCmdOut, uint32_t offset, uint32_t size)
The SPI Read Pre-Process function to generate Sensor specific SPI Message Header. ...
 
int32_t MMA9553_I2C_Initialize(mma9553_i2c_sensorhandle_t *pSensorHandle, ARM_DRIVER_I2C *pBus, uint8_t index, uint16_t sAddress)
The interface function to initialize the sensor. 
 
const uint8_t ReadPedometerData[4]
Command to Read Pedometer Data. 
 
The SPI Slave Transfer Command Params SDK2.0 Driver. 
 
#define STANDBY_REG_SIZE
Size of Standby Registers. 
 
const uint8_t SetSampleRate_3Hz[5]
 
spiSlaveSpecificParams_t slaveParams
 
GENERIC_DRIVER_GPIO * pGPIODriver
 
const uint8_t ReadVersionInfo[4]
The Read Version Info Command. 
 
GENERIC_DRIVER_GPIO Driver_GPIO_KSDK
 
void MMA9553_SPI_SetIdleTask(mma9553_spi_sensorhandle_t *pSensorHandle, registeridlefunction_t idleTask, void *userParam)
: The interface function to set the SPI Idle Task. 
 
#define MMA9553_HDR_SIZE
Size of fixed header bytes in sensor commands. 
 
The mma9553_drv.h file describes the MMA9553L driver interface and structures. 
 
int32_t MMA9553_I2C_DeInit(mma9553_i2c_sensorhandle_t *pSensorHandle)
The interface function to De Initialize sensor.. 
 
ARM_DRIVER_I2C * pCommDrv
 
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. 
 
const uint8_t SetMBoxPriority_for122Hz[5]
 
void MMA9553_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. 
 
const registercommandlist_t MMA9553_ActivateCommands[]
 
This structure defines the Read command List. 
 
const uint8_t SetMBoxPriority_for61Hz[5]
 
int32_t MMA9553_SPI_CommandResponse(mma9553_spi_sensorhandle_t *pSensorHandle, const registercommandlist_t *pCommandList, const registerreadlist_t *pResponseList, uint8_t *pBuffer)
The interface function to read the sensor data. 
 
const uint8_t SetMBoxPriority_for15Hz[5]
 
This structure defines the Block command List. 
 
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. 
 
const uint8_t SetAFEPriority_for224Hz[5]
 
uint8_t mma9553_spiRead_CmdBuffer[MMA9553_SPI_MAX_MSG_SIZE]
 
fpSpiReadPreprocessFn_t pReadPreprocessFN
 
#define MMA9553_SPI_MAX_MSG_SIZE
The MAX size of SPI message.