Guten Morgen!
Ich arbeite zusammen mit kollegen gerade an einem Projekt wo wir USB und
SPI benötigen. Aus Platzgründen gibt es eine Hauplatine an welcher um
90° abgewinkelt eine zweite Platine über 2.54" Pinheader (90°
Winkelstück) verbunden werden soll.
Nun muss leider das USB-Signal sowie die SPI-Verbindung für die SD-Karte
über diese Pinheader auf die zweite Platine, so das man dann von aussen
an die Ports kommt.
Mit USB und SPI haben wir eigentlich überhautp keine erfahrung. Die
beiden Signale enden auf einem USB-RS232 (USB) und auf dem STM32F401
(SPI2).
Uns ist bekannt das USB und SPI und ähnliche Signale immer
matched-lenght und matched-pair sein müssen.
Prinzipell sind die Pin-Header ja auch gleich lang und im gleichen
Abstand, aber wir sind uns nicht sicher.
Kann uns jemand sagen ob das mit den Pin-Headern zu Problemen führen
kann?
In PCs gibt es viele interne USB-Anschlüsse, die auf Pinheader im
0.1"-Raster geführt werden und mit sogenannten "Dupont"-Steckverbindern
dann z.B. auf Slotbleche geführt werden.
Zumindest für USB2.0 (mit 480 MBit/sec) funktioniert das problemlos
(bzw. die Probleme, die auftreten, sind Stromversorgungsprobleme, die
sich durch angepasste Leitungsquerschnitte und -Längen in den Griff
bekommen lassen).
Wie kritisch SPI ist, hängt vom Takt ab; sofern Du keine Taktraten im
zweistelligen MHz-Bereich (oder mehr) verwendest, ist das deutlich
unkritischer als USB.
Rufus Τ. F. schrieb:> Wie kritisch SPI ist, hängt vom Takt ab; sofern Du keine Taktraten im> zweistelligen MHz-Bereich (oder mehr) verwendest, ist das deutlich> unkritischer als USB.
Die Terminierung sollte jedoch nicht vergessen werden. Sonst kann es
unter Umständen ab 10MHz auch schon interessant werden.
DasLedProjekt schrieb:> Kann uns jemand sagen ob das mit den Pin-Headern zu Problemen führen> kann?
Normalerweise nicht - das funktioniert bei PC mit Harddisks und
DVD ohne Probleme, auch RAM und Video Karten mit viel schnelleren
Signalen werden eingesteckt.
Michael K. schrieb:> Die Terminierung sollte jedoch nicht vergessen werden. Sonst kann es> unter Umständen ab 10MHz auch schon interessant werden.
Die Terminierung sollte man sowieso auf der ersten Platine machen,
unabhängig davon, ob da eine zweite Platine dranhängt oder nicht.
Michael K. schrieb:> Die Terminierung sollte jedoch nicht vergessen werden.
Ja.
Michael K. schrieb:> Sonst kann es> unter Umständen ab 10MHz auch schon interessant werden.
Nein. Nicht ab 10MHz, sondern prinzipiell. Eine Schaltflanke
ist bei langen Leitungen immer gefährdet und kann deformiert
werden - unabhängig von der verwendeten Taktfrequenz.
Mit Terminierung sind die 27Ohm Widerstände in der USB-Leitung gemeint
oder?
Bezüglich der Signale, die USB-Verbindug geht auf einen RS232 Wandler,
welcher dann mit der Baudrate 115200 arbeitet, das ist für USB glaube
ich noch relativ langsam oder?
Die SPI Verbindungsgeschwindigkeit ist mir leider unbekannt.
Arduinoquäler schrieb:> Nein. Nicht ab 10MHz, sondern prinzipiell. Eine Schaltflanke> ist bei langen Leitungen immer gefährdet und kann deformiert> werden - unabhängig von der verwendeten Taktfrequenz.
Das ist natürlich richtig. Entscheidend sind die Schaltflanken.
Marc V. schrieb:> Die Terminierung sollte man sowieso auf der ersten Platine machen,> unabhängig davon, ob da eine zweite Platine dranhängt oder nicht.
Naja, kommt noch drauf an ob man sich für Serien- oder
Parallelterminierung entscheidet.
DasLedProjekt schrieb:> Bezüglich der Signale, die USB-Verbindug geht auf einen RS232 Wandler,> welcher dann mit der Baudrate 115200 arbeitet, das ist für USB glaube> ich noch relativ langsam oder?
Die Baudrate nach dem RS232-Wandler hat mit der USB-Baudrate aber nichts
zu tun.
DasLedProjekt schrieb:> Bezüglich der Signale, die USB-Verbindug geht auf einen RS232 Wandler,> welcher dann mit der Baudrate 115200 arbeitet, das ist für USB glaube> ich noch relativ langsam oder?
Das ist nicht relevant; die USB-Verbindung arbeitet mit
USB-Geschwindigkeit, und das sind bei den üblichen USB-UARTs 12
MBit/sec.
Wenn Du einen FT232H o.ä. verwendest, können das auch 480 MBit/sec sein.
Das ist kritisch.
Wichtiger als die Steckverbindung ist die Leitungslänge. Wenn Du das
USB-Signal über den Pinheader führst, aber dann nur noch ein paar cm
Platine/Leitung daran hängen, bis es zur USB-UART geht, ist das 'ne
komplett andere Angelegenheit als wenn da ein Meter oder mehr
dazwischenhängt.
Und das ist auch bei SPI relevant - wie lang ist die gesamte Leitung
vom µC bis zum letzten Ende?
Marc V. schrieb:> Die Terminierung sollte man sowieso auf der ersten Platine machen,> unabhängig davon, ob da eine zweite Platine dranhängt oder nicht.
Und die Reflektionen von der zweiten Platine sollen dann wild durch die
Gegend geistern?
Wolfgang schrieb:> Und die Reflektionen von der zweiten Platine sollen dann wild durch die> Gegend geistern?
Na, na, nicht gleich übertreiben.
Wenn sich alles auf der anderen Platine befindet, handelt es sich um
ein paar Zentimeter, nicht um Meter. Und wenn vor der Pinheaderleiste
terminiert wird, ist es ungefähr die Mitte und somit optimal.
Wenn es nicht so wäre, würde der TO das mit Kabeln verbinden und nicht
mit Steckverbindern, oder ?
Rufus Τ. F. schrieb:> Meinst Du, die Dinger an den Enden von Kabeln wären keine> Steckverbinder?DasLedProjekt schrieb:> Aus Platzgründen gibt es eine Hauplatine an welcher um> 90° abgewinkelt eine zweite Platine über 2.54" Pinheader (90°> Winkelstück) verbunden werden soll.
Von der zweiten Platine mögen vielleicht Kabel ausgehen, aber so,
wie es der TO geschrieben hat, gibt es zwischen beiden Platinen
keine Kabeln.
Zumindest verstehe ich das so...