mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ungenaue Werte bei Messung der Betriebsspannung Attiny85


Autor: Torsten W. (toto1975)
Datum:

Bewertung
0 lesenswert
nicht 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:
void internespannung() {
  //Spannung Messen start  
  ADMUX |=  (1 << MUX3) | (1 << MUX2);  // input: bandgap; reference: Vcc
  delay(10);    //warten bis sich die Referenzspannung eingestellt hat
  ADCSRA |= (1 << ADEN);    //ADC aktivieren 
  delay(15);
  ADCSRA |= (1 << ADSC) | (1 << ADPS2) | (1 << ADPS1);
  while (bitRead(ADCSRA, ADSC));
  adcw = ADC;
  //zweite Messung
  ADCSRA |= (1 << ADSC) | (1 << ADPS2) | (1 << ADPS1);
  while (bitRead(ADCSRA, ADSC));
  adcw = ADC;
  
  ADCSRA &= ~(1 << ADEN);      //disable ADC (power reduction)
  vcc = 1.029 * 1024 / ADC * 1000;    //1.0 – 1.2 Abweichung 
  //Spannung Messen Ende
}
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.
void teiler() {
  ADMUX |=  (1 << REFS1) | (1 << MUX1);  
  delay(10);  //warten bis sich die Referenzspannung eingestellt hat
  ADCSRA |= (1 << ADEN);        //ADC aktivieren 
  delay(15);
  ADCSRA |= (1 << ADSC) | (1 << ADPS2) | (1 << ADPS1);
  while (bitRead(ADCSRA, ADSC));

  vcc = ADC * 1.05 / 1024 * 11;
}
 

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

Autor: Avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm eine externe Referenzspannung.

Autor: John (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Torsten W. schrieb:
> Da die interne Reverenz Spannung eine Abweichung von 1,0 bis 1,2 Volt
> haben kann

Das gilt nur für eine konstante Versorgungsspannung von 5,5V bei 
konstanter Umgebungstemperatur von 25°C.
Und diese Angaben sind auch nur "Richtlinien".

Autor: M. K. (sylaina)
Datum:

Bewertung
0 lesenswert
nicht 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)

: Bearbeitet durch User
Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Torsten W. (toto1975)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
S. Landolt schrieb:
> auf 5.0 V eingestellt, ergibt
> sich bei Ucc= 3.3 V ein Wert von 3.28, bei 3.0 einer von 2.98;

wie meinst du das mit 5.0 V eingestellt?

Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Formel Ubg so angepasst, dass sich bei Ucc= 5.00 V eben auch ein 
Resultat von 5.00 ergibt; bei dem Exemplar von 1351 ist das z.B. 1.089 
V.

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.
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.

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