Zur Erfassung langsamer Spannungsänderungen wie zum Beispiel Lade-/ Entladekurven von Akkus oder Fehlererkennung (Heizungsbrenner) kann man unter Umständen ein Oszilloskop verwenden. Damit ist dieses Gerät blockiert und müßte ggf. an einem anderen Ort ohne direkte Stromversorgung betrieben werden. Für einfache Anwendungen und geringen Anforderungen reicht es, analoge Signale mit einem µC zu messen, in einen Flash-Speicher zu schreiben und später per PC auszuwerten. Hierzu ein Schaltungsvorschlag mit einem STM32G031F µC und einen SPI-Flash W25Q128, der mit einer passenden Batterie oder besser LiIon-Zelle betrieben werden kann. Mit bis zu 1000 Messungen/s und einem Kanal reicht der Speicherplatz für gut zwei Stunden. Mit 1 Messung/s für ganze 3 Monate. Da die Messwerte permanent ausgegeben werden können, kann auch ohne direkte Speicherung ein angeschlossener PC die Werte speichern/auswerten. Die gezeigte Schaltung verwendet ein fertiges µC Modul (WeACT STM32G031), welches noch mit einem SPI-Flash (hier W25Q128) und ein paar diskreten Bauteilen nach Bedarf ergänzt werden muß bzw. kann. Damit ist ein Aufbau auf Lochrasterplatine möglich. Eine genauere Beschreibung findet sich hier: http://mino-elektronik.de/Gemischtes/2-Kanal%20Datenlogger.html Abschließend ist dort auch das vorläufige Programm zu finden, was noch weiterentwickelt wird. Es kann für eigene Bedürfnisse angepasst werden. Letztlich sollen noch ein USART-USB-Modul mit CH340 (bzw. MAX232-Treiber) und ein LiIon Lademodul mit TP4056 und Unterspannungsabschaltung ergänzt, und alles zusammen in ein Gehäuse gepackt werden. Bis dahin bleibt alles noch ‚vorläufig‘. Konstruktive Anregungen sind willkommen.
Wenn du den Flash-IC abschaltbar machst und einen STM32 der L- oder U-Reihe verwendest senkst du den Stromverbrauch noch mal und erhöhst die Batterielebensdauer. Mi N. schrieb: > Letztlich sollen noch ein USART-USB-Modul mit CH340 (bzw. > MAX232-Treiber) Ziemlich umständlich, nimm doch einen STM32 mit USB-Peripherie, dann brauchst du nur noch eine USB-Buchse.
Der W25Q geht in den Stromsparmodus mit <= 25 µA sobald /CS auf '1' liegt. Beim Abschalten wird zudem der Befehl 'power off' gesendet, wodurch die Stromaufnahme auf <= 1 µA sinkt. Da ist kein Sparpotential. Vergleiche ich die Typen G031 und L031, so scheint die Ersparnis beim L031 bei 10 - 20 % zu liegen. Dummerweise sind beide Typen nicht pin- und funktionskompatibel, sodaß bei Bedarf nicht 1:1 gewechselt werden kann. Die Module für den G031 gibt es aktuell zu 2,09 Euro, was sehr günstig ist. USB ist erst einmal ein Gimmick, was nicht zwingend notwendig ist aber eventuell gleich als Ladeanschluß (für LiIon) mit 5 V genutzt werden kann. Ein Modul mit CH340N von USB-C auf 'TTL'-Signale gibt es ebenfalls günstig, ohne spezielles Layout oder SMD-Löterei, die nicht für jedermann einfach ist. So ist meine Planung, was ich nicht als umständlich sondern eher als einfach und nachbaubar ansehe.
Mi N. schrieb: > wodurch die Stromaufnahme auf <= 1 µA sinkt. Da ist kein Sparpotential. Naja, die sparsamen MCUs haben im Powerdown-Mode einen Verbrauch von <<1uA, somit ist das 1uA vom Flash ziemlich signifikant und könnte somit den Verbrauch im Powerdown verdoppeln, was mit einem simplen Transistor zu verhindern wäre. Mi N. schrieb: > ohne spezielles Layout oder SMD-Löterei, die nicht für jedermann einfach > ist. Es gibt doch einige MCU-Module mit USB-Buchse drauf, da hat man die USB-Verbindung direkt fertig...
:
Bearbeitet durch User
Niklas G. schrieb: > Es gibt doch einige MCU-Module mit USB-Buchse drauf, da hat man die > USB-Verbindung direkt fertig... Ich kenne kein geeignetes Modul. Im Ruhemodus mit <= 10 µA und einem kleinen LiPo-Akku, wie er in Mobiltelefonen verwendet wird (0,8 - 1 Ah) komme ich auf eine Laufzeit von über 10 Jahren. Wenn das nicht reicht, verwendet man einfach einen EIN-AUS-Schalter. Da Daten und Messparameter nichtflüchtig gespeichert sind, ist das problemlos machbar. Aber das ist doch überhaupt nicht der Punkt. Hauptverbraucher ist der NOR-Flash-Speicher beim Löschen und Beschreiben. Danach kommen der µC und die LEDs, deren Einschaltdauer man noch reduzieren oder sie ganz abschalten sollte. Bislang habe ich die PLL weggelassen und nur HSI16 als Takt verwendet. Da werde ich noch testen, ob ich sie doch verwende und nur die CPU damit takte. Da reichen 1 - 2 MHz wohl aus. Rechenintensiv ist nur die hex-dez-Wandlung; diese Routine kann sich den Takt ja kurzfristig auf 64 MHz hochschalten. Dann gibt es auch bei 1 - 2 MBd keine Lücken bei der Ausgabe. Mehr lassen die USB-Wandler eh nicht mehr zu.
:
Bearbeitet durch User
Die optional genannten L- und U-Typen der STM32 hatte ich mir noch einmal angesehen. Wie oben schon geschrieben, ist mir das Einsparpotential beim Versorgungsstrom zu gering, als diese Richtung weiter zu verfolgen. Es sind ergänzende Optionen hinzugekommen. Zum einen SMD-Taster und SMD-LEDs als Anterntive zu den großen THT-Ausführungen. Ferner auf der Unterseite ein optional abschaltbarer RS232-Treiber und ein Sense-Eingang 'ext', womit man ggf. die USART-Signale direkt oder invertiert ausgeben könnte. Dann noch ein Lochrasterfeld für Zusatzkram. Mal sehen, ob das alles klappt. Falls nicht, kann ich die Platine (43 x 59 mm²) minimalbestückt als blinkenden Weihnachtsbaumschmuck verwenden.
Der Musteraufbau funktioniert soweit – für den Weihnachtsbaum muß ich wohl etwas anderes nehmen ;-) Das Programm ist erweitert worden. Zum einen wurde die Stromaufnahme im Betrieb auf 0,7 mA gesenkt, indem die nun typische Taktfrequenz von 1 MHz nur bei Bedarf auf höhere Werte umgeschaltet wird. Zum anderen sind Befehle hinzugekommen, um die Status-LEDs abschaltbar und die Bedienung auch fernsteuerbar zu machen. Die Messwerte können passend zum verwendeten Eingangsspannungsteiler skaliert werden, wobei der Wert von 10000 einem Faktor von 1,0000 entspricht. Somit bleibt bei der Umrechnung die Auflösung des ADC erhalten. Bei der Abtastung kann nun gewählt werden, ob bei längeren Messperioden nur ein einziger ms-Wert gemessen wird, alle ms-Werte in der Periode gemittelt werden oder eine feste Anzahl zum Abtastzeitpunkt. So kann beispielsweise bei einer Messperiode von 1 s ein Intervall von 10 Einzelwerten gemessen, gemittelt und abgespeichert werden. Neben dem neuen Programm (immer noch IAR-IDE) sind jetzt auch Fertigungsdaten für die oben gezeigte Platine verfügbar. Zunächst habe ich mich beim Musteraufbau für eine 9-pol. SUB-D Buchse entschieden, da diese genug Pins für die RS232 und analog-Signale bietet. Auch die 5 V für die Aufladung des lokalen LiPo-Akkus haben noch Platz. Der RS232-Treiber ist nicht bestückt. Beim verwendeten Lademodul mit TP4056 mußte der Ladestrom passend zum Akku abgesenkt werden. Als Option kann ein fertiges USB-Modul mit CH340 nachgerüstet werden. Wenn man die Schaltung in ein Gehäuse einbaut, ist für die Frontplatte ein Mindestformat von 80 x 50 mm² notwendig. Die Tiefe sollte >= 25 mm betragen, damit genug Platz für einen flachen Akku bleibt. Alternativ kann der Akku auch zwischen Frontplatte und Platine untergebracht werden. Soweit.
Niklas G. schrieb: > somit ist das 1uA vom Flash ziemlich signifikant So einen blöden Schwachsinn lese ich selbst hier selten.
Mi N. schrieb: > Für einfache Anwendungen und geringen Anforderungen reicht es, analoge > Signale mit einem µC zu messen Sind die ADCs der STMs mittlerweile so gut, dass man auf externe verzichten kann? Bei den Atmels gibts nur 8 Bits und die mit 12 Bits rauschen so extrem, dass man auch da nur eher auf 9 bis 10 kommt. Externe SAR ADCs mit 12-14 Bits kosten wenig, liefern mir aber immer einen echten Mehrwert.
Christian schrieb: > Niklas G. schrieb: >> somit ist das 1uA vom Flash ziemlich signifikant > > So einen blöden Schwachsinn lese ich selbst hier selten. Danke, habe ich extra für dich produziert.
Christian schrieb: > Sind die ADCs der STMs mittlerweile so gut, dass man auf externe > verzichten kann? Bei den Atmels gibts nur 8 Bits und die mit 12 Bits > rauschen so extrem, dass man auch da nur eher auf 9 bis 10 kommt. Das Datenblatt sagt 10,8 ENOB. Derzeit habe ich für die Erfassung 32-fache Überabtastung eingestellt. Das glättet die Messwerte bei 50 µs Wandlungszeit/Kanal deutlich, aber gibt immer noch 'Ausreißer', wenn man das so nennen möchte. Mit 0,01 s Abtastrate kann man noch einmal um den Faktor 10 mitteln, was die Werte nochmals verbessert. Endgültige Kuren zeige ich, wenn der Aufbau komplett ist. Die Schaltung besteht im Kern aus einem µC und einem FLASH-Speicher. Dabei ging es mir um einen Kompromiss zwischen Aufwand und Nutzen und geringer Stromaufnahme. Wenn am Ende stabil 10 Bit erreicht werden, bin ich zufrieden. Damit können PT1000 bzw. KTY81 hinreichend aufgelöst gemessen werden. Für digitale Signale > 2 Kanäle, lassen sich improvisierte 'DACs' vorschalten. Und, und, und ... Klar kann man externe ADCs ergänzen, kann mehr Kanäle dazubauen, kann alle Eingänge per OPV puffern und letztlich eine SD-Karte zur Speicherung einsetzen. Das kann man alles und noch mehr machen - ich wollte es mobil und einfach halten.
Ergänzend zum obigen Link, ist jetzt eine Version für die kostenlose Segger-IDE vorhanden.
Um die Qualität des ADCs zu kontrollieren, habe ich eine recht leere NiMH Zelle an AIN1 angeschlossen: 1. Bild mit 10 ms Periodendauer und Mittelwertbildung über die gesamte Periode sieht gut aus. Die Mittelwertbildung glättet die Kurve. 2. Bild mit gleichen Bedingungen jedoch mit nur einem 1 ms Einzelwert ohne Mittelwertbildung. Da beide LEDs mit 1 Hz alternierend blinken, gibt es alle 0,5 s Störungen in der Kurve. 3. Bild zur Kontrolle wie Bild 2 jedoch mit autom. Abschaltung der LEDs nach 5 s. Ab da ist die Kurve stabil, bis nach 10 s durch Tastendruck die LEDs wieder aktiviert werden. Bei Messungen mit Mittelwertbildung >= 10 ms liegen die Schwankungen im Bereich der Auflösung des ADCs. Die Stromimpulse der LEDs stören den ADC, da die 3,3 V Betriebsspannung auch gleichzeitig Vref ist. Das wird sich im Programm wohl noch beheben lassen, indem LEDs und ADC nicht gleichzeitig getriggert werden.
:
Bearbeitet durch User
Nachdem die LEDs und die Datenspeicherung nun gezielt außerhalb der ADC-Wandlungen liegen, sind die Störungen auf den ADC deutlich zurückgegangen. Zudem habe ich dem W25Q128 noch einen eigenen Spannungsregler spendiert, was einfach umzusetzen ist. Als Beispiel die beiden angefügten Kurven. Die Programme für IAR und Segger IDE sind angepaßt und für einen einstelligen Euro-Betrag bekommt man die Hardware beschafft. Für mich mache ich noch eine Erweiterung, um 2 x PT1000 anschließen und auswerten zu können.
Die Sache mit der PT1000 Auswertung ist nun auch fertig und war letztlich mit ein Ziel dieser Schaltung. Die Taktung der Heizung, die Vorlauftemperaturen und Nachtabsenkungen spiegeln die Außentemperatur der letzten Tage und die Nutzung von Warmwasser wieder. Das werde ich in der laufenden Heizperiode genauer ansehen. Die Programme für IAR und Segger sind auf dem aktuellen Stand und im 'Markt' werde ich noch die überschüssigen Platinen für den Nachbau anbieten.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.