SPI

H

Harald Korth

Guest
H'abend zusammen,

bei einem aktuellen Projekt möchte ich von/zu insg. 5
Mirkrocontroller mittels SPI von einem zentrallem ľC
Daten übertagen. Datenrate soll irgendwas zwischen
1 und 2 Mbit sein. Die 5 Controller sind so ca. 60cm
von dem zentralem entfernt (Stern).

Kann man sowas noch ueber "normale" Flachbandleitungen
machen oder braucht man da schon paarig geseilte und
geschirmte Leitungen? Leider ist für Kabel/Leitungen
kaum Platz und sie muessen auch noch stark flexibel sein.

Ist es sinnvoll die einzelnen Leitungen mit Buffern
zu versehn, so das der zentrale immer nur den aktuellen
Kommunikationspartner sieht (wg. Kabelkapazitaeten etc.)?
/SS geht jeweils noch einzeln. Wenn ja gibt es TRI-State Buffer bei
denen man einzelne Leitungen "tri-staten" kann (also nicht
wie z.B. beim 74xx241 immer 4).

Auf was sollte man noch so achten?

Fragen ueber Fragen...

Schon mal vielen Dank im Voraus !

Harald Korth
 
Harald Korth <Harald.Korth@gmx.net> schrieb im Beitrag <3FA94C5D.3010803@gmx.net>...
Kann man sowas noch ueber "normale" Flachbandleitungen
machen oder braucht man da schon paarig geseilte und
geschirmte Leitungen? Leider ist für Kabel/Leitungen
kaum Platz und sie muessen auch noch stark flexibel sein.

Klingt wie Robotor = Elektromotoren = viel Stoerung.
--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
 
Harald Korth wrote:

H'abend zusammen,

bei einem aktuellen Projekt möchte ich von/zu insg. 5
Mirkrocontroller mittels SPI von einem zentrallem ľC
Daten übertagen. Datenrate soll irgendwas zwischen
1 und 2 Mbit sein. Die 5 Controller sind so ca. 60cm
von dem zentralem entfernt (Stern).

Ich würde so etwas über Buffer machen, wenn überhaupt. Dann kann man noch
LVDS-Bausteine verwenden. Evtl. wäre es besser RS422 zu nehmen (4 Draht
serielle duplex Kommunikation mit RS485-Treibern.)

Also RS422 würde mir besser gefallen.
 
2 Mbit ... 60cm
Nominell fängt bei TTL auf Leiterplatte ab 30cm "Kabel" an, d.h.
Reflexionen usw. Aber da ist die maximale Frequenz auch 30MHz.

a) im Flachbandkabel zwischen Datenleitung jeweils "ruhige" Leitung
also Masse oder DC-Versorgung legen um Übersprechen zu verhindern
b) wenn die Leitung unidirektional ist kann man unschwer
Terminierung vorsehen. D.h. Abschluß mit Kabelimpedanz. Für
Klingeldraht ist die irgendwo bei 120 Ohm. D.h.
* am Sender Serienwiderstand z.B. 100 Ohm ( das CMOS-Gate hat ja
auch einige Ohm Innenwiderstnad die auf 120 ergänzen )
* am Empfänger um Strom zu sparen z.B. so:

--- 5V
|
R1 1k
|
--+---
|
C1 330pF
|
R2 120
|
GND

Wenn die Leitung bidirektional ist wirds schwieriger/unsauberer, kann
aber mal in der Literatur suchen was für (Kompromiß-)Netzwerke üblich
sind.

c) wegen der hohen kapazitiven Belastung bei Flachbandkabel ist
das Signal verschliffen. Empfänger sollte also Schmitt-Trigger-
Charakteristik haben.
d) ein 1mA Controllerport-Pin ist kein idealer Kabeltreiber für
kapazitives Kabel.
e) insbesondere wenn ESD übers Kabel reinkommt empfiehlt sich
um die CPU vor häufigen Abstürzen zu bewahren ein 74HCxx
z.B. 74HC14 als Buffer. Er hat seine Masse/5V getrennt auf
Massesternpunkt geführt und in Datenleitung zu CPU z.B. Widerstand
1k Ohm ( ob kleiner hängt von Kapazität / Geschwindigkeit ab )
Sowas ist billiger als Suppressordiode und erledigt c) und d) gleich
mit.

MfG JRD
 
Rafael Deliano schrieb:
2 Mbit ... 60cm
Nominell fängt bei TTL auf Leiterplatte ab 30cm "Kabel" an, d.h.
Reflexionen usw. Aber da ist die maximale Frequenz auch 30MHz.

a) im Flachbandkabel zwischen Datenleitung jeweils "ruhige" Leitung
also Masse oder DC-Versorgung legen um Übersprechen zu verhindern
b) wenn die Leitung unidirektional ist kann man unschwer
Terminierung vorsehen. D.h. Abschluß mit Kabelimpedanz. Für
Klingeldraht ist die irgendwo bei 120 Ohm. D.h.
* am Sender Serienwiderstand z.B. 100 Ohm ( das CMOS-Gate hat ja
auch einige Ohm Innenwiderstnad die auf 120 ergänzen )
* am Empfänger um Strom zu sparen z.B. so:

--- 5V
|
R1 1k
|
--+---
|
C1 330pF
|
R2 120
|
GND
Vorsicht! Digitalsignale terminiert man normalerwiese _entweder_ am
Sender _oder_ am Empfänger, da eine Echte Leistungsanpassung die
Spannung auf 50% reduziert, das kann man hier nicht gebrauchen.

Wenn die Leitung bidirektional ist wirds schwieriger/unsauberer, kann
aber mal in der Literatur suchen was für (Kompromiß-)Netzwerke üblich
sind.

c) wegen der hohen kapazitiven Belastung bei Flachbandkabel ist
das Signal verschliffen. Empfänger sollte also Schmitt-Trigger-
Charakteristik haben.
d) ein 1mA Controllerport-Pin ist kein idealer Kabeltreiber für
kapazitives Kabel.
e) insbesondere wenn ESD übers Kabel reinkommt empfiehlt sich
um die CPU vor häufigen Abstürzen zu bewahren ein 74HCxx
z.B. 74HC14 als Buffer. Er hat seine Masse/5V getrennt auf
Massesternpunkt geführt und in Datenleitung zu CPU z.B. Widerstand
1k Ohm ( ob kleiner hängt von Kapazität / Geschwindigkeit ab )
Sowas ist billiger als Suppressordiode und erledigt c) und d) gleich
mit.
 
Digitalsignale terminiert man normalerwiese _entweder_ am
Sender _oder_ am Empfänger, da eine Echte Leistungsanpassung die
Spannung auf 50% reduziert, das kann man hier nicht gebrauchen.
--- 5V
|
R1 1k
74HC14 | 100 74HC14
in --+---Kabel---R3-- out
|
C1 330pF
|
R2 120
|
GND

Wo wird hier der Pegel auf 50% reduziert ?

Es reicht tatsächlich meist auf einer Seite zu terminieren.
Aber es schadet nicht grundsätzlich wenn mans auf beiden Seiten
anstrebt.

MfG JRD
 
Rafael Deliano schrieb:
Digitalsignale terminiert man normalerwiese _entweder_ am
Sender _oder_ am Empfänger, da eine Echte Leistungsanpassung die
Spannung auf 50% reduziert, das kann man hier nicht gebrauchen.

--- 5V
|
R1 1k
74HC14 | 100 74HC14
in --+---Kabel---R3-- out
|
C1 330pF
|
R2 120
|
GND

Wo wird hier der Pegel auf 50% reduziert ?

Es reicht tatsächlich meist auf einer Seite zu terminieren.
Aber es schadet nicht grundsätzlich wenn mans auf beiden Seiten
anstrebt.
Hier ist es natürlich frequenzabhängig. Ausgehend von einem ebenfalls
terminierten Sender wirkt der empfängerseitige Terminierungswiderstand
nur oberhalb der Grenzfrequenz des RC Gliedes, dann aber reduziert er
den Pegel deutlich.

Martin
 
Hallo zusammen

und schon mal vielen Dank fuer eure Antworten !

Rafael Deliano schrieb:

a) im Flachbandkabel zwischen Datenleitung jeweils "ruhige" Leitung
also Masse oder DC-Versorgung legen um Übersprechen zu verhindern
So was hatte ich auch schon mal eingeplant. Sehr interressant find
ich auch die Flachbandkabel bei denen immer zwei Leiter paarig
verseilt sind - leider konnte ich so was (bei den ueblichen Versendern)
nirgends in hochflexibel finden.

Wenn ich's irgendwo bekommen wuerde, wuerde ich auch ein duennes
hochflexibel Signalkabel verwenden - konnte aber auch ein solches
nicht finden.

Das einzig passende (leider "normales") high-flex Flachbandkabel das ich
fand ist das 3M Typ3319.

b) wenn die Leitung unidirektional ist kann man unschwer
Terminierung vorsehen. D.h. Abschluß mit Kabelimpedanz. Für
Klingeldraht ist die irgendwo bei 120 Ohm. D.h.
* am Sender Serienwiderstand z.B. 100 Ohm ( das CMOS-Gate hat ja
auch einige Ohm Innenwiderstnad die auf 120 ergänzen )
* am Empfänger um Strom zu sparen z.B. so:

--- 5V
|
R1 1k
|
--+---
|
C1 330pF
|
R2 120
|
GND

Wenn die Leitung bidirektional ist wirds schwieriger/unsauberer, kann
aber mal in der Literatur suchen was für (Kompromiß-)Netzwerke üblich
sind.
Vielen Dank fuer das Angebot, aber zum Glueck ist SPI auf allen
Leitungen unidirektional. Ich bin nicht sicher ob ich's verstanden hab:

Das RC-Glied schliesst Stoerungen oberhalb seiner Grenzfrequenz
von ca. 4MHz gegen GND kurz - oder dient es nur dem Abschluss mit
Kabelimpendanz ? Wozu dient der Pullup R1? Wie terminiert man ein
Kabel richtig? Die Impendanz des o.g. Flachbandkabel ist laut
Datenblatt 107Ohm bei einer Kapazitaet von 43.6pF/m.


c) wegen der hohen kapazitiven Belastung bei Flachbandkabel ist
das Signal verschliffen. Empfänger sollte also Schmitt-Trigger-
Charakteristik haben.
Ja an sowas hatte ich auch mal gedacht. Im "Sternpunkt" wuerde
ich gern noch einen Analog-Multiplexer vor den Schmitttriger
HC14 platzieren (um die MISO-Leitung umzuschalten) geht das
bei den Frequenzen noch (es ist immer nur "Verkehr" auf der
geschalteten Leitung)?


d) ein 1mA Controllerport-Pin ist kein idealer Kabeltreiber für
kapazitives Kabel.
Zur Zeit versieht diesen Dienst ein ATMega dessen Port bis
max 40mA bringen koennte (absolut maximum).

e) insbesondere wenn ESD übers Kabel reinkommt empfiehlt sich
um die CPU vor häufigen Abstürzen zu bewahren ein 74HCxx
z.B. 74HC14 als Buffer. Er hat seine Masse/5V getrennt auf
Massesternpunkt geführt und in Datenleitung zu CPU z.B. Widerstand
1k Ohm ( ob kleiner hängt von Kapazität / Geschwindigkeit ab )
Sowas ist billiger als Suppressordiode und erledigt c) und d) gleich
Es gab vorher schon mal einen Aufbau, bei dem Flachbandkabel
genau so verlegt worden sind, wie sie jetzt wieder liegen
sollen. Zum Glueck gab es damals keine Stoerungen, so dass
auch diesmal da !hoffentlich! nichts zu erwarten ist.

Nochmals vielen Dank !

Harald Korth
 
Sehr interressant find ich auch die Flachbandkabel bei denen immer
zwei Leiter paarig verseilt sind
Bei den alten Intel-Emulatoren und ähnlich überteuerten Geräten
üblich.
twisted wire ist gegen magnetische Felder. Hat nominell keine
Auswirkung auf Terminierung. Da das Kabel aber durch die Dreherei
real länger wird, hat man mehr Kapazität, Widerstand. Bei 60cm
kein Nachteil.

Das RC-Glied ... oder dient es nur dem Abschluss mit
Kabelimpendanz ?
Genau dafür. Der Kerko verhindert Stromverbrauch, wenn DC-Signal
anliegt.

Wie terminiert man ein Kabel richtig?
ApplicationNotes der Hersteller für 74HC lesen:
* Es gibt eine von RCA 4 Seiten.
* 2 Seiten von Philips.
Bei Bedarf scanbar.

* Sowie AM393 "Transmission Line Effects Influence high-speed CMOS"
von National.
Bei Fairchild per google findbar.

Analog-Multiplexer vor den Schmitttriger HC14 platzieren
Am Empfänger sollte der unkritisch sein, wobei die Kabelterminierung
natürlich davor an der Leitung sein muß.
Bei Sender macht er nichtlinearen Innenwiderstand wohl 50 Ohm.

MfG JRD
 
Hallo Rafael,

wo Du gerade dabei bist...

Auch SPI, unidir. 74HC125 Ausgang - FB-Leitung - 560Ohm - HCPL2631.

Kann man da noch was tunen um notfalls längere Leitungen hinzubekommen?
Datenrate ist recht gering 10-20kBit/s.

Jörg.
 
um notfalls längere Leitungen hinzubekommen?
Datenrate ist recht gering 10-20kBit/s.
Bei so niederigen Datenraten kann man ja schlicht die
Anstiegszeit des Senders vermindern.
Dann reflektiert die Leitung nichtmehr.
Damit ist es jedenfalls kein transmission-line Problem.

74HC125 Ausgang - FB-Leitung - 560Ohm - HCPL2631.
Sooo klar ist mir Schaltung nicht.
Der HCPL2631-Optokoppler wird als
dual ( gut wegen Symmetrie )
high speed ( angeblich 10 MBd )
TTL-compatible angepriesen.
Das TTL-compatible bezieht sich wohl
auf Ausgang, am Eingang seh ich nur die LEDs.

Ist das Problem der Bau einer Eingangsbeschaltung
für den Optokoppler die flotter als der
560 Ohm Vorwiderstand für das LED ist ?
Erster Vorschlag wäre natürlich immer ein
Kerko über den Vorwiderstand.

MfG JRD
 

Welcome to EDABoard.com

Sponsor

Back
Top