Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
bmp280_regs.h
Go to the documentation of this file.
1
/*
2
* Chris Efstathiou hendrixgr@gmail.com
3
*
4
* This file is part of paparazzi.
5
*
6
* paparazzi is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2, or (at your option)
9
* any later version.
10
*
11
* paparazzi is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with paparazzi; see the file COPYING. If not, see
18
* <http://www.gnu.org/licenses/>.
19
*/
20
31
#ifndef BMP280_REGS_H
32
#define BMP280_REGS_H
33
34
#include "
std.h
"
35
36
#define BMP280_READ_FLAG 0x80
37
38
// I2C addresses (8 bits)
39
#define BMP280_I2C_ADDR 0xEC
40
#define BMP280_I2C_ADDR_ALT 0xEE
41
42
43
// CALIBRATION REGISTER ADDRESSES
44
#define BMP280_CALIB_LSB_DATA_ADDR 0x88
45
#define BMP280_CALIB_DATA_LEN 24
46
47
#define BMP280_DIG_T1_UINT 0x88
48
#define BMP280_DIG_T2_INT 0x8A
49
#define BMP280_DIG_T3_INT 0x8C
50
#define BMP280_DIG_P1_UINT 0x8E
51
#define BMP280_DIG_P2_INT 0x90
52
#define BMP280_DIG_P3_INT 0x92
53
#define BMP280_DIG_P4_INT 0x94
54
#define BMP280_DIG_P5_INT 0x96
55
#define BMP280_DIG_P6_INT 0x98
56
#define BMP280_DIG_P7_INT 0x9A
57
#define BMP280_DIG_P8_INT 0x9C
58
#define BMP280_DIG_P9_INT 0x9E
59
60
// CONTROL AND VALUES REGISTER ADDRESSES
61
#define BMP280_CONFIG_ADDR 0xF4
62
#define BMP280_CONFIG_LEN 0x02
63
#define BMP280_DATA_START_REG_ADDR 0xF7
64
#define BMP280_P_T_DATA_LEN 6
65
#define BMP280_P_DATA_LEN 3
66
#define BMP280_T_DATA_LEN 3
67
68
#define BMP280_CHIP_ID_REG_ADDR 0xD0
69
#define BMP280_RESET_REG_ADDR 0xF3
70
#define BMP280_STATUS_REG_ADDR 0xF3
71
#define BMP280_CTRL_MEAS_REG_ADDR 0xF4
72
#define BMP280_CONFIG_REG_ADDR 0xF5
73
#define BMP280_P_MSB_REG_ADDR 0xF7
74
#define BMP280_P_LSB_REG_ADDR 0xF8
75
#define BMP280_P_XLSB_REG_ADDR 0xF9
76
#define BMP280_T_MSB_REG_ADDR 0xFA
77
#define BMP280_T_LSB_REG_ADDR 0xFB
78
#define BMP280_T_XLSB_REG_ADDR 0xFC
79
80
81
// BMP280 ID
82
#define BMP280_ID_NB 0x58
83
//BMP280 RESET COMMAND VALUE
84
#define BMP280_RESET_VAL 0xB6
85
86
#define BMP280_EOC_BIT (1<<3)
87
#define BMP280_NVRAM_COPY_BIT (1<<0)
88
89
// BMP280 CONTROL MEASUREMENT REGISTER BIT VALUES.
90
#define BMP280_NO_OVERSAMPLING_T (0x00<<5)
91
#define BMP280_OVERSAMPLING_1X_T (0x01<<5)
92
#define BMP280_OVERSAMPLING_2X_T (0x02<<5)
93
#define BMP280_OVERSAMPLING_4X_T (0x03<<5)
94
#define BMP280_OVERSAMPLING_8X_T (0x04<<5)
95
#define BMP280_OVERSAMPLING_16X_T (0x05<<5)
96
97
#define BMP280_NO_OVERSAMPLING_P (0x00<<2)
98
#define BMP280_OVERSAMPLING_1X_P (0x01<<2)
99
#define BMP280_OVERSAMPLING_2X_P (0x02<<2)
100
#define BMP280_OVERSAMPLING_4X_P (0x03<<2)
101
#define BMP280_OVERSAMPLING_8X_P (0x04<<2)
102
#define BMP280_OVERSAMPLING_16X_P (0x05<<2)
103
104
#define BMP280_POWER_SLEEP_MODE (0x00)
105
#define BMP280_POWER_FORCED_MODE (0x01)
// OX02 IS EXACTLY THE SAME
106
#define BMP280_POWER_NORMAL_MODE (0x03)
107
108
// BMP280 CONFIG REGISTER BIT VALUES
109
#define BMP280_INACTIVITY_HALF_MS (0x00<<5)
110
#define BMP280_INACTIVITY_62_5_MS (0x01<<5)
111
#define BMP280_INACTIVITY_125_MS (0x02<<5)
112
#define BMP280_INACTIVITY_250_MS (0x03<<5)
113
#define BMP280_INACTIVITY_500_MS (0x04<<5)
114
#define BMP280_INACTIVITY_1000_MS (0x05<<5)
115
#define BMP280_INACTIVITY_2000_MS (0x06<<5)
116
#define BMP280_INACTIVITY_4000_MS (0x07<<5)
117
118
#define BMP280_IIR_FILTER_COEFF_1 (0x00<<2)
119
#define BMP280_IIR_FILTER_COEFF_2 (0x01<<2)
120
#define BMP280_IIR_FILTER_COEFF_4 (0x02<<2)
121
#define BMP280_IIR_FILTER_COEFF_8 (0x03<<2)
122
#define BMP280_IIR_FILTER_COEFF_16 (0x04<<2)
123
124
#define BMP280_DISABLE_SPI_IF (0x00)
// DEFAULT
125
#define BMP280_ENABLE_SPI_IF (0x01)
126
127
129
#define BMP280_SLEEP_MODE 0x00
130
#define BMP280_FORCED_MODE 0x01
131
#define BMP280_NORMAL_MODE 0x03
132
133
135
#define BMP280_PRESS 0x01
136
#define BMP280_TEMP 0x02
137
#define BMP280_ALL 0x03
138
140
#define BMP280_CONCAT_BYTES(msb, lsb) (((uint16_t)msb << 8) | (uint16_t)lsb)
141
142
#ifndef BMP280_COMPENSATION
143
#define BMP280_COMPENSATION BMP280_DOUBLE_PRECISION_COMPENSATION
144
#endif
145
146
147
148
#endif
/* BMP280_REGS_H */
std.h
sw
airborne
peripherals
bmp280_regs.h
Generated on Thu Dec 5 2024 13:05:31 for Paparazzi UAS by
1.9.1