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
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
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. ???
Da ist doch immer (zumindest bei TI) eine Empfehlung im DB, was mit den verschiedenen Pins passieren sollte, wenn man sie nicht braucht.
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.
Moin, hobbybastler schrieb: > Wirklich "nix"??? Hängen die dann nicht undefiniert in der Luft? die sind nach einem Reset als Eingang konfiguriert. MfG
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)
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.
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.
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.
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.
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?)
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.
AREF kann problemlos offen bleiben. Der 100nF Angstkondensator nach GND ist nicht nötig, der ADC funktioniert trotzdem. Peter
Danke Euch! nur mal aus Interesse gefragt: Was eigentlich schlimmstenfalls passieren, wenn man AVCC einfach offen läßt? Viele Grüße
2. Versuch: :O) Was könnte eigentlich schlimmstenfalls passieren, wenn man AVCC einfach offen läßt?
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
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!
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.
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.
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
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)
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.
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
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.
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.
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.
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.
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
Ein Sonderfall ist der ATmega8, da sind VCC/AVCC intern verbunden (Maskenfehler). Die pinkompatiblen ATmega8A, ATmega48..328 haben diese Verbindung nicht. Peter
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.
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 ;-)
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?
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.