Hey! Mal so eine grundsätzliche Frage: Wozu brauch man eigentlich die internen Pull-ups der uC? Verbinden der Controller den eigenen I/O-Pin dann mit der eigenen 5V versorgungsspannung? und was heißt es eigentlich, wenn ein Pin hochohmig oder niederohmig ist? Dennis
Die Pull-ups brauchst du, um dem Controller einen Definierten Eingangspegel zu geben. Ein Beispiel: du willst einen Taster abfragen und hängst in an einen Pin. Wenn du nun das DDR-Register setzt, so ist der Eingang hochohmig, d.h. er benötigt so gut wie keinen strom um einen '1' zu erkennen. Dieser Strom kann aber auch "aus der luft" durch z. B. Hochfrequenzeinstrahlungen kommen. Wenn nun der Taster offen ist, und du dich an einer ungünstigen stelle befindest, so kann es sein, dass der Controller einen Aktiven Taster erkennt, obwohl gar keiner vorhanden ist. Durch das aktivieren des Pull-ups wir nun intern ein (hoher) widerstand gegen +5V auf den Pin gelegt. Wenn du jetzt den eingang abfrägst, so kannst du dir ziemlich sicher sein, dass du den 'echten' taster erkennst. Versuch es einfach mal: Programmiere eine LED am Ausgang so, dass diese den Zustand eines Einganges ausgibt - einmal mit und einmal ohne Pull-up und vergleiche. In einer zeitschrift habe ich mal gelesen, dass schon das nähern mit der hand die LED zum leuchten bringen kann. Soweit meine kurze Erklärung - wenn du weitere Fragen hast, so bitte etwas genauer spezifizieren! Gruß, Florian
mmmmh, also ich benutze immer das AVR studio um meine noch recht einfachen Codes zu testen. Wenn ich jetzt PortB Pinx logisch eins setze und dann das passende ddrx lösche geht bei PinBx das lämpchen an so wird der Pull-up ja anscheinend eingeschaltet, für mich sieht das dann so aus, als würde dieser Pin dann nur noch eine logische Null, also 0V erkennen , aber keine 1, weil die ja schon quasi anliegt, oder??????? Dennis
Das AVR-Studio ist nicht schlecht - aber auch nicht gut. Dies ist ein gutes Beispiel dafür, daß Theorie und Praxis völlig unterschiedliche Ergebnisse haben können. Das AVR-Studio berücksichtigt nun mal keine Einstreuungen.
In der Praxis sieht das so aus: Bei einem eingeschalteten Pull-Up liest man eine "1", sofern der Pin offengelassen wird oder an 5V angeschlossen ist. Eine "0" wird dann erkannt, wenn GND (0V) an den Pin angeschlossen werden.
Dieser Umstand wird leider im Simulator des AVR-Studio nicht recht sinnvoll simuliert. Nach dem Start sind liegen alle Input-Ports per default auf GND.
Dann kann dann also bedeuten, daß ich ein Programm für ein externes Bauteil schreibe, im AVR-Studio simuliere und was dann von den Zeitabläufen her super aussieht, aber in der Praxis völlig daneben ist. Im simulator sind bei einem 4Mhz-Quarz die Taktzeit bei 250ns und wie sieht in der Realität aus?
Das Timing wird für bis auf EEPROM-Zugriffe taktgenau simuliert. Lediglich die per Default auf GND-Level liegenden Input-Ports sind etwas ungünstig. Viel Klickerei oder Stimuli-Files erforderlich. Die wenigen Einschränkungen des Software-Simulators sind aber in der Hilfe zum AVR-Studio ausführlich dokumentiert.
Dafür is er ja auch kostenlos. Ich nutze das Studio eigentlich nur dann, wenn ich mal wieder vergessen habe, welche Flags bei > / < Operationen nun gesetzt werden ;-) Oder wenn der Controller ums verrecken nicht das tut, was er soll. Aber 98% aller Programme gehen live auf den Controller.
Wenn ein Pin hochohmig wird, wieso ist er eigentlich dann so empfindlich gegen statische Aufladung. Ich höhr das immer bei CMOS-Bauteilen, wo die Eingänge anscheinend generell sehr hochohmig sind und wo es ausreicht die Beine nur kurz anzutippen um das Ding ins Bauteile-Nirvana zu schicken.
Bei CMOS-Bauteilen sitzt am Eingang ein Feld-Effekttransistor. Der Abstand der Isolierschicht zwischen dem Gate und dem Drain-Source-Substrat ist sehr gering. Kommt nun ein zu hohe Spannung an das Gate, so wird die Isolierschicht durchschlagen und somit unbrauchbar --> der FET ist def. Wens du genau wissen willst, so such mal im Internet nach FET - Aufbau u. Funktion! Gruß, Florian
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.