Ungenaue Werte bei Messung der Betriebsspannung Attiny85

OP #4730722
Lesenswert?
• ▲
▼
Hallo,

ich versuche mit die Betriebsspannung des Attiny85 zu messen und bekomme 
ziemlich starke Abweichungen, wenn ich mit dem Multimeter nachmesse.
Als erstes habe ich folgendes versucht:
1
void internespannung() {
2
  //Spannung Messen start  
3
  ADMUX |=  (1 << MUX3) | (1 << MUX2);  // input: bandgap; reference: Vcc
4
  delay(10);    //warten bis sich die Referenzspannung eingestellt hat
5
  ADCSRA |= (1 << ADEN);    //ADC aktivieren 
6
  delay(15);
7
  ADCSRA |= (1 << ADSC) | (1 << ADPS2) | (1 << ADPS1);
8
  while (bitRead(ADCSRA, ADSC));
9
  adcw = ADC;
10
  //zweite Messung
11
  ADCSRA |= (1 << ADSC) | (1 << ADPS2) | (1 << ADPS1);
12
  while (bitRead(ADCSRA, ADSC));
13
  adcw = ADC;
14
  
15
  ADCSRA &= ~(1 << ADEN);      //disable ADC (power reduction)
16
  vcc = 1.029 * 1024 / ADC * 1000;    //1.0 – 1.2 Abweichung 
17
  //Spannung Messen Ende
18
}
Da die interne Reverenz Spannung eine Abweichung von 1,0 bis 1,2 Volt 
haben kann habe ich diese auf die 1.029 Volt angepasst und hatte exakt 
dasselbe Ergebnis wie auf mein Multimeter: 3,80 Volt. Als ich die 
Spannung auf 5 Volt erhöht habe, habe ich eine Abweichung von 0,55 Volt 
also 5,55 Volt am Attiny85.
Mein 2. Versuch habe ich mit einem Spannungsteiler (10k Ohm und 1k Ohm) 
gestartet und die interne Referenz von 1.1 Volt wieder genutzt.
1
void teiler() {
2
  ADMUX |=  (1 << REFS1) | (1 << MUX1);  
3
  delay(10);  //warten bis sich die Referenzspannung eingestellt hat
4
  ADCSRA |= (1 << ADEN);        //ADC aktivieren 
5
  delay(15);
6
  ADCSRA |= (1 << ADSC) | (1 << ADPS2) | (1 << ADPS1);
7
  while (bitRead(ADCSRA, ADSC));
8

9
  vcc = ADC * 1.05 / 1024 * 11;
10
}

Aber auch hier wieder die gleichen Probleme wie oben beschrieben. Die 
interne Spannung auf 1.05 Volt eingestellt um auf 3,80 Volt zu kommen 
wie bei meinem Multimeter. Jedoch bei 5 Volt wieder eine Abweichung von 
0,55 Volt.
Ich würde gerne ein Messbereich von 2,8 Volt bis 5,5 Volt abdecken und 
hier möglichst genaue Ergebnisse erzielen.
Ein Kondensator hat übrigens keine Verbesserung gebracht.
Und ADC lieferte bei beiden Versuchen die exakt gleichen Werte
Wie kann ich die Ergebnisse weiter verbessern?

Vielen Dank und Gruß
Torsten
#4731064
Lesenswert?
• ▲
▼
John schrieb:
> s gilt nur für eine konstante Versorgungsspannung von 5,5V bei
> konstanter Umgebungstemperatur von 25°C.
> Und diese Angaben sind auch nur "Richtlinien".

Ist zwar richtig, erklrät aber nicht die Abweichung von 0,5 V

Torsten W. schrieb:
> ich versuche mit die Betriebsspannung des Attiny85 zu messen und bekomme
> ziemlich starke Abweichungen, wenn ich mit dem Multimeter nachmesse.

Miss die Spannung auch mal mit dem Oszi nach. Hintergrund: Dein 
Multimeter bildet den RMS, der Atmega macht das nicht. Aus so etwas kann 
schnell mal eine Abweichung von 0.5 V entstehen. Das hab ich bei meinem 
Selbstbaulabornetzteil gesehen.
Du könntest auch eine Mittelwertbildung machen (also z.B. 10 mal messen 
und den Durchschnitt berechnen)
Gast #4731108
Lesenswert?
• ▲
▼
Also bei mir sieht es gut aus (die 1. Version, die 2. mit 
Spannungsteiler habe ich nicht probiert): auf 5.0 V eingestellt, ergibt 
sich bei Ucc= 3.3 V ein Wert von 3.28, bei 3.0 einer von 2.98; 
ATtiny85-20PU, Revision B von 1351, ein alter von 0739 verhält sich fast 
gleich. Es ist ein ganz simpler Steckbrettaufbau, Systemtakt 1 MHz.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.