Port C am ATmega8

Gast #608892
Lesenswert?

Hallo zusammen

Bei meinem ATmega8 habe ich das Problem, dass wenn ich auf Pins des Port 
C den High-Pegel anlege, ich eine Spannung von zwischen 0.8-3 Volt (je 
nach Pin unterschiedlich, jedoch immer gleich) messen kann.

Bei den Ports B und D erhalte ich stehts 5 Volt, wie der Chip auch 
gespiesen wird.

Codeausschnitte:
1
DDRB = 0x0;
2
DDRC = (1<<DDC4)|(1<<DDC3)|(1<<DDC2)|(1<<DDC1);
3
DDRD = (1<<DDD4)|(1<<DDD3)|(1<<DDD2)|(1<<DDD1)|(1<<DDD0);
4

5
PORTC |= _BV(1);
6
PORTC |= _BV(2);
7
PORTC |= _BV(3);
8
PORTC |= _BV(4);

Kennt jemand das Problem?
Danke schon im Voraus

R. Strub
#608950
Lesenswert?

R. Strub wrote:
> Bei meinem ATmega8 habe ich das Problem, dass wenn ich auf Pins des Port
> C den High-Pegel anlege, ich eine Spannung von zwischen 0.8-3 Volt (je
> nach Pin unterschiedlich, jedoch immer gleich) messen kann.
>
> Bei den Ports B und D erhalte ich stehts 5 Volt, wie der Chip auch
> gespiesen wird.

Bist Du sicher, dass die Versorgungsspannung anliegt? PortC wird nicht 
von VCC versorgt sondern von AVCC. Es gehören immer alle GNDs und VCCs 
angeschlossen.

...
Gast #609190
Lesenswert?

Machst Du was mit dem ADC? Und wenn ja, auf welchem Level liegt AREF?

Ich hatte mal das Problem, dass unbenutzte ADC-Eingänge, die an AVCC 
lagen, welche höher war als die AREF, bei jedem(!) Ändern von ADMUX 
äußerlich messbare Spikes an den benutzten ADC-Eingängen bewirkten, die 
mir die Messungen versauten.

Vielleicht ist ja auch das Umgekehrte möglich, also dass eine AREF < 
AVCC auf die digitalen C-Outputs durchschlägt?!?

Gruß Johannes
#609402
Lesenswert?

> Als was muss/kann ich dann Vref annehmen, wenn ich Aref mit nem C auf
> Masse setz?

Exakt das, was Du mittels ADMUX ausgewählt hast. Mit ADMUX lässt sich ja 
neben Messquelle und Ergebnisformatierung auch die Referenzquelle 
einstellen.

Der C von AREF nach GND soll die intern ausgewählte AREF glätten 
(reinigen).

...
#609403
Lesenswert?

Es gibt nur einen einzigen Fall, in dem man an AREF etwas anderes 
anschließt als besagten Kondensator, und das ist, wenn man eine extern 
vorgegebenen Referenzspannung verwenden will, die nicht intern vom 
Controller zur Verfügung gestellt wird. AVCC ist intern über die 
REFS-Bits als Referenz wählbar und hat deshalb nichts am AREF-Pin 
verloren.
#609419
Lesenswert?

Ergänzung:

Johannes M. wrote:
> Es gibt nur einen einzigen Fall, in dem man an AREF etwas anderes
> anschließt als besagten Kondensator, und das ist, wenn man eine extern
> vorgegebenen Referenzspannung verwenden will, die nicht intern vom
> Controller zur Verfügung gestellt wird.

Wobei ich dabei auf den Kondensator nicht verzichten würde, ich würde 
also die externe Referenzspannung zusätzlich zum Kondensator 
anschließen.

> AVCC ist intern über die
> REFS-Bits als Referenz wählbar und hat deshalb nichts am AREF-Pin
> verloren.

...
Gast #612958
Lesenswert?

Ich war ein paar Tage nicht da, deshalb erst heute:

Beim Blick auf das Schaltbild kommt mir noch eine, zugegeben, ziemlich 
dumme Idee: Hat IC4 überhaupt eine (passende) VCC an Pin 16 und GND an 
Pin 8? Wenn nicht, z.B. infolge einer kalten Lötstelle, benehmen sich 
selbst CMOS-Chips höchst merkwürdig...

Und @ Johannes M. ein klares Jein. Mit beiden REFS-Bits auf 0 muss AREF 
unbedingt an einer externen Spannung liegen, auch wenn es die AVCC ist. 
Das war zu Prä-Mega8-Zeiten sogar ein Muss, und dazu gab es auch eine 
AppNote von Atmel "Replacing the AT90S4433/2333 with the ATmega8" oder 
so. Aber ok, die Zeiten sind vorbei ;-)

Gruß Johannes
Gast #613270
Lesenswert?

>Mit beiden REFS-Bits auf 0 muss AREF unbedingt an einer externen Spannung
>liegen, auch wenn es die AVCC ist.

Da Aref in diesem Fall die Referenzspannung liefert, ist die Aussage 
sinnfrei.
Sobald Aref nicht die Referenzspannung liefert (REF1:0 > 0), sollte da 
keine Spannung angelegt werden, weil es sonst zu einem Kurzschluß 
zwischen der intern eingestellten und der externen Spannung kommt. (Auch 
wenn der "Ausgang" recht hochohmig ist, da es sich dabei um einen 
Eingang handelt.)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren