Hallo, ich hab eine Frage - darf man die Ausgänge(Eingänge) von 89C2051 parallel schalten? So weit wie ich es kenne, geht es bei AVR, da kann man ziemlich viel bei den Ports einstellen (Pullups, dritte Zustand), aber bei 8051 gibt's ja keine Pullups. Wird es in Ordnung sein, wenn ich z.B. 4 oder noch mehr 89C2051 MCUs an einem Port parallel schalte? Ich brauche es für die schnelle Bearbeitung und Buffering von UART, also anders geht's ja nicht. Wenn z.B. drei davon 0 ausgeben und der vierte 1, was bekomme ich am Ausgang? Danke für die Hilfe!
"Wenn z.B. drei davon 0 ausgeben und der vierte 1, was bekomme ich am Ausgang?" Einen Kurzschluss. MfG formtapez
Na ja, wie funktionieren dann die Eingänge von dem Controller? Dann sind die immer im Kurzschlusszustand.
Man darf nur Eingänge direkt miteinander verbinden. Niemals Ausgänge ! Erklär doch mal genauer was Du vor hast, und warum Du diese Parallelschaltung benötigst. Ich bin mir sicher es gibt noch eine andere Lösung. MfG formtapez
Und wie unterscheidet man Eingänge und Ausgänge bei einem 8051er? Da gibt's doch keine DDRs
Ich meine mich zu erinnern, daß der 2051 nur intern einen Pull-Up hat und einen Trasi nach gnd. Wenn du den max. Eingangsstrom eines Ports nicht überschreitest, muß das Parallelschalten gehen. Michael
Man kann Ausgänge problemlos parallel schalten, da dieser nur einen 30k Pullup hat, aber nach Masse >20mA ziehen kann (mehr als 20mA sollte man aber nicht machen, und den Gesamtstrom von glaube ich 80mA beachten ! Die Ports sind genial gelöst: Gleichzeitig Ein und Ausgang. Um bei dem großen Pullup trotzdem kapazitive Lasten treiben zu können wird kurzzeitig nach dem setzen auf High ein starker Pullup aktiviert, daher parallele Ausgänge nicht über sbit sondern über mov P1,xxx schalten ! Außerdem ändert sich der Pullup nach dem Zustand des Pins: Ist er unbelastet (also auf High), dann fließt ein größerer Strom, als wenn man ihn nach Masse zieht. Wirklich genial die Idee !!
Man kann bei allen 8051-ern die Ausgänge parallel schalten, das ergibt dann ein "wired AND" (verdrahtetes UND). D.h. die Leitung ist nur dann 1, wenn alle Ausgänge 1 sind. Der "strong Pull up" wird immer bei jedem Wechsel von 0->1 aktiv. Lang genug, um die Leitungskapazitäten umzuladen und kurz genug, damit nichts Schaden nimmt. Welcher Befehl den Pin nun von 0->1 setzt ist dabei egal. Peter
Ups... ich ziehe alles zurück und behaupte das Gegenteil ;) MfG formtapez
2Peter: Ja, das stimmt, hab gerade die Ergebnisse gekriegt, es funktioniert wirklich wie eine UND-Kette. Danke! So weit, wie ich es verstanden habe, kann man die Eingänge auch problemlos parallel schalten, wenn man überall eine logische 1 ausgegeben hat. Stimmt es?
Eingänge parallelschalten funktioniert ebenso problemlos, nur wo ist da der Sinn ?
So weit, wie ich es verstanden habe, kann man die Eingänge auch problemlos parallel schalten, wenn man überall eine logische 1 ausgegeben hat. Stimmt es? Ja, das ist Sinn und Zweck der Open-Collector-Ausgänge. Sieh Dir den I2C-Bus an, die Ausgangsstufen von diesem Bus arbeiten genauso wie die beim 8051. Da kannst Du fast beliebig viele zusammenschalten, ohne daß es einen "Kurzen" gibt. Gerade beim 89C2051 gibt es aber noch eine Besonderheit: Er hat zwei Portpins, die als Komparatoreingänge genutzt werden können. (Ich glaube, es sind die Ports P1.0 und P1.1) Diese beiden Leitungen haben keinen internen Pullup. Hier mußt Du also noch einen Pullup außen dranhängen. (10kOhm - 27kOhm) Gruß, Markus_8051
Danke, Markus! Das war wirklich informativ, hat mir eine ganze Menge Zeit gespart!
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.