Tja, hallo nochmal, ich weiß ja nicht ob sie es schon wußten, aber hier
jetzt einmal ein Hinweiß in eigener Sache: Ich beschäftige mich jetzt
auch mit den ultrabilligen Mikrocontrollern von Padauk, und hier dann
der PFS154
---------------------------------------------------
Um den Chip besser kennen zu lernen, erarbeit ich für mich mehrere
Evaluationsarbeiten mit dem PFS154 und die letzte hiervon möchte ich
Euch hier vorstellen. Wie der Titel es oben schon sagt: Thermometer mit
Anzeige.
Erstaunlicherweise habe ich mit dem Konstrukt eine Genauigkeit von +-
1°C erreichen können.
Ein Video kann man hier begutachten:
https://www.youtube.com/watch?v=zQDooIyMVsk
----------------------------------------------------------------
Grundlegend für mein Temperaturschätzeisen war es, einen, wie auch immer
gearteten, Analog-Digital-Wandler mit dem Padauk zu realisieren und, um
dem Paradigma des Ultrabilligen zu folgen, soll das nichts (oder nur im
absoluten Centbereich) kosten.
Hinweis: PFS154 hat im Gegensatz zu PFS173 keinen internen ADC, sondern
nur einen analogen Komparator.
Sämtliche Programme im folgenden sind unter einem Linux 64-Bit System
entstanden, Hilfsprogramme sind von daher 64-Bit Linuxprogramme
Realisierung eines ADC
--------------------------------------------
1
+ 5V + 5V
2
^ ^
3
| |
4
| |
5
| +-+ R2
6
| | |
7
| | | 4,7k
8
| | |
9
/ +-+ +-+
10
/ \| | |
11
\ | 10k |
12
R1 |\ |< Umess o---+------> PA4
13
| |\------| BC547 |
14
+-+ |\ |
15
| | +-+
16
| | | |
17
PA3 <--------------------+ | | 1M
18
| | | |
19
| | 100n +-+
20
| --- |
21
| --- |
22
| | |
23
--- --- ---
Eine sehr einfache Konstantstromquelle laedt einen Kondensator der
dadurch mit einen (nahezu) linearen Spannungsanstieg geladen wird.
PA3 schliesst den Kondensator kurz und dieser ist somit entladen. Wird
PA3 nun von digitalem Ausgang auf analogen Eingang umgeschaltet ist PA3
nun der + Eingang des Komparators.
Die Zeit, bis die Spannung am Kondensator die Spannung am- Eingang des
Komparators (zu messende Spannung) ueberschreitet, wird ermittelt und
entspricht somit direkt proportional der angelegten Spannung.
Funktionsweise der "Einfachstkonstantstromquelle"
----------------------------------------------------------
Eine hinreichend stabile Versorgungsspannung wird voraus gesetzt, die
Stabilitaet (nicht der Absolutwert der Spannung) bestimmt die spaetere
Genauigkeit des ADC, da diese die Referenzspannung darstellt.
Mittels des Trimmers R1 kann die Spannung +5V <-> Basis eingestellt
werden. Diese Spannung veraendert sich nicht und ist somit konstant. Am
Widerstand R2 betraegt die Spannung somit die eingestellte Spannung
minus der Ube des Transistors. Die Ube betraegt (annaehernd) konstant
0,68V und somit aendert sich die Spannung am R2 ebenfalls nicht. Durch
ihn fliesst somit ein konstanter Strom und dieser in den Emitter des
Transistors.
Vernachlaessigt man den Basisstrom (der aber ebenfalls konstant sein
sollte) entspricht der Strom in den Emitter dem Strom, der aus dem
Kollektor fliesst und somit ist der Kollektorstrom ebenfalls konstant.
---------------------------------------------------------
Wichtigstes Merkmal: Der Kondensator wird hier mit einem konstanten
Strom geladen
---------------------------------------------------------
Ein Spannungsteiler bestehend aus 10k Ohm Festwiderstand und 10k Ohm NTC
bildet den "Meßfühler", die am NTC abfallende Spannung wird dem oben
beschriebenen ADC zugeführt.
Diese Spannung wird im PFS154 Mikrocontroller mittels Look-Up Tabelle
ausgewertet, die mit einem Tabellengenerator erstellt wurde. Der
Tabellengenerator ist ein Kommandozeilentool im Ordner:
/padauk/ntc/divers
Mit diesem können Tabellen auch für andere NTC-Widerstände erstellt
werden.
Die Firmware des PFS154 wurde mit SDCC 4.0.4 übersetzt.
----------------------------------------------------------
Kalibrierung der Schaltung steht als Text im Schaltplan. Viel Spaß beim
evtl. Nachbau oder bei der Betrachtung dieses "Projekts",
Gruß,
Ralph
Spannend. Ich mag die Herausforderung, aus den kleinen Padauks so viel
wie möglich herauszuholen.
Was mir noch einfällt wie man die Genauigkeit verbessern könnte: der
interne Osziallator der Padauks ist ja nicht der beste, selbst wenn man
beim Flashen die Kalibrierfunktion verwendet.
Könntest Du nicht den Komparator auf die interne 1.2V-Referenz stellen
und damit die Zeit vermessen, die Deine KSQ braucht um den Kondensator
zu laden? Damit kalibrierst Du die Temperaturabhängigkeit des internen
Oszialltors, die des KSQ-Transistors und die des Komparators alle raus
und referenzierst alles auf die interne 1.2V-Referenz. Ich vermute die
dürfte von allem noch am stabilsten sein.
Gerd E. schrieb:> Könntest Du nicht den Komparator auf die interne 1.2V-Referenz stellen> und damit die Zeit vermessen, die Deine KSQ braucht um den Kondensator> zu laden? Damit kalibrierst Du die Temperaturabhängigkeit des internen> Oszialltors, die des KSQ-Transistors und die des Komparators alle raus> und referenzierst alles auf die interne 1.2V-Referenz. Ich vermute die> dürfte von allem noch am stabilsten sein.
Zum einen:
selbst wenn man etwas genaueres herausholen könnte:
a.)
ich habe die 8-Bit Auflösung absichtlich nicht "aufgebohrt" (theoretisch
wäre sogar ein 16-Bit ADC möglich), weil:
- die Anzeige ist sowieso nur 2 stellig, eine bessere Genauigkeit wäre
gar nicht darstellbar (zumindest nicht auf der Anzeige)
- als Konstantstromquelle habe ich das billigste gemacht, was gerade so
noch geh: Widerstand, Trimmer, Transistor, Kondensator. Alles schön
temperaturabhängig. Zudem wird die Konstantstromquelle von der
Betriebsspannung versorgt und für das Einprägen der Spannung am
Emitterwiderstand habe ich keine stabile Referenz für den Transistor
verwendet. Bei genauerer Betrachtung ist der Spannungsanstieg am
Kondensator nicht 100% linear. Wenn man hier etwas macht, wäre der
Effekt wahrscheinlich größer.
b.)
- es werden alle Portpins benötigt, auch die, an denen man einen Quarz
anschließen könnte. Entweder man läßt die serielle Übertragung weg, dann
braucht es keine erweiterte Genauigkeit, oder man läßt die Anzeige weg.
c.)
- Wenn ich die interne Referenz verwenden möchte, müßte diese an einen
der Komparatorpins angelegt werden. Das erfordert ein ganz anderes
Meßverfahren (bspw. Dual-Slope). Hierfür würden dann aber
Opererationsverstärker notwendig werden.
Man könnte auch einen integrierenden Verstärker aufbauen (mit C im
Gegenkopplungszweig), aber auch hier benötigt es dann einen Rail to Rail
OP.
Hier wäre es dann deutlich besser, einen PFS173 mit integriertem ADC zu
verwenden (der nur 2 ct mehr als der PFS154 kostet).
Es ging / geht mir vor allem darum, was aus dem PFS154 mit dem
aller-aller-aller kleinsten Geldeinsatz machbar ist (und was nicht).
-----------------------------------------------
Gerd E. schrieb:> der> interne Osziallator der Padauks ist ja nicht der beste, selbst wenn man> beim Flashen die Kalibrierfunktion verwendet.
Nach meinem "Meßprinzip" ist es gar nicht notwendig, dass der Padauk
eine absolute Genauigkeit beim Systemtakt hat (er wird ja mittels des
Trimmers kalibriert), aber selbst wenn dem so wäre: Ich habe einen
Portpin mittels Timerinterrupts togglen lassen und den Chip zur Laufzeit
mit dem Fön erhitzt. Eine Abweichung > 3,5% hatte ich selbst bei einer
Temperatur von 70°C nicht. Auf die Temperatur umgerechnet wären das ein
zusätzlicher Fehler von 0,07°K bei 20°C
------------------------------------------------
Meine Schaltung funktioniert auch noch mit 3,3V. Hier wäre es bspw.
Sinnvoll, die Konstantstromquelle bspw. ueber einen AMS1117 mit 3,3V
laufen zu lassen.
Hier fällt mir gerade noch ein Fehler im obigen Schaltplan auf: Der
GND-Anschluss des PFS154 ist nicht Pin 9 sonder Pin 12 !
Verzichtet man auf die Möglichkeit, dass der PFS154 über UART Zeichen
empfangen kann (wird hier mit dem Thermometer nicht benötigt), dann kann
man diesen freiwerdenden Pin dazu verwenden, dem dann hinzugefügten
Spannungsregler die Versorgungsspannung abzuschalten und somit die
Konstantstromquelle ebenfalls. Dies spart dann hier Strom, wenn keine
Messwandlung vorgenommen wird.
-------------------------------------------------
Korrigierten Schaltplan habe ich hier mal angefügt
Ralph S. schrieb:> - als Konstantstromquelle habe ich das billigste gemacht, was gerade so> noch geh: Widerstand, Trimmer, Transistor, Kondensator. Alles schön> temperaturabhängig. Zudem wird die Konstantstromquelle von der> Betriebsspannung versorgt und für das Einprägen der Spannung am> Emitterwiderstand habe ich keine stabile Referenz für den Transistor> verwendet. Bei genauerer Betrachtung ist der Spannungsanstieg am> Kondensator nicht 100% linear. Wenn man hier etwas macht, wäre der> Effekt wahrscheinlich größer.
Klar, aber dann bräuchte man zusätzliche externe Beschaltung. Die
Herausforderung (zumindest für mich) ist ja so viel wie möglich aus der
vorhandenen rauszuholen.
> - Wenn ich die interne Referenz verwenden möchte, müßte diese an einen> der Komparatorpins angelegt werden. Das erfordert ein ganz anderes> Meßverfahren (bspw. Dual-Slope). Hierfür würden dann aber> Opererationsverstärker notwendig werden.
Ok, ich vermute ich hab mich nicht klar genug ausgedrückt. Schaltbild
des Komparators aus dem Datenblatt ist zur Verdeutlichung angehängt.
Momentan hast Du Deine KSQ+Kondensator an PA3 und das auf CIN0-
geschaltet und den NTC an PA4 auf CIN+. Du vergleichst die beiden
miteinander und misst die Zeit von Entladen des C bis sie die gleiche
Spannung haben.
Mein Vorschlag wäre KSQ+Kondensator an PA4/CIN+ und den NTC an
PA3/CIN0-. Damit fährst Du jetzt prinzipiell den selben Vergleich wie
bisher, nur die Ausgabe einmal invertiert.
Du bekommst jetzt aber die Möglichkeit am internen Mux den - Eingang des
Komparators statt auf die NTC auf die interne Bandgap-Referenz zu
schalten. Damit kannst Du jetzt Deine KSQ+Kondensator gegen eine
bekannte Spannungsreferenz kalibrieren. Zumindest mal die
Temperaturabhängigkeit Deines Transistors sollstes Du so rauskalibrieren
können ohne extra Hardware zu verwenden.
Tim . schrieb:> Beim Auslesen des NTC könnte auch das undokumentierte RFC-Peripheral> helfen:> https://deploy-preview-47--free-pdk-preview.netlify.app/undocumented-features#resistance-to-frequency-converter-pfs154-and-pfs173
Wenn ich das richtig sehe (bitte korrigiere mich, wenn ich falsch
liege), sind die Controller von Puolop "ältere" Versionen der Padauk
Chips ?!?
Lt. Datenblatt von Puolop hätte demzufolge nur ein PTBO165 dieses RFC,
der 154er aber nicht (in einer Vergleichsliste 165 <-> 154 auch keinen
sogenannte IO Inverters).
Der Aussage auf Free PDK hätten die neueren PFS154 dieses RFC drin (wenn
auch wie du anmerkst "undokumentiert".
Von dem was ich jetzt aus dem Puolop Datenblatt entnommen habe ist, dass
hier dann ein 16-Bit Zähler verwendet wird, der allerdings im Gegensatz
zum 16-Bit Register des TM16 in 2 x 8-Bit Register aufgeteilt ist.
Außerdem ist da dann noch nichts linearisiert und die Ladekurve des
Kondensators entspricht der normalen e-Funktion.
Die Schaltschwellen des Schmitt-Triggers die für das Laden/Entladen sind
nirgendwo aufgeführt, müßten also (was nicht all zu schwierig sein
sollte) noch herausgefunden werden.
Für das Thermometer hier ist das nicht mehr relevant, aber für andere
Anwendungen vllt. gut nützlich. Bei Anwendungen, bei denen man noch
genügend Speicherplatz hat einen ln zu berechnen und die Ladekurve zu
korrigieren.
Smile ... danke (das Danke ist ein "herzliches") dass du mich mit
Informationen zu den Padauk-Dingern fütterst. Wieder etwas zum Knobbeln
und herausfinden.
Gerd E. schrieb:> Momentan hast Du Deine KSQ+Kondensator an PA3 und das auf CIN0-> geschaltet und den NTC an PA4 auf CIN+. Du vergleichst die beiden> miteinander und misst die Zeit von Entladen des C bis sie die gleiche> Spannung haben.
genau
Gerd E. schrieb:> Du bekommst jetzt aber die Möglichkeit am internen Mux den - Eingang des> Komparators statt auf die NTC auf die interne Bandgap-Referenz zu> schalten. Damit kannst Du jetzt Deine KSQ+Kondensator gegen eine> bekannte Spannungsreferenz kalibrieren. Zumindest mal die> Temperaturabhängigkeit Deines Transistors sollstes Du so rauskalibrieren> können ohne extra Hardware zu verwenden.
Hier ist dann die Frage, ob beim Anlegen der internen Referenz
(gpcc[3:1]=010) nicht nur der CIN0- diese Spannung erhält, sondern auch
am PIN PA3 anliegt (was ich nicht glaube aber ausprobieren werde).
Ich meine, dass ich ähnliches (noch ohne den Thermometer angefangen zu
haben) ausprobiert habe um zu wissen, ob man an die interne Referenz
irgendwie nach aussen bekommt (und ich glaube noch, dass ich gescheitert
bin)
Ralph S. schrieb:> Hier ist dann die Frage, ob beim Anlegen der internen Referenz> (gpcc[3:1]=010) nicht nur der CIN0- diese Spannung erhält, sondern auch> am PIN PA3 anliegt (was ich nicht glaube aber ausprobieren werde).
Ich glaube nicht daß die Referenz nach außen geführt werden kann. Die
wird nur am internen Mux anliegen.
Aber für die von mir vorgeschlagene Kalibrierung Deiner KSQ+Kondensator
brauchst Du das doch auch gar nicht. Da reicht es doch, wenn Du die Zeit
messen kannst, die der Kondensator lädt bis die Spannung der internen
Bandgap-Referenz erreicht ist.
Du musst dazu halt wie von mir vorgeschlagen PA3 und PA4 in Deiner
Schaltung tauschen und KSQ+Kondensator an PA4 anschließen.
Ralph S. schrieb:> Thermometer mit Anzeige.
Au ja, hab ich auch gerade zusammenhackt.
Nicht unbedingt weil ich wollte, sondern weil die käuflichen
Billigthermometer allesamt mit Billigsmikrocontrollern aufgebaut sind,
denen es gar am A/D Wandler mangelt, so dass die Hersteller es mit
ausstoppen einer RC Umladung versuchen irgendwas aus dem sich
veränderndem NTC Widerstand abzuleiten, das sie als Temperatur anzeigen
können.
Nur leider ist es nicht die Temperatur, zumindest bei den 3
(unterschiedlichen) LCD Thermometer die ich hier auseinandergebaut habe,
um das LCD Glas mit Rahmen zu recykeln.
Sondern irgendein Schätzwert, der um durchaus relevante +2 bis -2 GradC
herumschwankt, WENN MAN DAS ANZEIGEMODUL mit der uC Schaltung einer
anderen Temperatur aussetzt (Tages vs. Nachttemperatur draussen),
während man den NTC Fernfühler am Kabel aber an einem Ort belässt der
immer dieselbe Temperatur hat.
Also musste ich das Billigding mal auf einen TSIC506 umrüsten, damit
wenigstens die 0.1GradC Stelle stimmt.
Denn, so wie ich das am Regal im Baumarkt gesehen habe, gibt es
dummerweise keine genauen Billigthermometer, das dutzend der dort
ausgestellten zeigten alle am selben Ort um +2..-2 abweichende
Temperaturen an.
Und Laborthermometer gibt es zwar genau und auch mal preiswert bei eBay,
aber nicht mit einer Batterie übers Jahr laufend.
Den Strombedarf mit dem ATmega328 auf unter 50uA zu drücken war übrigens
das Hauptproblem bei dem Gebastel, eine Platine fürs Gehäuse folgt noch.
Einen solchen Elko wie du auf deinem Steckbrett hast, habe ich schon
ewig nicht mehr gesehen (das war so in etwa in meiner Lehrzeit). Bist du
sicher, dass der nicht schon etwas "trocken" ist?
MaWin schrieb:> damit> wenigstens die 0.1GradC Stelle stimmt. schäm , den TSic506 kannte ich noch nicht und es ist erstaunlich,
dass dieser tatsächlich mit +-0,1 °C angegeben ist. Am schönsten
natürlich, dass der Meßwert praktischerweise digital abgeholt werden
kann.
Ganz preiswert ist der jedoch nicht, und ich habe mir den jetzt aus
purer Neugier bestellt.
Normalerweise sind 0,1 °K schon mit einem PT100/PT1000 eine kleine
Herausforderung.
Für eine dienstliche Aufgabe war die Anfrage, ob es mit "kleinen Mitteln
kleiner 100 Euro" möglich ist, eine Temperatur auf 0,01°K zu erfassen
(für kaliometrische Messungen) und ich mußte das verneinen. Das "Beste"
was ich erreicht hatte waren 0,05°K (ohne Langzeitstabilitätsmessung) im
Vergleich zum milliK Präzisionsthermometer (Klasmeier)
ach so, ja:
MaWin schrieb:> Sondern irgendein Schätzwert, der um durchaus relevante +2 bis -2 GradC> herumschwankt,
Umsonst habe ich meine Bastelei nicht "Temperatur Schätzometer" genannt.
MaWin schrieb:> um das LCD Glas mit Rahmen zu recykeln.
Kann ich gut verstehen, LCD-Gläser sind mittlerweile teuer geworden
(leider).
Ralph S. schrieb:> Kann ich gut verstehen, LCD-Gläser sind mittlerweile teuer geworden> (leider).
Es ging nicht ums Glas, sondern es war der verzweifelte Versuch ein
Thermometer zu kaufen, das auch die Temperatur anzeigt
Also zumindest wie mein Quecksilberthermometer.
Vergeblich.
Die Gläser waren dann übrig, eins hab ich benutzt.
Aber klar, lieber ein LCD Glas was einem gefällt aus einem Gerät
ausbauen, als irgendein unpassendes Standardglas teuer kaufen, oder
ähnlich einer Leiterplatte extra welche in Musterstückzahl anfertigen zu
lassen.
Ralph S. schrieb:> es ist erstaunlich, dass dieser tatsächlich mit +-0,1 °C angegeben ist.
Da gibt es einige
Der TSIC301/303/306 von IST/ZMD misst von -50.. +150 teilweise +/-0.3K
genau und 0.125 GradC auflösend ist aber bei Reichelt und Conrad 5 EUR
teuer, TSIC716 in 0.07K genau in einem Bereich von 30 GradC,
TSIC501/503/506 für 15 EUR ist 0.1K genau in einem Bereich von 40 GradC
und TSIC201/203/206 ist 0.5K genau über 80 GradC, TSYS01 ist 0.1K
zwischen -5 und +50, der TSYS01-1 sogar 0.1K zwischen -20 und +70, 0.1K
schafft auch der TMP117, die aber nur von -50/-55 bis +125/+150 GradC
aushalten und dann auf 0.3 GradC ungenauer werden, also ähnlich genau
wie Platin Klasse AA sind. Der ADT7320/ADT7420 auf 0.25 GradC genau und
auf 0.0017K auflösend.
https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.32
Hey... danke für die Übersicht. Ich werde mir das merken und dann dort
einsetzen, bei der es auf Genauigkeit und nicht auf Ansprechzeit ankommt
(die kleinen PT100 / PT1000 sind schon recht schnell).
Ein Sensor, der schon abgeglichen seinen digitalen Wert liefert hat
schon etwas.
Für mich am interessantesten ist hier dann der TSIC716. 0,07K sind schon
schier unglaublich, hierbei relativiert sich dann auch ein Preis von 15
Euro.
(Wird hier langsam nicht mehr zum Thread passend, weil es ja um die
Padauk Controller ging)
MaWin schrieb:> Thermometer zu kaufen, das auch die Temperatur anzeigt> Also zumindest wie mein Quecksilberthermometer.> Vergeblich.
Leider ist Quecksilber ja verboten, aber die Sachen waren schon sehr
genau. Langsam aber genau. Die alten Quecksilber-Kontaktthermometer
vermisse ich schon etwas.
Gerd E. schrieb:> messen kannst, die der Kondensator lädt bis die Spannung der internen> Bandgap-Referenz erreicht ist.
Dazu müßte aber die zu messende Spannung (über einen OP) den Kondensator
laden. Damit der dann mit einem konstanten, der Meßspannung
proportionalen Strom geladen wird, ist ein Integrator und ein
invertierender Verstärker notwendig... abgesehen davon wird das Entladen
des C dann auch etwas schwieriger.
Alles in allem benötigt es hierfür mindestens einen Doppel-OP (vierfach
wäre besser: Impedanzwandler, Invertierer, Integrator).
Genauer könnte das werden, wenn hier dann die Auflösung des ADC
gesteigert wird (sagen wir 12 Bit) und die Look-Up Table mehr
Stützpunkte erhält.
Für eine zweistellige Anzeige zu viel Aufwand, gerechtfertigt vllt. für
einen Temperaturschreiber über UART.
Ralph S. schrieb:> Gerd E. schrieb:>> messen kannst, die der Kondensator lädt bis die Spannung der internen>> Bandgap-Referenz erreicht ist.>> Dazu müßte aber die zu messende Spannung (über einen OP) den Kondensator> laden.
Ich fürchte wir reden aneinander vorbei.
Ich probiere es nochmal:
Du lässt Deine Schaltung wie sie ist, nur schließt Du KSQ+Kondensator an
PA4/CIN+ und den NTC an PA3/CIN0- (also PA3 und PA4 vertauscht).
Das invertiert Dir nur das Ausgangssignal des Komparators, verändert
aber erst mal nichts an Deinem Messprinzip und der Genauigkeit.
Aber es gibt Dir die Möglichkeit den internen Mux besser zu nutzen.
So, und jetzt machst Du z.B. jede zehnte Messung (oder wann auch immer)
folgendes:
Du schaltest mit dem Mux den - Eingang des Komparators auf die Bandgap.
Auf + hängt weiterhin KSQ+Kondensator.
Jetzt misst Du mit dem Timer, wie lange es braucht, bis der Kondensator
auf die bekannte Spannung der Bandgap geladen ist. Diesen Timerwert
speicherst Du als Kalibrierwert.
Jetzt schaltest Du den Mux wieder um auf den NTC und misst den Timerwert
bis NTC und Kondensator die selbe Spannung haben. Also Deine bisherige
Messung.
Nur hast Du jetzt den Kalibrierwert von der bekannten Spannung der
Bandgap und kannst damit Offsetfehler korrigieren.
Dafür brauchst Du keinerlei zusätzliche Hardware wie Opamps oder
sonstwas.
Ich hoffe jetzt ist klar geworden wie ich das meine.
lachen muß... (über mich): Jetzt habe ich verstanden was du meinst.
Ehrlich !
Ich bin immer davon ausgegangen, dass du meinst ich solle bei der
aktiven Messung die Bandgap verwenden.
Deiner Aussage nach nur zum Kalibrieren und nach dem Kalibrieren messen.
Hmmm... kann ich mal versuchen nächste Woche.
Ralph S. schrieb:> lachen muß... (über mich): Jetzt habe ich verstanden was du meinst.
:-)
Noch ne Idee wie man mit noch weniger Hardware auskäme:
Transistor und Trimmer weglassen, nur den Kondensator an PA4. Dann über
den internen Pullup laden lassen.
Um die Krümmung der E-Funktion, mit der der Kondensator jetzt geladen
wird, auszugleichen, könntest Du die schaltbare Widerstandskaskade im
Komparator verwenden. Also zuerst den dem Messwert nächsten Punkt in der
Widerstandskaskade finden und dann das als Kalibrierwert nehmen. Die
Widerstandskaskade ist ja linear und es sind die Teiler bekannt. Mit
weiteren solchen Messungen kann man dann auf die Bandgap bzw. die
Versorgungsspannung rückrechnen. Da müsste man dann ausprobieren was die
besseren Ergebnisse bringt.
Keine Opamps in meinem Verfahren zu finden, nirgends, garantiert ;)
Gerd E. schrieb:> Noch ne Idee wie man mit noch weniger Hardware auskäme:
Mit dem im PFS154 eingebauten RFC geht es noch einfacher. Man benötigt
nur den NTC und einen Kondensator. Der RFC integriert automatisch
Messungen über einen längeren Zeitraum, so dass auch das SNR
vergleichsweise gut ist.
in Ermangelung eines Zugriffs auf meine Hardware (weil hier nicht
vorhanden), werkel ich im Moment an dem, was auf dem Bild zu sehen ist:
Einer einfachen Konsolen-IDE für PFS154 und PFS173 mit einem
integrierten Makefile-Generator.
99% von dem was ich haben möchte funktioniert schon.
Das ganze ist so aufgebaut, dass ein einzelner Ordner in ein Verzeichnis
der Wahl kopiert wird und damit alles schon lauffähig ist.
Die Pfade zum Compiler sind Relativpfade und in dem erstellten Ordner
liegt dann in einem Verzeichnis der Compiler, das Upload-Tool und ein
paar kleinere Programme (wie bspw. die Anzeige, wie viel Speicher ein
übersetztes Programm im Flash benötigt)