Hi,
ich möchte nochmal sicherhaltshalber nachfragen. Ich möchte einen
SPI-Bus von einer Platine auf eine andere bringe und das Ganze über
Stiftleiste. Jetzt habe ich oftmals gelesen, dass man wenn die Daten per
Flachbandkabel übertragen werden jeweils zwischen den Datenleitungen
eine GND-Leitung mitgeführt werden sollte. Gilt das bei Übertragung per
Stiftleisten auch? Wird ja insbesondere dann schwierig wenn zweireihige
Stiftleisten verwendet werden. Danke
@ Rike (Gast)
>Stiftleiste. Jetzt habe ich oftmals gelesen, dass man wenn die Daten per>Flachbandkabel übertragen werden jeweils zwischen den Datenleitungen>eine GND-Leitung mitgeführt werden sollte.
Das ist der Idealfall. Praktisch reichen auch weniger.
> Gilt das bei Übertragung per>Stiftleisten auch?
Ja.
> Wird ja insbesondere dann schwierig wenn zweireihige>Stiftleisten verwendet werden.
Warum? Hast du nicht genügend Pins?
Für SPI reicht es, wenn man 1-2 Masseleitungen mitführt. Wenn es nur 1
ist, sollte die direkt neben der Taktleitung sitzen, denn das ist die
kritischste.
Rike schrieb:> Wird ja insbesondere dann schwierig wenn zweireihige> Stiftleisten verwendet werden.
Wieso das denn ? Es gibt sogar zahlreiche solche Verbindungen, bei denen
alle Pins einer Reihe an GND liegen, einfacher gehts nicht.Beispiele:
parallele Druckerschnittstellen, SCSI.
Georg
Falk B. schrieb:> Warum? Hast du nicht genügend Pins?
Ich bekommen maximal 10 Pins/Reihe und maximal 2 Reihen auf die Platine.
Zudem wird auch noch 3,3V mit übertragen. Mit 5 Signalleitung und
jeweils GND dazwischen + 3,3V wird es also einreihig schonmal schwierig.
Um zweireihig den selben Effekt zu bekommen stell ich mir vor, dass
jeweils zwei Pins aus den beiden Reihen verbunden werden müssen. Dann
bräuchte ich also 2 Reihen à 10 Pins wie im Bild 1 gezeigt. Richtig?
Alternativ mit weniger Pins könnte ich mir noch eine gekreuzte Variante
wie im Bild 2 Vorstellen. Wäre allerdings layouttechnisch ungünstiger.
Danke
Es sollten halt auf dem Flachbandkabel immer ein Signalpin gefolgt von
einem Massepin sein (Die Litzen die nebeneinander liegen).
Von was für eine Taktfrequenz reden wir denn?
Falls es um "normale" Stiftleisten im 2,54mm-Raster geht, reicht es
völlig aus, jeden zweiten Pin auf ein Versorgungspotential zu legen. Bei
Deinem Bild 1 wäre nur jeder vierte Pins ein Signalpin.
Bild 2 ist hingegen absoluter Murks, denn dann hast Du auf Deinem
Flachbandkabel direkt benachbarte Signalleitungen, d.h. auf einer
wesentlich längeren Strecke als auf der kurzen Stiftleiste und zudem
noch mit deutlich geringerem Abstand.
Bei SCSI konnte man Leitungslängen von durchaus 5m mit einem einfachen
Flachbandkabel überbrücken.
Auf jeden Fall solltest Du am jeweiligen Treiberausgang einen kleinen
Serienwiderstand von ca. 22 Ohm vorsehen, um die Flankensteilheit etwas
zu begrenzen und Reflektionen zu absorbieren.
Falls Du wirklich die allerbeste Signalintegrität haben willst, musst Du
Steckverbinder mit einem Masseblech zwischen den Stiftleisten verwenden,
und alles imedanzkontrolliert führen. Dafür ist SPI aber nicht
ausgelegt. In der Tat ist SPI aber ziemlich empfindlich bezüglich
"Klingelns" auf der Taktleitung.
Nimm eine mit 2*6 Pins oder 2*8 Pins.
In einer Reihe 5 Masse, in der andern Reihe die Signale und an einer
Stirnseite zweimal VCC_3V3. Auch ein GND weniger und ein VCC mehr sind
OK.
Und wenn du wirklich was Gutes tun willst, dann nimm zwei Reihen mehr
und spendiere rechts und links vom SCK auch GND, so z.B.:
GND GND
GND MISO
GND MOSI
GND GND
GND/Code SCK
3V3 GND
3V3 !CS
3V3 !DRDY
Eventuell noch 'ne Codierung, falls man das auch verkehrt stecken
könnte, sonst auch GND.
Andreas S. schrieb:> Falls es um "normale" Stiftleisten im 2,54mm-Raster geht
Ja genau.
Andreas S. schrieb:> Bild 2 ist hingegen absoluter Murks, denn dann hast Du auf Deinem> Flachbandkabel direkt benachbarte Signalleitungen, d.h. auf einer> wesentlich längeren Strecke als auf der kurzen Stiftleiste und zudem> noch mit deutlich geringerem Abstand.
Ich habe doch kein Flachbandkabel. Aber okay. Ist Murks. Versuch war es
Wert :)
Andreas S. schrieb:> Auf jeden Fall solltest Du am jeweiligen Treiberausgang einen kleinen> Serienwiderstand von ca. 22 Ohm vorsehen, um die Flankensteilheit etwas> zu begrenzen und Reflektionen zu absorbieren.
Dachte bei so kurzen Danteleitungen wäre das nicht notwendig
HildeK schrieb:> Nimm eine mit 2*6 Pins oder 2*8 Pins.> In einer Reihe 5 Masse, in der andern Reihe die Signale und an einer> Stirnseite zweimal VCC_3V3. Auch ein GND weniger und ein VCC mehr sind> OK.> Und wenn du wirklich was Gutes tun willst, dann nimm zwei Reihen mehr> und spendiere rechts und links vom SCK auch GND, so z.B.:>> GND GND> GND MISO> GND MOSI> GND GND> GND/Code SCK> 3V3 GND> 3V3 !CS> 3V3 !DRDY>> Eventuell noch 'ne Codierung, falls man das auch verkehrt stecken> könnte, sonst auch GND.
Danke das sieht mir plausibel aus. Wie setzt man so 'ne Codierung um? Da
nur eine Buchsenleiste auf eine Stiftleiste gesteckt wird könnte die
durchaus falsch aufgesteckt werden.
Lars schrieb:> Von was für eine Taktfrequenz reden wir denn?
<100 kHz
@Rike (Gast)
>> Von was für eine Taktfrequenz reden wir denn?><100 kHz
Die Frequenz ist zweitrangig, wichtig ist die minimale Anstiegszeit,
siehe Wellenwiderstand.
Rike schrieb:> dass man wenn die Daten per> Flachbandkabel übertragen werden jeweils zwischen den Datenleitungen> eine GND-Leitung mitgeführt werden sollteRike schrieb:> Ich habe doch kein Flachbandkabel.
Da erübrigt sich wohl jeder Kommentar.
Georg
Rike schrieb:> Wie setzt man so 'ne Codierung um?
In die Buchse wird ein kleiner Plastikpin gesteckt (gibt es zu kaufen,
den genauen Namen weiß ich nicht) und der dazugehörende Pin auf der
andern Leiste wird abgezwickt.
@ georg (Gast)
>> Ich habe doch kein Flachbandkabel.>Da erübrigt sich wohl jeder Kommentar.
Nein. Denn auch auf einer kurzen Steckerleiste sollte man eine sinnvolle
Signalbelegung und ausreichend GND-Verbindungen vorsehen. Vor Ewigkeiten
hatte ich mal mit einem Produkt zu tun, wo über einen 40pol.
Steckverbinder ein 28 Bit Videobus bei ca. 40 MHz mit sage und schreibe
EINER Masseverbindung drüber ging! Die Signalqualität war grausam,
trotzdem lief es irgendwie. Aber solide ist was anderes.
Rike schrieb:> Dachte bei so kurzen Danteleitungen wäre das nicht notwendig
Bei den Daten ist es das auch nicht, beim Takt rate ich dir auch dazu.
Aber nicht nur wegen der Steckverbindung, sondern grundsätzlich. Ich
nehme da immer etwas mehr als 22Ω, so 27Ω, 33Ω oder bei starken Treibern
auch mal 39Ω.
Hängt auch vom realisierten Wellenwiderstand ab, ist aber im Wert
trotzdem nicht kritisch.
Netter Verschreiber: Dante-Leitung. Die gibt es auch :-).
DANTE = Digital Audio Network Through Ethernet
Falk B. schrieb:> Nein. Denn auch auf einer kurzen Steckerleiste sollte man eine sinnvolle> Signalbelegung und ausreichend GND-Verbindungen vorsehen.
Volle Zustimmung!
> Vor Ewigkeiten> hatte ich mal mit einem Produkt zu tun, wo über einen 40pol.> Steckverbinder ein 28 Bit Videobus bei ca. 40 MHz mit sage und schreibe> EINER Masseverbindung drüber ging! Die Signalqualität war grausam,> trotzdem lief es irgendwie. Aber solide ist was anderes.
Solch einen Kunden hatte ich auch schon. Der Hardwerker fand es
besonders schlau, den 50MHz-Oszillator für einen Ethernet-MAC auf eine
separate Leiterplatte zu packen und auch nur eine Masseverbindung zu
spendieren, trotz zahlreicher anderer hochfrequenter Signale. Das ganze
funktionierte so einigermaßen, d.h. mit ziemlich vielen defekten
Ethernetpaketen, aber in der EMV-Kabine schrillten dann die
Alarmglocken. Dann wurde lieber mit irgendwelchen Folien und
Aufklappferriten herumgepfuscht, statt die Ursache des Problems zu
lösen.
Da hattet ihr mehr Glück.
Wir haben mal eine solche Huckepack-Konstruktion mit 'nem FPGA drauf von
englischen Kollegen bekommen. Die funktionierte nicht und wir sollten
herausfinden, was da los ist. Naja, zwei, drei GND-Pins unter rund
hundert Verbindungen ...
An jedem Eck mal ein Stück Lotsauglitze als GND-Verbindung angebracht
und schon sah es fürs Erste anders aus.
HildeK schrieb:> An jedem Eck mal ein Stück Lotsauglitze als GND-Verbindung angebracht> und schon sah es fürs Erste anders aus.
Bei vielen Leiterplatten mit äußerer Massefläche kratze ich etwas Lack
herunter und löte mir erst einmal eine ordentliche Öse aus Entlötlitze
darauf. Das hat sich bisher immer sehr bewährt. Für sehr steilflankige
Signale ist dann ggf. noch ein separater Masseanschluss in der
unmittelbaren Nähe des abgegriffenen Signals nötig, aber für die meisten
Messungen reicht die Masseöse völlig aus.
Danke für die vielen Antworten!
HildeK schrieb:> Netter Verschreiber:
Oops. Ja hab ich sogar selbst schonmal in Studioumgebung mit zu tun
gehabt.
Um Fehler zu vermeiden hole ich mir ja Tips ein. Niemand kann alles
wissen und jede/r macht Fehler. Die dann zu finden ist natürlich immer
lästig :)
Mein ADC der über die Steckverbindung läuft hat bereits Widerstände in
der Referenzschaltung im Datenblatt vorgesehen. Die sind auch im Layout
vorhanden. Allerdings sind die mit 100R 'ne ganze Größenordnung höher.
Wie kommt das?
Sollten auf der Gegenseite am Mikrocontroller auch Widerstände an den
ankommenende Leitungen vorgesehen werden? Also an DOUT und !DRDY. Lässt
such vermutlich nicht pauschal sagen.
Falk B. schrieb:> Nein. Denn auch auf einer kurzen Steckerleiste sollte man eine sinnvolle> Signalbelegung und ausreichend GND-Verbindungen vorsehen.
Ich werde es jetzt so machen wie von HildeK geschrieben hat mit 2x8
Pins. Werde also SCK auch noch gut "verpacken".
@Rike (Gast)
>vorhanden. Allerdings sind die mit 100R 'ne ganze Größenordnung höher.>Wie kommt das?
Das ist Geschmackssache und von der Verbindung abhängig. Flachbandkabel
hat um die 120-150 Ohm Wellenwiderstand, da sind 100 Ohm passend.
Leitungen auf Platinen haben je nach Geometrie 30-200 Ohm, da gibt es
eine größere Vielfalt.
>Sollten auf der Gegenseite am Mikrocontroller auch Widerstände an den>ankommenende Leitungen vorgesehen werden?
Nein, nur am jeweiligen Signal AUSGANG. Das ist eine Serienterminierung,
siehe Wellenwiderstand.
Falk B. schrieb:> @Rike (Gast)>>>> Von was für eine Taktfrequenz reden wir denn?>>><100 kHz>> Die Frequenz ist zweitrangig, wichtig ist die minimale Anstiegszeit,> siehe Wellenwiderstand.
Für die Störabstrahlung ja, für die Signalintegrität dann eher wieder
nicht weil es da logischer Weise um das Timing geht.
@ Lars (Gast)
>> Die Frequenz ist zweitrangig, wichtig ist die minimale Anstiegszeit,>> siehe Wellenwiderstand.>Für die Störabstrahlung ja, für die Signalintegrität dann eher wieder>nicht weil es da logischer Weise um das Timing geht.
Auch das stimmt nicht wirklich, denn es gibt keine 100kHz Logik-ICs. Die
üblichen ICs arbeiten alle im Bereich von einigen Dutzend MHz, d.h. die
Setup-und Holdzeiten liegen auch bei sehr niedrigen Taktraten in dem
Bereich. oder anders formuliert, man gewinnt mit niedrigen Taktraten
fast nix, man muss sich fast immer mit dem schnellen Timing und der
Signalintegrität auseinandersetzen.
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