BME280 – czujnik temperatury, wilgotności oraz ciśnienia (część 1)

Tryby pracy

BME280 może pracować w trzech trybach pracy związanych z poborem energii:

  • Sleep,
  • Normal,
  • Forced.

Rysunek 4. Tryby pracy BME280

Tryb Sleep

Po włączeniu zasilania i wykonaniu się sekwencji POR, układy logiczne sensora automatycznie wprowadzają tryb uśpienia Sleep – rysunek 4.

W tym trybie nie są wykonywane pomiary, a pobór mocy jest ograniczany do minimum. Wszystkie rejestry układu są dostępne, można odczytywać ID układu, rejestry kompensacji, a także rejestry wyniku pomiarów. Nie ma ograniczeń prędkości przesyłania danych przez interfejs komunikacyjny.

Tryb Forced

W trybie Forced wykonywany jest pojedynczy pomiar wszystkich włączonych czujników z właściwymi im ustawieniami nadpróbkowania i filtra IIR. Po wykonaniu pomiaru układ przechodzi automatycznie w tryb Sleep, a wyniki pomiaru są dostępne w rejestrach wyniku. Można je odczytać w dowolnym momencie przed następnym pomiarem. Kolejny pomiar wymaga programowego wymuszenia trybu Forced.

Tryb ten jest rekomendowany w aplikacjach dopuszczających małą prędkość pomiarów, na przykład w stacjach pogodowych, gdzie pomiary można wykonywać co kilka minut. Zależności czasowe pomiarów w trybie Forced zostały pokazane na rysunku 5. Czas cyklu pomiaru jest wyznaczany przez kolejne programowe wymuszanie pomiarów.

Rysunek 5. Pomiar w trybie Forced

Tryb Normal

W trybie Normal pomiary z włączonych czujników są wykonywane cyklicznie co zaprogramowany czas i nie ma potrzeby wymuszania kolejnych pomiarów tak, jak w trybie Forced. Cykl pomiaru składa się z czasu t_measure przeznaczonego na wykonanie pomiaru przez sensory i czasu t_standby, w którym układ przechodzi w stan Standby – rysunek 6. W stanie Standby układ pobiera nieco większy prąd w porównaniu z trybem Sleep. Czas stanu Standby jest programowany w rejestrze o adresie 0xF5 config (rysunek 7) i można go ustawić w zakresie od 0,5 ms do 1000 ms. Tryb Normal jest rekomendowany w aplikacjach, które wymagają szybkich pomiarów filtrowanych cyfrowym filtrem IIR, na przykład w układach wysokościomierzy.

Rysunek 6. Pomiar w trybie Normal

Rysunek 7. Programowanie czasu t_standby

Każdy z pomiarów można w czasie konwersji poddać procesowi nadpróbkowana w celu redukcji szumów. Wynik pomiaru temperatury i ciśnienia można filtrować opcjonalnym filtrem cyfrowym IIR, który ma za zadanie redukować krótkoterminowe wahania ciśnienia, na przykład w czasie trzaskania drzwi w pomieszczeniu.

Pomiar temperatury

Pomiar temperatury można odblokować lub wyłączyć (pominąć). Wyłączenie tego pomiaru pozwala na bardzo szybki pomiar ciśnienia w aplikacjach tego wymagających. Tym niemniej nie ma wtedy możliwości kompensacji temperaturowej. Włączony pomiar temperatury ma możliwość ustawienia kilku opcji nadpróbkowania i filtrowania IIR przez zapisanie rejestru ctrl_meas o adresie 0xF4 – rysunek 8. Wartość 000B wpisana do osrs_t powoduje pominiecie pomiaru.

Rysunek 8. Ustawienie nadpróbkowania pomiaru temperatury

Nadpróbkowanie redukuje szum pomiaru zwieszając jego dokładność, ale wtedy sensor pobiera więcej energii. Z funkcją filtra IIR powiązana jest rozdzielczość wyniku. Przy włączonym filtrze rozdzielczość pomiaru temperatury wynosi 20 bitów, a kiedy filtr jest wyłączony, to rozdzielczość zależy od zaprogramowanego nadpróbkowania i jest równa 16 bitów + (osrs_t-1). Na przykład dla osrs_t =3 (oversampling x 4), wynik pomiaru jest 18 bitowy.

Rysunek 9. Programowanie filtra IIR dla pomiaru temperatury i ciśnienia

Filtr IIR programuje się w rejestrze o adresie 0xF5 config. Zostało to pokazane na rysunku 9.

Tryb pracy ustawiamy przez zapisanie bitów mode[1:0] w rejestrze o adresie 0xF4 ctrl_meas – rysunek 10.

Rysunek 10. Programowanie trybu pracy

Pomiar wilgotności

Podobnie jak w przypadku temperatury, pomiar wilgotności można włączyć lub wyłączyć. Dostępne są ustawienia nadpróbkowania w celu redukcji szumów, ale filtrowanie cyfrowe nie jest przewidziane. Rozdzielczość pomiaru jest ustalona na stałe na 16 bitów. Do programowania nadpróbkowania wykorzystuje się specjalny rejestr ctrl_hum o adresie 0xF2 – rysunek 11.

Rysunek 11. Programowanie nadpróbkowania pomiaru wilgotności

Pomiar ciśnienia

Tak jak w przypadku pozostałych czujników, pomiar ciśnienia można wyłączyć (pominąć). Opcje programowania nadpróbkowania, filtra IIR i rozdzielczości pomiarów są takie same jak dla pomiaru temperatury. Na rysunku 12 pokazano programowanie nadpróbkowania pomiaru ciśnienia.

Rysunek 12. Programowanie nadpróbkowania pomiaru ciśnienia

Czujnik BME280 można znaleźć w sklepie Kamami.pl. Oferta obejmuje również moduły z zamontowanym sensorem.

O autorze

Absolwent Wydziału Elektroniki Politechniki Wrocławskiej, współpracownik miesięcznika Elektronika Praktyczna, autor książek o mikrokontrolerach Microchip i wyświetlaczach graficznych, wydanych nakładem Wydawnictwa BTC.
Zawodowo zajmuje się projektowaniem zaawansowanych systemów mikroprocesorowych.