Hallo,
ich habe folgendes Phänomen:
Ein STM32F103 liefert mir am ADC unstabile Daten wenn die Ergebnisse zwischen ca. 0x800 und 0x840 liegen. Die Werte springen dann hin und her. Ich konnte das noch nicht komplett aufzeichnen, aber es sieht danach aus, dass es um zwei einigermaßen stabile Werte mit einem Abstand von ca. 0x40 springen.
Hat dazu jemand eine Idee?
Der ADC wird über einen Timer manuell gestartet, also in der Timer-Routine ADC auslesen und ADC neu starten und beim nächsten Timer-Int den Wert wieder auslesen.
Timer-Intervall ca. 10us. Das Intervall hab ich testweise auf 200us erhöht, ohne Effekt.
Das Signal am ADC-Eingang kommt aus einem 10k Poti das von einem digitalen GPIO angesteuert wird damit die Spannung am Poti abgeschaltet werden kann. Die Spannung liegt aber nach dem Einschalten dauerhaft an.
-> das ist sicher nicht optimal, aber wenn das das Problem wäre, müssten diese Instabilitäten auch bei anderen Werten oberhalb 0x840 und unterhalb 0x7FF auftreten, tun sie aber nicht.
-> Poti kann nicht das Problem sein, andere Potis machen dasselbe Problem. Impedanz sollte mit 10k klein genug sein.
-> Stromversorgung ist eine LiIon Batterie mit nachgeschaltetem LDO.
Im Timer werden nacheinander ADC1 und ADC2 abgefragt. ADC1 hängt an dem Poti, ADC2 über einen Spannungsteiler mit 2x 1,5 MOhm direkt am Akku und wird verwendet, um den Ladezustand des Akkus zu überwachen.
Ich habe testweise ADC2 deaktiviert, hat nichts gebracht.
Was mich wundert, ist, dass das Problem nur in der Nähe von 0x800 auftritt.