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.
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