Forum: Mikrocontroller und Digitale Elektronik Welchen Pullup Widerstand für 8051 Ausgänge ?


von H-G S. (haenschen)


Lesenswert?

Hallo,

Ich habe scheinbar ein Übersprechen zwischen 2 Ausgängen eines 80c32x2.
Dummerweise laufen die Leiterbahnen parallel auf einer Länge von 10-15cm 
und enden in den Eingängen von drei parallel geschalteten 74hc165, die 
auch noch Nachbarpins sind.

Es scheint kein Kurzschluss oder soetwas auf der Platine zu sein und der 
Leiterbahnabstand sieht eigentlich auch recht passabel aus.

Das Übersprechen scheint zu passieren während ein Ausgang High ist, also 
dachte ich mir dass man vielleicht mit einem externen Pullup-Widerstand 
den internen Widerstand im 80c32x2 unterstützen könnte.

Doch welchen Wert für den externen Pullup-Widerstand soll ich benutzen ?

von Georg G. (df2au)


Lesenswert?

Über welchen Port reden wir? Sieh mal ins Datenblatt, die Ausgänge sind 
unterschiedlich. Einige haben aktive Push-Pull Endstufen. Da bringt ein 
externer Pullup nichts.

von Mr. Claudius (Gast)


Lesenswert?

Welche Portpins sind betroffen?
Port 0 ist open-collector und braucht zwingend externe Pullups.

von H-G S. (haenschen)


Lesenswert?

P3.4 und P3.5 ....

Ich las gerade in einem Forum dass jemand etwas von 20mA Sinkstrom 
schrieb.

von MaWin (Gast)


Lesenswert?

H-G S. schrieb:
> Doch welchen Wert für den externen Pullup-Widerstand soll ich benutzen ?

4k7

von Georg G. (df2au)


Lesenswert?

H-G S. schrieb:
> 20mA Sinkstrom

Bitte verwechsele nicht die absoluten Grenzwerte mit den Nennwerten. 
Überlege einmal, was über den GND Pin fliessen müsste, wenn du 3 Ports * 
8 Bit * 20mA belastest.

Vermutlich geht es um die Ansteuerung des HC165 aus dem anderen Thread. 
Zeig bitte den Code, der den Port ansteuert. Du wärst nicht der erste, 
der aus Versehen auch am falschen Portbit wackelt beim Setzen eines 
anderen Bits.

Hast du schon einmal das Innenschaltbild des HC165 angesehen? CLK und 
CLKINH können bei passendem Pegel beide einen Takt auslösen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

H-G S. schrieb:
> Ich habe scheinbar ein Übersprechen zwischen 2 Ausgängen eines 80c32x2.
Wie stellst du das fest? Worauf begründet sich deine Aussage?

Hast du mit einem Oszi gemessen?
Oder "funktionert" einfach die Schaltung nicht so, wie du es erwartest?

Wenn das Zweitere:
was erwartest du und was passiert stattdessen (mit welcher Software)?

von H-G S. (haenschen)


Lesenswert?

Also ich erzeuge 24 CLK-Impuls mit einer Doppelschleife, und die ist 
sehr wahrscheinlich fehlerfrei:

Äusserer Zähler auf 3 und innerer auf 8, danach "DJNZ Loop" - und ganz 
innen einmal SETB und CLR auf den CLK-Portpin.



Was für mich recht sicher für ein Übersprechen aussieht ist:

Der CLK wird mittlerweile 24 mal gepulst laut Zählermodul.
Der SH/LD wird 25 mal gepulst, der dürfte nur einmal gepulst werden und 
zwar bevor der CLK gepulst wird.

Es sieht so aus dass nach dem ersten einzigen gewollten SH/LD-Puls die 
24 CLK-Pulse auf die andere Leiterbahn hinüberwirken.


Warum trotz der jetzt nur 24 CLK-Pulse D0 des Schieberegisters auf D1 
des Ausgangsregisters erscheint ist mir noch nicht ganz klar, hat aber 
vielleicht mit den vielen komischen Pulsen auf SH/LD zu tun.

Übrigens habe ich das Programm so geändert dass der CLK schon vor dem 
SH/LD-Pulsen auf Low ist, das hat dazu geführt dass jetzt wirklich nur 
24 CLK-Pulse erzeugt werden. Ich vermute dass der SH/LD-Puls den 25. 
CLK-Puls am Anfang erzeugt hat.


Edit: Oszi ist nicht vorhanden, nur ein Binär-LED-Zähler auf einer 
kleinen Platine.
Erwartet wird eine 1:1 Anzeige von D0-D7 vom Schieberegister auf einen 
Ausgabeport der ebenfalls am 80c32x2 hängt (dieser funktioniert 
höchstwahrscheinlichst korrekt).

: Bearbeitet durch User
von H-G S. (haenschen)


Lesenswert?

Update:

Nachdem ich jeweils einen 4,7k Pullup Widerstand einlötete reduzierte 
sich die Pulszahl an SH/LD auf 1 (so wie es sein sollte).

Danke euch!

von Jobst M. (jobstens-de)


Lesenswert?

H-G S. schrieb:
> Äusserer Zähler auf 3 und innerer auf 8, danach "DJNZ Loop" - und ganz
> innen einmal SETB und CLR auf den CLK-Portpin.

Schaltungsprosa kennen wir ja schon. Softwareprosa ist mir neu ...


Gruß

Jobst

von Cyborg (Gast)


Lesenswert?

Nebensprechen in Digitalsystemen sind ziemlich unwahrscheinlich.
Da würde ich das Programm erst mal debuggen. Offene Eingänge sollte
man vermeiden.

von H-G S. (haenschen)


Lesenswert?

Jobst M. schrieb:
> H-G S. schrieb:
>> Äusserer Zähler auf 3 und innerer auf 8, danach "DJNZ Loop" - und ganz
>> innen einmal SETB und CLR auf den CLK-Portpin.
>
> Schaltungsprosa kennen wir ja schon. Softwareprosa ist mir neu ...

Das liest sich wie ein Actionroman :-)




Übersprechen kann doch möglich sein, wenn die Empfängerleitung hochohmig 
ist.
Und das ist sie denn es hängt nur ein schwacher 10-40kOhm Pullup in dem 
80c32x2 Port-Pin dran sowie 3 vernachlässigbare 74hc-Eingänge.

Der zusätzliche 4,7k externe Pullup scheint wohl stark genug dass die 
eingestreute EMI abgeleitet wird oder so :-)

von Georg G. (df2au)


Lesenswert?

H-G S. schrieb:
> Übersprechen kann doch möglich sein, wenn die Empfängerleitung hochohmig
> ist.

Früher habe ich viel in Fädeltechnik aufgebaut, auch CMOS und höhere 
Frequenzen. Aber den vom TO beschriebenen Effekt hatte ich nie. Egal, 
Details werden uns nicht verraten, muss er also allein durch.

von Jim M. (turboj)


Lesenswert?

Georg G. schrieb:
> H-G S. schrieb:
>> Übersprechen kann doch möglich sein, wenn die Empfängerleitung hochohmig
>> ist.
>
> Früher habe ich viel in Fädeltechnik aufgebaut, auch CMOS und höhere
> Frequenzen.

Ich habe vor kurzem mal nen interessanten Artikel gelesen, wo jemand 
eine 25 Jahr alte Schaltung neu machen musste, weil die 74xx Logik Chips 
neueren Datums nicht 15 ns Anstiegszeit sondern 5 ns hatten. Mit der HF 
kam das Layout nicht mehr klar.

Das könnte Dir bei Fädeltechnik heutzutage auch blühen.

Außerdem hat man bei CMOS fast immer Push-pull Ausgänge - da tritt das 
Problem lange nich so stark auf. Der 8051 ist da mit seinen Open-Drain 
Ausgängen ein Sonderfall, der brauchte fast immer Pullup Widerstände - 
die internen pullups sind "weak", ich habe da so 50k-100k Ohm im Kopf 
und es konnte IIRC sogar noch mehr sein je nach Typ.

Moderne 8051 kompatible haben i.d.R. die Push-Pull Stufe über ein SFR 
Bit einschaltbar an allen IO-Pins.

von Peter D. (peda)


Lesenswert?

Ich habe noch nie zusätzliche Pullups am 80C51 benötigt.
Die 80C51 haben einen strong Pullup (~5mA) bei der 0->1 Flanke und einen 
mittleren Pullup (~0,5mA), um den Pin auf high zu halten. Nur wenn sie 
extern auf low gezogen werden, ist der schwache Pullup (~50µA) aktiv.

Statt des zusätzlichen Pullup wurde vermutlich ein Serienwiderstand oder 
ein besseres Layout auch helfen. Insbesondere eine GND-Plane ist zu 
empfehlen.

von Georg G. (df2au)


Lesenswert?

Imho lohnt hier keine Spekulation mehr. Wir kennen weder die Schaltung 
noch das Layout noch die Software. Wenn der TO mit den 4k7 Pullup 
glücklich ist: OK. So ist das ein Stochern im Nebel.

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
Noch kein Account? Hier anmelden.