Forum: Mikrocontroller und Digitale Elektronik ADC zieht nach VCC?


von tex (Gast)


Lesenswert?

Hallo Leute.
Es könnte u.U. das falsche Forum sein, weil es ggf auch nur ein
Programmierungsfehler ist, ich hoffe aber, ihr seid heute großzügig?
Ich habe am ADC-Eingang ein 4,7k Widerstand vorgeschaltet um zu hohe
Eingangsstöme am ADC-Port abzufangen. Wenn ich nun mit einem 10k Poti
den Eingang zwischen VCC und GND einstelle, ergibt sich beim
GND-Anschalg ein ADC-Wert von 129, bei VCC ein ADC-Wert von 1023. Über
dem 4,7k Wideratnd fallen 270mV ab, wenn er an GND liegt, d.h. der Port
treibt 57uA durch den Vorwiderstand?
So initialisiere ich die ADC-Ports

  DDRF = 0x00;  // DDRS als Eingang
  PORTF = 0x00;   // alle Pullups aus
  DIDR0= 0xff;  // digital input PORTF Disable

Und so löse ich die Wandlung aus.
ADMUX = 0x06;  // externe Refernzspannung, rechts Ausrichtung, Kanal 6
ADCSRA= 0xed;

Wo ist der Fehler?
Die Sache mit dem Vorwiderstand habe ich vom Butterfly. Da ist es
allerdings ein Spannungsteiler mit einem 1,5M Widerstand. Ist kein
Vorwiderstand, aber mehr als 3uA können dann bei 5V nicht in den Port
fließen, oder liege ich jetzt total daneben?

von Chris (Gast)


Lesenswert?

> Ich habe am ADC-Eingang ein 4,7k Widerstand vorgeschaltet

Der ADC-Eingang hat laut Datenblatt bereits selbst typischerweise
100MOhm Eingangswiderstand. 4,7kOhm wird mit diesem riesigen Widerstand
AFAIK keinen sinnvollen Spannungsteiler bilden.
Ein Vorwiderstand ist prinzipiell auch erstmal unnötig, der ADC-Port
zieht schon kein Ampere.


Kann sein, dass ich dein Posting falsch verstanden habe: Wenn du das
Poti mal weglässt und den ADC-Port über den 4,7k-Widerstand direkt an
GND hängst, misst du dann am Port die 270mV?

von tex (Gast)


Lesenswert?

genau das. Mein Port liegt dann 270mV höher als die eigentlich angelegte
Spannung von 0V. Die 4,7k bilden ja eigentlich keinen Spannungsteiler,
weil ja eigentlich nur 3uA in den Port reinfließen sollten ...

von Benedikt (Gast)


Lesenswert?

Sind die Pullups wirklich aus ?
Ein 70k Pullup Widerstand würde nämlich so etwa diese Spannung
erzeugen.

von Stefan Kleinwort (Gast)


Lesenswert?

Hast Du vielleicht versehentlich die internen Pullups eingeschaltet? Das
könnte von den Werten her gerade passen.

Stefan

von mmerten (Gast)


Lesenswert?

ist JTAG Interface beim 169 disabled ? sonst sind die internen PullUp
Widerstände auf PF4-PF7 aktiv

von tex (Gast)


Lesenswert?

es ist ein 90can128. Die Pullups hoffe ich über
  DDRF = 0x00;  // DDRS als Eingang
  PORTF = 0x00;   // alle Pullups aus
abgeschaltet zu haben.
Aber der Tip mit dem JTAG Interface ist gut.

Port F also serves the functions of the JTAG interface. If the JTAG
interface is enabled,
the pull-up resistors on pins PF7(TDI), PF5(TMS), and PF4(TCK) will be
activated even
if a reset occurs.
Das werd ich mir mal genauer anschauen. Danke.

von tex (Gast)


Lesenswert?

Genau das wars. Vielen Dank Euch allen.

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
Noch kein Account? Hier anmelden.