|
BMP581 Driver 1.0.0
API reference
|
Namespaces | |
| namespace | addr |
| 7-bit I2C addresses (SDO low → 0x46, SDO high → 0x47). | |
| namespace | chip_id |
Chip identifiers accepted by Driver::Init(). | |
| namespace | cmd |
| Command register values. | |
| namespace | detail |
| namespace | dsp_config |
| DSP_CONFIG (0x30) fields. | |
| namespace | dsp_iir |
| DSP_IIR (0x31) fields. | |
| namespace | int_config |
| INT_CONFIG (0x14) fields. | |
| namespace | int_source |
| INT_SOURCE (0x15) enable bits. | |
| namespace | int_status |
| INT_STATUS (0x27) bits. | |
| namespace | nvm |
| NVM user space (3 × 16-bit words). | |
| namespace | odr_config |
| ODR_CONFIG (0x37) fields. | |
| namespace | osr_config |
| OSR_CONFIG (0x36) fields. | |
| namespace | osr_eff |
| OSR_EFF (0x38) fields. | |
| namespace | reg |
| Register addresses. | |
| namespace | status |
| STATUS (0x28) bits. | |
| namespace | timing |
| Timing (data sheet / Bosch API). | |
Classes | |
| class | BusInterface |
| CRTP base for the BMP581 register transport. More... | |
| struct | Config |
Convenience: one-call configuration for Driver::Configure(). More... | |
| class | Driver |
| BMP581 client. More... | |
| struct | DriverResult |
| struct | DriverResult< void > |
| struct | EffectiveOsr |
| Effective oversampling and ODR validity (OSR_EFF). More... | |
| struct | IirConfig |
| IIR configuration (DSP_CONFIG + DSP_IIR). Writable in standby only. More... | |
| struct | InterruptConfig |
| Interrupt pin configuration (INT_CONFIG). More... | |
| struct | InterruptSources |
| Interrupt sources (INT_SOURCE). More... | |
| struct | OsrOdrConfig |
| Oversampling / ODR / pressure-enable (OSR_CONFIG + ODR_CONFIG). More... | |
| struct | Sample |
| One pressure / temperature sample. More... | |
Enumerations | |
| enum class | Interface : uint8_t { Unspecified = 0 , I2c = 1 , Spi = 2 } |
Bus an adapter drives, declared as static constexpr Interface kInterface (optional). More... | |
| enum class | PowerMode : uint8_t { Standby = 0 , Normal = 1 , Forced = 2 , Continuous = 3 , DeepStandby = 4 } |
| Power modes (ODR_CONFIG bits 1:0; deep standby = standby with deep_dis = 0). More... | |
| enum class | Oversampling : uint8_t { X1 = 0 , X2 = 1 , X4 = 2 , X8 = 3 , X16 = 4 , X32 = 5 , X64 = 6 , X128 = 7 } |
| Oversampling (OSR_CONFIG). More... | |
| enum class | Odr : uint8_t { Hz240 = 0x00 , Hz218_5 = 0x01 , Hz199_1 = 0x02 , Hz179_2 = 0x03 , Hz160 = 0x04 , Hz149_3 = 0x05 , Hz140 = 0x06 , Hz129_8 = 0x07 , Hz120 = 0x08 , Hz110_1 = 0x09 , Hz100_2 = 0x0A , Hz89_6 = 0x0B , Hz80 = 0x0C , Hz70 = 0x0D , Hz60 = 0x0E , Hz50 = 0x0F , Hz45 = 0x10 , Hz40 = 0x11 , Hz35 = 0x12 , Hz30 = 0x13 , Hz25 = 0x14 , Hz20 = 0x15 , Hz15 = 0x16 , Hz10 = 0x17 , Hz5 = 0x18 , Hz4 = 0x19 , Hz3 = 0x1A , Hz2 = 0x1B , Hz1 = 0x1C , Hz0_5 = 0x1D , Hz0_25 = 0x1E , Hz0_125 = 0x1F } |
| Output data rate (ODR_CONFIG bits 6:2). Codes ascend as rate descends. More... | |
| enum class | IirFilter : uint8_t { Bypass = 0 , Coeff1 = 1 , Coeff3 = 2 , Coeff7 = 3 , Coeff15 = 4 , Coeff31 = 5 , Coeff63 = 6 , Coeff127 = 7 } |
| IIR filter coefficient (DSP_IIR). More... | |
| enum class | IntMode : uint8_t { Pulsed = 0 , Latched = 1 } |
| Interrupt pin behaviour. More... | |
| enum class | IntPolarity : uint8_t { ActiveLow = 0 , ActiveHigh = 1 } |
| enum class | IntDrive : uint8_t { PushPull = 0 , OpenDrain = 1 } |
| enum class | DriverError : uint8_t { None = 0 , InvalidParameter , NotInitialized , Bus , InvalidChipId , NvmNotReady , PorSoftReset , InvalidPowerMode , NvmInvalidAddr , NvmCommandError } |
| Driver-level error codes (stable for logging / telemetry). More... | |
Functions | |
| const char * | GetDriverVersion () noexcept |
| Driver version string (from generated bmp581_version.h). | |
| constexpr float | OdrHz (Odr odr) noexcept |
| ODR code → nominal rate in Hz (for logging / loop-rate planning). | |
| constexpr std::string_view | ToString (DriverError e) noexcept |
| constexpr std::string_view | ToString (PowerMode m) noexcept |
| constexpr Config | BarometricReferencePreset () noexcept |
| Barometric preset for a ~100 Hz reference channel. OSR ×8 pressure / ×1 temperature keeps the ODR valid at 100 Hz on the BMP581; IIR coeff 3 trims the last few Pa of noise without adding meaningful lag. | |
Variables | |
| template<typename Bus > | |
| constexpr Interface | kBusInterface = detail::DeclaredInterface<Bus>::value |
The interface adapter Bus declares, or Interface::Unspecified. | |
| constexpr float | kPressureLsbPerPa = 64.0f |
| Raw → engineering scaling (data sheet §4.x, Bosch API). | |
| constexpr float | kTemperatureLsbPerC = 65536.0f |
| temperature_c = raw / 65536 | |
|
strong |
Driver-level error codes (stable for logging / telemetry).
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
Barometric preset for a ~100 Hz reference channel. OSR ×8 pressure / ×1 temperature keeps the ODR valid at 100 Hz on the BMP581; IIR coeff 3 trims the last few Pa of noise without adding meaningful lag.
Driver version string (from generated bmp581_version.h).
ODR code → nominal rate in Hz (for logging / loop-rate planning).
|
constexprnoexcept |
|
inlineconstexpr |
The interface adapter Bus declares, or Interface::Unspecified.
Raw → engineering scaling (data sheet §4.x, Bosch API).
pressure_pa = raw / 64