Also ich habs noch nicht probiert, hätte nur eine Schaltung, um es zu testen, aber ich verstehs noch nicht ganz...
Wenn ich auf z.b. 50% Dutycycle einstelle, bekomme ich bei VCC = 3V3 genau 1.65V raus. Wenn jetzt aber der Sensor z.b. 1.4V ausgibt (nach dem Spannungsteiler), wie soll ich dann messen?
Ich dachte du meintest, ich solle den Dutycycle so einstellen, dass die geglättete Spannung so genau wie möglich der Sensorspannung entspricht??
das bezieht sich jetzt wohl auf meinen Alternativvorschlag aus meinem Post #8.
Ich versuche meinen Gedanken an einem Beispiel zu konkretisieren, vielleicht sieht man dann deutlicher:
Man erzeugt eine PWM mit einer Auflösung von 16 Bit, z.B. von 0 bis 3V3. Man glättet und reduziert mittels Spannungsteiler auf die Vergleichsspannung x V bis x+327,7 mV. Die 327,7 mVolt sind so gewählt, dass die Änderung von einem digit im PWM Wert eine Spannungsänderung von 5 uV (u = Mikro) der Vergleichsspannung gibt (das entspricht einem Zentimeter Höhe bei der Sensorspannung). Die vom PWM darstellbare Vergleichsspannung umfasst damit einen Bereich von etwa 650 Höhenmeter. Die Vergleichsspannung hat jetzt noch eine Restwelligkeit, die deutlich über 5uV liegt (vielleicht bei 1 mV um irgendeinen Wert zu nennen). Die Spannung x wird so gewählt, dass die PWM Spannung im Bereich der zu erwartenden Sensorspannung liegt (im einfachsten Fall Trimmpoti, vor Start einzustellen).
Jetzt wird Vergleichsspannung und Sensorspannung mit einem Komparator verglichen. Die PWM wird so nachgeregelt, dass die Ausgangsspannung des Komparators ein Taktverhältnis von 1:1 hat. Dazu würde ich bei jedem Flankenwechsel ein Interrupt auslösen und verarbeiten. Die PWM Frequenz darf dabei relativ niedrig (z.B. 1kHz oder gar niedriger) sein, eine Restwelligkeit ist ja explizit erlaubt, ja sogar notwendig. Das Verfahren mit Auswertung des Tastverhältnis im MC vermeidet die langdauernde Glättung mit anschließender AD-Wandlung. Der gültige Höhenwert wird durch gleitende Mittelwertbildung des Compareregisters des Zählers ermittelt.

Ja, die PWM-Glättung ist der springende Punkt. Momentan habe ich ja einen passiven Tiefpass 2. Ordnung (ohne den OP miteinzubeziehen), mit den Werten R = 10k, C = 1µ, das ergibt eine Zeitkonstante von 10ms. Die Werte habe ich damals mit LTSpice simuliert, da war kein Ripple mehr zu sehen. Mittlerweile bin ich aber der Meinung, dass das nicht ganz richtig ist. Evtl. werde ich einen Tiefpass 3. Ordnung verwenden, was meinst du? Die Pwm Frequenz liegt bei 125kHz, kann aber nicht mehr vergrößert werden, weil das zu lasten der Auflösung ginge und dann evtl. der Offset nicht mehr gefunden werden kann.
Mit den Daten kann man schon eine Abschätzung machen. Wenn wir annehmen, dass die mittlere PWM Spannung 1,65V ist (bei 3V3 maximal), dann fließt bei jedem Aufladezyklus des Kondensators ein Strom von 1,65V/10k = 0,165mA. Der Aufladezyklus dauert eine halbe Periode, also 4 us. Die Ladung in den Kondensator ist also Q=0,165mA * 4us = 6,6e-10 C. Die Spannungsänderung (ripple) an 1 uF ist damit U=Q/C = 0,66 mV.