Forum: Mikrocontroller und Digitale Elektronik External I2C ADC/DAC Fragen


von Daniel (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich bin gerade an einem Projekt wo ich einen externen ADC (MAX11612) und 
DAC (MCP4728) einsetzen möchte.
Es soll ein Universeller Laderegler auf Basis des LTC4020 werden.

Da das Projekt Battery powered ist, läuft der uC nur, wenn er es auch 
"muss". Dabei wird auch der Schaltregler komplett abgeschalten.
Bedeutet ADC und DAC haben keine Versorgungsspannung.
Gleichzeitig kann es aber sein, dass die Spannungen an den ADC/DAC Pins 
weiterhin anliegt.
Um den Stromverbrauch im Ruhezustand weiter zu senken, wird der 
Spannungsteiler am ADC, der die Batterie Spannung misst mittels eines 
FETs ebenfalls "abgetrennt".

Das würde bedeuten, der ADC/DAC sieht im ausgeschaltem Zustand (VCC=OFF) 
die volle Spannung der Batterie (12s LiPo -> 50.4V max.) an den Pins.
Leider kann ich in den Datenblättern keine Angabe dazu finden, was in so 
einem Fall passiert.
Es wird nur spezifiziert, was die max. Ratings sind, wenn das IC mit 
Spannung versorgt ist - und auch hier sind die Limits immer max. VCC 
bzw. VREF - was natürlich irgendwo einleuchtend ist...


Die Fragen die ich mir jetzt stelle ist:
- Halten die IC´s das aus?
- Falls nein: Wie schütze ich den Eingang der IC´s?
Da die Versorgungsspannung nicht vorhanden ist, fällt eine einfache 
Clamp diode weg.
Eine Z-Diode würde permanenten Ruhestromfluss bedeuten - also auch nicht 
unbedingt der "Bringer".
Analogschalter kann ich nur bis 15V max. finden - Also im Grunde das 
gleiche Problem.

Schaltplanauszüge sind im Anhang.

Erläuterungen/Fragen zu den Schaltplänen:
Datei: ADC.png
- VIBAT_ADC: Spannung von einem Current Sense Amplifier.
Misst den Lade- bzw. Entladestrom. Eingesetztes IC: MAX40056.
Gleiche Frage hier: Was passiert, wenn VCC = OFF? Macht dem IC das was 
aus? Auch in diesem Fall fließt evtl. Strom (Power Path) zur Last.
- VBATT_ADC: Batterie-Spannung - max. ~50.4V (12s LiPo).
- VOUT_ADC: Ausgangsspannung des Buck Boost Konverters - max. 55V.
In ausgeschaltenem Zustand identisch zur Batteriespannung (Power-Path).
- VIN_ADC: Eingangsspannung des Buck Boost Konverters.
Voltage Range: 9V ... 48V.

Datei: DAC.png
- Manipuliert die Feedback Spannungsteiler des LTC4020, um die 
Spannungen (Battery-Float, Ausgangsspannung Buck Boost ...) digital 
einstellen zu können. Range 3V ... 53V - Untere Grenze wird später noch 
hochgesetzt. (Späterer Einsatz vermutlich von 3s bis 12s)
- GND_SW: LTC4020 schaltet GNDS auf die Spannungsteiler, wenn VIN 
anliegt. Ansonsten ist der Zustand "High Z", um den Ruhestormvebrauch zu 
minimieren.
- Reicht der Serienwiderstand von 16k3 hier aus, um den DAC ausreichend 
zu schützen?

Der uC läut auf 3.3V. Die ADC´s und DAC´s auf 5V.
Es wäre im Prinzip also auch möglich, die Versorgungsspannung des ADC 
und des DAC im Standby eingeschaltet zu lassen.
Da der Stromverbrauch im Ruhezustand dadurch natürlich wieder höher 
wäre, würde ich das nur machen, wenn es nicht anders geht.

Im Datenblatt beider IC´s steht außerdem auch, dass die Logik 
Eingangsspannung für High-Pegel min. 0,7xVCC (3,5V) betragen sollte.
Bedeutet das, dass ich einen zusätzlichen I2C Levelshifter brauche oder 
würde (sollte) das so auch funktionieren?

Mir fällt gerade irgendwie keine sinnvolle Lösung ein.

Vielen Dank im Voraus!

Gruß Daniel

von Stefan F. (Gast)


Lesenswert?

Typischerweise darf die Spannung an allen Pins nicht mehr als VDD+0,3V 
und nicht weniger als GND-0,3V sein.

Das heißt, die Sache mit deinem Transistor geht so nicht. Wenn der ADC 
keine Spannung an VDD hat, müssen die Eingange auf annähernd Null Volt 
liegen. Dein Transistor bewirkt genau das Gegenteil.

Außerdem wird bei abgeschaltetem Transistor ein unerwünschter Strom von 
+VBATT nach +VOUT_INT (oder anders herum) fließen.

Was den Levelshifter angeht: Den wirst du wahrscheinlich brauchen. 
Kannst du den µC nicht auch mit 5V betreiben oder einen mit 5V 
tolerantem I²C Bus (z.B. STM32) verwenden?

von Daniel (Gast)


Angehängte Dateien:

Lesenswert?

Stefanus F. schrieb:
> Typischerweise darf die Spannung an allen Pins nicht mehr als
> VDD+0,3V
> und nicht weniger als GND-0,3V sein.

Gilt das auch, wenn garkeine Spannungsversorgung an VDD anliegt?
Oder geht das IC dann schon vorher "hops"?


Stefanus F. schrieb:
> Das heißt, die Sache mit deinem Transistor geht so nicht. Wenn der ADC
> keine Spannung an VDD hat, müssen die Eingange auf annähernd Null Volt
> liegen. Dein Transistor bewirkt genau das Gegenteil.
> Außerdem wird bei abgeschaltetem Transistor ein unerwünschter Strom von
> +VBATT nach +VOUT_INT (oder anders herum) fließen.
Gut das würde sich mit einem zusätzlichen FET erledigen.
Ich denke aber nicht mal, dass das nötig ist, da +BATT über die Body 
Diode des power path FET sowieso mit +VOUT_INT "verbunden" ist.


Stefanus F. schrieb:
> Was den Levelshifter angeht: Den wirst du wahrscheinlich brauchen.
> Kannst du den µC nicht auch mit 5V betreiben oder einen mit 5V
> tolerantem I²C Bus (z.B. STM32) verwenden?
Eine Levelshifter wäre im Grunde kein Beinbruch.

Erstmal ist wichtiger, die ADC und DAC Eingänge zu schützen.
Wie wäre es, ein N-FET vor die Eingänge zu schalten? Die Spannung am 
Gate müsste um die VGS thresholdvoltage höher liegen als die 
Ausgangsspannung des Spannungsteilers?
Entwurf siehe Anhang. Klappt das so? Ich denke den RDSon kann man hier 
vernachlässigen, da die Spannungsteiler um einige Größenordnungen 
hochohmiger sind, als der RDSon der FETs?

Danke und Gruß
Daniel

von Peter D. (peda)


Lesenswert?

Daniel schrieb:
> Das würde bedeuten, der ADC/DAC sieht im ausgeschaltem Zustand (VCC=OFF)
> die volle Spannung der Batterie (12s LiPo -> 50.4V max.) an den Pins.

So ist es, also laß den Unsinn.

Daniel schrieb:
> Leider kann ich in den Datenblättern keine Angabe dazu finden, was in so
> einem Fall passiert.

In den Datenblättern steht üblicher Weise, bei VCC = 0V sind an den 
Eingängen max +0.3V erlaubt.

Batteriespannungen ändern sich nicht schnell, man kann also die 
Spannungsteiler hochohmig machen, so daß deren Strom unter der 
Selbstentladung liegt.
Und wenns dem ADC zu hochohmig ist, noch einen OPV davor. Dabei Achtung, 
R2R-OPVs sind nicht wirklich R2R. Die brauchen am Ausgang noch 50..200mV 
Spannungsreserve zu den Rails.

von Amateur (Gast)


Lesenswert?

Garkeine Spannung ist auch eine Spannung!

von Amateur (Gast)


Lesenswert?

Hochohmige Widerstände, z.B. bei einem Spannungsteiler, klingen gut, 
wenn es um das Sparen von Energie geht.
Kann aber Dein A/D-Wandler damit leben? Ich habe mir Dein Datenblatt 
nicht reingezogen, aber nach meiner Meinung haben diese Teile keinen 
besonders hohen Innenwiderstand. Explizit nachsehen und berücksichtigen.

von Stefan F. (Gast)


Lesenswert?

Daniel schrieb:
> Gilt das auch, wenn garkeine Spannungsversorgung an VDD anliegt?

Normalerweise ja. Ausnahmen stehen im Datenblatt meist direkt unter 
dieser Anforderung, falls es Ausnahmen gibt. Die Ausnahmen sind selten.

von Stefan F. (Gast)


Lesenswert?

Daniel schrieb:
> Wie wäre es, ein N-FET vor die Eingänge zu schalten?

Verfälscht sicher das Signal.

Wenn der Spannungsteiler hochohmig genug ist, und ESD Schutzdioden 
vorhanden sind, schadet die Überspannung nicht, da der Strom ausreichend 
begrenzt ist.

Allerdings beeinflussen hochohmige Widerstände die Messung. Zum 
Ausgleich kann man Kondensatoren hinzufügen und zwischen den Messungen 
Pausen einfügen, damit sich der Kondensator wieder "erholen" (nachladen) 
kann.

Etwa:
1
            220k          110k
2
Signal o---[===]----+----[===]---|
3
                    |
4
                    +-----||-----| 100nF
5
                    |
6
                    |
7
      VDD o---|<|---+---|<|------| ESD Schutzdioden, meist intern vorhanden
8
                    |
9
                    |
10
                   ADC

von Daniel (Gast)


Lesenswert?

Stefanus F. schrieb:
> Daniel schrieb:
>> Wie wäre es, ein N-FET vor die Eingänge zu schalten?
>
> Verfälscht sicher das Signal.
>
> Wenn der Spannungsteiler hochohmig genug ist, und ESD Schutzdioden
> vorhanden sind, schadet die Überspannung nicht, da der Strom ausreichend
> begrenzt ist.
>
> Allerdings beeinflussen hochohmige Widerstände die Messung. Zum
> Ausgleich kann man Kondensatoren hinzufügen und zwischen den Messungen
> Pausen einfügen, damit sich der Kondensator wieder "erholen" (nachladen)
> kann.
>
> Etwa:            220k          110k
> Signal o---[===]----+----[===]---|
>                     |
>                     +-----||-----| 100nF
>                     |
>                     |
>       VDD o---|<|---+---|<|------| ESD Schutzdioden, meist intern
> vorhanden
>                     |
>                     |
>                    ADC

Okay, leuchtet ein.
Aber ich geh richtig in der Annahme, dass ich die Sache mit dem 
Abschalten der Spannungsteiler lieber lassen sollte?
Also Spannungsteiler immer angeschlossen lassen, dafür aber eben sehr 
hochohmige Spannungsteiler mit Kondensatoren?
Ich brauch keine sehr hohe Samplerate (1x die Sekunde - eher noch 
geringer), daher kann ich damit gut leben.
Wie hoch die Spannungsteiler sein dürfen, werde ich wohl am Prototyp 
ausprobieren müssen.
Im Layout ist mal der Transistor und ein 0R auf GND jedenfalls 
vorgesehen.

Hab im Datenblatt des DAC und ADC nachgesehen. Die haben jeweils 
Schutzdioden integriert.
Hier konnte ich dann auch die schon mehrmals genannten 0.3V finden.

Danke und Gruß
Daniel

von Stefan F. (Gast)


Lesenswert?

Daniel schrieb:
> Aber ich geh richtig in der Annahme, dass ich die Sache mit dem
> Abschalten der Spannungsteiler lieber lassen sollte?

Ich würde es lassen, weil der Transistor das Signal sicher deutlich 
verfälscht. Es sei denn, ein paar zig Millivolt mehr oder weniger sind 
egal.

Hochohmige Spannungsteiler (um 1MΩ) sind oft die bessere Wahl.

Warum machst du den ganze Zirkus überhaupt? Klar, um Strom zu sparen. 
Aber ist das nötig? Um was für Akkuleistungen und Zeiten geht es 
überhaupt?

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.