/* * Copyright (c) 2020 Sven Herrmann * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_DRIVERS_SENSOR_MPR_CONFIGURATION_H_ #define ZEPHYR_DRIVERS_SENSOR_MPR_CONFIGURATION_H_ /* * Pressure Range * * MIN is always 0 */ #define MPR_P_MIN (0) #if defined(CONFIG_MPR_PRESSURE_RANGE_0001) #define MPR_P_MAX (1) #elif defined(CONFIG_MPR_PRESSURE_RANGE_01_6) #define MPR_P_MAX (1.6) #elif defined(CONFIG_MPR_PRESSURE_RANGE_02_5) #define MPR_P_MAX (2.5) #elif defined(CONFIG_MPR_PRESSURE_RANGE_0015) #define MPR_P_MAX (15) #elif defined(CONFIG_MPR_PRESSURE_RANGE_0025) #define MPR_P_MAX (25) #elif defined(CONFIG_MPR_PRESSURE_RANGE_0030) #define MPR_P_MAX (30) #elif defined(CONFIG_MPR_PRESSURE_RANGE_0060) #define MPR_P_MAX (60) #elif defined(CONFIG_MPR_PRESSURE_RANGE_0100) #define MPR_P_MAX (100) #elif defined(CONFIG_MPR_PRESSURE_RANGE_0160) #define MPR_P_MAX (160) #elif defined(CONFIG_MPR_PRESSURE_RANGE_0250) #define MPR_P_MAX (250) #elif defined(CONFIG_MPR_PRESSURE_RANGE_0400) #define MPR_P_MAX (400) #elif defined(CONFIG_MPR_PRESSURE_RANGE_0600) #define MPR_P_MAX (600) #else #error "MPR: Unknown pressure range." #endif /* * Pressure Unit */ #if defined(CONFIG_MPR_PRESSURE_UNIT_P) /* psi to kPa conversion factor: 6.894757 * 10^6 */ #define MPR_CONVERSION_FACTOR (6894757) #elif defined(CONFIG_MPR_PRESSURE_UNIT_K) /* kPa to kPa conversion factor: 1 * 10^6 */ #define MPR_CONVERSION_FACTOR (1000000) #elif defined(CONFIG_MPR_PRESSURE_UNIT_B) /* bar to kPa conversion factor: 100 * 10^6 */ #define MPR_CONVERSION_FACTOR (100000000) #elif defined(CONFIG_MPR_PRESSURE_UNIT_M) /* mbar to kPa conversion factor: 0.1 * 10^6 */ #define MPR_CONVERSION_FACTOR (100000) #else #error "MPR: Unknown pressure unit." #endif /* * Transfer function */ #if defined(CONFIG_MPR_TRANSFER_FUNCTION_A) #define MPR_OUTPUT_MIN (0x19999A) /* 10% of 2^24 */ #define MPR_OUTPUT_MAX (0xE66666) /* 90% of 2^24 */ #elif defined(CONFIG_MPR_TRANSFER_FUNCTION_B) #define MPR_OUTPUT_MIN (0x66666) /* 2.5% of 2^24 */ #define MPR_OUTPUT_MAX (0x399999) /* 22.5% of 2^24 */ #elif defined(CONFIG_MPR_TRANSFER_FUNCTION_C) #define MPR_OUTPUT_MIN (0x333333) /* 20% of 2^24 */ #define MPR_OUTPUT_MAX (0xCCCCCC) /* 80% of 2^24 */ #else #error "MPR: Unknown pressure reference." #endif #define MPR_OUTPUT_RANGE (MPR_OUTPUT_MAX - MPR_OUTPUT_MIN) #endif /* ZEPHYR_DRIVERS_SENSOR_MPR_CONFIGURATION_H_ */