Hi
Ich habe einen Controller bei dem ich nicht gaz verstehe wie groß die
maximale SPI Frequenz ist. Im Werbeprospekt steht 4MHz... im Datenblatt
8Mbps.
Ist nun das Werbeding falsch oder wie soll man das verstehen?
Wieso? Die Angabe stimmt doch:
Wenn ich von einem Datenstrom "1010101010....."
ausgehe, dann habe ich bei einem Datenstrom von 8 Mbps
eine Bitlänge von t=125ns.
Diese Bitlänge entspricht aber nur EINER Halbwelle der
höchsten Frequenz, die über das Kabel geht.
Die Frequenz, die ich damit über das Kabel jage,
setzt sich aus 2(!) Halbwellen, nämlich "10-10-10-10..."
zusammen.
Damit ist die Periodendauer T=250ns und daraus errechnet
sich eine Frequenz von f=1/T = 4 MHz
Das ist die höchste mögliche Rechteckfrequenz, die bei einem
Signal von 8Mbps vorkommen kann. Alle anderen Frequenzen
(z.B. für die Bitfolge "1111000011110000" liegen tiefer...
Greetz
kmt
@Kai Markus Tegtmeier:
Mbps sind doch eben Megabits pro Sekunde, also 1'000'000 Bits pro
Sekunde, das hat doch nix damit zu tun, ob die nun 1 oder 0 sind. Und
wenn bei jeder steigenden (oder fallenden) Flanke, sprich bei jeder
Periode, ein Bit übertragen wird, dann macht das bei 8MHz doch 8Mbps.
Wenn ich bei SPI 4MHz lese gehe ich aber davon aus, dass das Taktsignal
4MHz hat und dementsprechend auch bei jedem Takt ein Bit in beide
Richungen uebertragen wird.
Vll. ist die Angabe von 8MBps also als Zusammenfassung von eingehenden
und ausgehenden Daten zu verstehen.
Gruss Tobias
@Philipp Burch:
Dann möchte ich mal eine Gegenfrage stellen:
Ich möchte über ein Kabel die Bitfolge "11111111111111....."
übertragen mit meinetwegen 10 Bit pro Sekunde. Welche Frequenz muß das
Kabel bei einem Signal übertragen, das dauernd 1 ist?
Ich würde mal auf 0 Hz tippen. Das ist dann der "best case".
Dagegen:
Wenn wir von Frequenzen sprechen, müssen wir mit Schwingungsperioden
rechnen. Eine Schwingungsperiode besteht immer aus 2 Halbwellen. In der
einen Halbwelle ist bei Rechteckschwingungen das Signal konstant 1,
in der anderen Halbwelle konstant 0. Die kleinste unteilbare Einheit
in unserem Datenstrom ist das Bit. Also kann eine Halbwelle minimal
1 Bit lang sein. Das heißt, eine Schwingungsperiode T kann minimal
2 Bit lang sein.
|0,1s|0,1s|0,1s|0,1s..... gesamt: 10 Bits @ 1 Sek.
0 1 0 1 0 1 0 1 0 1
| |----| |----| |----| |----| |----| Daten 10 Bit/Sekunde
|----| |----| |----| |----| |----| |
|<---T--->|
T=0,2s
Bei 10 Bit pro Sekunde habe ich eine Bitlänge von 0,1s.
D.h. eine Halbwelle T/2 ist minimal 0,1s lang. Damit ist
eine Schwingungsperiode T minimal 0,2s lang. Die dazugehörige
Frequenz ist f = 1/T = 5 Hz. Das ist die höchste in diesem Signal
vorkommende Rechteckfrequenz.
Dass da laut Fourier noch höhere Frequenzen eine Rolle spielen,
damit das Kabel die Rechteckschwingung sauber übertägt, steht auf
einem ganz anderen Blatt...
Greetz
kmt
@Kai: Deine Demonstration vernachlässigt leider das Taktsignal. Und das
hat auch in deinem Beispiel die doppelte Frequenz. Die Frequenz des
Datensignals anzugeben macht auch keinen Sinn da diese - wie du selbst
demonstriert hast - vom Datenmuster abhängig ist.
Ähm, wenn man die Geschwindigkeit von einer synchronen Schnittstelle
angibt, dann meint man damit ja wohl die Takfrequenz, denn alles andere
wäre einfach nur unsinnig. Wenn das Taktsignal mit 8MHz zwischen logisch
1 und logisch 0 wechselt, dann lässt sich (im Falle des SPI Busses vom
AVR) auf einer Flanke pro Periode ein Bit übermitteln. Und deswegen hat
ein 8MHz SPI Bus auch einen Durchsatz von 8Mbps.
Die Information muss falsch, oder falsch herausgearbeitet sein. (Die
Taktfrequenz kann ja zum Beispiel auch nur maximal 4MHz betragen, wenn
die Clksys nur 8MHz aufweist.
@ Berti (Gast):
Wieso lässt du das ding nicht einfach mal eine 010101... Folge ausgeben,
dann kannst du nachmessen. Falls das ding 8 mbps ausgibt, und du 4mbps
brauchst ist das ja kein problem, jedes bit einfach doppelt übertragen,
falls du zwingend mehr als 4 mbps brauchst dann empfehle ich dir nach
einem anderen chip zu suchen.
@Simon, Daniel:
Da können wir uns völlig drauf einigen. Aber wer weiß schon,
was die Marketingleute in ihrem Überschwang alles angeben.
4 MHz wäre hier natürlich nicht DIE Frequenz des Datensignals,
sondern die maximal erreichbare Frequenz des Datensignals fmax.
Aber ihr habt natürlich Recht; diese Frequenz anzugeben, macht nur
bedingt Sinn, obwohl sich aus fmax direkt die Taktfrequenz ableiten
läßt...
Also entweder Dreckpfuhler oder Marketing :-)
In diesem Sinne einen schönen 1. Advent!
Greetz
kmt
Bei einer SPI Schnittstelle ist eindeutig, dass ein Bit durch einen
binären Zustand 0 oder 1 üebrtragen wird. Es gibt hier keine
Phasenumtastung, QAM oder sonstige mehrwertige Datenübertragung pro
Zeiteinheit. Also ist die höchste vorkommende Frequenz bei einem
Datensignal 010101010. Die Agabe ist also kein Marketinggag sondern
schlichtweg nur logisch.
@Punktrichter:
Sie ist eben NICHT logisch. Die Datenleitung mag bei 01010101 ihre
maximale Frequenz haben, aber auch wenn du nur 1-Bits überträgst, hast
du mit jeder steigenden oder fallenden Flanke des TAKT-Signals ein Bit.
Also hast du bei 1MHz eben 1Mbps. Dass sich die Frequenz auf die
Datenleitung(en) bezieht wäre ja wohl absolut idiotisch, das ist ja
extrem nichtssagend.
Oder hast du einen Vorschlag, was man mit der Angabe der maximalen
Frequenz einer Datenleitung anfangen sollte? Ausserdem hängt es ja von
der Konstruktion der SPI ab, was die Datenleitungen überhaupt machen.
Stell dir vor, der Pegel würde jeweils eine kurze Zeit vor der
betreffenden Flanke eingestellt und kurz danach wieder zurückgesetzt.
Dann hättest du bei lauter 1-Bits deine maximale Frequenz und die würde
dann eben der Clockfrequenz entsprechen.
Es ist doch wohl von der DATENrate und nicht von der CLOCKrate die Rede?
"...Dann hättest du bei lauter 1-Bits deine maximale Frequenz..."
Was soll denn das für ein Argument sein. Du kannst auch eine 10 fach so
hohe Frequenz an den Pin anlegen, aber die Baudrate kriegst Du trotzdem
nicht höher.
Es ist schlichtweg die Definition (und auch logisch, ich wiederhole
mich), dass bei reiner binärer Wertigkeit die Baudrate maximal so hoch
sein kann, wie die halbe Frequenz.
Dummerweise hast du bei SPI aber keine Baudrate, da dort mithilfe des
Clock-Signals übertragen wird und nicht anhand der Pegelwechsel auf der
Datenleitung. Und bei SPI ist die DATENrate gleich der
CLOCKrate/CLOCKfrequenz.
Die "Clockrate" ist aber nun mal nicht die "Datenrate".
Die Clockfrequenz hat mit der Baudrate (welche sich sinnvollerweise auf
die Daten bezieht) prinzipiell nichts zu tun. Du kannst auch definieren,
das 10 Clockwechsel ein Datenbit repräsentieren.
Es geht doch um die Baudrate oder ????
Die SPI-Angabe bezieht sich auf die Nutzdaten, alles andere macht doch
keinen Sinn.
Ich kann es nicht ändern.
Bei SPI (Es geht doch um SPI, nicht wahr) entspricht die Clockfrequenz
eben sehr wohl der Datenrate. Ich denke aber, wir stimmen überein, dass
die Angabe einer Frequenz für eine Übertragungsgeschwindigkeit eh
sinnlos ist. Wie du selber sagst, können mehrere Zyklen für eine
Dateneinheit (Üblicherweise ein Bit oder ein Byte) verwendet werden,
oder man überträgt mehr als eine Einheit pro Zyklus. Dann stimmen
Clockfrequenz und Datenrate in bps nicht überein. Sobald wir aber von
SPI reden, dann ist definiert, dass mit einem MHz Clockfrequenz ein Mb
übertragen werden kann.
Aber einigen wir uns darauf die Diskussion ruhen zu lassen?
Wahrscheinlich reden wir eh nur aneinander vorbei.
Oder was meinen die anderen?
Allen einen schönen 1. Advent!
> Die "Clockrate" ist aber nun mal nicht die "Datenrate".
richtig.
> Die Clockfrequenz hat mit der Baudrate (welche sich sinnvollerweise auf> die Daten bezieht) prinzipiell nichts zu tun.
richtig.
> Du kannst auch definieren,> das 10 Clockwechsel ein Datenbit repräsentieren.
richtig.
> Es geht doch um die Baudrate oder ????
richtig.
> Die SPI-Angabe bezieht sich auf die Nutzdaten, alles andere macht doch> keinen Sinn.
Von mir aus auch auf die NutzdatenRATE, aber nicht auf die maximale
Frequenz, mit der ein Rechtecksignal übertragen werden kann.
Und da die Nutzdatenrate und die Clockdatenrate bei SPI identisch sind,
gilt: Mit einem 8MHz Clocksignal/SPI-Taktsignal kann die Datenleitung
8Mio. Datenbits pro Sekunde übertragen, was etwa 8Mbps entspricht. Ob du
da jetzt ein 4Mhz Rechteck (mehr geht nicht, wie wir uns alle einig
sind) überträgst, ist für die (Nutz)Datenrate egal!
Ich glaube auch, dass die im Datenblatt Rx und Tx addiert haben.
----, (QuadDash).
---- wrote:
>> Die "Clockrate" ist aber nun mal nicht die "Datenrate".> richtig.
s.u.
>> Die Clockfrequenz hat mit der Baudrate (welche sich sinnvollerweise auf>> die Daten bezieht) prinzipiell nichts zu tun.> richtig.
s.u.
>> Du kannst auch definieren,>> das 10 Clockwechsel ein Datenbit repräsentieren.> richtig.
Genau das ist der Punkt:
Ich bin mit euch vollständig einverstanden, wenn wir allgemein von
Datenübertragungen sprechen. Sobald es aber um SPI geht, entspricht die
Clockfrequenz der Datenrate und ein Clockwechsel ist ein Datenbit.
>> Es geht doch um die Baudrate oder ????> richtig.>>> Die SPI-Angabe bezieht sich auf die Nutzdaten, alles andere macht doch>> keinen Sinn.> Von mir aus auch auf die NutzdatenRATE, aber nicht auf die maximale> Frequenz, mit der ein Rechtecksignal übertragen werden kann.> Und da die Nutzdatenrate und die Clockdatenrate bei SPI identisch sind,> gilt: Mit einem 8MHz Clocksignal/SPI-Taktsignal kann die Datenleitung> 8Mio. Datenbits pro Sekunde übertragen, was etwa 8Mbps entspricht. Ob du> da jetzt ein 4Mhz Rechteck (mehr geht nicht, wie wir uns alle einig> sind) überträgst, ist für die (Nutz)Datenrate egal!>> Ich glaube auch, dass die im Datenblatt Rx und Tx addiert haben.
Da stimme ich mit dir/euch überein.
Ich denke, der springende Punkt ist folgender:
>Da können wir uns völlig drauf einigen. Aber wer weiß schon,>was die Marketingleute in ihrem Überschwang alles angeben.>4 MHz wäre hier natürlich nicht DIE Frequenz des Datensignals,>sondern die maximal erreichbare Frequenz des Datensignals fmax.>Aber ihr habt natürlich Recht; diese Frequenz anzugeben, macht nur>bedingt Sinn, obwohl sich aus fmax direkt die Taktfrequenz ableiten>läßt...>Also entweder Dreckpfuhler oder Marketing :-)>In diesem Sinne einen schönen 1. Advent!>Greetz>kmt
Wenn man "seriös" die Bandbreite einer SPI Schnittstelle angibt, bezieht
man sich auf die Frequenz der Clock, denn nur dies ist sinnig.
Wenn man zum Beispiel bei Atmel schaut, dann sieht man das ja auch.
Wenn sich irgendwelche Marketing Leute irgndwas ausdenken, was das ganze
"schneller" aussehen lässt, dann schreiben sie es auch.
Hi!
SPI hat doch bitte zwei Datenleitungen SDI und SDO, somit wird pro
Taktperiode 2 Bit übertragen eines vom Master zum Slave und GLEICHZEITIG
eines vom Slave zum Master, somit werden bei einer Taktfrequenz von 4
MHz des Clocksignals 8Mbps übertragen. Wenn man die Datenrate nur in
eine Richtung betrachtet stimmt natürlich 4Mbps aber SPI ist als
Rinpuffer aufgebaute und da gibts im Normalfall immer 2 Datenrichtungen.
ciao
Fasti
>SPI hat doch bitte zwei Datenleitungen SDI und SDO, somit wird pro>Taktperiode 2 Bit übertragen eines vom Master zum Slave und GLEICHZEITIG>eines vom Slave zum Master, somit werden bei einer Taktfrequenz von 4>MHz des Clocksignals 8Mbps übertragen. Wenn man die Datenrate nur in>eine Richtung betrachtet stimmt natürlich 4Mbps aber SPI ist als>Rinpuffer aufgebaute und da gibts im Normalfall immer 2 Datenrichtungen.
eigentlich war für mich das Thema tot, aber da muss ich doch noch
hinzufügen:
Da CLK min. die doppelte Taktrate wie jeweils SDI und SDO hat, ist nun
eigentlich nicht 2-fach sonder min. 4-fach. Und da es drei
Datenleitungen sind, musst Du nochmal 3 Bit dazuzählen, da diese ja an
und abklemmbar sind. Vielleicht sogar 6, da es ja an beiden Enden
befestigt ist. Aber egal. Wenn das Controllerdatenblatt für SPI eine
max. Baudrate von 4MBaud angibt, dann ist das wohl schlichtweg
Schwachsinn.
Diese blöden Marketingfritzen vor dem
datasheet-desktop-publishing-programm!
Eigentlich meinen die damit (4Mbaud x 4) + 3 (oder auch 6).
Also Berti, glaube den Leuten im Forum und nicht dem Datenblatt. Das ist
nur Wichtigtuerei der Hersteller...
Zitat: Oder hast du einen Vorschlag, was man mit der Angabe der
maximalen
Frequenz einer Datenleitung anfangen sollte?
Abschirmung planen oder Einstreuungen in andere Schaltungsteile finden
:)
Bei SPI allerdings kann die Datenleitung theoretisch beliebig schwingen,
solange sie zur richtigen Taktflanke auf einem definierten Pegel ist...
MfG, Heiko