Leitungstreiber für 2m Kabel (Schieberegisterkette)

Gast #5041644
Lesenswert?

Ich knüpfe hier mal an das andere Thema an. Hoffe, das ist ok so. Sonst 
wird es zu verwaschen, wenn später mal jemand nach einem Thema sucht.

Kurze Beschreibung: Eine µC-Schaltung ist auf einer Masterplatine, und 
die Messwertaufnehmer bzw. Anzeigen sind auf einer anderen Platine. 
Verbunden durch gut 2m abgeschirmtes Kabel. Das Datenmanagement erfolgt 
via Schieberegister: 14 Stück TPIC6B595 und 4 Stück 74HCT165, also 32 
digitale Eingänge und 112 Ausgänge (alles LEDs).

Angaben zur Stromversorgung stehen hier:
Beitrag "Stromverbrauch einer Schieberegisterkette"
Und da wurden auch die Tipps wegen Leitungstreibern gegeben.

Ich knüpfe mal an:
Gerald B. schrieb
> Spendiere den Busleitungen ruhig einen
> Leitungstreiber [..] Einfach ein Gatter hinter den µC
> Ausgang und gut ist. Entweder 2 Nand's oder 2 Negatoren in Reihe, oder
> ein Gatter und im µC dann einfach die 2. Invertierung in Software.

Gerald B. schrieb
> Wenn es nicht funktioniert, dann kannst du auch probieren, die
> Bussignale an Anfang und Ende jeweils mit einem SN75176 zu verwursten,
> so das die lange Strecke mit einem differenziellen Signal überbrückt
> wird. Eigentlich werden die 75176 für RS485 genommen, aber man kann
> damit auch ganz gut Punkt zu Punkt Verbindungen ohne µC realisieren. Ich
> habe mal testweise auf einem Breadboard 2 Stck hart verdrahtet
> zusammengesteckt, als Leitungstreiber funktioniert das ganz prima. Damit
> wären selbst Leitungslängen von 100m kein Problem :-)))

Es kamen noch mehr Tipps, vielen Dank, aber nun zum thema 
Leitungstreiber.

1. Frage:

Reicht es tatsächlich, "einfach ein Gatter" zu verwenden? Welcher Art 
dann ... HCT oder TTL ? Bei HCT bin ich ja wohl genau so weit wie 
vorher, oder?

2. Frage:

Es gibt vier digitale Leitungen: CLOCK, DATA-IN, DATA-OUT und LOAD. 
Brauche ich also 2 Stück 75176 auf jeder Seite der Leitung? Ich habe mir 
den 75176 allerdings noch nicht näher angesehen, bin zeitlich etwas im 
Stress (beruf und so). Gibts mal irgend eine kleine Schaltung mit einer 
Minimalbestückung? Ich brauche ja nicht viel.

Danke euch.
#5041802
Lesenswert?

Die Variante mit RS485-Treiber wie SN75176 ist die sicherste, mit der 
kommst Du auch 100m weit wenn Du wolltest (und Du für den Takt noch 
einen Rückweg einbaust). Aber halt auch die aufwendigste, weil Du für 
jedes Deiner Signale einen Treiber beim Sender und beim Empfänger 
brauchst und 2 Drähte pro Signal, da ja differentiell übertragen wird.

Bei 2m Leitung ist das wahrscheinlich übertrieben. Ich würde das nur 
machen, wenn es unbedingt beim ersten Versuch "sitzen" muss.

Lies Dir mal Wellenwiderstand durch.

Ich würde es erst mal mit Serienterminierung probieren. Sieh ein Gatter 
direkt auf der Empfängerseite vor, damit dort nicht mehrere Eingänge 
parallel an einer Leitung hängen.
#5041811
Lesenswert?

@TorbenK (Gast)

>Verbunden durch gut 2m abgeschirmtes Kabel. Das Datenmanagement erfolgt
>via Schieberegister: 14 Stück TPIC6B595 und 4 Stück 74HCT165, also 32
>digitale Eingänge und 112 Ausgänge (alles LEDs).

Dafür reicht ein einfacher HC oder HCT Ausgang als Treiber mit 
Theveninterminierung am Ende. Wenn dein uC ein AVR oder was ähnliches 
ist, kann der die Leitung direkt treiben, die Ausgänge sind stark genug.

Beitrag "Re: Skurriles Problem mit BS170 Mosfets"

>Es gibt vier digitale Leitungen: CLOCK, DATA-IN, DATA-OUT und LOAD.
>Brauche ich also 2 Stück 75176 auf jeder Seite der Leitung?

Vergiss RS485, das braucht man bei ZWEI Meter Leitung nicht!
#5041914
Lesenswert?

Falk B. schrieb:
> @ Gerd E. (robberknight)
>>Ich würde es erst mal mit Serienterminierung probieren.
>
> Dann solltest du mal den Artikel lesen. Serienterminierung ist bei so
> vielen Schieberegistern vor allem für den Takt KEINE gute Idee!

Ich kenne den Artikel und auch das Problem mit Serienterminierung und 
mehreren Eingängen am Leitungsende.

Daher schrieb ich extra:

Gerd E. schrieb:
> Sieh ein Gatter
> direkt auf der Empfängerseite vor, damit dort nicht mehrere Eingänge
> parallel an einer Leitung hängen.
Gast #5041945
Lesenswert?

So, wie es Gerd E. (16:16 Uhr) vorschlägt, würde ich das auch machen. 
Das wird gehen.
Eventuell beim Serienwiderstand den optimalen Wert experimentell 
bestimmen. Es sollten irgendwas im Bereich 20Ω ... 50Ω gute Ergebnisse 
liefern.

Allerdings:
- spare nicht mit GND-Leitungen, die Ströme müssen auch wieder zurück 
und sollen nicht noch fette Spikes auf dem GND produzieren.
- du hast CLOCK, DATA-IN, DATA-OUT und LOAD. Eine Datenleitung geht ja 
in die anderer Richtung und wird vom gleichen Takt bearbeitet. Du hast 
bei 2m Leitung eine Laufzeit von 10...15ns! Reichen dann Setup- und 
Holdzeiten noch?
#5041947
Lesenswert?

@Gerd E. (robberknight)

>Ich kenne den Artikel und auch das Problem mit Serienterminierung und
>mehreren Eingängen am Leitungsende.

Wirklich?

>> Sieh ein Gatter
>> direkt auf der Empfängerseite vor, damit dort nicht mehrere Eingänge
>> parallel an einer Leitung hängen.

Und was soll das bringen? Dann hängen immer noch mehrere Takteingänge an 
einer Leitung.
#5041978
Lesenswert?

Falk B. schrieb:
>>> Sieh ein Gatter
>>> direkt auf der Empfängerseite vor, damit dort nicht mehrere Eingänge
>>> parallel an einer Leitung hängen.
>
> Und was soll das bringen? Dann hängen immer noch mehrere Takteingänge an
> einer Leitung.

Ok, ok, Schaltungsprosa führt zu Missverständnissen.

Prinzipschaltplan anbei.

Das Gatter U4 am Ende der Leitung muss das Signal für die 
dahinterliegenden 595er puffern. Es darf nur der Eingang des 
Puffer-Gatters am Ende der Leitung dranhängen, sonst nichts.

Ich will Deinen Vorschlag mit der Thevenin-Terminierung übrigens nicht 
schlechtmachen, der wird auch funktionieren.
Angehängte Dateien:
#5041983
Lesenswert?

@Gerd E. (robberknight)

>Prinzipschaltplan anbei.

>Das Gatter U4 am Ende der Leitung muss das Signal für die
>dahinterliegenden 595er puffern. Es darf nur der Eingang des
>Puffer-Gatters am Ende der Leitung dranhängen, sonst nichts.

Schön, aber auf der Platine des OP befinden sich 18 Schieberegister. 
Deren Taktleitung ist auch nicht gerade kurz. Dort hat man das gleiche 
Problem, erst recht bei schlechtem Layout (Masseführung). Also kann man 
es gleich über die gesamte Länge mit einer passenden Terminierung 
fahren.
#5041994
Lesenswert?

Falk B. schrieb:
> Schön, aber auf der Platine des OP befinden sich 18 Schieberegister.
> Deren Taktleitung ist auch nicht gerade kurz. Dort hat man das gleiche
> Problem, erst recht bei schlechtem Layout (Masseführung). Also kann man
> es gleich über die gesamte Länge mit einer passenden Terminierung
> fahren.

Willst Du das Taktsignal ohne extra Pufferung am Ende der 2m-Strecke 
auch noch über die 18 Schieberegister führen? Das halte ich für unnötig 
riskant.

Man könnte das Clocksignal auch auf mehrere Teilstrecken aufteilen, die 
je von einem Gatter getrieben werden. Wenn Du dafür z.B. den '244 
verwendest, hast Du noch genug Gatter für sowas übrig.

Damit sollte man die Strecke auf der Platine kurz genug bekommen daß man 
keinen Extraaufwand zur Terminierung dort mehr treiben muss. Ne 
ordentliche Masse natürlich vorausgesetzt.
Gast #5042471
Lesenswert?

Danke für die Infos. Über HF-Zusammenhänge habe ich mir zuvor noch nie 
Gedanken gemacht. Meine digitalen Schaltungen haben bis jetzt zwar alle 
auf Anhieb funktioniert, aber ein platinenübergreifendes Konzept habe 
ich zum ersten Mal.

Je mehr ich gelesen habe, desto schlechter kommen mir meine 
Platinenlayouts jetzt vor: Massefläche so gut wie gar keine. Vielleicht 
sollte ich doppelseitige Platinen verwenden, und die Oberseite aus 
Kupfer lassen. Na ja, ich werde erst mal testen und sehen was dabei 
rumkommt. Ein Oszi habe ich ja gottseidank.

Zum Thema Kabeltreiber:
Vielleicht kriege ich die Leitung auf 1m verkürzt. Die 2m waren 
großzügig gerechnet, sozusagen worst case. Kann ich auch einen '04 als 
Treiber einsetzen, auf beiden Seiten der Leitung? Habe noch jede Menge 
74LS04 und 74HCT04.
#5042511
Lesenswert?

@TorbenK (Gast)

>sollte ich doppelseitige Platinen verwenden, und die Oberseite aus
>Kupfer lassen.

So in der Richtung.

https://www.mikrocontroller.net/articles/Richtiges_Designen_von_Platinenlayouts#Vorgehen_bei_der_Layouterstellung

Abschnitt Masseflächen.

>Na ja, ich werde erst mal testen und sehen was dabei
>rumkommt. Ein Oszi habe ich ja gottseidank.

Naja, mit einer 40 MHz Rigol Gurke kann man nicht immer alle 
Dreckeffekte erfassen ;-)

>Vielleicht kriege ich die Leitung auf 1m verkürzt.

Bringt wenig bis nichts. Konzentriere dich auf die anderen Maßnahmen.

>großzügig gerechnet, sozusagen worst case. Kann ich auch einen '04 als
>Treiber einsetzen,

Kann man.

> auf beiden Seiten der Leitung? Habe noch jede Menge
>74LS04

Den eher nicht, das ist ein alter, bipolarer IC, der hat recht 
unsymmetrische Ausgangstreiber für LOW und HIGH.

>und 74HCT04.

Der ist OK.
Gast #5042564
Lesenswert?

Falk B. schrieb:
>>und 74HCT04.
>
> Der ist OK.

Der Rest ist klar, nur das mit den Widerständen habe ich noch nicht 
verstanden. Im Falle, dass ich zwei 74HCT04 verwende (also jeweils am 
Anfang und Ende der Zweimeterleitung), wo sollen denn die Widerstände 
hin und wie groß? Ja, ich habe schon nachgelesen, aber schlauer geworden 
bich ich nicht, schon allein wegen der vielen Möglichkeiten nicht.

Ich habe eine kleine Zeichnung gemacht. Vielleicht kann das an meinem 
kleinen Fall mal einer erklären, wäre super. Danke :)
Angehängte Dateien:
Gast #5042682
Lesenswert?

Peter D. schrieb:
> Ja, möglichst nahe am Ausgangspin. Das nimmt die Energie aus den
> Flanken.

Schreibt die Theorie nicht, dass die Widerstände am Ende der Kette sein 
sollen? Das wäre dann am Eingang des Empfängers.

PS: Vielleicht verwechsle ich da was. Ich habe von der Theorie noch 
nicht alles verstanden.
#5042684
Lesenswert?

TorbenK schrieb:
> Der Rest ist klar, nur das mit den Widerständen habe ich noch nicht
> verstanden.

:-)

> Im Falle, dass ich zwei 74HCT04 verwende (also jeweils am
> Anfang und Ende der Zweimeterleitung), wo sollen denn die Widerstände
> hin und wie groß?

Schau Dir meinen Prinzipschaltplan oben an.

Ob Du nun die '244er odern die '04er nimmst, ist für die Terminierung 
egal.

Die in meinem Prinzipschaltplan mit Y gekennzeichneten Ports sind die 
Ausgänge der '244er, die mit A gekennzeichneten Ports die Eingänge.
#5042700
Lesenswert?

Falk B. schrieb:
>>und 74HCT04.
>
> Der ist OK.

der invertiert doch!

ich würde ja 74HC(T)4050 nehmen und je 2 von denen parallel, 2 Eingänge 
zusammschalten und 2 zugehörige Ausgänge, dann hat man mehr 
Treiberleistung, bei 2m evtl. noch nicht notwendig.

Man kann auch den Pegel mit Transistoren anheben auf 12V und der anderen 
Seite wieder absenken, so hatte ich die Ataritastatur abgesetzt weil der 
PIO Porttreiber so schwach war.
Gast #5042704
Lesenswert?

Gerd E. schrieb:
> Schau Dir meinen Prinzipschaltplan oben an.
>
> Ob Du nun die '244er odern die '04er nimmst, ist für die Terminierung
> egal.
>
> Die in meinem Prinzipschaltplan mit Y gekennzeichneten Ports sind die
> Ausgänge der '244er, die mit A gekennzeichneten Ports die Eingänge.

OK. Neues Wissen aufgenommen. Also definitiv am Ausgang eines jeden 
Gatters einen R.

Jetzt wird es langsam eng auf dem kleinen Platinchen. Den '04 habe ich 
gerade noch untergebracht. Jetzt ist aber noch nicht mal mehr Platz für 
ein R-Netzwerk :(

Allgemein habe ich das Verfahren verstanden. Danke dafür. Nächstesmal 
mache ich es natürlich gleich richtig ^^ Wenn ich in meinem Fall mit der 
2-Meter-Leitung die Widerstände weglasse (sonst muxss ich komplett neu 
routen), kann ich das wagen?
#5042729
Lesenswert?

@TorbenK (Gast)

>Der Rest ist klar, nur das mit den Widerständen habe ich noch nicht
>verstanden.

Siehe Wellenwiderstand. Die Sender auf deinem Kabel benötigen eine 
Serienterminierung. Also Clock und Data Out an IC1, bei Data IN an IC2.

>Im Falle, dass ich zwei 74HCT04 verwende (also jeweils am
>Anfang und Ende der Zweimeterleitung), wo sollen denn die Widerstände
>hin und wie groß?

An die Sender, ca. 33-100 Ohm, muss man probieren und wenn möglich 
RICHTIG messen. Dazu braucht man aber ein relativ schnelles Oszi und 
einen ebenso breitbandigen Tastkopf mit 100MHz und mehr.

https://www.mikrocontroller.net/articles/Oszilloskop#Tastk.C3.B6pfe_richtig_benutzen

Auf deiner Platine mit den vielen Schieberegistern sollte es eine 
Theveninterminierung am Ende des Taktsignals sein. Die anderen sind 
deutlich unkritischer. Das Taktsignal muss ohne Stichleitungen und 
Verzweigungen in einem Strang vom Treiber (IC2) zu jedem einzelnen 
Schieberegister laufen.
Gast #5042732
Lesenswert?

TorbenK schrieb:
> Jetzt wird es langsam eng auf dem kleinen Platinchen. Den '04 habe ich
> gerade noch untergebracht. Jetzt ist aber noch nicht mal mehr Platz für
> ein R-Netzwerk :(

Tja, der Platz ist zu Ende, mehr ist nicht mehr da :( Jetzt kann ich die 
Widerstände nur noch zwischen Kabel und Buchsenleiste einlöten. Ich 
hasse so ein Gefrickel. Nur weil man was übersehen hat---
#5042735
Lesenswert?

@Joachim B. (jar)

>>>und 74HCT04.
>
>> Der ist OK.

>der invertiert doch!

Ja und?

>ich würde ja 74HC(T)4050 nehmen und je 2 von denen parallel,
> 2 Eingänge
>zusammschalten und 2 zugehörige Ausgänge, dann hat man mehr
>Treiberleistung, bei 2m evtl. noch nicht notwendig.

Braucht man bei Serienterminierung nicht, ein HC(T) Ausgang hat bei 5V 
um die 30 Ohm, das ist niederohmig genug.

>Man kann auch den Pegel mit Transistoren anheben auf 12V und der anderen
>Seite wieder absenken, so hatte ich die Ataritastatur abgesetzt weil der
>PIO Porttreiber so schwach war.

Totaler Quark. So wie der Atari damals auch ;-)
#5042746
Lesenswert?

TorbenK schrieb:
> Wenn ich in meinem Fall mit der
> 2-Meter-Leitung die Widerstände weglasse (sonst muxss ich komplett neu
> routen), kann ich das wagen?

?

Ohne die Widerstände hast Du keine Serienterminierung.

Du kannst natürlich alternativ auch die von Falk vorgeschlagene 
Thevenin-Terminierung verwenden. Die kommt nur auf die Empfängerseite.

Die hat halt als Nachteil einen ständigen Stromverbrauch.
Gast #5042753
Lesenswert?

Gerd E. schrieb:
> Na, wenn er einen 74HCT04 beim Sender und einen 74HCT04 auf der
> Empfängerseite verwendet, invertiert er 2x und hat damit wieder den
> ursprünglichen Pegel.

Oder so. Softwareseitig invertiere ich natürlich auch zwei mal :)
Spaß beiseite. Will mir denn niemand eine Freigabe geben, dass ich - nur 
ausnahmsweise - die Widerstände weglassen kann=
Gast #5042762
Lesenswert?

Gerd E. schrieb:
> Ohne die Widerstände hast Du keine Serienterminierung.

Ja und dann? Ist bei 2m schon ein Problem zu erwarten? Ich meine, die 
Treiber habe ich ja nun integriert. Wenn Probs nicht ausgeschlossen 
werden können, dann muss ich die Rs halt ins Kabel löten. Aber schön ist 
das nicht.
#5042774
Lesenswert?

TorbenK schrieb:
> Gerd E. schrieb:
>> Ohne die Widerstände hast Du keine Serienterminierung.
>
> Ja und dann? Ist bei 2m schon ein Problem zu erwarten? Ich meine, die
> Treiber habe ich ja nun integriert.

Hmm. Ich glaube Du hast noch nicht verstanden was das Problem ist.

Der Treiber ist nur ein Teil und könnte, wenn Dein µC passende Pegel 
liefert, auch wegelassen werden. Die Terminierung, ob nun Serie oder 
Thevenin, dagegen nicht. Ansonsten machen Dir die Reflexionen auf der 
Leitung Ärger, vor allem bei der Clock-Leitung.

Bevor Du weiter an Deinem Layout pfriemelst, solltest Du Dir 
Wellenwiderstand nochmal ganz in Ruhe durchlesen und versuchen zu 
verstehen. Wenn was nicht klar ist, dann solange Fragen bis Du es 
verstanden hast.
#5042776
Lesenswert?

Falk B. schrieb:
> @Joachim B. (jar)
>
>>>>und 74HCT04.
>>
>>> Der ist OK.
>
>>der invertiert doch!
>
> Ja und?

sag nicht "dummer Hund" zu mir

Falk B. schrieb:
> Totaler Quark. So wie der Atari damals auch ;-)

klar kann man 2x invertieren, ist aber auch Quark, wozu denn?
Bist du Amiga Fan? hatte ich genug als Kollegen trotzdem haben wir und 
gut verstanden, Hauptsache 68k :)

TorbenK schrieb:
> Joachim B. schrieb:
>> der invertiert doch!
>
> Na und. Die Software kann das doch auch.

willst du Lösungen oder frech werden?
Deine Entscheidung

Falk B. schrieb:
> Braucht man bei Serienterminierung nicht, ein HC(T) Ausgang hat bei 5V
> um die 30 Ohm, das ist niederohmig genug.

kommt halt auf die Kabelkapazität an und ob man auf verrundete Flanken 
steht
Gast #5042787
Lesenswert?

Gerd E. schrieb:
> Der Treiber ist nur ein Teil und könnte, wenn Dein µC passende Pegel
> liefert, auch wegelassen werden. Die Terminierung, ob nun Serie oder
> Thevenin, dagegen nicht. Ansonsten machen Dir die Reflexionen auf der
> Leitung Ärger, vor allem bei der Clock-Leitung.
>
> Bevor Du weiter an Deinem Layout pfriemelst, solltest Du Dir
> Wellenwiderstand nochmal ganz in Ruhe durchlesen und versuchen zu
> verstehen. Wenn was nicht klar ist, dann solange Fragen bis Du es
> verstanden hast.

Ich habe -fast- alles verstanden. Das bleibt ja gar nicht aus, bei euter 
Hilfe. Das finde ich großartig, tolles Forum.

Unter dem, was man zu spät verstanden hat, muss man eben leiden. So ist 
das. Die Lötfläche der Buchsen ist gerade auf 2.5x5mm geschrupft. So 
passt dann doch noch je ein R-Netzwerk neben die ICs. Nochmal passiert 
mir das nicht. Großes Dankeschön an alle.

Joachim B. schrieb:
> willst du Lösungen oder frech werden?
Am besten beides ;)
#5042897
Lesenswert?

@Peter Dannegger (peda)

>> Den '04 habe ich
>> gerade noch untergebracht.

>Der nützt aber nichts gegen Störungen (Reflexionen) auf der Leitung, da

Wenn er mit gescheiter Terminierung arbeitet, gibt es keine 
nennenswerten Refketionen.

>1. sauschnell

Gemach, der ist für heutige Verhältnisse noch handzahm.

>und 2. kein Schmitt-Trigger.

Braucht man nicht zwingend.

>Wundere Dich also nicht, wenn auf den TPIC6B595 Zufallsmuster ausgegeben
>werden.

Mal doch mal nicht immer gleich den Teufel an die Wand!
#5042908
Lesenswert?

@ Joachim B. (jar)

>guter Hnweis aber verderben Schmitt-Trigger wegen der Hysterese nicht
>das Timing?

Theoretisch ja, praktisch nein. Ein 74HC14 ist nur etwas langsamer als 
ein 74HC04. Hier spielt das keine Rolle.

Ein 74HC04 hat bei 4,5V 9-17ns Durchlaufverzögerung
Ein 74HC14 hat bei 4,5V 15-25ns Durchlaufverzögerung

Die Anstiegszeiten sind bei beiden gleich, 7-15ns.

>Terminieren kann man ja um Reflektionen zu dämpfen.

Davon reden wir die ganze Zeit.
#5042917
Lesenswert?

TorbenK schrieb:
> Will mir denn niemand eine Freigabe geben, dass ich - nur
> ausnahmsweise - die Widerstände weglassen kann=

Man kann auch am anderen Ende terminieren, und mit anderen Bauteilen. 
Aber die Terminierung wegzulassen wäre keine gute Idee.
(Siehe Seite 11 von http://www.ti.com/lit/pdf/scaa034.)
Angehängte Dateien:
#5042925
Lesenswert?

Nicht nur Reflexionen stören, auch die Kabelkapazität kann ein 
Übersprechen bewirken. Das ist dann auch umso kritischer, je schneller 
die ICs sind.
Daher sollte man paarig verseilte Kabel nehmen:
1. Paar: GND + SCK
2. Paar: GND + MISO
3. Paar: VCC + MOSI
4. Paar: VCC + /CS

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren