PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : avr ats902313 welche spannungen



04.07.2004, 11:49
ich hab mal ne frage bezüglich der eingangs ports des oben genannten uCs.

kann ein eingangsprot nur zwischen 0V und 5V unterscheiden, oder erkennt zb. auch 2,5 V (hab gerade erst angefangen mich mit dem thema uC auseinander zusetzen drum diese komische frage ?)

Florian
04.07.2004, 12:10
Hi Gast!
Ich glaube der AVR hat sowas wie ne Schaltschwelle!
Er springt immer nur zuwischen HIGH und LOW hin und her!
Also benötigst Du nicht reine 0V und reine 5V, sondern immer nur annähernd den Wert!
Ich meine 2,5 V sind auch High, oder!?

Konnte man das verstehen, ich glaub ich verstehs selber net!? ;-)

Flite
04.07.2004, 12:14
Hallo!

An einem digitalen Port (wie die meisten) ist alles oberhalb einer bestimmten Spannung eine logische eins und alles unterhalb einer bestimmten Spannung eine logische null. Zwischen diesen beiden Spannungen sollte die Eingangsspannung nicht liegen, da dann nicht eindeutig definiert ist, ob 0 oder 1 (innerhalb der Hysterese).

Wenn du analoge Spannungen messen willst, benötigst du einen AD Wandler. Viele uC haben schon einen AD Wandler eingebaut. Der 2313 besitzt leider keinen AD Wandler. D.h. wenn du analoge Spannungen messen willst, brauchst du entweder noch einen externen AD Wandler oder du besorgst dir eine größere Version der Controllers mit internem AD Wandler (so zum Beispiel der AT90S4433 oder der ATMega8).

Viele Grüße
Flite

Flite
04.07.2004, 12:21
War wohl etwas zu spät :-)

Jetzt hab ich nochmal genauer nachgeschaut:
Im Datenblatt steht:
Max. Input Low Voltage: 0.3 VCC, dh. bei VCC = 5V Alles was unter 1.5 V (natürlich nicht negativ !!) liegt wird als logische Null (low) interpretiert.

Min Input High Voltage: 0.6 VCC Also alles was über 3 V liegt, wird als logische eins (high) interpretiert.

Deine 2.5 V würden dazwischen liegen und daher im eigentlich nicht erlaubten Bereich liegen. Dabei kann zwar nichts kaputt gehen, aber es kann sein, dass der uC das als low oder als high interpretiert. Es kann also zu Fehlern kommen ...

Viele Grüße
Flite

Florian
04.07.2004, 16:29
Hi!
@ Flite:
Und so sieht dann meine Erklärung etwas genauer und verständlicher aus! :lol:
Aber meine Version kann man schneller posten! ;-)
Naja, aber der Inhalt ist natürlich das wichtigere, deswegen bitte meine Erklärung überlesen! ;-)

Netbird
04.07.2004, 20:06
Hallo,
eine AD-Wandlung für einen Widerstandswert kann man mit Bascom auch an einem Pin machen. Für Messzwecke ist dies wohl nicht geeignet. Für Relativwerte aber gut zu gebrauchen, z.B. wenn man mit einem LDR die hellste Stelle in einem Raum finden will oder eine relative Veränderung der Temperatur mit einem NTC feststellen will. Der Befehl heißt getrc und wird in Bascom vorgestellt.

Gruß, Harald.

Flite
04.07.2004, 20:47
Hallo Harald,

ich kenn zwar Bascom nicht, aber ich denke mal, dass da folgendermaßen funktioniert:
ein Kondensator wird über den zu messenden Widerstand aufgeladen und die Zeit gemessen, bis der Controller am Pin ein High meldet. Das ist auf Grund der oben genannten Hysterese recht ungenau und verbraucht außerdem natürlich noch Rechenzeit des Controllers (ob sich das bei Basic Programmierung bemerkbar macht weiß ich natürlich nicht).

Jetzt müsste nur noch unser Gast sagen, was er eigentlich genau wissen will :-)

Viele Grüße
Flite