mikrocontroller.net

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


Autor: Oz zy (ozzy)
Datum:

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

Autor: PeterK (Gast)
Datum:

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

Autor: I_ H. (i_h)
Datum:

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

Autor: Oz zy (ozzy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

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

Autor: I_ H. (i_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wellenwiderstand

Autor: Falk Brunner (falk)
Datum:

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

Autor: Kai Franke (kai-) Benutzerseite
Datum:

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

Autor: lkmiller (Gast)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

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

Autor: I_ H. (i_h)
Datum:

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

Autor: Andreas K. (a-k)
Datum:

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

Autor: lkmiller (Gast)
Datum:

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

Autor: lkmiller (Gast)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

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

Autor: Kai Franke (kai-) Benutzerseite
Datum:

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

Autor: Oz zy (ozzy)
Datum:

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

Autor: Falk Brunner (falk)
Datum:

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

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.