Stromversorgung HX711

Da ich per PM zur Stormversorgung des HX711 gefragt worden bin hier ein paar Zeilen zur Doku:

Der HX711 wird bei mir über die 3,3 V-Schiene - hier des ESPs - mit Storm versorgt:

Teilweise wird diskutiert, ob das Modul bzgl. Spannungsversorgung modifiziert werden muss, hier etwa bei beelogger:

https://beelogger.de/?page_id=835

Ich habe bisher nichts modifizierte und denke, dass es nicht notwendig ist - oder ich habe “gute” Platinen bekommen.

Auch in der Diskussion ist die Versorgung der Plaitne mit “nur” 3,3 V. Die Platine selbst hat einen eigenen Spannungswandler. Manche sagen, der Spannungswandler würde bei 3,3 V-Betrieb die Versorgungsspannung für den HX711-Chip unter den Wert in der Spec drücken und daher müsste man den Spannungswandler bei 3,3 V-Versorgung auslöten und tauschen bzw. modifizieren. Habe da noch nicht intensiv recherchiert. Bisher habe ich noch keine Nachteile beobachtet, auch ohne Modifikation!

1 Like

Auf den meisten HX711-break-outs sind für R1 20k und für R2 8,2k verbaut. Das ergibt nach
V_{AVDD} = {V_{BG} * (R1+R2) \over R1} mit {V_{BG} = 1,25V nom.}

etwa 4,3V - ideal für 5V-Systeme. Wenn Du so ein PCBA an 3,3V anschließt, dann wird der Regler nicht regeln, sondern, voll aufgesteuert, die ungeregelte {V_{Batt}} als Erregerspannung an die Meßzelle legen. Ich denke, diese Nachteile beobachtest Du bereits! ;)

Der Autor des folgenden Beitrags hat deshalb die 20k mit 12k ersetzt (wie @ron es auch vorgeschlagen hat), und erhält damit knapp 3,1V. Da bei ihm die Spannung aber auch mal 3,0V beträgt, hat er diesen Widerstand letztlich noch kleiner gemacht (10k) und kommt dann bei 2,77V an. Wenn der Regler also mindestens 100mV Spannungshub als Regelreserve und drop-out braucht, ist im letzten Fall (10k) diese Schaltung bis 2,9V einsetzbar.

https://hackaday.io/project/1741-honeybee-hive-monitoring/log/9780-modifying-the-hx711-breakout-board-for-33v-operation

Mir ist nicht klar, was der Autor dieses Artikels mit den vertauschten R1 und R2 meint, - hier paßt das; scheinbar habe ich eine bereits korrigierte Variante des Datenblatts… ?

1 Like

Naja, was ich beobachte ist nicht zwingend HX711 spezifisch, sondern tritt mit dem ADS1231 auch auf. Daher bin ich noch skeptisch ob die Modifikation nötig ist.

Nochmal konkret: die Erregerspannung der Zelle und auch AVDD, also die Versorgungsspannung für den analogen Teil, bestrome ich mit dem geregelten 3,3 V-Ausgang des Arduinos, nicht mit der Batterie direkt.

Ich denke das sollte auch möglich sein, auf der Referenzschaltung im ADS1231-Datenblatt steht auf Seite 16 (s. Abbildung unten)

3V to 5.3V

und das ist doch ein Unterschied zum HX711?

1 Like

bei DFRobot gehen sie sogar noch weiter herunter, als der Kollege oben: der Spannungsteiler im feedback-Zweig sind 10k/10k, das ergibt {V_{AVDD}} = 2,5V…

schema des DFRobot SEN0160:

Sie ist nötig für jene für 5V vorbereiteten HX711-PCBA.

Nochmal:

…abzüglich der Vorwärtsspannung des Reglers (1x pn-Übergang). Ohne Regelung durch nur für 5V passenden feedback divider am HX711 ist Deine Erregerspannung der Zelle direkt abhängig von der Akkuspannung.

Daß dieser an sich nicht hinzunehmende Makel nicht großartig auffällt, ist einzig der ratiometrischen Meßmöglichkeit dieser ICs zu verdanken. Dies mag uns teure Präzi-Spannungsreferenzen ersparen, aber darf nicht zum Unsinn verleiten: ohne Regelung hast Du bei geringerer Akku-Spannung einen schlechteren SNR (da excitation voltage kleiner, aber Widerstands-Rauschen gleich) und verwirfst damit noch ein weiteres Bit der nutzbaren Auflösung - da Du ja sicher bei vollem Akku justiert hast.

Sollten wir endlich einmal auch die Selbsterwärmung der Meßzelle (bzw. DMS) durch (zu lange) Bestromung in die Rechnung miteinbeziehen, wäre auch hier eine merklich veränderliche Erregerspannung nicht hilfreich.

1 Like

Gut, oder schlecht, wenn wir das HX711 breakout für ein 3,3 V-System einsetzen wollen.

Nochmal kurz rekapituliert: Ich denke aus Stromspargründen und dem “de facto”-Standard in unserem Bereich von 3,3 V-SoC / MC werden wir die 3,3 V-Schiene nicht ändern, nur weil die aktuellen sehr günstigen und überall erhältlichen HX711-breakouts auf 5 V ausgelegt sind.

D.h. wir könnten nun

  • das teure und unhandliche breakout von DF-Robot nehmen (da ist glaube ich eine LED drauf, die dann auch runter müsste)
  • den HX711 chip alleine auf einem board von uns verwenden (mit den richtigen Widerständen)
  • doch den ADS1231 verwenden (ebenfalls auf einer Platine von uns mit Vogelfutter)
  • die Widerstände auf dem HX711 breakout tauschen

Alles doof, weil wir ja eigentlich die Platine wollten, wiel sie von einer breiteren Menge Leute eingesetzt werden sollte, die sich THT-Löten zutrauen aber vor SMD (zu viel) Respekt haben.

Ja, auch ein Punkt, der mir schon vor Jahren aufgefallen ist, nämlich erstmals bei der Justierung der Wägezellen.

Mit dem Justierungssketch hatte ich anfangs die Zelle durchgehend “an”, sprich mit Strom versorgt und dann im Abstand von einigen Sekunden gemessen. Diese, sagen wir mal 10 Werte, habe ich gemittelt und daraus den Justierungsfaktor gebildet. Nach der Justierung den eigentlichen Wägesketch hochgeladen – sprich die Wägezelle wurde in der Zwischenzeit nicht mit Strom versorgt – dann wieder mit den ermittelten Einstellungen gemessen und pfff, der Wert hat nicht gestimmt, sondern wich reproduzierbar ab. Irgendwann habe ich die ermittelten Messwerte bei der Justierung genauer angeschaut und sie haben sich – auch wieder reproduzierbar – verändert.

Wenn ich die Justierungs-Messungen allerdings mit einem groß genugen delay durchgeführt habe, damit die Wägezelle Zeit zum abkühlen hatte und dazwischen die Zelle abgeschaltet habe war der Effekt nicht mehr so massiv und für die Justierung praktikabel.

In vielen Manuals liest man auch, dass man für präzise Messungen vor der eigentlichen Messung die Wägezelle mehrere Dutzend Sekunden “vorheizen” sollte, um reliable Messungen zu erhalten. D.h. deine

(zu lange) Bestromung

könnte man auch ändern in zu kurze Bestromung von der messtechnischen Seite. Für uns ist eine Aufwärmphase von mehreren Sekunden bis zu einer Minute aber keine Option, wenn wir stromsparende Waagen haben wollen, die über Monate mit einem Batterie- oder Akkusatz laufen sollen! Das ist das Problem, vielleicht wäre unser Temperaturproblem auch gar nicht so massiv, wenn wir die Wägezelle dauerbestromen würden. Ich habe das noch nicht getestet, sollten wir aber mal um in diesem Punkt schlauer zu werden, um abschätzen zu können wie groß dieser Effekt überhaupt ist!

Mal sehen, ob ich das mit dem SMD-löten hinbekomme. Hat aber noch Zeit. Erstmal muss das System laufen. Aktuell läuft der Wägezellen-Test noch mit einem 5V Netzteil im Keller.

Welche aufgedruckte Nummer sollte der 10k Widerstand haben? Vielleicht kann ich irgendwo einen auslöten, wenn ich einen finde ;)

Wäre ein 3,3 -> 5V Konverter was für den Batteriebetrieb?

Bei diesen HX711-break-outs hier mit Schirm (I think @petekmet knows them ;) )

image

finde ich das feedback-Teilerverhältnis mit 4,7k / 1,8k , ergibt {V_{AVDD}} = 4,51V, etwa 200mV mehr als die ‘übliche’ grüne Variante mit 20k / 8,2k. - Durch den höheren Strom dank kleinerem Serienwiderstand ist dieser Regler schneller - in einem 5V-System! 8)

Schau mal hier: Codierung bei SMD-Widerständen

HX711 abschalten (power off)

Bei Strom sparen beim Einsatz der Microypthon firmware im Batteriebetrieb haben wir festgestellt, dass es gar nicht so einfach ist :P, den HX711 stromlos zu machen.

Für den stromlosen Betrieb im deep sleep Modus wird eine entsprechende Beschaltung per externem Pullup benötigt, wie im Folgenden beschrieben.

Details

Andere sagen das auch:

Set the PD_SCK pin to the output mode before readings, and to the HIGH-Z/INPUT mode before esp8266/hx711 powerdown, use pullup resistor.

esp8266 - HX711 Power Down Handling - Electrical Engineering Stack Exchange


Und/oder:

ADS1231 im Vergleich

Mit einem ADS1231 wären wir da besser dran.