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 ?
Ü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.
Welche Portpins sind betroffen? Port 0 ist open-collector und braucht zwingend externe Pullups.
P3.4 und P3.5 .... Ich las gerade in einem Forum dass jemand etwas von 20mA Sinkstrom schrieb.
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.
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)?
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
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!
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
Nebensprechen in Digitalsystemen sind ziemlich unwahrscheinlich. Da würde ich das Programm erst mal debuggen. Offene Eingänge sollte man vermeiden.
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 :-)
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.