数据搜索系统,热门电子元器件搜索
  Chinese  ▼
ALLDATASHEETCN.COM

X  

BMP280 数据表(PDF) 44 Page - Bosch Sensortec GmbH

部件名 BMP280
功能描述  Digital Pressure Sensor
PDF  49 Pages
Scroll/Zoom Zoom In 100%  Zoom Out
制造商  BOSCH [Bosch Sensortec GmbH]
网页  https://www.bosch-sensortec.com
标志 BOSCH - Bosch Sensortec GmbH

BMP280 数据表(HTML) 44 Page - Bosch Sensortec GmbH

Back Button BMP280 Datasheet HTML 40Page - Bosch Sensortec GmbH BMP280 Datasheet HTML 41Page - Bosch Sensortec GmbH BMP280 Datasheet HTML 42Page - Bosch Sensortec GmbH BMP280 Datasheet HTML 43Page - Bosch Sensortec GmbH BMP280 Datasheet HTML 44Page - Bosch Sensortec GmbH BMP280 Datasheet HTML 45Page - Bosch Sensortec GmbH BMP280 Datasheet HTML 46Page - Bosch Sensortec GmbH BMP280 Datasheet HTML 47Page - Bosch Sensortec GmbH BMP280 Datasheet HTML 48Page - Bosch Sensortec GmbH Next Button
Zoom Inzoom in Zoom Outzoom out
 44 / 49 page
background image
Bosch Sensortec | BMP280 Data sheet
44 |
49
Modifications reserved | Data subject to change without notice
Document number: BST-BMP280-DS001-26 Revision_1.26_102021
8. Appendix 1: Computation formulae for 32 bit systems
8.1 Compensation formula in floating point
Please note that it is strongly advised to use the API available from Bosch Sensortec to perform
readout and compensation. If this is not wanted, the code below can be applied at the user’s risk. Both
pressure and temperature values are expected to be received in 20 bit format, positive, stored in a 32
bit signed integer.
The variable t_fine (signed 32 bit) carries a fine resolution temperature value over to the pressure
compensation formula and could be implemented as a global variable.
The data type “BMP280_S32_t” should define a 32 bit signed integer variable type and could usually
be defined as “long signed int”. The revision of the code is rev.1.1.
// Returns temperature in DegC, double precision. Output value of “51.23” equals 51.23 DegC.
// t_fine carries fine temperature as global value
BMP280_S32_t t_fine;
double bmp280_compensate_T_double(BMP280_S32_t adc_T)
{
double var1, var2, T;
var1 = (((double)adc_T)/16384.0 – ((double)dig_T1)/1024.0) * ((double)dig_T2);
var2 = ((((double)adc_T)/131072.0 – ((double)dig_T1)/8192.0) *
(((double)adc_T)/131072.0 – ((double) dig_T1)/8192.0)) * ((double)dig_T3);
t_fine = (BMP280_S32_t)(var1 + var2);
T = (var1 + var2) / 5120.0;
return T;
}
// Returns pressure in Pa as double. Output value of “96386.2” equals 96386.2 Pa = 963.862 hPa
double bmp280_compensate_P_double(BMP280_S32_t adc_P)
{
double var1, var2, p;
var1 = ((double)t_fine/2.0) – 64000.0;
var2 = var1 * var1 * ((double)dig_P6) / 32768.0;
var2 = var2 + var1 * ((double)dig_P5) * 2.0;
var2 = (var2/4.0)+(((double)dig_P4) * 65536.0);
var1 = (((double)dig_P3) * var1 * var1 / 524288.0 + ((double)dig_P2) * var1) / 524288.0;
var1 = (1.0 + var1 / 32768.0)*((double)dig_P1);
if (var1 == 0.0)
{
return 0; // avoid exception caused by division by zero
}
p = 1048576.0 – (double)adc_P;
p = (p – (var2 / 4096.0)) * 6250.0 / var1;
var1 = ((double)dig_P9) * p * p / 2147483648.0;
var2 = p * ((double)dig_P8) / 32768.0;
p = p + (var1 + var2 + ((double)dig_P7)) / 16.0;
return p;
}
8.2 Compensation formula in 32 bit fixed point
Please note that it is strongly advised to use the API available from Bosch Sensortec to perform
readout and compensation. If this is not wanted, the code below can be applied at the user’s risk. Both
pressure and temperature values are expected to be received in 20 bit format, positive, stored in a 32
bit signed integer.
The variable t_fine (signed 32 bit) carries a fine resolution temperature value over to the pressure
compensation formula and could be implemented as a global variable.
The data type “BMP280_S32_t” should define a 32 bit signed integer variable type and can usually be
defined as “long signed int”.
The data type “BMP280_U32_t” should define a 32 bit unsigned integer variable type and can usually
be defined as “long unsigned int”.
Compensating the pressure value with 32 bit integer has an accuracy of typically 1 Pa (1-sigma). At
very high filter levels this adds a noticeable amount of noise to the output values and reduces their
resolution.
// Returns temperature in DegC, resolution is 0.01 DegC. Output value of “5123” equals 51.23 DegC.
// t_fine carries fine temperature as global value
BMP280_S32_t t_fine;
BMP280_S32_t bmp280_compensate_T_int32(BMP280_S32_t adc_T)
{
BMP280_S32_t var1, var2, T;



Html Pages

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49


数据表 下载

Go To PDF Page


链接网址



ALLDATASHEET是否为您带来帮助?  [ DONATE ] 

关于 Alldatasheet   |   广告服务   |   联系我们   |   隐私政策   |   数据表链接    |   链接交换   |   制造商名单
All Rights Reserved©Alldatasheet.com


Mirror Sites
English : Alldatasheet.com  |   English : Alldatasheet.net  |   Chinese : Alldatasheetcn.com  |   German : Alldatasheetde.com  |   Japanese : Alldatasheet.jp
Russian : Alldatasheetru.com  |   Korean : Alldatasheet.co.kr  |   Spanish : Alldatasheet.es  |   French : Alldatasheet.fr  |   Italian : Alldatasheetit.com
Portuguese : Alldatasheetpt.com  |   Polish : Alldatasheet.pl  |   Vietnamese : Alldatasheet.vn
Indian : Alldatasheet.in  |   Mexican : Alldatasheet.com.mx  |   British : Alldatasheet.co.uk  |   New Zealand : Alldatasheet.co.nz
Family Site : ic2ic.com  |   icmetro.com