Guten Abend, ich habe folgendes Problem und zwar lässt sich Port0 nurnoch als Eingang verwenden, also er ist 0V und ich kann ihn nichtmehr auf 5V schalten, hat jemand eine Idee, woran es liegen könnte??? ich habe es mit insgesamt 4 Controllern versucht, bei allen das gleiche, es waren 2 mal AT89S8252 und 2 mal AT89S8253 die Controller sind nagelneu und hatten mal funktioniert. gruß Dome
direkt ein Lösung dazu hab ich leider auch nicht. Ich könnte mir aber vorstellen, dass der Port evtl. für die Verwendung z.B. als AD-Wandler konfiguriert wurde. Guck mal im Datenblatt auf Seite 2, dort stehen alle Funktionen, die der Port 0 übernemen kann und überprüfe mal, ob du da ggf. irgendwelche Register geändert hast
Ich habe nichts geändert, wollte heute was testen und hab mich gewundert, warum aufeinmal der Port0 nicht mehr geht, wenn ich ihn auf "LOW" schalte liegen 0 V an wenn ich ihn auf "HIGH" schalte, dann liegen 0,2V an, der port ist weder belegt, noch kurzgeschlossen... das programm ist ein einfaches Test-Programm, in dem ich einfach nur sage P0 high oder low...
>dass der Port evtl. für die Verwendung z.B. als AD-Wandler >konfiguriert wurde. Die haben keine AD Wandler. AD bezieht sich auf Adress/Data falls man den externen Memory Bus benutzt. >also er ist 0V und ich kann ihn nichtmehr auf 5V schalten, >hat jemand eine Idee, woran es liegen könnte??? Was hast du da dran gehängt? Die können bei High nur sehr wenig Strom liefern.
also, es hängt nichts dran, bei high können sie einen strom von 0.89mA geben oder sowas in der art, das weiß ich, der port ist an nichts angeschlossen gibt aber nur 0,2V aus
>also, es hängt nichts dran, bei high können sie einen strom von 0.89mA >geben oder sowas in der art, das weiß ich, Bei 60uA ist der Ausgang schon nur noch bei 2.4V. > der port ist an nichts >angeschlossen gibt aber nur 0,2V aus Womit gemessen? Häng mal einen 4k7 Pullup an den Pin dran.
OK, ich hab nen neuen PC, hab heute erst Keil neu drauf gemacht und hab es jetzt testen wollen, das prog was davor drauf war, da ging P0 noch, kann das sein, das ich zu dumm war und nen fehler beim einstellen von Keil gemacht habe?!
>gemessen mit einem Multimeter
Wenn du den Pin ganz schnell ein und wieder ausschaltest
kannst du dein Multimeter vergessen. Schreib dir ein Programm
was den Pin nur einschaltet und miss dann nochmal.
Dome schrieb: > ich habe folgendes Problem und zwar lässt sich Port0 nurnoch als Eingang > verwenden, also er ist 0V und ich kann ihn nichtmehr auf 5V schalten, > hat jemand eine Idee, woran es liegen könnte??? Es liegt daran, daß Du das Datenblatt nicht gelesen hast. P0 ist nämlich open-drain. Um 5V zu messen, mußt Du externe Pullups anschließen. Peter
ich schalte den port ja auf high bzw. zum vergleichen alle 4 ports und alle gehen nu der port 0 nicht ;-)
>P0 ist nämlich open-drain.
Da hat Peter wohl recht;)
Port 0 is an 8-bit open drain bidirectional I/O port. As an
output port, each pin can sink eight TTL inputs. When 1s
are written to port 0 pins, the pins can be used as highimpedance
inputs.
Also Pullup dran wie ich schon vorgeschlagen hatte und gut.
ich programmiere jetzt schon seit 2 jahren und habe den Port 0 immer als Ausgang ohne Pull Ups verwendet und es ging bis jetzt immer, sonst wäre meine Projektprüfung nie gegangen ^^ ja, ich kenne das Datenblatt und zu dem, habe ich grade Keil neu drauf gemacht und jetzt geht es wieder, mhm, also ohne Pull Ups, ich fand es damals auch komisch, das es ohne geht, aber es geht =D Trotzdem danke an euch =)
Wenn Du an P0 externen Speicher hängst, dann benötigst Du keine Pull-ups. Wenn Du P0 als Port betreibst, benötigst Du welche. Und wenn sie in dem Teil sitzen, den Du dort anschliesst. Sonst geht es nicht. Egal mit welcher SW. Wenn Du sagst, es geht komplett ohne Pull-ups, dann glaubt Dir das keiner hier. Irgendetwas wirst Du verändert haben. Gruß Jobst
"Wenn Du sagst, es geht komplett ohne Pull-ups, dann glaubt Dir das keiner hier." Evtl hatte er immer echte TTL oder auf VCC bezogene Lasten daran hängen.
Dome schrieb: > ja, ich kenne das Datenblatt Hast du es auch gelesen?
1 | Port 0 is an 8-bit open drain bi-didirectional I/O port. As an output port, each pin can |
2 | sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high- |
3 | impedance inputs. |
4 | |
5 | Port 0 can also be configured to be the multiplexed low-order address/data bus during |
6 | accesses to external program and data memory. In this mode, P0 has internal pull-ups. |
7 | |
8 | Port 0 also receives the code bytes during Flash programming and outputs the code |
9 | bytes during program verification. External pull-ups are required during program |
10 | verification. |
Steht eigentlich alles klar+deutlich drin: nur bei Verwendung als AD-Bus
werden Pullups aktiviert.
ALLE anderen Ports verhalten sich anders und haben fest eingebaute
Pullups.
> habe ich grade Keil neu drauf gemacht und jetzt geht es wieder
Da solltest du aber mal genau kontrollieren, ob du nicht noch was
anderes auch gemacht hast...
Andy D. schrieb: > Evtl hatte er immer echte TTL oder auf VCC bezogene Lasten daran hängen. Jobst M. schrieb: > Und wenn sie in dem > Teil sitzen, den Du dort anschliesst. Gruß Jobst
Guten Morgen, nene ich hab son fertiges Board, auf dem sind schon Pull Ups drauf, die man mit Jumper "aktivieren" kann, es lag an Keil
> ... es lag an Keil ...
Schlamperei, dass die nicht vorbeigekommen sind und die Jumper gezogen
haben.
is die ganz neue, glaub die 4er Version, war scheinbar was verstellt, denn jetzt geht es wunderbar
Heinz schrieb: > Schlamperei, dass die nicht vorbeigekommen sind und die Jumper gezogen > haben. Haben sie doch! Und mit der Neuinstallation ist wieder jemand vorbeigekommen und hat sie wieder gesteckt. Das nenne ich mal Service! **rotfl* Gruß Jobst
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.