Forum: Mikrocontroller und Digitale Elektronik AVR: was mit nicht benutzten Anschlüssen machen?


von hobbybastler (Gast)


Lesenswert?

Hallo,

ich habe grade ein Projekt mit einem M88 so weit fertiggestellt.

Dabei werden acht Portbits als digitale Eingänge und OC1A als 
PWM-Ausgang benutzt.

Außerdem angeschlossen sind

-Reset
-VCC
-GND
-XTAL1/2

und

-AGND auf GND
-AVCC auf VCC

Der Anschluss AREF und alle nicht benutzten Portpins hängen derzeit in 
der Luft.

Um das Projekt abzuschließen, würde ich gerne wissen, was man mit den 
nicht benutzten Anschlüssen macht und ob AGND und AVCC so verschaltet 
bleiben können (es wird kein interner ADC benutzt).


Habe auch die Forensuche zum Thema kontaktiert, leider nichts gefunden, 
obwohl ich sicher bin, vor einigen Monaten einen ähnlichen Beitrag zum 
Thema in diesem Forum gesehen zu haben.

Über eure konstruktive Hilfe würde ich mich sehr freuen!

Viele Grüße

von Sauger (Gast)


Lesenswert?

Moin,

hobbybastler schrieb:
> würde ich gerne wissen, was man mit den
> nicht benutzten Anschlüssen macht

nix :-)

> AGND und AVCC...

ist o.k

MfG

von hobbybastler (Gast)


Lesenswert?

Sauger schrieb:
>> AGND und AVCC...
>
> ist o.k

Danke!




>> würde ich gerne wissen, was man mit den
>> nicht benutzten Anschlüssen macht
>
> nix :-)

Wirklich "nix"??? Hängen die dann nicht undefiniert in der Luft?

Mir fällt noch folgendes ein:

-Ich könnte die nicht benutzten Portpins natürlich alle auf "Eingang" 
schalten und die internen Pullup-Widerstände aktivieren. Das würde aber 
wahrscheinlich unnütz Energie kosten.

-Oder alle nicht genutzten Portpins werden auf "Eingang" geschaltet und 
dann mit GND verbunden.

-Oder alle nicht benutzten Portpins auf "Ausgang" schalten und dann auf 
LOW stellen.

???

von Bernd (Gast)


Lesenswert?

Da ist doch immer (zumindest bei TI) eine Empfehlung im DB, was mit den 
verschiedenen Pins passieren sollte, wenn man sie nicht braucht.

von Michael D. (etzen_michi)


Lesenswert?

Ich würde die unbeschaltet lassen oder wenn man unbedingt will HOCHohmig 
an GND oder VCC.

Das Problem beim direkten oder niederohmingen an GND oder VCC schließen 
ist, das du dir deinen µC bei einem Fehler im Code brutzeln kannst.

von Sauger (Gast)


Lesenswert?

Moin,

hobbybastler schrieb:
> Wirklich "nix"??? Hängen die dann nicht undefiniert in der Luft?

die sind nach einem Reset als Eingang konfiguriert.

MfG

von richie (Gast)


Angehängte Dateien:

Lesenswert?

Bernd schrieb:
> Da ist doch immer (zumindest bei TI) eine Empfehlung im DB, was mit den
> verschiedenen Pins passieren sollte, wenn man sie nicht braucht.

siehe Anhang

(aus dem Atmel-Datenblatt für Atmega8)

von Bernd (Gast)


Lesenswert?

Sauger schrieb:
> die sind nach einem Reset als Eingang konfiguriert.

Und hängen damit undefiniert in der Luft, was man bei CMOS nicht macht.

hobbybastler schrieb:
> -Ich könnte die nicht benutzten Portpins natürlich alle auf "Eingang"
> schalten und die internen Pullup-Widerstände aktivieren. Das würde aber
> wahrscheinlich unnütz Energie kosten.

Das ist eine Variante. Oder halt mit internem Pull-Down (falls 
vorhanden) nach Masse. Stromverbrauch...tja, ist ja nicht viel, aber 
stimmt, klar.

hobbybastler schrieb:
> Oder alle nicht genutzten Portpins werden auf "Eingang" geschaltet und
> dann mit GND verbunden.

Auch OK, aber dann nicht aus Versehen auf Ausgang schalten.

hobbybastler schrieb:
> Oder alle nicht benutzten Portpins auf "Ausgang" schalten und dann auf
> LOW stellen.

Ja, oder auf high. Dennoch würde ich genau deinen letzten Vorschalg 
machen, da i.d.R. das Board mit Massefläche bedeckt ist. Normalerweise 
ist nicht mit einer nicht-gewollten elktrischen Verbindung irgendwo zu 
rechnen - aber sollte es dennoch so sein, so ist die Wahrscheinlichkeit, 
eine Massefläche zu treffen, am größten. Also lieber auf low.

Dennoch solltest du die Special-Function-Pins, wie AREF oder was es 
sonst noch so geben könnte, mal im DB nachschlagen. Da sollte eine 
Empfehlung drinstehen.

von hobbybastler (Gast)


Lesenswert?

Danke für die ausführliche Antwort!

Wahrscheinlich ist es am sichersten , nicht benutzte Pins auf 
Eingang zu schalten und die internen  Pullups zu aktivieren (falls 
mal irgendwie ein Kurzschluss zu einem nicht benutzten Pin entsteht).

Könnten in dem Fall irgendwelche Funktionsstörungen auftreten (z.B. 
durch EM-Felder in der Umgebung)?
Ich vermute "Nein!", weil diese Pins ja im Programm nicht weiter 
abgefragt werden.

von Bernd (Gast)


Lesenswert?

hobbybastler schrieb:
> Könnten in dem Fall irgendwelche Funktionsstörungen auftreten (z.B.
> durch EM-Felder in der Umgebung)?

Nicht bei definiertem Pegel. Wenn du sie eh nicht abfragst, dann 
passiert auch bei undefiniertem Pegel nichts mit deinem Programmablauf, 
aber man macht es halt nicht.

von Der (Gast)


Lesenswert?

Bernd schrieb:
>> -Ich könnte die nicht benutzten Portpins natürlich alle auf "Eingang"
>> schalten und die internen Pullup-Widerstände aktivieren. Das würde aber
>> wahrscheinlich unnütz Energie kosten.
>
> Das ist eine Variante. Oder halt mit internem Pull-Down (falls
> vorhanden) nach Masse. Stromverbrauch...tja, ist ja nicht viel, aber
> stimmt, klar.

Stromverbrauch ist 0. Der interne Widerstand zieht den extrem 
hochohmigen CMOS Eingang auf Vcc. Es fällt keine Spannung am Widerstand 
ab, also fließt auch kein Strom.

von hobbybastler (Gast)


Lesenswert?

Der schrieb:
> Stromverbrauch ist 0. Der interne Widerstand zieht den extrem
> hochohmigen CMOS Eingang auf Vcc. Es fällt keine Spannung am Widerstand
> ab, also fließt auch kein Strom.

Danke!



Bernd schrieb:
> Dennoch solltest du die Special-Function-Pins, wie AREF oder was es
> sonst noch so geben könnte, mal im DB nachschlagen. Da sollte eine
> Empfehlung drinstehen.

Habe grade ins Datenblatt geschaut (23. Analog to Digital Converter), 
habe dort nichts gefunden zum Thema, wie man AGND, AVCC und AREF 
anschließt, wenn kein ADC benötigt wird.
Mir ist ein wenig mulmig, wenn AREF dauerhaft in der Luft hängt. Könnte 
man den nicht einfach auf GND legen?

(was passiert eigentlich, wenn man AVCC und AREF einfach offen läßt?)

von Christian B. (casandro)


Lesenswert?

Ich denke auch, dass wenn der Pin irgendwo zwischen low und high liegt 
der Stromverbrauch deutlich höher ist, als beim Pullup.
Der Grund ist einfach. Bei CMOS hat man ja immer einen Transistor oben 
und unten. Normalerweise ist nur einer geschaltet, bei offenen 
Ausgangspin hat man da keinen Stromfluss. Hat man jedoch was dazwischen, 
so sind beide Transistoren ein wenig leitend und es fließt ein Strom 
zwischen ihnen. Früher soll das so schlimm gewesen sein, dass Chips 
wirklich abgeraucht sind wenn man die im "Verbotenen Bereich" betrieben 
hat.

Ich denke die "Traumlösung" sind 10k nach Masse. Dadurch ist der Eingang 
definiert low, und selbst wenn der Pin mal auf Ausgang geschaltet wird, 
geht nichts kaputt.

von Peter D. (peda)


Lesenswert?

AREF kann problemlos offen bleiben.
Der 100nF Angstkondensator nach GND ist nicht nötig, der ADC 
funktioniert trotzdem.


Peter

von hobbybastler (Gast)


Lesenswert?

Danke Euch!


nur mal aus Interesse gefragt:

Was eigentlich schlimmstenfalls passieren, wenn man AVCC einfach offen 
läßt?


Viele Grüße

von hobbybastler (Gast)


Lesenswert?

2. Versuch:

:O)

Was könnte eigentlich schlimmstenfalls passieren, wenn man AVCC 
einfach offen läßt?

von Spess53 (Gast)


Lesenswert?

Hi

>Was könnte eigentlich schlimmstenfalls passieren, wenn man AVCC
>einfach offen läßt?

AVCC versorgt nicht nur den ADC, sondern auch den dazugehörigen 
digitalen Port. Jetzt noch mal nachdenken.

MfG Spess

von Bernd (Gast)


Lesenswert?

Spess53 schrieb:
> AVCC versorgt den dazugehörigen digitalen Port.

Wie meinste das jetzt?

Der schrieb:
> Stromverbrauch ist 0. Der interne Widerstand zieht den extrem
> hochohmigen CMOS Eingang auf Vcc. Es fällt keine Spannung am Widerstand
> ab, also fließt auch kein Strom.

Stimmt schon, Leckströme halt, aber sagen wir 0. OK!

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Bernd schrieb:
> Spess53 schrieb:
>> AVCC versorgt den dazugehörigen digitalen Port.
>
> Wie meinste das jetzt?

Wenn Du AVCC nicht anschließt, ist der komplette Port tot - auch im 
"digitalen Zustand", also wenn Du die ADCs nicht nutzt.

Also: AVCC muss in jedem Fall angeschlossen werden.

von Bernd (Gast)


Lesenswert?

Frank M. schrieb:
> Wenn Du AVCC nicht anschließt, ist der komplette Port tot - auch im
> "digitalen Zustand"

Echt? Noch nie probiert, da ich noch nie auf die Idee gekommen bin, AVcc 
NICHT anzuschließen. Aber das wusste ich garnicht. Dachte alles digitale 
wird aus DVcc versorgt.

von Spess53 (Gast)


Lesenswert?

Hi

>Wie meinste das jetzt?

Im Fall deines ATMega88 ist es Der halbe PortC. Datenblatt:

1.1.7 AVCC
AVCC is the supply voltage pin for the A/D Converter, PC3:0, and ADC7:6. 
It should be externally
connected to VCC, even if the ADC is not used. If the ADC is used, it 
should be connected to VCC
through a low-pass filter. Note that PC6..4 use digital supply voltage, 
VCC.

MfG Spess

von hobbybastler (Gast)


Lesenswert?

Spess53 schrieb:
> AVCC versorgt nicht nur den ADC, sondern auch den dazugehörigen
> digitalen Port.

Danke für die Info!

Beim M88 scheinen PC0 bis PC5 mit dem ADC verbunden zu sein (PC6 = Reset 
wohl eher nicht !?).


Kann man AVCC offen lassen, wenn man PC0 bis PC5 nicht anschließt?

(die Frage ist eher theoretischer Natur)

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Bernd schrieb:
> Echt? Noch nie probiert, da ich noch nie auf die Idee gekommen bin, AVcc
> NICHT anzuschließen. Aber das wusste ich garnicht. Dachte alles digitale
> wird aus DVcc versorgt.

Aus dem Datenblatt zu ATmega168:

AVCC is the supply voltage pin for the A/D Converter, PC3..0, and 
ADC7..6. It should be externally connected to VCC, even if the ADC is 
not used.

von Spess53 (Gast)


Lesenswert?

Hi

>Kann man AVCC offen lassen, wenn man PC0 bis PC5 nicht anschließt?

Nein. Was ist an diesem Satz

It should be externally connected to VCC, even if the ADC is not used.

so schwer zu verstehen?

MfG Spess

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Der Satz

"AVCC is the supply voltage pin for the A/D Converter, PC3..0, and
ADC7..6."

sagt zudem aus, dass PC3 bis PC0 (als Digital-I/O-Ports) darüber 
versorgt werden.

von bitte löschen (Gast)


Lesenswert?

Christian Berger schrieb:
> Ich denke die "Traumlösung" sind 10k nach Masse. Dadurch ist der Eingang
> definiert low, und selbst wenn der Pin mal auf Ausgang geschaltet wird,
> geht nichts kaputt.

Und wenn man aus Versehen die Pullups aktiviert, hat man genau das, was 
man unbedingt vermeiden wollte, nämlich keinen eindeutigen Pegel an 
einem Eingang zu haben, künstlich erreicht.

Die 10K nach Masse sind nur ein unnötiges Bauteil pro Port, das im 
Layout Platz weg nimmt und es ggf. komplizierter macht, als potentielle 
Fehlerquelle dient und unnötig Geld kostet. Die AVRs haben interne 
Pullups und die müssen nicht gelayoutet und eingelötet werden, sondern 
können mit einer einzigen Codezeile aktiviert werden.

von bitte löschen (Gast)


Lesenswert?

Spess53 schrieb:
> so schwer zu verstehen?

Ich denke, dass es ein Wenig verwirrung stiftet, dass "should" nicht 
"must" ist. Ich würde das so interpretieren:
Tatsächlich sind Vcc und AVcc intern verbunden, so dass man den AVR auch 
nur über AVcc versorgen könnte, aber um die gegebenen Spezifikationen 
der Ausgänge zu erreichen, müssen diese besonders "gut" versorgt werden, 
was nur durch das Anschließen von Vcc und AVcc gewährleistet werden 
kann.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Philipp K. schrieb:

> Ich denke, dass es ein Wenig verwirrung stiftet, dass "should" nicht
> "must" ist. Ich würde das so interpretieren:
> Tatsächlich sind Vcc und AVcc intern verbunden, [...]

Vcc und AVcc dürfen sogar zu einem gewissen Grade unterschiedlich sein, 
die Grenzen dafür stehen im Datenblatt. Wenn sie nun intern "verbunden" 
wären, bekommst Du da ein dickes Problem.

von Cyblord -. (cyblord)


Lesenswert?

Philipp K. schrieb:
> Spess53 schrieb:
>> so schwer zu verstehen?
>
> Ich denke, dass es ein Wenig verwirrung stiftet, dass "should" nicht
> "must" ist. Ich würde das so interpretieren:
> Tatsächlich sind Vcc und AVcc intern verbunden, so dass man den AVR auch
> nur über AVcc versorgen könnte, aber um die gegebenen Spezifikationen
> der Ausgänge zu erreichen, müssen diese besonders "gut" versorgt werden,
> was nur durch das Anschließen von Vcc und AVcc gewährleistet werden
> kann.

Jetzt wird auch klar wieso Datenblätter oft auch nichts helfen. Wenn der 
geneige Leser sich seine kleine Welt selber baut (so wie Pipi 
Langstrumpf?), und einfach irgendwelchen Quatsch hinein interpretiert.

gruß cyblord

von Peter D. (peda)


Lesenswert?

Ein Sonderfall ist der ATmega8, da sind VCC/AVCC intern verbunden 
(Maskenfehler).

Die pinkompatiblen ATmega8A, ATmega48..328 haben diese Verbindung nicht.


Peter

von bitte löschen (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Ein Sonderfall ist der ATmega8, da sind VCC/AVCC intern verbunden
> (Maskenfehler).

:-D Das erklärt's. Mit anderen hatte ich es noch nicht probiert.

@cyblord: In RFC 2119 (Key words for use in RFCs to Indicate Requirement 
Levels) steht zu "should":

"3. SHOULD   This word, or the adjective "RECOMMENDED", mean that there
   may exist valid reasons in particular circumstances to ignore a
   particular item, but the full implications must be understood and
   carefully weighed before choosing a different course."

RFC 2119 bezieht sich zwar nur auf RFCs, ich halte die dort gegebene 
Beschreibung der entsprechenden Begriffe aber für allgemeingültig genug, 
dass sie auch auf Datenblätter angewendet werden kann.

Meine Interpretation, und das deckt sich mit den Erfahrungen mit dem 
Mega8, war eben die oben genannte. Da habe ich mir keine Welt 
geschaffen, sondern Beobachtung und Datenblatt in Übereinstimmung 
gebracht. Dass ich dabei einem Maskenfehler aufgesessen bin, was zu 
falschen Rückschlüssen führte, ist noch im normalen Rahmen menschlichen 
Irrens und weit entfernt von Pipi Langstrumpf.

von Cyblord -. (cyblord)


Lesenswert?

Philipp K. schrieb:
> Peter Dannegger schrieb:
>> Ein Sonderfall ist der ATmega8, da sind VCC/AVCC intern verbunden
>> (Maskenfehler).
>
> :-D Das erklärt's. Mit anderen hatte ich es noch nicht probiert.
>
> @cyblord: In RFC 2119 (Key words for use in RFCs to Indicate Requirement
> Levels) steht zu "should":
>
> "3. SHOULD   This word, or the adjective "RECOMMENDED", mean that there
>    may exist valid reasons in particular circumstances to ignore a
>    particular item, but the full implications must be understood and
>    carefully weighed before choosing a different course."

Stimmt auch alles. Nur du hast nicht beachtet was dort steht. Denn wenn 
du weder den ADC noch den PORTC irgendwie verwendest, dann brauchst du 
AVCC nicht beschalten. Es ist also in der Tat optional. Der Controller 
funktioniert trotzdem und nimmt keinen Schaden.
Und weiter steht da, man solle verstehen(!!) welche Auswirkungen durch 
das weglassen entstehen. Und wenn man das verstanden hat, dann weiß man 
dass ohne AVCC kein ADC und kein PORTC funktionieren. Wobei sich hier 
das verstehen auf einfaches nachlesen beschränkt.
Also einfach an die RFCs halten dann klappts ;-)

von bitte löschen (Gast)


Lesenswert?

Es ist prinzipiell bedingt so, dass es für jemanden schwierig ist, 
selbst festzustellen, ob man etwas verstanden hat, oder ob man nur 
meint, etwas verstanden zu haben, wenn sich die bekannten Fakten mit den 
Beobachtungen decken.
Ich hatte anfangs mal einen ATmega8 aus Versehen nur über AVcc 
gespiesen, und das funktionierte einwandfrei. Dass dies an einem 
Maskenfehler liegt, konnte ich nicht ahnen, zumal in den Errata kein 
Wort darüber verloren wird.

Mir drängt sich jetzt nur folgende Frage auf. Unter "ADC 
Characteristics" steht, dass AVcc maximal 0,3V von Vcc abweichen darf. 
Wenn man nun AVcc unbeschaltet lässt, weil man weder den ADC noch 
PORTC(3..0) verwenden will, ist dies nicht mehr gegeben. Was passiert 
dann? Gleicht der AVR selbst den Pegel aus?

von Cyblord -. (cyblord)


Lesenswert?

Philipp K. schrieb:

> Mir drängt sich jetzt nur folgende Frage auf. Unter "ADC
> Characteristics" steht, dass AVcc maximal 0,3V von Vcc abweichen darf.
> Wenn man nun AVcc unbeschaltet lässt, weil man weder den ADC noch
> PORTC(3..0) verwenden will, ist dies nicht mehr gegeben. Was passiert
> dann? Gleicht der AVR selbst den Pegel aus?

Offen lassen macht nichts aus, weil da ja dann kein Strom fließen kann. 
Das wird erst dann problematisch wenn man AVCC z.B. mit GND verbindet, 
weil dann eventuell Ströme über diverse Dioden fließen. So ähnlich wie 
wenn man eine höhere Spannung als VCC auf einen Pin gibt.

von bitte löschen (Gast)


Lesenswert?

cyblord ---- schrieb:
> So ähnlich wie
> wenn man eine höhere Spannung als VCC auf einen Pin gibt.

So in etwa war auch meine Vermutung, was die angegebenen maximalen 0,3V 
Unterschied zwischen Vcc und AVcc angeht. Vielleicht sind da ja Dioden 
antiparallel geschaltet, um größere Spannungsunterschiede auszugleichen 
und so die Logik zu schützen. AVcc wird ja eigentlich nur benötigt, um 
den Vcc-Ripple von den analogen Sachen fern zu halten. Die 0,3V  sind ja 
weit oberhalb der zu erwartenden Ripple-Spannungen in Vcc.

Habe gerade mit dem Diodentester vom Multimeter zwischen Vcc und AVcc 
eines losen ATmega48 DIP 0,7V Durchlasspannung in beide Richtungen 
gemessen.

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.