Forum: Mikrocontroller und Digitale Elektronik Spannungsänderung durch ADC wie schnell feststellbar


von stm (Gast)


Lesenswert?

Hallo, ich möchte gern eine Spannung am ADC eines Mikrocontrollers 
vergleichen bzw. Änderungen feststellen. Kann mir jemand sagen welche 
Zeiten dafür nun ausschlaggebend sind? Die Total Conversation Time 
(including Sampling Time) oder nur die Sampling Time oder doch nur die 
MSPS Angaben im Datenblattkopf?
Vorgesehen ist die Änderung zu bemerken und dann oder gleichzeitig den 
neuen Pegel festzustellen.

von stm (Gast)


Lesenswert?

ach so und es geht hier speziell um einen stm32f105xx und die Angaben 
befinden sich auf Seite 72.

von MB (Gast)


Lesenswert?

Die Frage ist ein wenig unpräzise gestellt.

Der ADC selbst "merkt" erstmal überhaupt nicht, wenn sich seine 
Eingangsspanung ändert. Was heisst Änderung für dich? (1mV Änderung, 1V 
Änderung?).

Du brauchst erstmal eine Schaltung welche deine Änderung bemerkt und die 
anschliessend deinen ADC triggert.

Ich bin jetzt mal zu faul, deine Arbeit zu erledigen und den Link zum DB 
hier direkt zu posten...

von Uwe (Gast)


Lesenswert?

Die Total Conversation Time.
ABER die Signal Noise Ratio deines Signals muss schon beachtet werden.
Und Messgeschwindigkeit und Genauigkeit beeinflussen sich normalerweise 
gegenseitig. Also sozusagen eine "Dunkelstrommessung" bei dem die SNR 
bestimmt wird sollte man in die Software einfach integrieren können. 
Dann hat man einen Bereich erfasst in dem man festlegt das, daß Signal 
sich noch nicht Verändert hat. Oder man macht digitale oder analoge 
Filter davor bzw. bildet einfach den Mittelwert über einige Werte. Da 
kann man schon sehen wie sich Messgeschwindigkeit und Genauigkeit 
zueinander verhalten.

von Peer (Gast)


Lesenswert?

Da ich nicht denke, dass Du mit super duper Tricks arbeiten möchtest:

Die Total Conversion Time ist die Zeit, die der braucht um den internen 
Kondensator zu laden, der wird dann abgekoppelt vom Messsignal und dann 
gemessen. Also ist das für Dich relevant.

Die Frage ist viel mehr, wie oft Du das nachguckst und bewertest, was 
für Dich eine Änderung ist. Der ADC gibt Dir nur ein Signal, das kannste 
auslesen oder per Interrupt holen, aber ob sich da was geändert hat, 
musste selber gucken.

von stm (Gast)


Lesenswert?

Ich möchte natürlich im Controller vergleichen ob das Signal sich um 
einen gewissen Betrag geändert hat, diese Aufgabe möchte ich ja auch 
nicht vorgekaut haben, es ging mir nur darum ob es möglich ist das 
Signal mit der 1µs abzutasten und zu vergleichen. Alternativ hätte ich 
sonst eine Analoge Schaltung die mir Interrupts erzeugt und dann könnte 
ich abtasten, aber warum Analog beschalten wenn es auch direkt alles 
über Software gehen würde.
Und ja, es muss so schnell sein, am besten noch schneller ;-)

Und weil die Frage kam, Änderung wird wohl für mich am Ende bei einem 
Spannungsbereich von ca. 3V eine Änderung von etwa 17% sein. Und die 
Überlegung des direkten Abtastens ging eigentlich davon aus mit 
"Dauerfeuer" abzutasten und zu vergleichen ob es eine Änderung gegeben 
hat. Da bin ich mir allerdings nicht sicher ob das in dieser Zeit 
umsetzbar ist oder ob die Belastung doch unverhältnismäßig groß oder gar 
zu groß wird für den Controller (soll ja noch nebenbei was anderes 
machen).

Danke für die bisherigen Hinweise.

von stm (Gast)


Lesenswert?

achso und was wäre für dich ein super duper Trick? ^^ nur aus Neugier

von NopNop (Gast)


Lesenswert?

stm schrieb:
> achso und was wäre für dich ein super duper Trick? ^^ nur aus Neugier

Wahrscheinlich war da der "interleaved mode" gemeint. (Hast ja 2 ADCs)



Trotzdem finde ich 1MSP/s ziemlich sportlich.
Die maximale total conversion time wird mit 18us angegeben, was gerade 
mal 55kSP/s entspricht.

Bei den Atmels kann man noch die Frequenz erhöhen wodurch allerdings die 
Auflösung leidet. Aber ich glaube bei f_ADC= 14MHz ist beim STM32 auch 
schluss.

von stm (Gast)


Lesenswert?

nun um ehrlich zu sein hatte ich das sogar in Betracht gezogen um die 
Zeit noch weiter zu drücken. Und wenn ich das Datenblatt (die Tabelle 
unter der mit der Conv-Time) richtig interpretiere kann ich ja durch 
verringern des R(AIN) die Zeit auf maximal 1µs drücken (hoffe ich).
Es musst es muss leider so sportlich sein, mein Signal weißt Pulsbreiten 
von wenigen µs auf und wenn ich jetzt von unt hinten noch die Hälfte 
verlieren bleibt nicht mehr viel über. Bzw. mit 18µs habe ich wenn es 
schlecht kommt schon einen Puls vollkommen verloren.
Klingt doch nach Interrupt gesteuerter Abfrage^^

von NopNop (Gast)


Lesenswert?

stm schrieb:
> Und wenn ich das Datenblatt (die Tabelle
> unter der mit der Conv-Time) richtig interpretiere kann ich ja durch
> verringern des R(AIN) die Zeit auf maximal 1µs drücken (hoffe ich).

Ich würde sagen: "Nö".
Im Datenblatt steht, dass f_ADC_Max= 14MHz.
Und da beträgt die Wandlungszeit eben zwischen 1us und 18 us = 1MSP bis 
55kSP

von U.R. Schmitt (Gast)


Lesenswert?

stm schrieb:
> Es musst es muss leider so sportlich sein, mein Signal weißt Pulsbreiten
> von wenigen µs auf und wenn ich jetzt von unt hinten noch die Hälfte
> verlieren bleibt nicht mehr viel über. Bzw. mit 18µs habe ich wenn es
> schlecht kommt schon einen Puls vollkommen verloren.

Blöde Frage: Ist das ein analoges oder ein digitales Signal da du von 
Pulsbreiten redest?

von stm (Gast)


Lesenswert?

Kann beides sein und wenn es ein Digitales ist, dann mit mindestens 3 
Spannungsstufen, die ich identifizieren möchte. Um genau zu sein sind es 
Ströme, ich wandle halt notwendigerweise. Wäre es ein einfaches 
Digitales Signal würde ich das natürlich nicht über die ADCs einlesen 
wollen ;-)

@NopNop ... du hast gerade meine Träume zu Staub zermahlen -.- ^^

von NopNop (Gast)


Lesenswert?

stm schrieb:
> @NopNop ... du hast gerade meine Träume zu Staub zermahlen -.- ^^

War nur meine Einschätzung.
Sich am unteren Grenzwert zu bewegen ist mit Sicherheit machbar...aber 
das wahrscheinlich nicht einfach.
Wenn man dann noch nebenher was machen möchte
>(soll ja noch nebenbei was anderes machen).
wird es dadurch auch nicht gerade einfacher.

Denke mal wenn es machbar ist, dann mit dem "interleaved mode".
Habe noch nicht mit dem STM32 gearbeitet...deshalb bin ich da mit 
Sicherheit nicht der beste Ansprechpartner.
Über DMA, Interrupts u.ä. kann man da sicherlich noch einiges 
rauskitzeln.

von stm (Gast)


Lesenswert?

Nun gut, dann gehe ich wohl doch wieder zu den Interrupts zurück ;-)
Also danke für die Nachhilfe.

von Purzel H. (hacky)


Lesenswert?

Allenfalls einen Komparator einsetzen ?

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
Noch kein Account? Hier anmelden.