Die Pins in Port 1 haben interne Pull-ups, wenn sie für die Eingabe verwendet werden. Der Mosfet ist ausgeschaltet und der Drain wird mit einem internen Pull-up-Widerstand hochgezogen.
Ich schließe ein Amperemeter an und sehe, dass der zur Erde fließende Strom (IL-Strom) etwa 15 uA beträgt. Ich habe geschlussfolgert, dass der Wert des internen Pull-up-Widerstands 333k beträgt.
Jetzt schließe ich einen 10k-Widerstand an und messe den Strom. Ich bekomme 0,5mA (5/10k). Was ist mit dem internen Pullup-Widerstand passiert? Ist der interne Pullup-Widerstand und der 10k-Widerstand nicht in Reihe?
Was ist los? Wenn ich externes Pull-up an Port 0 verwende, erscheinen die Dinge wie erwartet - Widerstände in Reihe und beide Widerstände fungieren als Spannungsteiler, um einen Spannungsabfall am Pin zu erzeugen.
ps: Ich benutze AT89s52 .
ps: Das gleiche Problem besteht in Port 2,3
ps: Hier ist der Strom für verschiedene Widerstände:
- 330 ohms - 15uA
- 1k - 15uA
- 100k - 50uA
- 220k - 22uA
Der maximale IL (laut Datenblatt) beträgt -50 uA
Dies ist eher eine fundierte Vermutung als eine eindeutige Antwort, aber ich vermute, dass dort überhaupt kein Widerstand vorhanden ist: Widerstände nehmen im CMOS viel Platz ein und sind nicht sehr genau. Stattdessen wird es eine kleine Stromquelle geben, die aus MOSFETs besteht und auf 50 uA begrenzt ist. Es kann nichtlinear sein, um sicherzustellen, dass der Eingang unabhängig vom angeschlossenen Pulldown in der Nähe der einen oder anderen Schiene liegt.
Jippie