Forum: Mikrocontroller und Digitale Elektronik maximale Kabellänge bei SPI > 7MHz clk


von Oz z. (ozzy)


Lesenswert?

Moin,

ich möchte mit möglicht hoher Frequenz einen AD-Wandler auslesen. 
Momentan habe ich nur einen Versuchsaufbau mit ein paar "billigen" 
Kabeln.
Kann man denn sagen, wie lang die Kabel max. sein dürfen bei der 
clk-Frequenz, bzw, muss man sie noch irgendwie schirmen oder so?

MfG, und vielen Dank, Ozzy

von PeterK (Gast)


Lesenswert?

einfach nur so miteinander verbunden - na, vielleicht 10 bis 20 cm - 
mehr nicht.
Wenns nicht klappt, erstmal die Clockfrequenz runtersetzen, dann sieht 
man schon, ob es an den langen Kabeln liegt.

Peter

von I_ H. (i_h)


Lesenswert?

Na das Taktsignal muss beim ADC ankommen, der braucht eine bestimmte 
Zeit bis er die Daten anliegen hat, und dann müssen die Daten zurück 
sein bevor der nächste Takt anfängt.

Bei 7MHz sind das 142ns pro Takt, ADC vernachlässigt ergibt das also 
71ns pro Weg was bei 200e6 m/s also 14 Meter macht.
Nu hängt's davon ab wie schnell dein ADC ist. Leitungen terminieren ist 
bei 14m natürlich absolute Pflicht.

von Oz z. (ozzy)


Lesenswert?

Hi,

was heißt denn "Leitungen terminieren"???

von I_ H. (i_h)


Lesenswert?

Wellenwiderstand

von Falk B. (falk)


Lesenswert?

@ PeterK (Gast)

>einfach nur so miteinander verbunden - na, vielleicht 10 bis 20 cm -
>mehr nicht.

Naja.

>Wenns nicht klappt, erstmal die Clockfrequenz runtersetzen, dann sieht
>man schon, ob es an den langen Kabeln liegt.

[Oberlehrer]
Erstens heisst es Taktfrequenz und zweitens ist das falsch. Die 
Taktfreqeunz ist NICHT das Kriterium bei schlechten Kabeln.
[/Oberlehrer]

Siehe Wellenwiderstand

>Autor: I_ H. (i_h)

>Na das Taktsignal muss beim ADC ankommen, der braucht eine bestimmte
>Zeit bis er die Daten anliegen hat, und dann müssen die Daten zurück
>sein bevor der nächste Takt anfängt.

Sooo schnell ist keine SPI bzw soo lang kein SPI-Kabel.

>Nu hängt's davon ab wie schnell dein ADC ist. Leitungen terminieren ist
>bei 14m natürlich absolute Pflicht.

;-)

MfG
Falk

von Kai F. (kai-) Benutzerseite


Lesenswert?

>>einfach nur so miteinander verbunden - na, vielleicht 10 bis 20 cm -
>>mehr nicht.

>Naja.

da kann ich Falk nur Recht geben. Selbst nach der Formel im oben schon 
oft erwähnten Artikel schafft ein AVR mehr als 10 bis 20cm. Ich selbst 
habe schon eine SPI auf 2 Meter ohne jegliche Terminierung hinbekommen, 
das ist sicherlich nicht gerade störungssicher, hat aber funktioniert.
Mit einer schönen Terminierung am Ende sind mit SPI auch locker 14 Meter 
möglich.

von lkmiller (Gast)


Lesenswert?

Hut ab, 7MHz auf 14m, das kann lustige Effekte geben.

Nur mal zur Erinnerung: der gute alte PCI-Bus hatte da gerade mal 33MHz, 
und die Herren, die das Ding zur Welt gebracht haben, die haben für 
diese nicht so arg viel höhere Frequenz stramme Vorgaben (im 
Millimeterbereich) für die Hardware gemacht.

Eine RS232-Schnitte mit 115kBd, da war nach allgemeinen Dafürhalten etwa 
bei 10m Schluss, darüber hinaus war dann differentiell mit RS422/RS485 
angesagt.

Also: aus Sicht der Betriebssicherheit sind SPI mit 7MHz-Clock und 14m 
Kabellänge inkompatibel.

Signale mit dieser Frequenz zeigen übrigens schon leichte 
Ablöseerscheinungen von der Leitung, das ist HF!

von Falk B. (falk)


Lesenswert?

@ lkmiller (Gast)

>Hut ab, 7MHz auf 14m, das kann lustige Effekte geben.

Es gibt Leute, die sogar 100MHz++ auf ne LEitung geben. Und sauber 
wieder runter kriegen . . .

>Nur mal zur Erinnerung: der gute alte PCI-Bus hatte da gerade mal 33MHz,
>und die Herren, die das Ding zur Welt gebracht haben, die haben für
>diese nicht so arg viel höhere Frequenz stramme Vorgaben (im
>Millimeterbereich) für die Hardware gemacht.

Und? Das ist ein paralleler Bus.

>Eine RS232-Schnitte mit 115kBd, da war nach allgemeinen Dafürhalten etwa
>bei 10m Schluss, darüber hinaus war dann differentiell mit RS422/RS485
>angesagt.

Käse.

>Also: aus Sicht der Betriebssicherheit sind SPI mit 7MHz-Clock und 14m
>Kabellänge inkompatibel.

Man macht ja auch bei der Länge keine synchrone Übertragung, wie deine 
Rechung ja zeigte. Sondern Asynchron ala Ethernet, USB, UART über RS485 
etc.

>Signale mit dieser Frequenz zeigen übrigens schon leichte
>Ablöseerscheinungen von der Leitung, das ist HF!

Du hast komische Denkmodelle. Und es ist viel SCHLIMMER! Die 14 MHz sind 
nur die Grundwelle des digitlaen Signals, die Oberwellen gehen selbst 
bei moderaten 5ns Anstiegszeit bis ca. 100MHz! :-0

MFG
Falk

von I_ H. (i_h)


Lesenswert?

Bei 14m sollte man dann natürlich schon was geschirmtes nehmen, sind ja 
nur 3 Leitungen. Das vereinfacht auch die Sache mit dem 
Wellenwiderstand, fragt sich nur ob ein AVR auch 50 Ohm treiben kann 
(ich halte dagegen).

Sonst halt per Spannungsteiler auf 3.3V oder sowas, dazu noch die guten 
alten RG-62 Kabel, dann muss der AVR nur noch 413 Ohm treiben. Bei 50 
Ohm wären's dann auch nur noch 220 Ohm.

von Andreas K. (a-k)


Lesenswert?

lkmiller wrote:

> Also: aus Sicht der Betriebssicherheit sind SPI mit 7MHz-Clock und 14m
> Kabellänge inkompatibel.

SCSI kam schon vor langer Zeit mit 10MHz auf 25 Meter. Die dabei 
verwendete Treiber-Technik war freilich noch deutlich älter, auch 
bekannt als RS422. Und arbeitete dabei parallel und synchron.

von lkmiller (Gast)


Lesenswert?

@Falk:
>Es gibt Leute, die sogar 100MHz++ auf ne LEitung geben.
>Und sauber wieder runter kriegen . . .
Antwort 1: Ja, ich auch, aber differentiell z.B. mit LVDS
Alterna(t)iv: Ja, aber nicht über 14 Meter.

>Das ist ein paralleler Bus
Richtig, aber auch ein synchroner, wie der SPI.
So gesehen ist der SPI ein 1-Bit synchroner Parallel-Bus.

>Du hast komische Denkmodelle
KISS: Keep It Simple and Stupid.
Manche sind sich selbst dieser einfachen Denkmodelle nicht bewusst.
Komplizierter kann ich das dann hinterher immer noch machen.

>Käse.
Was ist daran Käse? Nimm du mal eine Maschine oder Anlage in Betrieb,
die Single Ended RS232 mit 115kBd zuverlässig laufen soll.
Dann schon CAN und Co.

von lkmiller (Gast)


Lesenswert?

@ Andreas Kaiser:
FULL ACK, meine Worte:
>darüber hinaus war dann differentiell mit RS422/RS485 angesagt
Gemeint war Länge und/oder Taktfrequenz

von Falk B. (falk)


Lesenswert?

@ lkmiller (Gast)

>>Es gibt Leute, die sogar 100MHz++ auf ne LEitung geben.
>>Und sauber wieder runter kriegen . . .
>Antwort 1: Ja, ich auch, aber differentiell z.B. mit LVDS
>Alterna(t)iv: Ja, aber nicht über 14 Meter.

Nöö, das geht auch problemlos Single Ended. Und da muss es nicht mal 
unbedingt Koaxkabel sein.

>>Du hast komische Denkmodelle
>KISS: Keep It Simple and Stupid.

Sie sind schlicht falsch.

>>Käse.
>Was ist daran Käse?

RS232 ist hornalt und war nie wirklich darauf ausgelegt. Offiziell darf 
man 115 kBaud nur bis max 3m betreiben oder so. Was aber nicht heisst, 
dass man mit anderen (single ended) Standards nicht noch schneller und 
weiter kommt.

MFG
Falk

von Kai F. (kai-) Benutzerseite


Lesenswert?

Ich mache euch einen Vorschlag:
in einem Monat habe ich meine Platinen bestimmt bestückt und lege 
einfach mal eine 8MHz SPI dran. Nach 20 Metern wird das ganze dann 
parallel terminiert (so, dass es der AVR noch treiben kann) und dann 
stell ich das Oszi Bild online. Ich hatte eigentlich geplant anstatt den 
AVR diese schwere Last treiben zu lassen einen Bustreiber mit längerer 
Anstiegszeit zu verwenden, aber für euch tue ich das doch gerne :)
Nee, jetzt mal im Ernst...
einfach versuchen und wenn es nicht klappen sollte, Rise Zeiten (zB mit 
Bustreibern) verlängern, besser terminieren und eventuell die CLK 
Frequenz runtersezten

Grüße
Kai

von Oz z. (ozzy)


Lesenswert?

Hi,

wie müsste denn die Terminierung dimensioniert sein? Habe jetzt mal den 
Artikel zum Wellenwiderstand durchgelesen. Da steht ja unten was von 
AC-Terminierung. Kann ich die nehmen? Etwas Kopfzerbrechen macht mit die 
Rechnung: R_t*C_t >=1000*T_clk. Wenn ich jetzt einfach mal 10MHz als clk 
annehme, dann muss R_t*C_t>=0,0001. Wie würdet Ihr dann den Wiederstand 
und Kondensator wählen?

MfG, und vielen Dank, Ozzy

von Falk B. (falk)


Lesenswert?

@ Christoph O. (ozzy)

>annehme, dann muss R_t*C_t>=0,0001. Wie würdet Ihr dann den Wiederstand
>und Kondensator wählen?

Steht das nicht im Artikel? Das R muss gleich dem Wellenwiderstand sein, 
je nach Kabeltyp 50..150 Ohm. Über die Formel kannst du dann C 
ausrechnen.

MFG
Falk

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.