Skyward boardcore
Loading...
Searching...
No Matches
LPS22DFDefs.h
Go to the documentation of this file.
1/* Copyright (c) 2023 Skyward Experimental Rocketry
2 * Author: Giulia Ghirardini
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22
23#pragma once
24
25namespace Boardcore
26{
27
28namespace LPS22DFDefs
29{
30
31static constexpr uint32_t WHO_AM_I_VALUE = 0xb4;
32
33static constexpr float TEMP_SENS = 100;
34static constexpr float PRES_SENS = 40.96;
35
36enum Registers : uint8_t
37{
39
40 THS_P_L = 0x0c,
41 THS_P_H = 0x0d,
42
43 IF_CTRL = 0x0e,
44
45 WHO_AM_I = 0x0f,
46
47 CTRL_REG1 = 0x10,
48 CTRL_REG2 = 0x11,
49 CTRL_REG3 = 0x12,
50 CTRL_REG4 = 0x13,
51
52 FIFO_CTRL = 0x14,
53 FIFO_WTM = 0x15,
54
55 REF_P_L = 0x16,
56 REF_P_H = 0x17,
57
58 FIFO_STATUS1 = 0x25,
59 FIFO_STATUS2 = 0x26,
60
61 STATUS = 0x27,
62
63 PRESS_OUT_XL = 0x28,
64 PRESS_OUT_L = 0x29,
65 PRESS_OUT_H = 0x2a,
66
67 TEMP_OUT_L = 0x2b,
68 TEMP_OUT_H = 0x2c,
69
73};
74
75enum IF_CTRL : uint8_t
76{
77 CS_PU_DIS = 1 << 1,
78 INT_PD_DIS = 1 << 2,
79 SDO_PU_EN = 1 << 3,
80 SDA_PU_EN = 1 << 4,
81 SIM = 1 << 5,
82 I2C_I3C_DIS = 1 << 6,
83 INT_EN_I3C = 1 << 7
84};
85
86enum CTRL_REG2 : uint8_t
87{
88 ONE_SHOT_START = 1 << 0,
89 SWRESET = 1 << 2,
90 BDU = 1 << 3,
91 EN_LPFP = 1 << 4,
92 LFPF_CFG = 1 << 5,
93 FS_MODE = 1 << 6,
94 BOOT = 1 << 7
95};
96
97enum CTRL_REG3 : uint8_t
98{
99 IF_ADD_INC = 1 << 0,
100 PP_OD = 1 << 1,
101 INT_H_L = 1 << 3
103
104enum CTRL_REG4 : uint8_t
105{
106 INT_F_OVR = 1 << 0,
107 INT_F_WTM = 1 << 1,
108 INT_F_FULL = 1 << 2,
109 INT_EN = 1 << 4,
110 DRDY = 1 << 5,
111 DRDY_PLS = 1 << 6
113
114enum STATUS : uint8_t
115{
116 P_DA = 1 << 0,
117 T_DA = 1 << 1,
118 P_OR = 1 << 4,
119 T_OR = 1 << 5
121
122} // namespace LPS22DFDefs
123
124} // namespace Boardcore
@ INT_H_L
Select interrupt active-high, active-low.
@ PP_OD
Push-pull/open-drain selection on interrupt pin.
@ IF_ADD_INC
Increment register during a multiple byte access.
Definition LPS22DFDefs.h:99
@ FS_MODE
Full-scale selection.
Definition LPS22DFDefs.h:93
@ BDU
Block data update.
Definition LPS22DFDefs.h:90
@ BOOT
Reboot memory content.
Definition LPS22DFDefs.h:94
@ ONE_SHOT_START
Enable one-shot mode.
Definition LPS22DFDefs.h:88
@ EN_LPFP
Enable low-pass filter on pressure data.
Definition LPS22DFDefs.h:91
@ SWRESET
Software reset.
Definition LPS22DFDefs.h:89
@ LFPF_CFG
Low-pass filter configuration.
Definition LPS22DFDefs.h:92
@ DRDY_PLS
Data-ready pulsed on INT_DRDY pin.
@ INT_EN
Interrupt signal on INT_DRDY pin.
@ DRDY
Date-ready signal on INT_DRDY pin.
@ INT_F_OVR
FIFO overrun status on INT_DRDY pin.
@ INT_F_FULL
FIFO full flag on INT_DRDY pin.
@ INT_F_WTM
FIFO threshold status on INT_DRDY pin.
@ I2C_I3C_DIS
Disable I2C and I3C digital interfaces.
Definition LPS22DFDefs.h:82
@ TEMP_OUT_L
Temperature output value LSB data.
Definition LPS22DFDefs.h:67
@ INTERRUPT_CFG
Interrupt mode for pressure acquisition.
Definition LPS22DFDefs.h:38
@ PRESS_OUT_L
Pressure output value middle data.
Definition LPS22DFDefs.h:64
@ FIFO_WTM
FIFO threshold setting register.
Definition LPS22DFDefs.h:53
@ WHO_AM_I
Device Who am I register.
Definition LPS22DFDefs.h:45
@ FIFO_DATA_OUT_PRESS_H
FIFO pressure output MSB data.
Definition LPS22DFDefs.h:72
@ FIFO_CTRL
FIFO control register.
Definition LPS22DFDefs.h:52
@ FIFO_STATUS1
FIFO status register 1.
Definition LPS22DFDefs.h:58
@ REF_P_H
Reference pressure MSB data.
Definition LPS22DFDefs.h:56
@ FIFO_STATUS2
FIFO status register 2.
Definition LPS22DFDefs.h:59
@ FIFO_DATA_OUT_PRESS_XL
FIFO pressure output LSB data.
Definition LPS22DFDefs.h:70
@ CTRL_REG1
Control Register 1 [ODR, AVG].
Definition LPS22DFDefs.h:47
@ PRESS_OUT_XL
Pressure output value LSB data.
Definition LPS22DFDefs.h:63
@ PRESS_OUT_H
Pressure output value MSB data.
Definition LPS22DFDefs.h:65
@ THS_P_L
User-defined threshold LSB register.
Definition LPS22DFDefs.h:40
@ FIFO_DATA_OUT_PRESS_L
FIFO pressure output middle data.
Definition LPS22DFDefs.h:71
@ REF_P_L
Reference pressure LSB data.
Definition LPS22DFDefs.h:55
@ THS_P_H
User-defined threshold MSB register.
Definition LPS22DFDefs.h:41
@ TEMP_OUT_H
Temperature output value MSB data.
Definition LPS22DFDefs.h:68
@ T_OR
Temperature data overrun.
@ P_OR
Pressure data overrun.
@ P_DA
Pressure data available.
@ T_DA
Temperature data available.
This file includes all the types the logdecoder script will decode.