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.
Also kann ich damit den Offset des Gain Amplifiers messen, um ihn von "sinnvollen" differenziellen Messungen abzuziehen?
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
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.
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?
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.