1.概要
(1)仕様
|
![]() |
(2)ピン
ピンと目的は下表のとおり
左側はSPI対応品 |
(3)内部回路

2.簡単に使う
手順は| (1) | 設定 | (1-1)~(1-3) | |
| (2) | 補正値取得 | 要求(2-1Req)~(2-3Req) | 返信(2-1Res)~(2-3Res) |
| (3) | データ取得 | 要求(3-1Req) | 返信(3-1Res) |
(1)設定
(1-1)温度測定条件設定 湿度のオーバーサンプリングの設定湿度のオーバーサンプリング ×1に設定
| ①読取るBME280のスレーブアドレス番号 ②設定するレジスタの選択 ③温度測定条件設定レジスタの設定 |
-> ー> ー> |
76 詳細は「2.I2Cスレーブアドレス」参照 0xF2(※温度測定条件設定レジスタ) 0x01 |

(1-2)温度測定条件設定 温度、気圧のオーバーサンプリングとモードの設定
温度、気圧のオーバーサンプリング ×1、ノーマルモードに設定
| ①読取るBME280のスレーブアドレス番号 ②設定するレジスタの選択 ③温度測定条件設定レジスタの設定 |
-> ー> ー> |
76 詳細は「2.I2Cスレーブアドレス」参照 0xF4(※温度、気圧測定条件設定レジスタ) 0x27 b 0010 0111 |

(1-3) ディバイスのレート、フィルタ、およびインターフェース オプションの設定
通常モードでの非アクティブ期間tstandby =1000ms に設定
| ①読取るBME280のスレーブアドレス番号 ②設定するレジスタの選択 ③温度測定条件設定レジスタの設定 |
-> ー> ー> |
76 詳細は「2.I2Cスレーブアドレス」参照 0xF5 (※温度測定条件設定レジスタ) 0xA0 b 1010 0000 |

(2)補正値の取得
値の要求(2-1Req)~(2-3Req) 値の返信(2-1Res)~(2-3Res)3回に分けて補正パラメータを取得します。

(2-1Req)値の要求
| ①読取るBME280のスレーブアドレス番号 ②設定するレジスタの選択 |
-> ー> |
76 詳細は「2.I2Cスレーブアドレス」参照 0x88 (※補正データ calib00) |
| ①読取るBME280のスレーブアドレス番号 ②設定するレジスタの選択 |
-> ー> |
76 詳細は「2.I2Cスレーブアドレス」参照 0x87 ~ 0x10 24個 |


(2-2Req)値の要求
| ①読取るBME280のスレーブアドレス番号 ②設定するレジスタの選択 |
-> ー> |
76 詳細は「2.I2Cスレーブアドレス」参照 0xA1 (※) |
| ①読取るBME280のスレーブアドレス番号 ②設定するレジスタの返信 |
-> ー> |
76 詳細は「2.I2Cスレーブアドレス」参照 0x4B |

(2-3Req)値の要求
| ①読取るBME280のスレーブアドレス番号 ②設定するレジスタの選択 |
-> ー> |
76 詳細は「2.I2Cスレーブアドレス」参照 0xE1 (※) |
| ①読取るBME280のスレーブアドレス番号 ②設定するレジスタの返信 |
-> ー> |
76 詳細は「2.I2Cスレーブアドレス」参照 0x 76 0100 12 23 03 1E |

(2-1Res)~(2-3Res)値の返信まとめ
取得データ 32個の役目 Symbol 「Tn」 は圧力関連値 「Pn」は湿度関連値
| Add | 88 | 89 | 8A | 8B | 8C | 8D | 8E | 8F | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 9A | 9B | 9C | 9D | 9E | 9F |
| Data | 87 | 6F | 01 | 68 | 32 | 00 | C7 | 8E | 3F | D6 | D0 | 0B | 34 | 1F | BB | FF | F9 | FF | AC | 26 | 0A | D8 | BD | 10 |
| Symbol | T1 | T2 | T3 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | ||||||||||||
| Exc | 6F | 87 | 68 | 01 | 00 | 32 | 8E | C7 | D6 | 3F | 0B | D0 | 1F | 34 | FF | BB | FF | F9 | 26 | AC | D8 | 0A | 10 | BD |
| Value | 28551 | 26625 | 50 | 36551 | 54847 | 3024 | 7988 | 65467 | 65529 | 9888 | 55306 | 4285 | ||||||||||||
| Add | A1 | E1 | E2 | E3 | E4 | E5 | E6 | E7 | |
| Data | 4B | 76 | 01 | 00 | 12 | 23 | 03 | 1E | |
| Symbol | H1 | H2 | H3 | H4 | H5 | H6 | |||
| Exc | 4B | 01 | 76 | 00 | 12 | 23 | 23 | 03 | 1E |
| Value | 75 | 374 | 00 | 4643 | 8963 | 30 | |||
詳細計算方法は「4.出力補正計算」を確認下さい。
(3)データ取得
温度、湿度、気圧データの取得(3-1Req)値の要求
| ①読取るBME280のスレーブアドレス番号 ②設定するレジスタの選択 |
-> ー> |
76 詳細は「2.I2Cスレーブアドレス」参照 0xF7 (※) |
(3-1Res)値の返信(温度、湿度、気圧データ)
| ①読取るBME280のスレーブアドレス番号 ②設定するレジスタの返信 |
-> ー> |
76 詳細は「2.I2Cスレーブアドレス」参照 0x 53 4C 00 86 81 00 66 40 |

データと測定項目一覧表
| Add | Data | 測定項目 |
| F7,F8,F9 | 53,4C,00 | 気圧 |
| FA,FB,FC | 86,81,00 | 温度 |
| FD,FE | 66,40 | 湿度 |
補正値によりデータを計算した測定結果は
TEMP : 29.88 DegC PRESS : 998.10 hPa HUM : 42.93 %
3.I2Cスレーブアドレス
SDA端子と下記表の端子を接続することによりスレーブアドレスが決定する。| No | SDA | スレーブアドレス |
| 1 | GNDと接続 | 0x76 |
| 2 | SDOと接続 | 0x77 |
4.レジスタ
レジスタ一覧表| No | アドレス | 名称 | 説明 | Type |
| 1 | 0x88..0xA1 | calib00..calib25 | 補正用データ | R |
| 2 | 0xD0 | id | チップID | R |
| 3 | 0xE0 | reset | リセット | W |
| 4 | 0xE1..0xF0 | calib26..calib41 | 補正用データ | R |
| 5 | 0xF2 | ctrl_hum | 温度測定条件設定 | R/W |
| 6 | 0xF3 | stataus | ステータス | R |
| 7 | 0XF4 | ctel_meas | 測定条件設定 | R/W |
| 8 | 0xF5 | config | 動作設定 | R/W |
| 9 | 0xF7 | press_msb | 気圧データ(上位8bit) | R |
| 10 | 0xF8 | press_lsb | 気圧データ(下位8bit) | R |
| 11 | 0xF9 | press_xlsb | 気圧データ(最下位4bit) | R |
| 12 | 0xFA | temp_msb | 温度データ(上位8bit) | R |
| 13 | 0xFB | temp_lsb | 温度データ(下位8bit) | R |
| 14 | 0xFC | temp_xlsb | 温度データ(最下位4bit) | R |
| 15 | 0xFD | hum_msb | 湿度データ(上位8bit) | R |
| 16 | 0xFE | hum_lsb | 湿度データ(下位8bit) | R |
(1)0x88 calib00~calib25
補正値で計算方法は 「4.出力補正計算」を確認下さい。[レジスター一覧表に戻る]
(2)0xD0 idレジスタ 「チップID」
「id」レジスタにはチップ識別番号chip_id[7:0](0x60)が含まれています。この番号は、デバイスのパワーオンリセットが完了するとすぐに読み取ることができます。
[レジスター一覧表に戻る]
(3)0xE0 resetレジスタ「リセット」
「リセット」レジスタにはソフトリセットワードリセット[7:0]が含まれています。レジスタに値0xB6が書き込まれると、デバイスは完全なパワーオンリセット手順を使用してリセットされます。
0xB6以外の値を書き込んでも効果はありません。読み出し値は常に0x00です。
[レジスター一覧表に戻る]
(4)0xE1~ calib26
補正値で計算方法は 「4.出力補正計算」を確認下さい。[レジスター一覧表に戻る]
(5)0xF2 ctrl_humレジスタ 「温度測定条件設定」
「ctrl_hum」レジスタは、デバイスの湿度データ取得オプションを設定します。このレジスタへの変更は、「ctrl_meas」への書き込み操作後にのみ有効になります。
| bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
| -- | -- | -- | -- | -- | osrs_h[2:0] | ||
設定については を、詳細についてはデータシート 3.4.1 章を参照してください。
| bit | 湿度/温度のオーバーサンプリング | RMSノイズ※ |
| 000 | スキップ(出力は0x8000に設定) | |
| 001 | ×1 / ×1 | 0.07 |
| 010 | ×2 / ×1 | 0.05 |
| 011 | ×4 / ×1 | 0.04 |
| 100 | ×8 / ×1 | 0.03 |
| その他 | ×16 / ×1 | 0.02 |
[レジスター一覧表に戻る]
(6)0xF3 statausレジスタ 「ステータス」
「ステータス」レジスタには、デバイスのステータスを示す 2 つのビットが含まれています。| bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
| -- | -- | -- | -- | measuring[0] | -- | -- | im_update[0] |
変換が実行中の場合は自動的に「1」に設定され、結果がデータ レジスタに転送 されると「0」に戻ります。
im_update[0]
NVM データがイメージ レジスタにコピーされるときに自動的に '1' に設 定され、コピーが完了すると '0' に戻ります。
データは、パワーオン リセ ット時および各変換の前にコピーされます。
[レジスター一覧表に戻る]
(7) 0xF4 ctrl_measレジスタ
「ctrl_meas」レジスタは、デバイスの圧力と温度のデータ収集オプションを設定します。変更を有効にするには、 「ctrl_hum」を変更した後にレジスタに書き込む必要があります。
| bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
| osrs_t[2:0] | osrs_p[2:0] | mode[1:0] | |||||
温度データのオーバーサンプリングを制御します。
設定については 下表を、詳細についてはデータシート第 3.4.3 章を参照してください。
| bit | 温度のオーバーサンプリング | RMSノイズ※ |
| 000 | スキップ(出力は0x8000に設定) | |
| 001 | ×1 | 0.005 |
| 010 | ×2 | 0.004 |
| 011 | ×4 | 0.003 |
| 100 | ×8 | 0.003 |
| その他 | ×16 | 0.002 |
osrs_p[2:0]
圧力データのオーバーサンプリングを制御します。
下表を参照してください。設定については を、データシート詳細については 3.4.2 章を参照してください。
| IIRフィルタ係数 | ||||||
| bit | 気圧/温度のオーバーサンプリング | オフ | 2 | 4 | 8 | 16 |
| 000 | スキップ(出力は0x8000に設定) | |||||
| 001 | ×1 / ×1 | 3.3 | 1.9 | 1.2 | 0.9 | 0.4 |
| 010 | ×2 / ×1 | 2.6 | 1.5 | 1.0 | 0.6 | 0.4 |
| 011 | ×4 / ×1 | 2.1 | 1.2 | 0.8 | 0.5 | 0.3 |
| 100 | ×8 / ×1 | 1.6 | 1.0 | 0.6 | 0.4 | 0.2 |
| その他 | ×16 / ×2 | 1.3 | 0.8 | 0.5 | 0.4 | 0.2 |
mode[1:0]
デバイスのセンサーモードを制御します。
下表を参照してください。
設定については を、詳細については データシート3.3 章を参照してください。
| bit | モード |
| 00 | スリープモード |
| 01又は10 | 強制モード |
| 11 | ノーマルモード |
(8) 0xF5 configレジスタ 「config」 1010 0000
「 config」レジスタは、デバイスのレート、フィルタ、およびインターフェース オプションを設定します。通常モードでは、「config」レジスタへの書き込みは無視される場合があります。
スリープ モードでは、書き込みは無視されません。
| bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
| t_sb[2:0] | filter[2:0] | -- | spi3w en[0] | ||||
通常モードでの非アクティブ期間tstandbyを制御します。
設定については下表 を、詳細についてはデータシート第 3.3.4 章を参照してください。
| bit | スタンバイ(ms) |
| 000 | 0.5 |
| 001 | 62.5 |
| 010 | 125 |
| 011 | 250 |
| 100 | 500 |
| 101 | 1000 |
| 110 | 10 |
| 111 | 20 |
filter[2:0]
IIRフィルタの時定数を制御します。
下表を参照してください。
設定については を、詳細については データシート3.4.4 章を参照してください。
| bit | フィルタ係数 | サンプル数※ |
| 000 | オフ | 1 |
| 001 | 2 | 2 |
| 010 | 4 | 5 |
| 011 | 8 | 11 |
| その他 | 16 | 22 |
|
レジスタフィルタに書き込むと、フィルタはリセットされます。 次の ADC 値は変更されずにフィルタを通過し、フィルタの初期メモリ値になります。 温度または圧?の測定がスキップされた場合、出力レジスタが 0x80000 に設定されていても、対応するフィルタ メモリは変更されません。 以前にスキップされた測定が再度有効になると、測定がスキップされなかった最後のときのフィルタメモリを使用して出力がフィルタされます。 これが望ましくない場合は、フィルタを再初期化するためにフィルタレジスタに書き込んでください。 さまざまなフィルタ設定のステップ応答(たとえば、高さの突然の変化に対する応答)が図 7 に表示されています。 |
![]() |
spi3w_en[0]
'1'に設定すると3線式SPIインターフェースが有効になります。
詳細については データシート6.3章を参照してください。
[レジスター一覧表に戻る]
(9)pressレジスタ 0xF7…0xF9
「気圧データ」(_msb、_lsb、_xlsb)「press」レジスタには、生の圧力測定出力データup[19:0]が含まれています。
デバイスから圧力と温度の情報を読み出す方法の詳細については、データシート第4章を参照してください。
[レジスター一覧表に戻る]
(10)tempレジスタ 0xFA…0xFC
「温度データ」(_msb、_lsb、_xlsb)「temp」レジスタには、生の温度測定出力データut[19:0]が含まれています。
デバイスから圧力と温度の情報を読み出す方法の詳細については、データシート第4章を参照してください。
[レジスター一覧表に戻る]
(11)hum レジスタ 0xFD…0xFE
「湿度データ」(_msb, _lsb)「temp」レジスタには、生の温度測定出力データut[19:0]が含まれています。
デバイスから圧力と温度の情報を読み出す方法の詳細については、データシート第4章を参照してください。
[レジスター一覧表に戻る]
5.出力補正計算
補正計算に使用するデータはBME280のレジスタアドレス 0x88(データ数24個)、0xA1(データ数1個)、0xE1(データ数7個) の3箇所から得られるデータを使用する。下記表は各々のデータが何に関連するのかを示す。
なお表の
「Add」はレジスタアドレスを示す
「Data」はレジスタアドレスのデータを示す(1項で取得したデータ例)
「Symbol」の 「Tn」 は圧力関連値 「Pn」は湿度関連値を示す。
「Value」は各Symbolの値(10進数)を示す。
出力補正データ一覧表
| Add | 88 | 89 | 8A | 8B | 8C | 8D | 8E | 8F | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 9A | 9B | 9C | 9D | 9E | 9F |
| Data | 87 | 6F | 01 | 68 | 32 | 00 | C7 | 8E | 3F | D6 | D0 | 0B | 34 | 1F | BB | FF | F9 | FF | AC | 26 | 0A | D8 | BD | 10 |
| Symbol | T1 | T2 | T3 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | ||||||||||||
| Exc | 6F | 87 | 68 | 01 | 00 | 32 | 8E | C7 | D6 | 3F | 0B | D0 | 1F | 34 | FF | BB | FF | F9 | 26 | AC | D8 | 0A | 10 | BD |
| Value | 28551 | 26625 | 50 | 36551 | 54847 | 3024 | 7988 | 65467 | 65529 | 9888 | 55306 | 4285 | ||||||||||||
| Add | A1 | E1 | E2 | E3 | E4 | E5 | E6 | E7 | |
| Data | 4B | 76 | 01 | 00 | 12 | 23 | 03 | 1E | |
| Symbol | H1 | H2 | H3 | H4 | H5 | H6 | |||
| Exc | 4B | 01 | 76 | 00 | 12 | 23 | 23 | 03 | 1E |
| Value | 75 | 374 | 00 | 4643 | 8963 | 30 | |||
BME280のデータシートでは補正値により下記方法を参照する事と言っている。


