Contiki 2.6
|
00001 /** @file hal/micro/mems_regs.h 00002 * @brief stm32w108 mems registers 00003 * 00004 * <!--(C) COPYRIGHT 2010 STMicroelectronics. All rights reserved. --> 00005 */ 00006 00007 #ifndef _MEMS_REGS_H_ 00008 #define _MEMS_REGS_H_ 00009 00010 //---Size of MEMs data--- 00011 #define MEMS_DATA_SIZE 6 00012 00013 //---address of slave I want to communicate with--- 00014 #define kLIS3L02DQ_SLAVE_ADDR 0x38 00015 00016 //----------------------------------------------------------------------------- 00017 //---accelerometer register addresses--- 00018 #define OFFSET_X 0x16 00019 #define OFFSET_Y 0x17 00020 #define OFFSET_Z 0x18 00021 #define GAIN_X 0x19 00022 #define GAIN_Y 0x1A 00023 #define GAIN_Z 0x1B 00024 #define CTRL_REG1 0x20 00025 #define CTRL_REG2 0x21 00026 #define STATUS_REG 0x27 00027 #define OUTX_L 0x28 00028 #define OUTX_H 0x29 00029 #define OUTY_L 0x2A 00030 #define OUTY_H 0x2B 00031 #define OUTZ_L 0x2C 00032 #define OUTZ_H 0x2D 00033 #define FF_WU_CFG 0x30 00034 #define FF_WU_SRC 0x31 00035 #define FF_WU_ACK 0x32 00036 #define FF_WU_THS_L 0x34 00037 #define FF_WU_THS_H 0x35 00038 #define FF_WU_DURATION 0x36 00039 #define DD_CFG 0x38 00040 #define DD_SRC 0x39 00041 #define DD_ACK 0x3A 00042 #define DD_THSI_L 0x3C 00043 #define DD_THSI_H 0x3D 00044 #define DD_THSE_L 0x3E 00045 #define DD_THSE_H 0x3F 00046 00047 // Communication control settings 00048 // I2C 00049 #define REPETIR 0x80 00050 // SPI 00051 #define MEMS_SPI_WRITE 0x00 00052 #define MEMS_SPI_READ 0x80 00053 #define MEMS_SPI_MULTIPLE_BYTES 0x40 00054 00055 //----------------------------------------------------------------------------- 00056 //---Settings for CTRL_REG1--- 00057 00058 // Power Down Control (PD) 00059 #define LIS_PD_OFF 0x00 00060 #define LIS_PD_ON 0x40 00061 00062 // Decimation Factor Control (DF) 00063 #define LIS_DF_BY128 0x00 00064 #define LIS_DF_BY64 0x10 00065 #define LIS_DF_BY32 0x20 00066 #define LIS_DF_BY8 0x30 00067 00068 // Self Test 00069 #define LIS_ST_NORMAL 0x00 00070 #define LIS_ST_TEST 0x08 00071 00072 // Enable Axis 00073 #define LIS_EA_ALL 0x07 00074 00075 //----------------------------------------------------------------------------- 00076 //---Settings for CTRL_REG2--- 00077 00078 // Full Scale (FS) 00079 #define LIS_FS_2G 0x00 00080 #define LIS_FS_6G 0x80 00081 00082 // Block Data Update (BDU) 00083 #define LIS_BDU_CONTINUOUS 0x00 00084 #define LIS_BDU_WAIT 0x40 00085 00086 // Big/Little Endian Selection (BLE) 00087 #define LIS_BLE_LE 0x00 00088 #define LIS_BLE_BE 0x20 00089 00090 // Data Alignment Selection DAS 00091 #define LIS_DAS_12BIT 0x00 00092 #define LIS_DAS_16BIT 0x01 00093 00094 // Interrupt Enable 00095 #define LIS_INTR_DISABLE 0x00 00096 #define LIS_INTR_ENABLE 0x08 00097 00098 // Data Ready Enable 00099 #define LIS_DRDY_DISABLE 0x00 00100 #define LIS_DRDY_ENABLE 0x04 00101 00102 //----------------------------------------------------------------------------- 00103 00104 #define LIS_BLE_XX LIS_BLE_BE 00105 00106 00107 /* Private Functions Prototypes ----------------------------------------------*/ 00108 00109 //*********************i2c_read_reg***********************// 00110 //----------Reads a register on the I2C target------------// 00111 //------slave addr is the is the I2C target device--------// 00112 //-reg_addr is the address of the register to be written--// 00113 //-pBuffer is the storage destination for the read data---// 00114 //-NoOfBytes is the amount of data to read----------------// 00115 int8u i2c_read_reg (int8u slave_addr, int8u reg_addr, int8u *pBuffer, int8u NoOfBytes); 00116 00117 //*********************i2c_write_reg**********************// 00118 //----------Writes a register on the I2C target-----------// 00119 //------slave addr is the is the I2C target device--------// 00120 //-reg_addr is the address of the register to be written--// 00121 //-reg_value is the value of the register to be written---// 00122 int8u i2c_write_reg (int8u slave_addr, int8u reg_addr, int8u reg_value); 00123 00124 #endif /* _MEMS_REGS_H_ */ 00125