17 #include "gpio_driver.h"    29 static uint8_t SuspendPedometer[] = {0x17, 0x20, 0x05, 0x01, 0x20};
    32 static uint8_t SuspendAFE[] = {0x17, 0x20, 0x07, 0x01, 0x40};
    35 static const uint8_t ReadSuspendRegisters[] = {0x17, 0x10, 0x04, 0x04};
    38 static uint8_t WriteSuspendRegisters[] = {0x17, 0x20, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00};
    47 const uint8_t 
MBoxQRDataXYZ[16] = {0x04, 0x20, 0x2C, 0x0C, 0x06, 0x13, 0x06, 0x12,
    48                                    0x06, 0x15, 0x06, 0x14, 0x06, 0x17, 0x06, 0x16};
   112     {SuspendAFE, 0, 
sizeof(SuspendAFE)}, {SuspendPedometer, 0, 
sizeof(SuspendPedometer)}, 
__END_WRITE_CMD__};
   129         (offset & 0x7F) << 1; 
   146         (offset | 0x40) << 1; 
   149     memcpy(pWBuff + MMA9553_SPI_CMD_LEN, pWritebuffer, size);
   165     if (pSensorHandle == NULL || pBus == NULL || pSlaveSelect == NULL || pReset == NULL)
   187     pGPIODriver->
clr_pin(pSlaveSelect);
   194     pGPIODriver->
set_pin(pSlaveSelect);
   202                                sizeof(cmdRespHdr), cmdRespHdr);
   203     if (ARM_DRIVER_OK != status || (cmdRespHdr[1] & 0x80) != 0x80 || cmdRespHdr[2] != 
ReadVersionInfo[3] ||
   213     if (ARM_DRIVER_OK != status)
   236     if ((pSensorHandle == NULL) || (pCommandList == NULL))
   250     if (ARM_DRIVER_OK != status)
   257                                sizeof(standbyRegister), standbyRegister);
   258     if (ARM_DRIVER_OK != status)
   270     if (ARM_DRIVER_OK != status)
   278     if (ARM_DRIVER_OK != status)
   287     if (ARM_DRIVER_OK != status)
   303     if (pSensorHandle == NULL || (pCommandList == NULL && pResponseList == NULL))
   314     if (pCommandList != NULL)
   318         if (ARM_DRIVER_OK != status)
   325     if (pResponseList != NULL)
   328                                  pResponseList, pBuffer);
   329         if (ARM_DRIVER_OK != status)
   342     if (pSensorHandle == NULL)
   356     if (ARM_DRIVER_OK != status)
   370                                ARM_DRIVER_I2C *pBus,
   378     if ((pSensorHandle == NULL) || (pBus == NULL))
   392     if (ARM_DRIVER_OK != status || (cmdRespHdr[1] & 0x80) != 0x80 || cmdRespHdr[2] != 
ReadVersionInfo[3] ||
   402     if (ARM_DRIVER_OK != status)
   428     if ((pSensorHandle == NULL) || (pCommandList == NULL))
   442     if (ARM_DRIVER_OK != status)
   449                                sizeof(standbyRegister), standbyRegister);
   450     if (ARM_DRIVER_OK != status)
   462     if (ARM_DRIVER_OK != status)
   470     if (ARM_DRIVER_OK != status)
   479     if (ARM_DRIVER_OK != status)
   495     if (pSensorHandle == NULL || (pCommandList == NULL && pResponseList == NULL))
   506     if (pCommandList != NULL)
   510         if (ARM_DRIVER_OK != status)
   516     if (pResponseList != NULL)
   519                                  pResponseList, pBuffer);
   520         if (ARM_DRIVER_OK != status)
   533     if (pSensorHandle == NULL)
   547     if (ARM_DRIVER_OK != status)
 #define MMA9553_HDR_SIZE
Size of fixed header bytes in sensor commands. 
 
void(* set_pin)(pinID_t aPinId)
 
const uint8_t SetLegacyIntMode[5]
Set Sensor to Legacy Mode with INT_O interrupt on completion of the AFE sampling. ...
 
const uint8_t SetSampleRate_3Hz[5]
 
const uint8_t SetSampleRate_15Hz[5]
 
This defines the sensor specific information for I2C. 
 
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 ResetApplication[5]
Command to reset all applications of the sensor. 
 
const uint8_t SetMBoxPriority_for488Hz[5]
MBox Priority Commands. 
 
const registercommandlist_t MMA9553_StandbyCommands[]
 
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 WakeApplication[5]
Set sensor to Wake Mode Command. 
 
const registercommandlist_t MMA9553_ResetCommand[]
 
int32_t MMA9553_SPI_Configure(mma9553_spi_sensorhandle_t *pSensorHandle, const registercommandlist_t *pCommandList)
The interface function to configure he sensor. 
 
GENERIC_DRIVER_GPIO * pGPIODriver
 
const uint8_t SetLegacyMode[5]
Set Sensor to Legacy (free running) Mode Command. 
 
#define MMA9553_SS_ACTIVE_VALUE
Is the Slave Select Pin Active Low or High. 
 
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. 
 
void BOARD_DELAY_ms(uint32_t delay_ms)
Function to insert delays. 
 
This structure defines the Block command List. 
 
This defines the sensor specific information for SPI. 
 
const uint8_t SetFSRange_8g[5]
 
const registercommandlist_t MMA9553_ActivateCommands[]
 
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. 
 
const uint8_t SetAFEPriority_for61Hz[5]
 
Access structure of the GPIO Driver. 
 
const uint8_t SetMBoxPriority_for3Hz[5]
 
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 MBoxQRDataXYZ[16]
Configure MBOX for QR Data and XYZ Axes Command. 
 
const uint8_t SetMBoxPriority_for122Hz[5]
 
void(* clr_pin)(pinID_t aPinId)
 
int32_t MMA9553_I2C_Configure(mma9553_i2c_sensorhandle_t *pSensorHandle, const registercommandlist_t *pCommandList)
The interface function to configure he sensor. 
 
typedef int32_t(DATA_FORMAT_Append_t))(void *pData
The interface function to append the data on the formated stream. 
 
const uint8_t SetSampleRate_122Hz[5]
 
The mma9553_drv.h file describes the MMA9553L driver interface and structures. 
 
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_for7Hz[5]
 
const uint8_t SetMBoxPriority_for7Hz[5]
 
const uint8_t SetMBoxPriority_for15Hz[5]
 
const uint8_t SetMBoxPriority_for61Hz[5]
 
const uint8_t ReadPedometerData[4]
Command to Read Pedometer Data. 
 
void(* registeridlefunction_t)(void *userParam)
This is the register idle function type. 
 
fpSpiReadPreprocessFn_t pReadPreprocessFN
 
The SPI Slave Transfer Command Params SDK2.0 Driver. 
 
GENERIC_DRIVER_GPIO Driver_GPIO_KSDK
 
const uint8_t SetMBoxPriority_for244Hz[5]
 
const registercommandlist_t MMA9553_ReadSuspendRegistersCommand[]
 
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 SetSampleRate_30Hz[5]
 
const uint8_t SetAFEPriority_for122Hz[5]
 
registerDeviceInfo_t deviceInfo
 
const uint8_t SetSampleRate_61Hz[5]
 
#define MMA9553_SPI_MAX_MSG_SIZE
The MAX size of SPI message. 
 
#define __END_WRITE_CMD__
 
const uint8_t ReadVersionInfo[4]
The Read Version Info Command. 
 
spiSlaveSpecificParams_t slaveParams
 
const uint8_t SetAFEPriority_for224Hz[5]
 
const uint8_t SetSampleRate_488Hz[5]
Sample Rate Commands. 
 
const uint8_t SetSampleRate_244Hz[5]
 
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. 
 
#define STANDBY_REG_SIZE
Size of Standby Registers. 
 
void MMA9553_SPI_SetIdleTask(mma9553_spi_sensorhandle_t *pSensorHandle, registeridlefunction_t idleTask, void *userParam)
: The interface function to set the SPI Idle Task. 
 
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. 
 
ARM_DRIVER_SPI * pCommDrv
 
const uint8_t SetAFEPriority_for3Hz[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. 
 
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. 
 
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. 
 
uint8_t mma9553_spiRead_CmdBuffer[MMA9553_SPI_MAX_MSG_SIZE]
 
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_for30Hz[5]
 
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. ...
 
fpSpiWritePreprocessFn_t pWritePreprocessFN
 
const uint8_t SetSampleRate_7Hz[5]
 
void(* pin_init)(pinID_t aPinId, gpio_direction_t dir, void *apPinConfig, gpio_isr_handler_t aIsrHandler, void *apUserData)
 
const uint8_t SetAFEPriority_for30Hz[5]
 
This structure defines the Read command List. 
 
const uint8_t SetAFEPriority_for488Hz[5]
AFE Priority Commands. 
 
#define MMA9553_COCO_ERROR_MASK
The Error Bit Mask in COCO Byte. 
 
const uint8_t SetFSRange_2g[5]
Full-Scale Range Selections. 
 
uint8_t mma9553_spiRead_DataBuffer[MMA9553_SPI_MAX_MSG_SIZE]
 
#define MMA9553_SPI_CMD_LEN
The size of the Sensor specific SPI Header. 
 
ARM_DRIVER_I2C * pCommDrv
 
registerDeviceInfo_t deviceInfo
 
const uint8_t SetFSRange_4g[5]
 
const registercommandlist_t MMA9553_InitializeCommand[]
 
uint8_t mma9553_spiWrite_CmdDataBuffer[MMA9553_SPI_MAX_MSG_SIZE]
 
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 MMA9553_I2C_DeInit(mma9553_i2c_sensorhandle_t *pSensorHandle)
The interface function to De Initialize sensor.. 
 
registeridlefunction_t idleFunction
 
int32_t MMA9553_SPI_DeInit(mma9553_spi_sensorhandle_t *pSensorHandle)
The interface function to De Initialize sensor.. 
 
const uint8_t SetAFEPriority_for15Hz[5]