Forum: Mikrocontroller und Digitale Elektronik BME280 an 5V, Spannungsregler und Layout


von Matthias W. (matt007)


Angehängte Dateien:

Lesenswert?

Im Thread "China-BME280 Problem" sind Mess-Abweichungen des Sensors für 
Feuchte, Temperatur, Druck durch Verlustwärme beschrieben. Wie es 
scheint funktionieren Teile mit Abstand von der Leiterplatte durch 
Fädeldraht besser.

Fertig zu kaufen sind Platinen von Adafruit mit Spannungsregler, 
diskretem Pegelwandler und I2C-Pull-up-Widerständen (z.B. Reichelt knapp 
20€).

Sowohl Spannungsregler, als auch Widerstände erzeugen Verlustwärme. Die 
Wärme kann über Leiterplattenkupfer zum BME280 übertragen werden.

Bei AliExpress wird eine viel kleinere Platine angeboten: "BME280 
Digitale Temperatur/Feuchte/Luftdruck Sensor Breakout BME280 Modul 1,8-5 
v BMP280 Digitale Luftdruck". Preisangabe 1.13$ incl. Versand.

Ein Schaltbild dazu sehe ich nicht. Es sieht aus als ob da ein kleiner 
Spannungsregler im SOT-23-Gehäuse wäre und vielleicht ein Pegelwandler 
im 6-pol-Gehäuse rechts? Siehe Bild.

Es gibt ähnlich kleine Platinen wo der BME280 auf der Rückseite 
angebracht ist. Sicher verursacht auch diese Bauweise thermische 
Beeinflussung.

Wenn Verlustwärme der Beschaltung ein Problem ist so sollten die Teile 
wohl weiter entfernt montiert werden und Teile mit wenig Verlustleistung 
bevorzugt werden. Spannungsregler mit wenig Ruhestrom gibt es ja.

Wenn vermutet wird daß ggf. Schäden am Chip durch einen ungünstigen 
Reflow-Prozess verursacht werden stellt sich die Frage ob man eine 
optimierte Platine ohne Besitz eines Ofens selbst brauchbar bestücken 
kann wenn man ein neuen Originalchip kauft.

Vermutlich zeigen auch andere Sensoren Probleme mit Bauteilerwärmung. 
Ein optimiertes Design macht ggf. wohl Sinn.

von Arc N. (arc)


Lesenswert?

Matthias W. schrieb:
> Im Thread "China-BME280 Problem" sind Mess-Abweichungen des Sensors für
> Feuchte, Temperatur, Druck durch Verlustwärme beschrieben. Wie es
> scheint funktionieren Teile mit Abstand von der Leiterplatte durch
> Fädeldraht besser.
>
> Fertig zu kaufen sind Platinen von Adafruit mit Spannungsregler,
> diskretem Pegelwandler und I2C-Pull-up-Widerständen (z.B. Reichelt knapp
> 20€).
>
> Sowohl Spannungsregler, als auch Widerstände erzeugen Verlustwärme. Die
> Wärme kann über Leiterplattenkupfer zum BME280 übertragen werden.
> ...
> Wenn Verlustwärme der Beschaltung ein Problem ist so sollten die Teile
> wohl weiter entfernt montiert werden und Teile mit wenig Verlustleistung
> bevorzugt werden. Spannungsregler mit wenig Ruhestrom gibt es ja.

Auf dem Bild ist der SOT-23-3 laut Internetsuche nach der Markierung ein 
XC6206 (Supply Current 3uA max.)
Der BME280 braucht im "1 Hz forced mode" Temperatur + Feuchte 2.8 uA, 
Temperatur + Druck 4.2 uA, während der Messung insg. 1.4 mA
Also heizt der LDO mit
P_avg = (VI - VO) * IO = (5V - 3.3V) * (2.8 uA + 4.2 uA) = 0.012 mW
P_mes = (VI - VO) * IO = (5V - 3.3V) * 1400uA = 2.38 mW

Thermischer Widerstand des SOT23-3 Gehäuses irgendwas in der 
Größenordnung 300 °C/W d.h. der Regler erwärmt sich max. um 0.714°C bzw. 
um 0.0036 °C im "1 Hz forced mode"

> Wenn vermutet wird daß ggf. Schäden am Chip durch einen ungünstigen
> Reflow-Prozess verursacht werden stellt sich die Frage ob man eine
> optimierte Platine ohne Besitz eines Ofens selbst brauchbar bestücken
> kann wenn man ein neuen Originalchip kauft.

Ja, kann mit Heißluft gelötet werden oder mit entsprechend verlängerten 
Pads und ordentlich Flussmittel auch normal zu löten sein.

von Matthias W. (matt007)


Lesenswert?

Arc N. schrieb:
> der Regler erwärmt sich max. um 0.714°C bzw.
> um 0.0036 °C im "1 Hz forced mode"

vielen Dank für die hilfreiche Antwort !

> Ja, kann mit Heißluft gelötet werden

Danke ! bei Heißluft habe ich die Angst nicht auf Anhieb ein passendes 
günstiges Profil zu erwischen. Welche Temperatur stellt man 
sinnvollerweise an der Station ein?

man erwischt ja nicht nur die untenliegenden Pads sondern vor allem auch 
das Gehäuse/chip.

> oder mit entsprechend verlängerten
> Pads und ordentlich Flussmittel auch normal zu löten sein.

Danke für den Hinweis. Probieren könnte ich das.

von Matthias W. (matt007)


Lesenswert?

zwischen der Lösung
"BME280 Digitale Temperatur/Feuchte/Luftdruck Sensor Breakout BME280 
Modul 1,8-5 v BMP280 Digitale Luftdruck"

und "Adafruit mit Spannungsregler, diskretem Pegelwandler und 
I2C-Pull-up-Widerständen"

besteht ein Preisunterschied 2.77$ vs. 20€.

Gibt es Argumente die den höheren Preis sinnvoll erscheinen lassen?
den Rezensionen nach scheint auch die Billiglösung oft 
zufriedenstellend?

Laut dieser Seite ist zu vermuten daß das kleine Teil mit 6 Beinen ein 
Doppeltransistor BSS138 (IC6) ist:
https://de.aliexpress.com/item/High-Accuracy-3In1-BME280-Digital-Sensor-Temperature-Humidity-Barometric-Pressure-Sensor-Module-GY-BME280-I2C-SPI/32817286611.html

Bei der billigeren Ausführung (Bild oben) sind alle Teile incl. BME280 
auf einer Seite der Platine untergebracht.

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Lesenswert?

Ich würde im Zweifelsfall die billige Version kaufen, das ganze 
Spannungsregler und Pegelwandler Gelumpe runterwerfen und das Ding wie 
vorgesehen mit 3,3V betreiben.
Im übrigen läuft bei mir einer in meiner Wetterstation als Barometer. 
Der Vergleich mit dem außen angebrachten SHT15 ist gut: Der BME zeigt 
z.Zt. ca. 0.2°C mehr an (bei ca. 8°C).
Im Gehäuse befindet sich zusätzlich noch ein ESP. Es läuft aber auch nur 
eine Messung alle 5-10min, dann schläft das Ganze wieder.

Edit: Gerade mal in der Bucht geschaut: Diese Module gibt es auch ohne 
Spannnungsregler und Pegelwandler und sind an der einseitigen Bestückung 
erkennbar.

: Bearbeitet durch User
von Matthias W. (matt007)


Lesenswert?

Andreas B. schrieb:
> Ich würde im Zweifelsfall die billige Version kaufen, das ganze
> Spannungsregler und Pegelwandler Gelumpe runterwerfen und das Ding wie
> vorgesehen mit 3,3V betreiben.

Danke Andreas. Ich habe ein 5V-System.

Natürlich kann ich eine kleine Platine machen mit Spannungsregler und 
Pegelwandler. Das bringt aber nur etwas wenn ich das Sensor-Chip 
auflöten kann ohne es zu schädigen und wenn damit ein Vorteil zu 
erzielen ist.

Im Datenblatt sind Hinweise wie z.B. ein Leiterplattenausschnitt um das 
chip herum usw. So etwas ist natürlich Aufwand.

von Matthias W. (matt007)


Lesenswert?

Andreas B. schrieb:
> Im übrigen läuft bei mir einer in meiner Wetterstation als Barometer.

Danke für dem Hinweis. Wo hattest Du das Teil oder den Sensor erworben?

von Andreas B. (bitverdreher)


Lesenswert?

Matthias W. schrieb:
> Danke Andreas. Ich habe ein 5V-System.
Was ist das für ein 5V-System, das sich nicht auf 3,3V umstellen läßt?

>
> Natürlich kann ich eine kleine Platine machen mit Spannungsregler und
> Pegelwandler. Das bringt aber nur etwas wenn ich das Sensor-Chip
> auflöten kann ohne es zu schädigen und wenn damit ein Vorteil zu
> erzielen ist.

Wie gesagt, kauf Dir das Board ohne den Spannungsregler. Dann steht es 
Dir frei, extern einen Spannungsregler anzuschließen.  Das Board selbst 
brauchst Du dabei nicht anzufassen.

Matthias W. schrieb:
> Wo hattest Du das Teil oder den Sensor erworben?

In der Bucht.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Matthias W. schrieb:
> Sowohl Spannungsregler, als auch Widerstände erzeugen Verlustwärme. Die
> Wärme kann über Leiterplattenkupfer zum BME280 übertragen werden.

Der Spannungsregler verursacht nur Verlustwärme, wenn du ihn benutzt. 
Ein kleiner Draht wirkt da Wunder. Alternativ lässt sich so ein SOT-23 
durchaus erfolgreich, auch ohne ausgefeilte Entlöttechnik, von der 
Platine entfernen.

Bevor du in große Aktionen ausbrichst, solltest du anhand der 
Leistungsaufnahme prüfen, ob nennenswerte Verlustwärme anfällt. Der 
Sensor benötigt im inaktiven Zustand 0,1µA, d.h. faktisch ist es nur die 
Eigenerwärmung des Spannungsreglers, die dich stören kann, solange du 
die Messfolge nicht zu hoch treibst.
Dann solltest du überlegen, ob dir der auf dem BME280 integrierte 
Temperatursensor gut genug ist. Das Ding liefert primär Referenzwerte 
für die Skalierung der Rohdaten der beiden anderen Sensoren zusammen mit 
den im Sensor abgelegten Kalibrierwerten.

Es sollte dir zu denken geben, dass der Hersteller den BME280 als 
"Combined humidity and pressure sensor" bezeichnet (DS rev. 1.0/1.5, 
p.1).
Zu dem Temperatursensor steht im Datenblatt explizit "Its output is used 
for temperature compensation of the pressure and humidity sensors and 
can
also be used for estimation of the ambient temperature.". Beachte das 
Wort "estimation".

Den Anspruch einer vernünftigen Temperaturmessung erhebt der Sensor lt. 
Herstellerspezifkation also nicht.

Um den Temperatureinfluss des Spannungsreglers zu erfassen, trennst du 
die Versorgsspannung vom Modul, wartest lange genug bis zum 
Temperaturangleich  und startest dann eine Zeitserie mit reiner 
Temperaturmessung (Druck- und Feuchtesensor inaktiv). Die Zeitkonstante 
dürfte sich im Minutenbereich bewegen, so dass keine allzuhohe Messfolge 
erforderlich ist. Dann machst du das Gleiche nochmal mit extern 
zugeführter 3.3V Versorgung.

von Andreas B. (bitverdreher)


Lesenswert?

Wolfgang schrieb:
> Es sollte dir zu denken geben, dass der Hersteller den BME280 als
> "Combined humidity and pressure sensor" bezeichnet (DS rev. 1.0/1.5,
> p.1).
> Zu dem Temperatursensor steht im Datenblatt explizit "Its output is used
> for temperature compensation of the pressure and humidity sensors and
> can
> also be used for estimation of the ambient temperature.". Beachte das
> Wort "estimation".

Gibt mir, ehrlich gesagt, nicht zu denken weil die Messung der 
Luftfeuchtigkeit extrem von der Temperatur abhängt. Somit wird die 
Chiptemperatur schon genau gemessen. Und wenn man das Ding nicht dauernd 
wandeln läßt oder gar die Heizung einschaltet, wird er sich auch nicht 
erwärmen und die Chiptemperatur wird gleich der Umgebungstemperatur 
sein.
Bei mir jedenfalls stimmt er mit dem SHT15 überein und das ist einer der 
genausten digitalen Temperatursensoren die Du bekommen kannst.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Bei den Chinaboards muss man aufpassen, dass da nicht ein BMP statt BME 
drauf ist.

Die 20 Öcken von der Frucht sind trotzdem zu viel, egal wie mans dreht 
und wendet.

von Matthias W. (matt007)


Lesenswert?

Andreas B. schrieb:
> Bei mir jedenfalls stimmt er mit dem SHT15 überein und das ist einer der
> genausten digitalen Temperatursensoren die Du bekommen kannst.

Vielen Dank Andreas !

von Matthias W. (matt007)


Lesenswert?

Mw E. schrieb:
> aufpassen, dass da nicht ein BMP statt BME drauf ist.

Danke, ja - es ist halt blöd wenn trotz richtiger Bestellung dann das 
falsche ankommen sollte.

von Wolfgang (Gast)


Lesenswert?

Andreas B. schrieb:
> Gibt mir, ehrlich gesagt, nicht zu denken weil die Messung der
> Luftfeuchtigkeit extrem von der Temperatur abhängt. Somit wird die
> Chiptemperatur schon genau gemessen.

Nein, die Chiptemperatur wird ("irgendwie") gemessen und die dazu 
passenden Kalibrierparameter für Feucht- und Drucksensor im Chip 
abgelegt. Ob der Temperaturwerte des Sensors etwas daneben liegt, spielt 
keine Rolle, weil die Koeffizienten passend dazu berechnet sind.

von Matthias W. (matt007)


Lesenswert?

Wolfgang schrieb:
> Den Anspruch einer vernünftigen Temperaturmessung erhebt der Sensor lt.
> Herstellerspezifkation also nicht.

ja. Das ist wohl einfach so bei diesem Teil.

Mich wundert es etwas weil der Hersteller doch einigen Aufwand getrieben 
hat mit der Kalibriertabelle im NVRAM. Dabei sieht der Aufwand nicht 
anders aus als für Druck und Feuchte. Zudem hängen Druck und Feuchte von 
der Temperatur ab. Also muss das schon grundsätzlich passen.

Natürlich muss die Umgebungsluft durch das kleine Loch. Der Druck hat es 
da leicht. Die Feuchte muss aber genauso hinein wie die Temperatur.

Mir ist nicht so klar warum die Temperatur viel problematischer als die 
Feuchte sein soll. Wenn der Hersteller das sagt . . .

von Matthias W. (matt007)


Lesenswert?

Wolfgang schrieb:
> Alternativ lässt sich so ein SOT-23
> durchaus erfolgreich, auch ohne ausgefeilte Entlöttechnik, von der
> Platine entfernen.

ja. Man kann eine Platine machen wo das der Fall ist. Ein paar cm werden 
wohl reichen.

von Matthias W. (matt007)


Lesenswert?

Andreas B. schrieb:
> Was ist das für ein 5V-System, das sich nicht auf 3,3V umstellen läßt?

ein mega2560. Mit Pegelwandler geht es ja. Nur muss der eben dazu.

von L. N. (derneumann)


Lesenswert?

Matthias W. schrieb:
> Andreas B. schrieb:
>> Was ist das für ein 5V-System, das sich nicht auf 3,3V umstellen läßt?
>
> ein mega2560. Mit Pegelwandler geht es ja. Nur muss der eben dazu.

der läuft doch auch mit 3.3V. wie sieht denn das gesamtprojekt aus?
ein reiner sensor braucht selten einen atmega2560. wie wäre es, das 
aufzusplitten und den oder die sensoren mit 3.3V MCUs zu betreiben und 
die "zentrale" die dann alles zusammenfängt mit einer anderen spannung 
deiner wahl (zb. 5V)?
wenn die komponenten nicht drahtlos kommunizieren können oder sollen, 
kannst du für die kommunkation noch immer level shifter einsetzen.

von Matthias W. (matt007)


Lesenswert?

L. N. schrieb:
> der läuft doch auch mit 3.3V.

es ist ein Spannungsregler für 3.3V auf dem Board. Den kann man ggf. 
nutzen.

die ganzen Ports jedoch laufen alle mit 5V. Auch die I2C-Pins.
am I2C-Bus hängt auch ein HD44780-Display. Die Pullups für den I2C-Bus 
gehen nach +5V.

von L. N. (derneumann)


Lesenswert?

Matthias W. schrieb:
> L. N. schrieb:
>> der läuft doch auch mit 3.3V.
>
> es ist ein Spannungsregler für 3.3V auf dem Board. Den kann man ggf.
> nutzen.
>
> die ganzen Ports jedoch laufen alle mit 5V. Auch die I2C-Pins.
> am I2C-Bus hängt auch ein HD44780-Display. Die Pullups für den I2C-Bus
> gehen nach +5V.

Das liegt dann aber nicht am atmega2560, der kann mit rein 3.3V 
betrieben werden.
Du hast vermutlich ein Arduino Board welches halt mit 5V läuft, man 
könnte den 2560 aber wie gesagt auch komplett mit 3.3V betreiben. Dann 
läuft er zwar nur mehr mit 8 MHz aber für einen doofen Sensor ist das 
mehr als genug.

von Matthias W. (matt007)


Lesenswert?

L. N. schrieb:
> und den oder die sensoren mit 3.3V MCUs

momentan gibt es keine 3.3V MCUs bei diesem Projekt.

natürlich könnte man alles umstricken auf eine 3.3V-CPU. Das ist ggf. 
zeitintensiv weil eine Menge Programme dann anzupassen sind und auch die 
Entwicklungsumgebung.

das Display mit dem 44780 müsste man dann auf 3.3V bringen. Oder ein 
Boostregler dazu und ein Pegelwandler. Möglich ist das natürlich.

von Matthias W. (matt007)


Lesenswert?

L. N. schrieb:
> für einen doofen Sensor ist das mehr als genug.

ja. Zum Sensor hinzu kommen ggf. eine Menge Berechnungen die ggf. auch 
eine ganze Menge Zeit kosten können. Eine Reserve schadet nicht.

umstricken auf 3.3V möchte ich das board nicht weil ich ein Shield dazu 
gemacht habe das ADC und DAC hat die auch mit 5V laufen, so wie der DCDC 
für den 0-10V-Ausgang.

von L. N. (derneumann)


Lesenswert?

ich glaub für besser hilfe müsstest du einfach mehr details zu deinem 
projekt preisgeben.
einen temperatursensor mit onboard pegelwandler und ldo zu betreiben, 
der den sensor heizt finde ich schwachsinnig.
pegelwandlerei zwischen MCU und peripherie versuche ich in der regel 
auch zu vermeiden.

dein wissensstand wäre auch hilfreich. ich bin nur hobbybastler, sehe 
aber kein problem darin, mit meiner entwicklungsumgebung (platformio) 
3.3V atmegas zu nutzen.
statt auf fertigen boards rumzufrickeln mal dir doch dein eigenes board 
in eagle, kicad oder womit auch immer und lass das fertigen?

von Matthias W. (matt007)


Lesenswert?

L. N. schrieb:
> ich glaub für besser hilfe müsstest du einfach mehr details zu deinem
> projekt preisgeben.

es ist ein Arduino mega2560-board und dazu passend ein selbstgebautes 
Shield mit ADC, 16bit-DAC, RTC, LCD-Anschluss, SRAM, FRAM, SD-Card.

> einen temperatursensor mit onboard pegelwandler und ldo zu betreiben,
> der den sensor heizt finde ich schwachsinnig.

manchmal geht es halt nicht anders. Der Ort von LDO und Pegelwandler ist 
ja ggf. wählbar.

> pegelwandlerei zwischen MCU und peripherie versuche ich in der regel
> auch zu vermeiden.

ja. Das sehe ich genauso. Wobei eine stabile Sensor-Versorgung wichtig 
ist für gute Ergebnisse. Ein LDO an dem nicht die CPU hängt kann ggf. 
helfen.

> dein wissensstand wäre auch hilfreich.

Anfänger mit uC bin ich nicht. Das Shield arbeitet als Prototyp 
brauchbar. Die meisten Treiber laufen. Entwickelt wird mit WinAVR 2010, 
Make und einem neueren Avrdude.

> statt auf fertigen boards rumzufrickeln mal dir doch dein eigenes board
> in eagle, kicad oder womit auch immer und lass das fertigen?

es ist kein Auftrag mit Stückzahl. Das Shield ist ein eigenes board, die 
Leiterplatte habe ich in China machen lassen.

das Prozessorboard ist nicht lohnend für mich zu machen. Vom zeitlichen 
Aufwand, den Teilekosten und dem Bestückungsaufwand käme das zu teuer.

von Andreas B. (bitverdreher)


Lesenswert?

Wolfgang schrieb:
> Andreas B. schrieb:
>> Gibt mir, ehrlich gesagt, nicht zu denken weil die Messung der
>> Luftfeuchtigkeit extrem von der Temperatur abhängt. Somit wird die
>> Chiptemperatur schon genau gemessen.
>
> Nein, die Chiptemperatur wird ("irgendwie") gemessen und die dazu
> passenden Kalibrierparameter für Feucht- und Drucksensor im Chip
> abgelegt. Ob der Temperaturwerte des Sensors etwas daneben liegt, spielt
> keine Rolle, weil die Koeffizienten passend dazu berechnet sind.

Der Hersteller gibt eine Genauigkeit der T Messung im DB mit typ. 1°C 
innerhalb 0-60°C an (bei RT 0,5°C). So schlimm kann es also nicht sein. 
Bosch scheut sich vermutlich, diesen Sensor wegen der internen Heizung 
für den Hum Sensor den Sensor als T-Sensor freizugeben.

Die schlechte Genauigkeit der T-Messung des BME280 ist eine urban legend 
aus dem Internet. Es gibt bessere (SHT31, DS18B20) aber für eine 
gewöhnliche RT ist dieser Sensor völlig ausreichend. Miss mal die T an 
1m unterschiedlichen Positionen des Raumes. Über die Abweichungen wirst 
Du staunen. Eine richtige Messumgebung ist wichtiger als der super-duper 
Sensor.

An den TO:
Fang mal langsam damit an, bei neuen Projekten auf 3,3V umzusteigen. Du 
wirst in Zukunft noch mehr Probleme dieser Art bekommen, wenn Du 
modernere Bausteine verwenden möchtest. Vcc mit 5V ist aus dem letzten 
Jahrtausend. 1,8V ist mittlerweile auch schon Standard.
Selbst Arduino uC Boards laufen alle mit 3,3V, spätestens dann, wenn man 
den Spannungsregler rauswirft.

von Matthias W. (matt007)


Lesenswert?

Andreas B. schrieb:
> Bosch scheut sich vermutlich, diesen Sensor wegen der internen Heizung
> für den Hum Sensor den Sensor als T-Sensor freizugeben.

möglich. Danke für den Hinweis.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.