Forum: Mikrocontroller und Digitale Elektronik SPI Layout Hilfe


von Patrick K. (kaplan)


Lesenswert?

Hallo,

ich sitze gerade am Layouten meiner Platinen. Jedes Modul hat einen 
ATMEga644 die als Slaves über SPI mit einem MASTER (ATMega644) 
kommunizieren.

Muss ich beim Layouten irgendwelche einschränkungen berücksichtigen?

Bisher hab ich alles auf steckbrettern aufgebaut und funktioniert 
wunderbar. allerdings sind es dort nur 2 Slaves und es werden mehr wenn 
ich Platinen fertige.
Ich habe auch gehört, man kann für SPI Treiberbausteine verwenden??? 
briongt mir das was?

danke
gruss
Patrick

von Falk (Gast)


Lesenswert?

@ Patrick Ka (kaplan)

>ich sitze gerade am Layouten meiner Platinen. Jedes Modul hat einen
>ATMEga644 die als Slaves über SPI mit einem MASTER (ATMega644)
>kommunizieren.

>Muss ich beim Layouten irgendwelche einschränkungen berücksichtigen?

Naja, zumnindest der SPI-Takt sollte ein wenig mit Respekt geroutet 
werden. Nicht durch tausend ICs durchführen und nicht lange parallel zu 
Signalen mit grossen/schnellen Strömen layouten (Z.B. Leistungstreiber 
für Motoren, Relais etc.)

>Ich habe auch gehört, man kann für SPI Treiberbausteine verwenden???
>briongt mir das was?

In diesem Fall nicht.

MFG
Falk

von Olaf (Gast)


Lesenswert?



> Muss ich beim Layouten irgendwelche einschränkungen berücksichtigen?

Ich wuerde an den enden des Busses jeweils eine Terminierung routen. 
(100 Ohm+100pF) Und wenn alles fertig ist dann schaust du mal mit einem 
besseren Ossi wie so der Takt aussieht. Wenn noetig bestueckst du die 
dann.

Olaf

von Falk (Gast)


Lesenswert?

@ Olaf (Gast)

>Ich wuerde an den enden des Busses jeweils eine Terminierung routen.
>(100 Ohm+100pF) Und wenn alles fertig ist dann schaust du mal mit einem
>besseren Ossi wie so der Takt aussieht. Wenn noetig bestueckst du die
>dann.

Schaden kanns nicht, aber bis ca. 50 cm Leitungslänge sollte da wenig 
anbrennen (unter der der Annahme von 10ns Anstiegszeit). Ausserdem 
braucht man schon ein recht schnelles Oszi (300MHz++) + guten Tastkopf + 
KnowHow um dann die Reflexionen richtig zu messen.

MfG
Falk

von Schlechter Wessi (Gast)


Lesenswert?

> Ich wuerde an den enden des Busses jeweils eine Terminierung routen.
> (100 Ohm+100pF) Und wenn alles fertig ist dann schaust du mal mit einem
> besseren Ossi wie so der Takt aussieht. Wenn noetig bestueckst du die
> dann.


Was ist denn ein besserer Ossi?

von Patrick K. (kaplan)


Lesenswert?

super vielen dank. Ich nutz EAGLE und bin gerade erstmal am Schematic.

>Ich wuerde an den enden des Busses jeweils eine Terminierung routen.
>(100 Ohm+100pF) Und wenn alles fertig ist dann schaust du mal mit einem
>besseren Ossi wie so der Takt aussieht. Wenn noetig bestueckst du die
>dann.

D.h. der Bus wird eine lange Wurst? Meine Slaves sind auf einer fläche 
von 40 mal 30 cm verteilt. könnte ich den slave in der mitte anordnen 
und strenförmig den SPI Bus verteilen?

jeder slave wird auf einem separaten board sein, denn ich hab nur non 
profit eagle. Kann ich dann ein spezielles abgeschirmtes kabel nutzen 
oder soll ich die boards mit einander zusammenstecken über spezielle 
stecker?

>Schaden kanns nicht, aber bis ca. 50 cm Leitungslänge sollte da wenig
>anbrennen (unter der der Annahme von 10ns Anstiegszeit).

Ich takte mit 5Mhz (1/4 CLK). also müsste das doch passen.

von Gast (Gast)


Lesenswert?

Geiz ist Geil ???
denn ich hab nur non profit eagle.
:-(
Verlangsame doch den Clock, solange bis es passt.

von Falk (Gast)


Lesenswert?

@ Patrick Ka (kaplan)

>D.h. der Bus wird eine lange Wurst? Meine Slaves sind auf einer fläche

Ja.

>von 40 mal 30 cm verteilt. könnte ich den slave in der mitte anordnen
>und strenförmig den SPI Bus verteilen?

Nein, das ist eher schlecht. Besser lange Wurst mit Terminierung am Ende 
wie beschrieben.

>jeder slave wird auf einem separaten board sein, denn ich hab nur non
>profit eagle. Kann ich dann ein spezielles abgeschirmtes kabel nutzen
>oder soll ich die boards mit einander zusammenstecken über spezielle
>stecker?

Wenn du normales Flachbandkabel nutzt und wenigstens neben dem SPI-Takt 
ne Masse führst (an beiden Enden auf Masse legen!) passt das wunderbar. 
1m sollte da kein Problem sein.

>Ich takte mit 5Mhz (1/4 CLK). also müsste das doch passen.

Immer wieder ein Irrtum. Die FREQUENZ ist nicht entscheidend! Es ist die 
ANSTIEGSZEIT der Signale, und die ist immer gleich, egal wie der Teiler 
für den SPI-Takt eingestellt ist. Die IOs schalten immer gleich schnell.

>Verlangsame doch den Clock, solange bis es passt.

Nein, das ist Murks.

MfG
Falk


von Patrick K. (kaplan)


Lesenswert?

>> Geiz ist Geil ???

Ich kanns mir als Student nicht leisten und das Budget für meine Arbiet 
bruach ich für Bauteile :)

@Falk
suepr hilfe, danke

von Patrick K. (kaplan)


Lesenswert?

Hmm jetzt hab ich doch noch Fragen:

für die "SPI Wurst" bin ich grad am entwerfen des Steckers und des 
Kabels.
also ich hätte ein flachband kabel genommen:

[5V,GND, SCK, MOSI, MISO, SS]

oder soll SCK beidseitig von GND umgeben sein. oder sollen die Signale 
komplett mit ground umschirmt werden und gar kein flachband kabel 
genutyt werden.

>Wenn du normales Flachbandkabel nutzt und wenigstens neben dem SPI-Takt
>ne Masse führst (an beiden Enden auf Masse legen!) passt das wunderbar.
>1m sollte da kein Problem sein.

ich werde ca 1m erreichen. wie genau sieht dann die terminierung aus? 
Bei Allen Slaves schleif ich durch bis auf den letzten?

>Ich wuerde an den enden des Busses jeweils eine Terminierung routen.
>(100 Ohm+100pF)


heisst das an jedem Signal(SCK, Mosi,Miso,SS) wird am ende 
(100Ohm+100pF) in serie auf GND geschalten?

von Matthias (Gast)


Lesenswert?

..oder soll SCK beidseitig von GND umgeben sein. oder sollen die Signale
komplett mit ground umschirmt werden und g..

Am besten ist sowas:

1)  5V      SS    (2
3)  5V      SCK   (4
5)  5V      MOSI  (6
7)  GND     MISO  (8
9)  GND     GND   (10   also ein 10pol. Flachbandkabel, als Stecker zB 
2x5pol

so anschließen, dass es auf dem Kabel sowas ergibt:

5V-SS-5V-SCK-5V-MOSI-GND-MISO-GND-GND
   ^       ^    ^          ^  (ist von "Masse" eingebettet)

Hinweis:
Die Betriebsspannung sehr gut abblocken! (100nF) SOmit ist garantiert, 
dass die 5V-Schiene wechselspannungsmäßig auch Masse ist!

von Olaf (Gast)


Lesenswert?



> [5V,GND, SCK, MOSI, MISO, SS]

  5V,SCK,GND,MOSI,SS,MISO  waer besser.

Der Idealfall waere, das sich rechts und links von jeder Signalleitung
extra MAsse befinden wuerde. Halte ich aber hier noch nicht fuer 
notwendig.

Das haengt in der Tat von der Geschwindigkeit der Bustreiber und der 
Leitungslaenge ab und nicht von der Taktfrequenz auf dem Bus.

Ich selbst verwende einen solchen Bus mit Flachbandkabel mit 0.5m und 
musste da schon terminieren!

Ich hatte uebrigens ueberlegt ob ich in Zukunft fuer solche Anwendungen 
nicht SATA Kabel zweckentfremden sollte weil die so schoen billig sind. 
Man muesste nur mal irgendwo die Stecker zum aufloeten auf die Platine 
auftreiben.

> heisst das an jedem Signal(SCK, Mosi,Miso,SS) wird am ende
> (100Ohm+100pF) in serie auf GND geschalten?

Die Selectleitung halte ich fuer unkritisch weil die nur einmal vor und 
nach der Uebertragung ihren Pegel aendert und dann so bleibt.


Olaf

von Matthias (Gast)


Lesenswert?

...heisst das an jedem Signal(SCK, Mosi,Miso,SS) wird am ende
(100Ohm+100pF) in serie auf GND geschalten?.


Ja.
Vielleicht ist es bei dir sinnvoll, jedem Teilnehmer zwei Stecker 
mitzugeben:
Diese beiden sind an den Enden der Platine und schleifen sich durch die 
Platine (über die Schiebereg). somit hast immer einmal rein, und einmal 
raus.
am letzten steckst dann einfach die terminierung an. (die kann ja die 
rückverbindung mosi-miso mit sicherstellen) Und ja, es ist besser jedem 
der signal sck,miso,mosi,ss so eine terminierung zu geben.

µC             T#1                    T#n         Term.

sck -|---..---|-C-|--------....------|-C-|--..--|-----T
mosi-|---..---|E-A|--------....------|E-A|--..--|-o---T
misoT|---..---|---|--------....------|---|--..-|-o       (o: verbindung)
ss---|---..---|-S-|--------....------|-S-|--..-|-----T

C: Takteingang des SRG im Teilnehmer
E: Dateneingang des SRG im Teilnehmer
A: Datenausgang des SRG im Teilnehmer
S: Enableeingang des SRG im Teilnehmer
T: Terminierung 100p+100Ohm

von Falk (Gast)


Lesenswert?

@ Patrick Ka (kaplan)

>also ich hätte ein flachband kabel genommen:

>[5V,GND, SCK, MOSI, MISO, SS]

Naja, SCK besser noch mal mit GND gegenübr MOSI abschirmen. Oder einfach 
GND und SCK tauschen, das geht aus.

>oder soll SCK beidseitig von GND umgeben sein. oder sollen die Signale
>komplett mit ground umschirmt werden und gar kein flachband kabel
>genutyt werden.

Flachbandkabel ist voll OK.

>Bei Allen Slaves schleif ich durch bis auf den letzten?

Ja.

>heisst das an jedem Signal(SCK, Mosi,Miso,SS) wird am ende
>(100Ohm+100pF) in serie auf GND geschalten?

Ja.

MfG
Falk

von Falk (Gast)


Lesenswert?

@ Matthias (Gast)

>Vielleicht ist es bei dir sinnvoll, jedem Teilnehmer zwei Stecker
>mitzugeben:

Naja, zuviel Stecker sind aber auch schnell ne schöne Fehlerquelle. 
Würde ich nicht machen.

MFg
Falk

von Patrick K. (kaplan)


Lesenswert?

@all
danke für die hilfreichen antworten.

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.