mpl3115a2_reg.h
6.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/*
* Copyright (C) 2014 PHYTEC Messtechnik GmbH
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
* directory for more details.
*
*/
/**
* @ingroup drivers_mpl3115a2
* @{
*
* @file
* @brief Register definition for the MPL3115A2 sensor driver.
*
* @author Johann Fischer <j.fischer@phytec.de>
*
*/
#ifndef MPL3115A2_REG_H
#define MPL3115A2_REG_H
#ifdef __cplusplus
extern "C"
{
#endif
#define MPL3115A2_STATUS 0x00 /**< Sensor Status Register */
#define MPL3115A2_OUT_P_MSB 0x01 /**< Pressure Data Out MSB */
#define MPL3115A2_OUT_P_CSB 0x02 /**< Pressure Data Out CSB */
#define MPL3115A2_OUT_P_LSB 0x03 /**< Pressure Data Out LSB */
#define MPL3115A2_OUT_T_MSB 0x04 /**< Temperature Data Out MSB */
#define MPL3115A2_OUT_T_LSB 0x05 /**< Temperature Data Out LSB */
#define MPL3115A2_DR_STATUS 0x06 /**< Sensor Status Register */
#define MPL3115A2_OUT_P_DELTA MSB 0x07 /**< Pressure Data Out Delta MSB */
#define MPL3115A2_OUT_P_DELTA_CSB 0x08 /**< Pressure Data Out Delta CSB */
#define MPL3115A2_OUT_P_DELTA_LSB 0x09 /**< Pressure Data Out Delta LSB */
#define MPL3115A2_OUT_T_DELTA_MSB 0x0A /**< Temperature Data Out Delta MSB */
#define MPL3115A2_OUT_T_DELTA_LSB 0x0B /**< Temperature Data Out Delta LSB */
#define MPL3115A2_WHO_AM_I 0x0C /**< Device Identification Register */
#define MPL3115A2_F_STATUS 0x0D /**< FIFO Status Register */
#define MPL3115A2_F_DATA 0x0E /**< FIFO 8-bit Data Access */
#define MPL3115A2_F_SETUP 0x0F /**< FIFO Setup Register */
#define MPL3115A2_TIME_DLY 0x10 /**< Time Delay Register */
#define MPL3115A2_SYSMOD 0x11 /**< System Mode Register */
#define MPL3115A2_INT_SOURCE 0x12 /**< Interrupt Source Register */
#define MPL3115A2_PT_DATA_CFG 0x13 /**< PT Data Configuration Register */
#define MPL3115A2_BAR_IN_MSB 0x14 /**< BAR Input in MSB */
#define MPL3115A2_BAR_IN_LSB 0x15 /**< BAR Input in LSB */
#define MPL3115A2_P_TGT_MSB 0x16 /**< Pressure Target MSB */
#define MPL3115A2_P_TGT_LSB 0x17 /**< Pressure Target LSB */
#define MPL3115A2_T_TGT 0x18 /**< Temperature Target */
#define MPL3115A2_P_WND_MSB 0x19 /**< Pressure/Altitude Window MSB */
#define MPL3115A2_P_WND_LSB 0x1A /**< Pressure/Altitude Window LSB */
#define MPL3115A2_T_WND 0x1B /**< Temperature Window */
#define MPL3115A2_P_MIN_MSB 0x1C /**< Minimum Pressure Data Out MSB */
#define MPL3115A2_P_MIN_CSB 0x1D /**< Minimum Pressure Data Out CSB */
#define MPL3115A2_P_MIN_LSB 0x1E /**< Minimum Pressure Data Out LSB */
#define MPL3115A2_T_MIN_MSB 0x1F /**< Minimum Temperature Data Out MSB */
#define MPL3115A2_T_MIN_LSB 0x20 /**< Minimum Temperature Data Out LSB */
#define MPL3115A2_P_MAX_MSB 0x21 /**< Maximum Pressure Data Out MSB */
#define MPL3115A2_P_MAX_CSB 0x22 /**< Maximum Pressure Data Out CSB */
#define MPL3115A2_P_MAX_LSB 0x23 /**< Maximum Pressure Data Out LSB */
#define MPL3115A2_T_MAX_MSB 0x24 /**< Maximum Temperature Data Out MSB */
#define MPL3115A2_T_MAX_LSB 0x25 /**< Maximum Temperature Data Out LSB */
#define MPL3115A2_CTRL_REG1 0x26 /**< Control Register 1 */
#define MPL3115A2_CTRL_REG2 0x27 /**< Control Register 2 */
#define MPL3115A2_CTRL_REG3 0x28 /**< Control Register 3 */
#define MPL3115A2_CTRL_REG4 0x29 /**< Control Register 4 */
#define MPL3115A2_CTRL_REG5 0x2A /**< Control Register 5 */
#define MPL3115A2_OFF_P 0x2B /**< Pressure Data User Offset Register */
#define MPL3115A2_OFF_T 0x2C /**< Temperature Data User Offset Register */
#define MPL3115A2_OFF_H 0x2D /**< Altitude Data User Offset Register */
#define MPL3115A2_STATUS_TDR (1 << 1)
#define MPL3115A2_STATUS_PDR (1 << 2)
#define MPL3115A2_STATUS_PTDR (1 << 3)
#define MPL3115A2_STATUS_TOW (1 << 5)
#define MPL3115A2_STATUS_POW (1 << 6)
#define MPL3115A2_STATUS_PTOW (1 << 7)
#define MPL3115A2_PT_DATA_CFG_TDEFE (1 << 0)
#define MPL3115A2_PT_DATA_CFG_PDEFE (1 << 1)
#define MPL3115A2_PT_DATA_CFG_DREM (1 << 2)
#define MPL3115A2_CTRL_REG1_SBYB (1 << 0)
#define MPL3115A2_CTRL_REG1_OST (1 << 1)
#define MPL3115A2_CTRL_REG1_RST (1 << 2)
#define MPL3115A2_CTRL_REG1_OS_SHIFT 3
#define MPL3115A2_CTRL_REG1_OS_MASK 0x38
#define MPL3115A2_CTRL_REG1_OS(x) (((uint8_t)(((uint8_t)(x))<<MPL3115A2_CTRL_REG1_OS_SHIFT))\
&MPL3115A2_CTRL_REG1_OS_MASK)
#define MPL3115A2_CTRL_REG1_RAW (1 << 6)
#define MPL3115A2_CTRL_REG1_ALT (1 << 7)
#define MPL3115A2_CTRL_REG2_ST_SHIFT 0
#define MPL3115A2_CTRL_REG2_ST_MASK 0xF
#define MPL3115A2_CTRL_REG2_ST(x) (((uint8_t)(((uint8_t)(x))<<MPL3115A2_CTRL_REG2_ST_SHIFT))\
&MPL3115A2_CTRL_REG2_ST_MASK)
#define MPL3115A2_CTRL_REG2_ALARM_SEL (1 << 4)
#define MPL3115A2_CTRL_REG2_LOAD_OPUT (1 << 5)
#define MPL3115A2_CTRL_REG3_PP_OD2 (1 << 0)
#define MPL3115A2_CTRL_REG3_IPOL2 (1 << 1)
#define MPL3115A2_CTRL_REG3_PP_OD1 (1 << 4)
#define MPL3115A2_CTRL_REG3_IPOL1 (1 << 5)
#define MPL3115A2_CTRL_REG4_INT_EN_TCHG (1 << 0)
#define MPL3115A2_CTRL_REG4_INT_EN_PCHG (1 << 1)
#define MPL3115A2_CTRL_REG4_INT_EN_TTH (1 << 2)
#define MPL3115A2_CTRL_REG4_INT_EN_PTH (1 << 3)
#define MPL3115A2_CTRL_REG4_INT_EN_TW (1 << 4)
#define MPL3115A2_CTRL_REG4_INT_EN_PW (1 << 5)
#define MPL3115A2_CTRL_REG4_INT_EN_FIFO (1 << 6)
#define MPL3115A2_CTRL_REG4_INT_EN_DRDY (1 << 7)
#define MPL3115A2_CTRL_REG5_INT_TCHG (1 << 0)
#define MPL3115A2_CTRL_REG5_INT_PCHG (1 << 1)
#define MPL3115A2_CTRL_REG5_INT_TTH (1 << 2)
#define MPL3115A2_CTRL_REG5_INT_PTH (1 << 3)
#define MPL3115A2_CTRL_REG5_INT_TW (1 << 4)
#define MPL3115A2_CTRL_REG5_INT_PW (1 << 5)
#define MPL3115A2_CTRL_REG5_INT_FIFO (1 << 6)
#define MPL3115A2_CTRL_REG5_INT_DRDY (1 << 7)
#define MPL3115A2_ID 0xC4 /**< Device ID */
#ifdef __cplusplus
}
#endif
#endif /* MPL3115A2_REG_H */
/** @} */