mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR ADC Gain 2x gleicher Kanal


Autor: Tuxpilot (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi. Ich versuche, kleine Spannungen mit dem ADC des Attiny841 zu messen.

Ich dachte, wenn man ADMUXA auf 0x20..0x2d setzt, kann man den Gain 
Amplifier auf einen Kanal anwenden, wobei die Spannung gegenüber GND 
verstärkt wird. Einen anderen Nutzen dieser Optionen konnte ich mir 
nicht ausdenken. Datenblatt (Seite 145): 
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8495-8-bit-AVR-Microcontrollers-ATtiny441-ATtiny841_Datasheet.pdf

Scheint aber nicht so zu sein, kommt immer 0x3ff raus. Einen Hinweis 
dazu habe ich hier gefunden:
Beitrag "Differential Gain ADC (Atmega32) & Pinout"
Sind diese Optionen wirklich so nutzlos, oder kann man inzwischen doch 
einzelne Kanäle verstärken und ich mache etwas falsch?

Alternative ist, einen ADC-Kanal auf GND zu legen, wodurch dieser IO-Pin 
aber verloren ist. Vermutlich werde ich das so machen, da irgendwo noch 
ein IO-Pin freibleibt. Frage bleibt trotzdem.

Da ich hohe Ströme messen möchte, ist die Spannung wirklich klein 
(0..2mV gegenüber GND), so dass es wohl nicht reicht, an einem anders 
genutzten IO-Pin Low auszugeben.

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tuxpilot schrieb:
> Einen anderen Nutzen dieser Optionen konnte ich mir
> nicht ausdenken.
Das kommt noch....
Sobald du eine Offsetkompensation benötigst.

: Bearbeitet durch User
Autor: Tuxpilot (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also kann ich damit den Offset des Gain Amplifiers messen, um ihn von 
"sinnvollen" differenziellen Messungen abzuziehen?

Autor: Karl M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe nach AN105 einen x100 Messverstärker für 1mOhm 4-Leitershunt 
PBV aufgebaut.
Dabei entsteht ein Offsetfehler im OPV, der sich dank seiner 
Außenbeschaltung leicht korrigieren lässt.

Einschränkend ist dann beim AVR die nicht Linearität und ein 
Offsetfehler.
Dies kann man in Grenzen durch einen 2-Punkt Abgleich einschränken.

Zu beachten ist dann auch noch das überalles Temperaturverhalten.
AVR 10 Bit ADC, Widerstände, OPV

Siehe: LT1637/ LT1638

_Links_:
# 
https://www.analog.com/media/en/technical-documentation/application-notes/an105fa.pdf

# 
https://www.analog.com/media/en/technical-documentation/data-sheets/1637fd.pdf

# 
https://www.analog.com/media/en/technical-documentation/data-sheets/16389fg.pdf

Autor: Karl M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Datenblatt attiny841

http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8495-8-bit-AVR-Microcontrollers-ATtiny441-ATtiny841_Datasheet.pdf

Steht unter 16.11.2 Differential-Ended Conversion auch, dass nur 9 Bit 
zur Verfügung stehen, da dass 10 Bit das Vorzeichen darstellt:

ADC = (VPOS-VNEG)*512 / VREF * Gain

Nicht erwähnt habe ich den Abschnitt "Figure 16-12.Differential 
Non-linearity (DNL)". Dies kommt noch als Fehlerwert hinzu.

Autor: Hermann W. (hermannw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tuxpilot schrieb:
> Alternative ist, einen ADC-Kanal auf GND zu legen, wodurch dieser IO-Pin aber 
verloren ist

Richtig. Die Verstärkung mit Gsel in ADMUXB geht nur mit der 
differential Messung. D.h. wenn du gegen GND messen willst, musst du den 
Minus-Eingang auf GND legen und der Pin ist dann für andere Zwecke 
verloren.
Meine Erfahrung mit Tiny861 ist, dass man in den Grenzbereichen (0V und 
Vref) Abstriche machen muss, es gibt dann Linearitätsfehler. Ich habe 
die ersten und letzten ca. 10 Counts nicht sinnvoll nutzen können. siehe 
hier:
Beitrag "Re: minimal messbare Analogspannung Attiny861A"

Autor: c-hater (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tuxpilot schrieb:

> Hi. Ich versuche, kleine Spannungen mit dem ADC des Attiny841 zu messen.
>
> Ich dachte, wenn man ADMUXA auf 0x20..0x2d setzt, kann man den Gain
> Amplifier auf einen Kanal anwenden, wobei die Spannung gegenüber GND
> verstärkt wird.

Nein, das ist nicht so. Gain-Optionen >1 stehen nur für differentielle 
Spannungsmessung zur Verfügung, nicht für "single-ended".

> Sind diese Optionen wirklich so nutzlos, oder kann man inzwischen doch
> einzelne Kanäle verstärken und ich mache etwas falsch?

Du liest Datenblätter nicht richtig/vollständig.

> Alternative ist, einen ADC-Kanal auf GND zu legen, wodurch dieser IO-Pin
> aber verloren ist. Vermutlich werde ich das so machen, da irgendwo noch
> ein IO-Pin freibleibt.

Du kannst nicht irgendeinen ADC-Kanal auf GND legen, sondern musst das 
mit dem differentiellen "Partner" des Kanals machen, den du benutzen 
willst.

Wer wessen "Partner" ist, für welche ADC-Eingänge die differentielle 
Spannungsmessung überhaupt verfügbar ist, das alles steht im DB. Man 
muss es einfach nur LESEN.

> Da ich hohe Ströme messen möchte, ist die Spannung wirklich klein
> (0..2mV gegenüber GND)

Bescheuerte Begründung. Einfach den Shunt größer wählen, wird auch die 
Spannung darüber größer.

Außerdem: Es gibt genau auf den Zweck der Strommessung über Shunt nach 
Masse optimierte Messverstärker-ICs. Kein Gesetz verbietet, die einfach 
zu benutzen, wenn man sonst nix anderes gebacken bekommt...

Autor: Tuxpilot (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:
>> Sind diese Optionen wirklich so nutzlos, oder kann man inzwischen doch
>> einzelne Kanäle verstärken und ich mache etwas falsch?
>
> Du liest Datenblätter nicht richtig/vollständig.

Danke für den Hinweis. Vervollständige das doch bitte mit der Angabe, wo 
das im Datenblatt richtig/vollständig stehen soll.

c-hater schrieb:
> Du kannst nicht irgendeinen ADC-Kanal auf GND legen,

Doch! Mit GND zum Beispiel...

c-hater schrieb:
> sondern musst das
> mit dem differentiellen "Partner" des Kanals machen, den du benutzen
> willst.
>
> Wer wessen "Partner" ist, für welche ADC-Eingänge die differentielle
> Spannungsmessung überhaupt verfügbar ist, das alles steht im DB. Man
> muss es einfach nur LESEN.

Kein Problem, das steht tatsächlich im Datenblatt. (In diesem Fall gehen 
alle Kanäle.)

c-hater schrieb:
>> Da ich hohe Ströme messen möchte, ist die Spannung wirklich klein
>> (0..2mV gegenüber GND)
>
> Bescheuerte Begründung. Einfach den Shunt größer wählen, wird auch die
> Spannung darüber größer.

Begründung unvollständig, aber nicht bescheuert. Wenn nicht der Gain, 
sondern der Shunt 20x so groß ist, gibt es auch 400x so viel 
Verlustleistung. Das wären mir 99,75W zu viel.

Gibts sicher bei Reichelt: RND 100W 1 0,4

c-hater schrieb:
> Messverstärker-ICs.

Ich werde mich dann mal auf die Suche nach Messverstärker-ICs machen. 
Package optimalerweise SC70.

c-hater schrieb:
> Messverstärker-ICs.

Da schreibts du ja doch noch was sinnvolles... :)

Tuxpilot schrieb:
> Ich dachte, wenn man ADMUXA auf 0x20..0x2d setzt,

Ups, das hätte 0x20..0x29 sein sollen. Datenblatt nicht 
richtig/vollständig gelesen... ;)

Autor: Tuxpilot (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch eine ähnliche Frage:

Wozu gibt es 0x30..0x3f, die sind ja nur anderes Vorzeichen von 
0x10..0x1f?

Auch, um einen Fehler des Gain Amplifiers zu messen?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.