Forum: Mikrocontroller und Digitale Elektronik AVR- Grundsatzfragen zu unbelegten Pins und zur Taktquelle


von Thomas P. (clydesdale)


Lesenswert?

Hallo,

bin gerade dabei, mir die Grundlagen zur AVM-Programmierung an-
zueignen, und trotz des sehr guten Tutorials hier und des Forum's
kommen doch hin und wieder einige Fragen auf, die ich jetzt gern' mal
loswerden würde.

Dabei handelt es sich zwar um Grundsatzfragen, welche ganz sicher dem
Einen oder Anderen hier ein Lächeln abringen werden, oder aber zum
Haare raufen führen werden, aber besser dumm gefragt als dumm geblieben.
:)

Hardwaremäßig verwende ich momentan das Pollin-Board (v2.0) und
das LCD AddOn-Board dazu, einfache Sachen werden auch einfach auf
Breadboard gesteckt. Als 'AVR of Choice' kommt momentan vor allem
der ATTiny2313 zum Einsatz, gelegentlich auch der Mega8 oder Mega16.
Softwaremäßig mache ich meine ersten Schritte in Bascom, werde wohl
aber auf lange Sicht hin zu AVR-GCC umsteigen.

Nun zu meinen Grundsatzfragen:

1> Selten brauche ich alle Pins des µC für mein Projekt. Auf dem
Breadboard ist das erst mal nicht so tragisch, wenn die Pins dann
einfach in der Luft hängen, aber wie sieht's bei 'ner ordentlichen
Schaltung aus? Bei Output-Pins brauche ich wohl weder PullUps noch
PullDowns, bei Inputs schalte ich die internen Pullups ein und fertig?
Als was sind die Pins nach 'nem Reset per Default definiert? Muß ich
da schaltungstechnisch oder von der Softwareseite irgendwas beachten,
um ungenutzte Pins abzusichern?

2> Die AVMs lassen sich ja entweder mit 'nem externen Quarz/Oszillator
oder dem internen Taktgeber betreiben. Was spricht bei einfachen An-
wendungen, wo es nicht um µsec-Genauigkeiten ankommt, dagegen den
internen Taktgeber zu nutzen, bzw dafür, einen Quarz zu verwenden?
Und was stelle ich mit den XTAL-Pins an, wenn ich nur den internen
Taktgeber verwende? Einfach unbeschaltet lassen?

Vielleicht gibt's ja jemanden, der mir die zwei Fragen kurz beantworten
kann. Sollten noch weitere Fragen auftauchen, werde ich mich wieder
melden. :)

Dankeschön,
-Cly

von anderer ... (Gast)


Lesenswert?

kurz und bündig:

1)
zum start sind alle I/Os als eingänge konfiguriert, ohne interne 
pull-widerstände, um möglichst hochohmig zu sein...

pins die ich nicht verwende beachte ich nicht, dh. ich werde sie auch 
nicht, obwohl in der luft hängend, auf einen definierten pegel ziehen...

...es besteht natürlich die möglichkeit, das sich solche Pins 
"aufschwingen", bei mir konnte ich sowas jedoch noch nie beobachten, 
bzw, hat sich noch nie als störend herausgestellt,

es ist aber "vernünftig" so pragmatisch zu sein und die internen pullups 
einzuschalten, um diesem effekt zu präventieren (bzw, falls keine 
pullUps vorhanden einen definierten pegel als ausgang zu treiben...

2)
Wie du schon erkannt hast:
der interne RC ist seeehr ungenau...

wenn es nicht auf schnelle reaktion, bzw. skalierbare prozessorzeit 
ankommt, so kann man ihn getrost verwenden...

interessant wäre, ob es vom stromverbrauch her einen unterschied macht, 
ob man einen Quarz oder den internen RC verwendet.
...sollte das system sparsamer sein mit internem RC, und zeitliche 
kriterien dessen verwendung auch zulassen, macht es auch sinn diesen zu 
verwenden ( bei batteriebetriebenen anwendungen sind µA schon wichtig 
;))

von Timmo H. (masterfx)


Lesenswert?

>bei Inputs schalte ich die internen Pullups ein und fertig?
Wenn du sie nicht benutzt ist das eigentlich nicht nötig. Lass sie 
einfach Zappeln und gut is.

>Als was sind die Pins nach 'nem Reset per Default definiert?
Als Eingang. Steht auch in "Register Description for I/O Ports" im 
Datenblatt. Dort einfach den Reset-Wert angucken.

>Muß ich da schaltungstechnisch oder von der Softwareseite irgendwas >beachten,um 
ungenutzte Pins abzusichern?
Einfach alles was du nicht benötigst im Resetzustand belassen.

>Und was stelle ich mit den XTAL-Pins an, wenn ich nur den internen
>Taktgeber verwende? Einfach unbeschaltet lassen?
>Was spricht bei einfachen An-
>wendungen, wo es nicht um µsec-Genauigkeiten ankommt, dagegen den
>internen Taktgeber zu nutzen, bzw dafür, einen Quarz zu verwenden?
Eigentlich nichts, aber sobald du den UART benutzt kann es schon 
Timingprobleme geben.

>Und was stelle ich mit den XTAL-Pins an, wenn ich nur den internen
>Taktgeber verwende? Einfach unbeschaltet lassen?
Jup.

von anderer ... (Gast)


Lesenswert?

nachtrag zu 2)

bei internem RC, kannst du die PINs für den quarz/oszillator offen 
lassen

von Peter D. (peda)


Lesenswert?

anderer ... wrote:

> pins die ich nicht verwende beachte ich nicht, dh. ich werde sie auch
> nicht, obwohl in der luft hängend, auf einen definierten pegel ziehen...

Wenn Dir die Stromaufnahme egal ist und Du gerne zappelnde ADC-Werte 
ausliest, dann tu das ruhig.

Miß mal die Stromaufnahme des AVR, Du wirst einen deutlichen Unterschied 
feststellen zwischen "Luft" und Pullup ein.


Peter

von anderer ... (Gast)


Lesenswert?

@Peter:

das mit dem ADC ist klar, berücksichtige ich auch, gut das du es hier 
erwähnts...

das mit der stromaufnahme ist neu und intressant für mich...
...habe grade keine vorstellung, bei armchips habe bissher nicht 
beobachten können, das "belassene" pins mehr "ziehen" als definierte...

... erklär doch mal bitte kurz :)

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.