123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- #ifndef __SL_SC7A20_DRIVER_H__
- #define __SL_SC7A20_DRIVER_H__
- #include "PlatformTypes.h"
- #include "StandardTypes.h"
- #include "Spi.h"
- #define SC7A20_SDO_VDD_GND 1
- #define SC7A20_IIC_7BITS_8BITS 0
- #define SL_SC7A20_16BIT_8BIT 1
- #define SL_SC7A20_SPI_IIC_MODE 0
- #define SL_6D4D2D1D_SEL 6
- #if SL_SC7A20_SPI_IIC_MODE==1
- #if SC7A20_SDO_VDD_GND==0
- #define SC7A20_IIC_7BITS_ADDR 0x18
- #define SC7A20_IIC_8BITS_ADDR 0x30
- #else
- #define SC7A20_IIC_7BITS_ADDR 0x19
- #define SC7A20_IIC_8BITS_ADDR 0x32
- #endif
- #if SC7A20_IIC_7BITS_8BITS==0
- #define SC7A20_IIC_ADDRESS SC7A20_IIC_7BITS_ADDR
- #else
- #define SC7A20_IIC_ADDRESS SC7A20_IIC_8BITS_ADDR
- #endif
- #endif
- #define SC7A20_CHIP_ID_ADDRESS (uint8)0x0F
- #define SC7A20_CHIP_ID_VALUE (uint8)0x11
- #define SL_SC7A20_CTRL_REG1 (uint8)0x20
- #define SL_SC7A20_CTRL_REG2 (uint8)0x21
- #define SL_SC7A20_CTRL_REG3 (uint8)0x22
- #define SL_SC7A20_CTRL_REG4 (uint8)0x23
- #define SL_SC7A20_CTRL_REG5 (uint8)0x24
- #define SL_SC7A20_CTRL_REG6 (uint8)0x25
- #define SL_SC7A20_STATUS_REG (uint8)0x27
- #define SL_SC7A20_OUT_X_L (uint8)0x28
- #define SL_SC7A20_OUT_X_H (uint8)0x29
- #define SL_SC7A20_OUT_Y_L (uint8)0x2A
- #define SL_SC7A20_OUT_Y_H (uint8)0x2B
- #define SL_SC7A20_OUT_Z_L (uint8)0x2C
- #define SL_SC7A20_OUT_Z_H (uint8)0x2D
- #define SL_SC7A20_FIFO_CTRL_REG (uint8)0x2E
- #define SL_SC7A20_FIFO_SRC_REG (uint8)0x2F
- #define SL_SC7A20_INT1_CFG (uint8)0x30
- #define SL_SC7A20_INT1_SRC (uint8)0x31
- #define SL_SC7A20_INT1_THS (uint8)0x32
- #define SL_SC7A20_INT1_DURATION (uint8)0x33
- #define SL_SC7A20_INT2_CFG (uint8)0x34
- #define SL_SC7A20_INT2_SRC (uint8)0x35
- #define SL_SC7A20_INT2_THS (uint8)0x36
- #define SL_SC7A20_INT2_DURATION (uint8)0x37
- #define SL_SC7A20_CLICK_CFG (uint8)0x38
- #define SL_SC7A20_CLICK_SRC (uint8)0x39
- #define SL_SC7A20_CLICK_THS (uint8)0x3A
- #define SL_SC7A20_TIME_LIMIT (uint8)0x3B
- #define SL_SC7A20_TIME_LATENCY (uint8)0x3C
- #define SL_SC7A20_TIME_WINDOW (uint8)0x3D
- #define SL_SC7A20_ACT_THS (uint8)0x3E
- #define SL_SC7A20_ACT_DURATION (uint8)0x3F
-
- #define SL_SC7A20_DATA_OUT (uint8)(SL_SC7A20_OUT_X_L)
- #define SL_SC7A20_MTP_ENABLE 0x00
- #define SL_SC7A20_MTP_CFG (uint8)0x1E
- #define SL_SC7A20_MTP_VALUE (uint8)0x05
- #define SL_SC7A20_SDOI2C_PU_CFG (uint8)0x57
- #define SL_SC7A20_SDO_PU_MSK (uint8)0x08
- #define SL_SC7A20_I2C_PU_MSK (uint8)0x04
- #define SL_SC7A20_HR_ENABLE (uint8)0X08
- #define SL_SC7A20_BOOT_ENABLE (uint8)0X80
- #define SL_SC7A20_ODR_POWER_DOWN (uint8)0x00
- #define SL_SC7A20_ODR_1HZ (uint8)0x17
- #define SL_SC7A20_ODR_10HZ (uint8)0x27
- #define SL_SC7A20_ODR_25HZ (uint8)0x37
- #define SL_SC7A20_ODR_50HZ (uint8)0x47
- #define SL_SC7A20_ODR_100HZ (uint8)0x57
- #define SL_SC7A20_ODR_200HZ (uint8)0x67
- #define SL_SC7A20_ODR_400HZ (uint8)0x77
- #define SL_SC7A20_ODR_1600HZ (uint8)0x87
- #define SL_SC7A20_ODR_1250HZ (uint8)0x97
- #define SL_SC7A20_ODR_5000HZ (uint8)0x9F
-
- #define SL_SC7A20_LOWER_POWER_ODR_1HZ (uint8)0x1F
- #define SL_SC7A20_LOWER_POWER_ODR_10HZ (uint8)0x2F
- #define SL_SC7A20_LOWER_POWER_ODR_25HZ (uint8)0x3F
- #define SL_SC7A20_LOWER_POWER_ODR_50HZ (uint8)0x4F
- #define SL_SC7A20_LOWER_POWER_ODR_100HZ (uint8)0x5F
- #define SL_SC7A20_LOWER_POWER_ODR_200HZ (uint8)0x6F
- #define SL_SC7A20_LOWER_POWER_ODR_400HZ (uint8)0x7F
- #define SL_SC7A20_FS_2G (uint8)0x00
- #define SL_SC7A20_FS_4G (uint8)0x10
- #define SL_SC7A20_FS_8G (uint8)0x20
- #define SL_SC7A20_FS_16G (uint8)0x30
- #define SL_SC7A20_INT_THS_5PERCENT (uint8)0x06
- #define SL_SC7A20_INT_THS_10PERCENT (uint8)0x0C
- #define SL_SC7A20_INT_THS_20PERCENT (uint8)0x18
- #define SL_SC7A20_INT_THS_40PERCENT (uint8)0x30
- #define SL_SC7A20_INT_THS_80PERCENT (uint8)0x60
- #define SL_SC7A20_INT_DURATION_2CLK (uint8)0x02
- #define SL_SC7A20_INT_DURATION_5CLK (uint8)0x05
- #define SL_SC7A20_INT_DURATION_10CLK (uint8)0x0A
- #define SL_SC7A20_INT_DURATION_30CLK (uint8)0x2E
- #define SL_SC7A20_INT_ACTIVE_LOWER_LEVEL 0x02
- #define SL_SC7A20_INT_ACTIVE_HIGH_LEVEL 0x00
- #define SL_SC7A20_INT_AOI1_INT1 0x40
- #define SL_SC7A20_INT_AOI2_INT1 0x20
- Std_ReturnType Gsensor_SPI_Write(uint8 Addr,uint8 *DataBufferPtr,uint16 Length);
- Std_ReturnType Gsensor_SPI_Read(uint8 Addr,uint8 *DataBufferPtr,uint16 Length);
- Std_ReturnType SL_SC7A20_Online_Test(void);
- Std_ReturnType SL_SC7A20_BOOT(void);
- Std_ReturnType SL_SC7A20_INT_Config(void);
- Std_ReturnType SL_SC7A20_INT_RESET(void);
- Std_ReturnType SL_SC7A20_FS_Config(uint8 Sc7a20_FS_Reg);
- Std_ReturnType SL_SC7A20_Power_Config(uint8 Power_Config_Reg);
- Std_ReturnType SL_SC7A20_Read_XYZ_Data(sint16 *SL_SC7A20_Data_XYZ_Buf);
- void SL_SC7A20_AOI1_event(void);
- void SL_SC7A20_AOI2_event(void);
- void SL_SC7A20_Reg_read_all(void);
- Std_ReturnType GsensorInit(void);
- #endif
|