mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI Layout Hilfe


Autor: Patrick Kaplan (kaplan)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Schlechter Wessi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Patrick Kaplan (kaplan)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gast (Gast)
Datum:

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

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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


Autor: Patrick Kaplan (kaplan)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Patrick Kaplan (kaplan)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Patrick Kaplan (kaplan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@all
danke für die hilfreichen antworten.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.