Smart Remote 3 nRF52 v1.2
Introduction
API Reference
Modules
Data Structures
All
Data Structures
Functions
Variables
Typedefs
Enumerations
Enumerator
Groups
Pages
drv_acc_bma222e.h
1
/*$$$LICENCE_NORDIC_STANDARD<2016>$$$*/
2
12
#ifndef __DRV_ACC_BMA222E_H__
13
#define __DRV_ACC_BMA222E_H__
14
15
//-----------------------------------------------------------------------------
16
// Register map
17
//-----------------------------------------------------------------------------
18
#define BMA222E_BGW_CHIPID (0x00)
19
#define BMA222E_PMU_RANGE (0x0F)
20
#define BMA222E_PMU_BW (0x10)
21
#define BMA222E_PMU_LPW (0x11)
22
#define BMA222E_PMU_LOW_POWER (0x12)
23
#define BMA222E_ACCD_HBW (0x13)
24
#define BMA222E_BGW_SOFTRESET (0x14)
25
#define BMA222E_INT_EN_0 (0x16)
26
#define BMA222E_INT_EN_1 (0x17)
27
#define BMA222E_INT_EN_2 (0x18)
28
#define BMA222E_INT_MAP_0 (0x19)
29
#define BMA222E_INT_MAP_1 (0x1A)
30
#define BMA222E_INT_MAP_2 (0x1B)
31
#define BMA222E_INT_SRC (0x1E)
32
#define BMA222E_INT_OUT_CTRL (0x20)
33
#define BMA222E_INT_RST_LATCH (0x21)
34
#define BMA222E_INT_0 (0x22)
35
#define BMA222E_INT_1 (0x23)
36
#define BMA222E_INT_2 (0x24)
37
#define BMA222E_INT_3 (0x25)
38
#define BMA222E_INT_4 (0x26)
39
#define BMA222E_INT_5 (0x27)
40
#define BMA222E_INT_6 (0x28)
41
#define BMA222E_INT_7 (0x29)
42
#define BMA222E_INT_8 (0x2A)
43
#define BMA222E_INT_9 (0x2B)
44
#define BMA222E_INT_A (0x2C)
45
#define BMA222E_INT_B (0x2D)
46
#define BMA222E_INT_C (0x2E)
47
#define BMA222E_INT_D (0x2F)
48
#define BMA222E_FIFO_CONFIG_0 (0x30)
49
50
#define BMA222E_I_AM_BMA222E (0xF8)
51
52
/****************************/
54
/****************************/
55
#define BMA2x2_SLEEP_DURN_POS (1)
56
#define BMA2x2_SLEEP_DURN_LEN (4)
57
#define BMA2x2_SLEEP_DURN_MSK (0x1E)
58
#define BMA2x2_SLEEP_DURN_REG BMA222E_PMU_LPW
59
/****************************/
61
/****************************/
62
#define BMA2x2_MODE_CTRL_POS (5)
63
#define BMA2x2_MODE_CTRL_LEN (3)
64
#define BMA2x2_MODE_CTRL_MSK (0xE0)
65
#define BMA2x2_MODE_CTRL_REG BMA222E_PMU_LPW
66
67
/***************************************************/
68
/* SOFT RESET VALUE */
69
/***************************************************/
70
#define BMA2x2_ENABLE_SOFT_RESET_VALUE (0xB6)
71
72
/**********************************************/
73
/* INTERRUPT ENABLE OF SLOPE-XYZ */
74
/**********************************************/
75
#define BMA2x2_ENABLE_SLOPE_X_INTR_POS (0)
76
#define BMA2x2_ENABLE_SLOPE_X_INTR_LEN (1)
77
#define BMA2x2_ENABLE_SLOPE_X_INTR_MSK (0x01)
78
#define BMA2x2_ENABLE_SLOPE_X_INTR_REG BMA222E_INT_EN_0
79
80
#define BMA2x2_ENABLE_SLOPE_Y_INTR_POS (1)
81
#define BMA2x2_ENABLE_SLOPE_Y_INTR_LEN (1)
82
#define BMA2x2_ENABLE_SLOPE_Y_INTR_MSK (0x02)
83
#define BMA2x2_ENABLE_SLOPE_Y_INTR_REG BMA222E_INT_EN_0
84
85
#define BMA2x2_ENABLE_SLOPE_Z_INTR_POS (2)
86
#define BMA2x2_ENABLE_SLOPE_Z_INTR_LEN (1)
87
#define BMA2x2_ENABLE_SLOPE_Z_INTR_MSK (0x04)
88
#define BMA2x2_ENABLE_SLOPE_Z_INTR_REG BMA222E_INT_EN_0
89
90
/**********************************************/
92
/**********************************************/
93
#define BMA2x2_ENABLE_DOUBLE_TAP_INTR_POS (4)
94
#define BMA2x2_ENABLE_DOUBLE_TAP_INTR_LEN (1)
95
#define BMA2x2_ENABLE_DOUBLE_TAP_INTR_MSK (0x10)
96
#define BMA2x2_ENABLE_DOUBLE_TAP_INTR_REG BMA222E_INT_EN_0
97
/**********************************************/
99
/**********************************************/
100
#define BMA2x2_ENABLE_SINGLE_TAP_INTR_POS (5)
101
#define BMA2x2_ENABLE_SINGLE_TAP_INTR_LEN (1)
102
#define BMA2x2_ENABLE_SINGLE_TAP_INTR_MSK (0x20)
103
#define BMA2x2_ENABLE_SINGLE_TAP_INTR_REG BMA222E_INT_EN_0
104
105
/**********************************************/
106
/* INTERRUPT1 ENABLE OF PAD LOW_G */
107
/**********************************************/
108
#define BMA2x2_ENABLE_INTR1_PAD_LOW_G_POS (0)
109
#define BMA2x2_ENABLE_INTR1_PAD_LOW_G_LEN (1)
110
#define BMA2x2_ENABLE_INTR1_PAD_LOW_G_MSK (0x01)
111
#define BMA2x2_ENABLE_INTR1_PAD_LOW_G_REG BMA222E_INT_MAP_0
112
113
/**********************************************/
114
/* INTERRUPT1 ENABLE OF PAD HIGH_G */
115
/**********************************************/
116
#define BMA2x2_ENABLE_INTR1_PAD_HIGH_G_POS (1)
117
#define BMA2x2_ENABLE_INTR1_PAD_HIGH_G_LEN (1)
118
#define BMA2x2_ENABLE_INTR1_PAD_HIGH_G_MSK (0x02)
119
#define BMA2x2_ENABLE_INTR1_PAD_HIGH_G_REG BMA222E_INT_MAP_0
120
/**********************************************/
121
/* INTERRUPT1 ENABLE OF PAD SLOPE */
122
/**********************************************/
123
#define BMA2x2_ENABLE_INTR1_PAD_SLOPE_POS (2)
124
#define BMA2x2_ENABLE_INTR1_PAD_SLOPE_LEN (1)
125
#define BMA2x2_ENABLE_INTR1_PAD_SLOPE_MSK (0x04)
126
#define BMA2x2_ENABLE_INTR1_PAD_SLOPE_REG BMA222E_INT_MAP_0
127
/**********************************************/
128
/* INTERRUPT1 ENABLE OF SLOW NO MOTION */
129
/**********************************************/
130
#define BMA2x2_ENABLE_INTR1_PAD_SLOW_NO_MOTION_POS (3)
131
#define BMA2x2_ENABLE_INTR1_PAD_SLOW_NO_MOTION_LEN (1)
132
#define BMA2x2_ENABLE_INTR1_PAD_SLOW_NO_MOTION_MSK (0x08)
133
#define BMA2x2_ENABLE_INTR1_PAD_SLOW_NO_MOTION_REG BMA222E_INT_MAP_0
134
/**********************************************/
135
/* INTERRUPT1 ENABLE OF PAD DOUBLE_TAP */
136
/**********************************************/
137
#define BMA2x2_ENABLE_INTR1_PAD_DOUBLE_TAP_POS (4)
138
#define BMA2x2_ENABLE_INTR1_PAD_DOUBLE_TAP_LEN (1)
139
#define BMA2x2_ENABLE_INTR1_PAD_DOUBLE_TAP_MSK (0x10)
140
#define BMA2x2_ENABLE_INTR1_PAD_DOUBLE_TAP_REG BMA222E_INT_MAP_0
141
/**********************************************/
142
/* INTERRUPT1 ENABLE OF PAD SINGLE_TAP */
143
/**********************************************/
144
#define BMA2x2_ENABLE_INTR1_PAD_SINGLE_TAP_POS (5)
145
#define BMA2x2_ENABLE_INTR1_PAD_SINGLE_TAP_LEN (1)
146
#define BMA2x2_ENABLE_INTR1_PAD_SINGLE_TAP_MSK (0x20)
147
#define BMA2x2_ENABLE_INTR1_PAD_SINGLE_TAP_REG BMA222E_INT_MAP_0
148
/**********************************************/
149
/* INTERRUPT1 ENABLE OF PAD ORIENT */
150
/**********************************************/
151
#define BMA2x2_ENABLE_INTR1_PAD_ORIENT_POS (6)
152
#define BMA2x2_ENABLE_INTR1_PAD_ORIENT_LEN (1)
153
#define BMA2x2_ENABLE_INTR1_PAD_ORIENT_MSK (0x40)
154
#define BMA2x2_ENABLE_INTR1_PAD_ORIENT_REG BMA222E_INT_MAP_0
155
/**********************************************/
156
/* INTERRUPT1 ENABLE OF PAD FLAT */
157
/**********************************************/
158
#define BMA2x2_ENABLE_INTR1_PAD_FLAT_POS (7)
159
#define BMA2x2_ENABLE_INTR1_PAD_FLAT_LEN (1)
160
#define BMA2x2_ENABLE_INTR1_PAD_FLAT_MSK (0x80)
161
#define BMA2x2_ENABLE_INTR1_PAD_FLAT_REG BMA222E_INT_MAP_0
162
163
/**********************************************/
164
/* INTERRUPT SOURCE SELECTION OF LOW_G */
165
/**********************************************/
166
#define BMA2x2_UNFILT_INTR_SOURCE_LOW_G_POS (0)
167
#define BMA2x2_UNFILT_INTR_SOURCE_LOW_G_LEN (1)
168
#define BMA2x2_UNFILT_INTR_SOURCE_LOW_G_MSK (0x01)
169
#define BMA2x2_UNFILT_INTR_SOURCE_LOW_G_REG BMA222E_INT_SRC
170
/**********************************************/
171
/* INTERRUPT SOURCE SELECTION OF HIGH_G */
172
/**********************************************/
173
#define BMA2x2_UNFILT_INTR_SOURCE_HIGH_G_POS (1)
174
#define BMA2x2_UNFILT_INTR_SOURCE_HIGH_G_LEN (1)
175
#define BMA2x2_UNFILT_INTR_SOURCE_HIGH_G_MSK (0x02)
176
#define BMA2x2_UNFILT_INTR_SOURCE_HIGH_G_REG BMA222E_INT_SRC
177
/**********************************************/
178
/* INTERRUPT SOURCE SELECTION OF SLOPE */
179
/**********************************************/
180
#define BMA2x2_UNFILT_INTR_SOURCE_SLOPE_POS (2)
181
#define BMA2x2_UNFILT_INTR_SOURCE_SLOPE_LEN (1)
182
#define BMA2x2_UNFILT_INTR_SOURCE_SLOPE_MSK (0x04)
183
#define BMA2x2_UNFILT_INTR_SOURCE_SLOPE_REG BMA222E_INT_SRC
184
/************************************************/
185
/* INTERRUPT SOURCE SELECTION OF SLOW NO MOTION */
186
/************************************************/
187
#define BMA2x2_UNFILT_INTR_SOURCE_SLOW_NO_MOTION_POS (3)
188
#define BMA2x2_UNFILT_INTR_SOURCE_SLOW_NO_MOTION_LEN (1)
189
#define BMA2x2_UNFILT_INTR_SOURCE_SLOW_NO_MOTION_MSK (0x08)
190
#define BMA2x2_UNFILT_INTR_SOURCE_SLOW_NO_MOTION_REG BMA222E_INT_SRC
191
/**********************************************/
192
/* INTERRUPT SOURCE SELECTION OF TAP */
193
/**********************************************/
194
#define BMA2x2_UNFILT_INTR_SOURCE_TAP_POS (4)
195
#define BMA2x2_UNFILT_INTR_SOURCE_TAP_LEN (1)
196
#define BMA2x2_UNFILT_INTR_SOURCE_TAP_MSK (0x10)
197
#define BMA2x2_UNFILT_INTR_SOURCE_TAP_REG BMA222E_INT_SRC
198
/**********************************************/
199
/* INTERRUPT SOURCE SELECTION OF DATA */
200
/**********************************************/
201
#define BMA2x2_UNFILT_INTR_SOURCE_DATA_POS (5)
202
#define BMA2x2_UNFILT_INTR_SOURCE_DATA_LEN (1)
203
#define BMA2x2_UNFILT_INTR_SOURCE_DATA_MSK (0x20)
204
#define BMA2x2_UNFILT_INTR_SOURCE_DATA_REG BMA222E_INT_SRC
205
206
/****************************************************/
207
/* INTERRUPT PAD ACTIVE LEVEL AND OUTPUT TYPE */
208
/****************************************************/
209
#define BMA2x2_INTR1_PAD_ACTIVE_LEVEL_POS (0)
210
#define BMA2x2_INTR1_PAD_ACTIVE_LEVEL_LEN (1)
211
#define BMA2x2_INTR1_PAD_ACTIVE_LEVEL_MSK (0x01)
212
#define BMA2x2_INTR1_PAD_ACTIVE_LEVEL_REG BMA222E_INT_OUT_CTRL
213
214
#define BMA2x2_INTR2_PAD_ACTIVE_LEVEL_POS (2)
215
#define BMA2x2_INTR2_PAD_ACTIVE_LEVEL_LEN (1)
216
#define BMA2x2_INTR2_PAD_ACTIVE_LEVEL_MSK (0x04)
217
#define BMA2x2_INTR2_PAD_ACTIVE_LEVEL_REG BMA222E_INT_OUT_CTRL
218
219
#define BMA2x2_INTR1_PAD_OUTPUT_TYPE_POS (1)
220
#define BMA2x2_INTR1_PAD_OUTPUT_TYPE_LEN (1)
221
#define BMA2x2_INTR1_PAD_OUTPUT_TYPE_MSK (0x02)
222
#define BMA2x2_INTR1_PAD_OUTPUT_TYPE_REG BMA222E_INT_OUT_CTRL
223
224
#define BMA2x2_INTR2_PAD_OUTPUT_TYPE_POS (3)
225
#define BMA2x2_INTR2_PAD_OUTPUT_TYPE_LEN (1)
226
#define BMA2x2_INTR2_PAD_OUTPUT_TYPE_MSK (0x08)
227
#define BMA2x2_INTR2_PAD_OUTPUT_TYPE_REG BMA222E_INT_OUT_CTRL
228
229
/****************************************************/
230
/* LATCH INTERRUPT */
231
/****************************************************/
232
#define BMA2x2_LATCH_INTR_POS (0)
233
#define BMA2x2_LATCH_INTR_LEN (4)
234
#define BMA2x2_LATCH_INTR_MSK (0x0F)
235
#define BMA2x2_LATCH_INTR_REG BMA222E_INT_RST_LATCH
236
/****************************************************/
237
/* RESET LATCH INTERRUPT */
238
/****************************************************/
239
#define BMA2x2_RESET_INTR_POS (7)
240
#define BMA2x2_RESET_INTR_LEN (1)
241
#define BMA2x2_RESET_INTR_MSK (0x80)
242
#define BMA2x2_RESET_INTR_REG BMA222E_INT_RST_LATCH
243
244
/****************************************************/
246
/****************************************************/
247
#define BMA2x2_TAP_DURN_POS (0)
248
#define BMA2x2_TAP_DURN_LEN (3)
249
#define BMA2x2_TAP_DURN_MSK (0x07)
250
#define BMA2x2_TAP_DURN_REG BMA222E_INT_8
251
252
/****************************************************/
254
/****************************************************/
255
#define BMA2x2_TAP_SHOCK_DURN_POS (6)
256
#define BMA2x2_TAP_SHOCK_DURN_LEN (1)
257
#define BMA2x2_TAP_SHOCK_DURN_MSK (0x40)
258
#define BMA2x2_TAP_SHOCK_DURN_REG BMA222E_INT_8
259
260
/* This advance tap interrupt only uses for the chip id 0xFB */
261
#define BMA2x2_ADV_TAP_INTR_POS (5)
262
#define BMA2x2_ADV_TAP_INTR_LEN (1)
263
#define BMA2x2_ADV_TAP_INTR_MSK (0x20)
264
#define BMA2x2_ADV_TAP_INTR_REG BMA222E_INT_8
265
266
/****************************************************/
268
/****************************************************/
269
#define BMA2x2_TAP_QUIET_DURN_POS (7)
270
#define BMA2x2_TAP_QUIET_DURN_LEN (1)
271
#define BMA2x2_TAP_QUIET_DURN_MSK (0x80)
272
#define BMA2x2_TAP_QUIET_DURN_REG BMA222E_INT_8
273
274
/****************************************************/
276
/****************************************************/
277
#define BMA2x2_TAP_THRES_POS (0)
278
#define BMA2x2_TAP_THRES_LEN (5)
279
#define BMA2x2_TAP_THRES_MSK (0x1F)
280
#define BMA2x2_TAP_THRES_REG BMA222E_INT_9
281
282
/****************************************************/
284
/****************************************************/
285
#define BMA2x2_TAP_SAMPLES_POS (6)
286
#define BMA2x2_TAP_SAMPLES_LEN (2)
287
#define BMA2x2_TAP_SAMPLES_MSK (0xC0)
288
#define BMA2x2_TAP_SAMPLES_REG BMA222E_INT_9
289
290
/****************************/
292
/****************************/
293
#define BMA2x2_BW_POS (0)
294
#define BMA2x2_BW_LEN (5)
295
#define BMA2x2_BW_MSK (0x1F)
296
#define BMA2x2_BW_REG BMA222E_PMU_BW
297
298
#endif
/* __DRV_ACC_BMA222E_TYPES_H__ */
299
Documentation feedback
|
Developer Zone
|
Subscribe
| Updated