Hallo zusammen! Ich möchte mit einem STM32 ADC Signale zwischen 5V und 50V messen. - Bei geringen Spannungen hätte ich gerne mehr Auflösung, 50V als "festen" Messbereich zu verwenden scheidet also aus. 4 Messbereiche oder so würde schon reichen. - Eine "manuelle" Auswahl des Messbereichs ist ok, da der gewünschte Messbereich vorher bekannt ist. - Das Umschalten muss per Software gehen, also kein Poti, Schalter, etc. davor. Was sind hier üblicherweise die Lösungen? Gesehen hatte ich verschiedene Spannungsteiler, deren Abgriff über einen Multiplexer an den ADC geschalten wird. Leider habe ich dort das Problem, dass bei hohen Messspannungen (großer Messbereich) die Eingangsspannung des Multiplexers für kleine Spannungen zu hoch ist. Versorgungsspannung des Systems sind 3.3V, besser 1.8V. Eine Z-Diode am Eingang würde das beseitigen, dann ist aber die Eingangsimpedanz nicht mehr konstant... Welche Architekturen würdet ihr verwenden? Danke, Mike
Multiplexer mit current injection control, z.B. 74hv4851 verwenden. Die haben mit Überspannung an den Pins kaum Probleme.
Mike schrieb: > Eine Z-Diode am Eingang würde das beseitigen, dann ist aber die > Eingangsimpedanz nicht mehr konstant... Dann benutze die Eingangs-Schutzdioden und begrenze den Strom mit einem genügend hochohmigen Längswiderstand. Wenn das zu hochohmig wird, kannst du nach dem Multiplexer noch einen OpAmp als Impedanzwandler schalten.
Mike schrieb: > Ich möchte mit einem STM32... Tja, zu diesem speziellen Thema kann ich dir nix sagen - aber: Wenn es auch mit anderen Controllern oder gar mit sogenannten ADC-Schaltkreisen gehen soll, wäre eine Architektur dieser Art denkbar: 1. konstanter Vorwiderstand (R1) vom Meßobjekt zum Eingang der Meßschaltung. 2. ebenso konstanter Widerstand (R2) vom Eingang der Meßschaltung zu GND 3. Schaltbarer Zusatzwiderstand (R3) parallel zu R2 Damit kannst du das Teilerverhältnis ändern, ohne daß dabei unbenutzte Multiplexer-Eingänge zu hohe Spannung abkriegen. W.S.
Flo schrieb: > 74hv4851 Die Artikelnummer gibt es wohl nicht. Welchen meinst du genau? Dietrich L. schrieb: > Dann benutze die Eingangs-Schutzdioden und begrenze den Strom mit einem > genügend hochohmigen Längswiderstand. Wenn das zu hochohmig wird, kannst > du nach dem Multiplexer noch einen OpAmp als Impedanzwandler schalten. Signalpfad wäre also: Spannungsteiler > Längswiderstand > Multiplexer > Opamp > MCU/ADC? Mhh, klingt eigentlich nicht schlecht?! W.S. schrieb: > Schaltbarer Zusatzwiderstand (R3) parallel zu R2 Klingt gut. Was verwendet man als Schalter? Einfach ein MOSFET oder eher einen Schalter wie MC74VHC1GT66? Danke und beste Grüße, Mike
Wenn der Controller Schutzdioden integriert hat und somit bei einem hochohmigen Spannungsteiler die Eingangsströme kein Problem sind könnte man auch über mehrere verschiedene Spannungsteiler nachdenken, die auf verschiedene ADC Pins des Controllers gehen. Ggf. Auch Schutzdioden extern hinzufügen. Wenn es ausreichend ADC-Eingänge gibt und man generell genügend Pins zur Verfügung hat könnte man sich alle externen Schalter sparen.
Mike schrieb: > Was sind hier üblicherweise die Lösungen? Das hängt von den Ansprüchen ab. Eine Möglichkeit ist ein PGA. Damit hast du alles zusammen und auch gleich ein niederohmiges Signal für den ADC.
Mike schrieb: > Was sind hier üblicherweise die Lösungen? Ich würde einen ADC nehmen, der die 50V hinreichend genau auflösen kann. Drei echte Bit mehr reichen da schon.
So etwas wie hier im Bild habe ich schon gebaut für solche Zwecke. Eine Zenerdiode direkt parallel zum Teiler geht nicht, viel zu weich im Knick. Die Schaltung im Bild spannt die Zenerdiode im Arbeitspunkt 2,7V vor, die Silizium-Diode am Spannungsteiler leitet ab 2,7+0,6V ab. Somit wird die Spannung am ADC Eingang auf 3,3V geklemmt. Zugegebenermaßen kann es hier ab ca. 3,1V etwas holprig werden, man kann auch die Z-Diode auf 3,0V setzen, dann ist die max. Spannung am ADC 3,6V - eigentlich immer noch unproblematisch für die Ableitdioden im ADC. Eine Z-Diode kann als Sammelpunkt für mehrere Eingänge genutzt werden.
Mike schrieb: > Leider habe ich dort das Problem, dass bei hohen Messspannungen (großer > Messbereich) die Eingangsspannung des Multiplexers für kleine Spannungen > zu hoch ist. Mit dem MUX nur den unteren Widerstand umschalten. Der obere Widerstand ist z.B. fest 1M. Eine Diode gegen VCC verhindert das Hochlaufen beim Umschalten. Als MUX ein 74HC4052. Die eine Hälfte schaltet den Widerstand um, die andere den ADC-Eingang, damit der ON-Widerstand die Messung nicht verfälscht.
Das reicht als finaler Ratschlag: Lothar M. schrieb: > Ich würde einen ADC nehmen, der die 50V hinreichend genau auflösen kann. Aber.. warum derart einfach die Angelegenheit final lösen, wenn es auch als Thema dieses Threads dienen kann und man partout mit einem STM32 anstelle eines ordentlichen ADC herumbasteln will? W.S.
W.S. schrieb: > Aber.. warum derart einfach die Angelegenheit final lösen, wenn es auch > als Thema dieses Threads dienen kann und man partout mit einem STM32 > anstelle eines ordentlichen ADC herumbasteln will? Weil Kosten, Entwicklungsaufwand (auch Firmware), PCB Area, Sourcing der Komponenten (n ADC ist auf jeden Fall kritischer als n dummer MUX oder so)... Peter D. schrieb: > Die eine Hälfte schaltet den Widerstand um, die > andere den ADC-Eingang, damit der ON-Widerstand die Messung nicht > verfälscht. Kannst du das nochmal genauer erklären? Sonst klingt die Lösung schon anständig!
Mike schrieb: > (n ADC ist auf jeden Fall kritischer als n dummer MUX oder so)... Das ist eine Fehleinschätzung, denn ein dummer Mux hat auch so seine Eigenheiten. Um die zu erkennen, musst du natürlich das Datenblatt lesen und verstehen können. > Weil Kosten, Entwicklungsaufwand (auch Firmware), PCB Area, Sourcing der > Komponenten Ich habe das im Kopf schon eingepreist: der eine einzige zusätzliche höher auflösende ADC ist weniger aufwendig in Entwicklung und Betreuung, insgesamt billiger, reproduzierbarer, weniger ausfallgefährdet, kleiner, einfacher zu beschaffen, usw., usf...(*) Allein schon deshalb, weil deine selbstgefrickelte Schaltung aus zig Bauteilen sicher noch einige urige Überraschungen bringen wird. Die eine ist z.B. die, dass sich durch eine Klemmdiode (egal ob extern oder die Bodydiide) die Eingangsimpedanz der Gesamtschaltung ändert, sobald die Diode zu leiten beginnt. (*) Ein Tipp: Druck diesen Post aus und mach hinter jeder Punkt in meiner Aufzeichnung ein Häkchen, sobald er zutrifft. Du musst diesen Ausdruck samt den Häkchen niemandem zeigen, er dient nur der Kontrolle und dem Lerneffekt. Der Lerneffekt ist dieser: wenn es die Lösung für dein Problem bereits gibt, dann nimm sie. Alles andere ist aufwendiger und teurer.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Mike schrieb: >> Was sind hier üblicherweise die Lösungen? > Ich würde einen ADC nehmen, der die 50V hinreichend genau auflösen kann. > Drei echte Bit mehr reichen da schon. Es gibt aber auch Anwendungsfälle in denen die hohe Auflösung über mehrere Bereiche gewünscht ist, Multimeter sind da beispielsweise sehr beliebt. Von Intersil gibt es ein Application Note wie Autoranging realisiert werden kann, verwendet wird ein ADC mit BCD Ausgang*, das Verfahren kann aber natürlich auch bei anderen ADCs angewandt werden. https://www.renesas.com/eu/en/document/apn/an028-building-auto-ranging-dmm-icl7103aicl8052a *Solche ADCs werden häufig noch in günstigen Multimetern oder Einbauinstrumenten verwendet.
Mach die unteren (dann parallelen) Widerstände des Spannungsteilers einfach mit einem kleinen Mosfet in Serie schaltbar. Die Mosfets sehen kaum Leistung oder Spannung und der Rdson kann auch im Ohm-Bereich noch in der Toleranz der Teilerwiderstände untergehen. Sollte kosten- und verfügbarkeitstechnisch also kein Problem werden.
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.