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.
Tuxpilot schrieb:> Einen anderen Nutzen dieser Optionen konnte ich mir> nicht ausdenken.
Das kommt noch....
Sobald du eine Offsetkompensation benötigst.
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"
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...
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... ;)
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?