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
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 ;))
>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.
nachtrag zu 2) bei internem RC, kannst du die PINs für den quarz/oszillator offen lassen
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
@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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.