mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Problem bei Messen der Spannungsversorgung


Autor: Christian D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich möchte die Spannungsversorgung meines Atmega's in Prozent 
auslesen,
dazu habe ich eine Leitung vom Plus Pol an den AD-Wandler angeschlossen, 
funktioniert auch, wenn ich nämlich die Leitung angeschlossen habe zeigt 
er mir 100 % Spannung an, was ich aber nicht verstehe ist das wenn ich 
die Leitung
abklemme er mir immernoch einen Wert zwischen 30 und 45 % ausliest wie 
kann das sein?

int adcwert = read_adc(0);
int spannung = adcwert / 10.23;
uart_puts("\r\nSpannungsversorgung: ");
PrintInt(spannung);
uart_puts(" %\r\n");
waitsek(1);

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mach mal vom ADC PIN nen Widerstand gegen Masse (10 oder 20k Ohm), denke 
das da ne gewisse Kapazität da ist und diese hält die Spannung aufrecht.

Autor: Christian D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie meinst du? an den Eingangs Pin? also port C?

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

was ich jetzt garnicht verstehe:
was nimmst Du als Referenz?
Wenn Du Vcc als Referenz nimmst, wirst Du immer 100% bekommen.

Wenn Du die interne Referenzspannung nimmst, brauchst Du sowieso einen 
Spannungsteiler zwischen Vcc und GND, der Vcc auf die interne 
Referenzspannung (ca. 2,56V z,B, beim ATMega8) herunterteilt, damit Du 
zu Deinen 100% kommst.

Damit wäre der Abschluß gegen GND dann ja gewährleistet.
Oder benutzt Du eine externe (dann stabile und von Vcc unabhängige 
Spannung) Referenzspannung?

Ansonsten: AVcc Drossel drin, 100n Cs zwischen Vcc bzw. AVcc gegen GND?
100n ARef gegen GND?

Interner PullUp an entsprechenden Pin des ADC aus?

Gruß aus Berlin
Michael

Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst die Betriebsspannung auch gut ohne externe beschaltung 
messen... nimm einfach VCC als Referenz und miss dann die Interne 
Bandgap spannung. Der AD-Wert steigt dann mit fallender Betriebsspannung

gruß
fabian

Autor: Christian D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"nimm einfach VCC als Referenz und miss dann die Interne
Bandgap spannung. Der AD-Wert steigt dann mit fallender Betriebsspannung
klingt gut, aber "Bandgap spannung" sagt mir nix

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja die Einwände sind berechtigt, du brauchst einen Referenz. Da könntest 
du z.b. was mit einem Widerstand und einer 3V Z-Diode aufbauen die 
Versorgungsspannung gibst du dann über nen Spannungsteiler an den ADC 
Pin, damit die Spannung im Bereich der Referenz bleibt.

Ich meine einen Widerstand da rein wo du auch deine 5V draufgibst, wenn 
du jetzt die 5V abklemmst wird der ADC-Pin über den Widerstand gegen 
Masse gezogen(und ggf. entladen) so das es dir dann 0% statt 40% 
anzeigt.

Den internen Pullup schaltest du dadurch aus, indem du mit eine 1 an den 
entsprechenden Portpin ausgibst oder halt alle mittels
ldi temp, 0b11111111
out portX, temp

oder das 2te bit im SFIOR-Register setzen, dann sind generell alle 
Pullups deaktiviert

ldi temp, 0b00000010
out SFIOR, temp

Autor: Christian D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, also so meinst du das:

PORT C Pin 0 <---- R1 ----- GND

und dann zwischen Port C Pin0 und R1 die Versorgungsspannung ?

Autor: Marcus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Den internen Pullup schaltest du dadurch aus, indem du mit eine 1 an 
den
entsprechenden Portpin ausgibst oder halt alle mittels
ldi temp, 0b11111111
out portX, temp"

Das stimmt natürlich nicht - es ist genau umgekehrt: 0 auf den Portpin = 
Pullup aus.

Gruß, Marcus

Autor: Christian D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm solange ich die pullups nicht mit "PORTC = 0xff;" aktiviert habe sind 
sie doch aus? oder irre ich mich da?

Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stichwort Bandgap Spannung:
lies mal dein Datenblatt. bei der beschreibung der Ports des 
AD-Multiplexers gibt es als input auch "Bandgap Reference". 
Typischerweise das letzte in der Liste.

Lesen hilft.

Gruß
Fabian

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.