Forum: Mikrocontroller und Digitale Elektronik SPI mit 10 MBit


von Sacha U. (sacha148)


Lesenswert?

Hallo zusammen,

folgendes Problem stellt sich mir.
Für eine Projektgruppe an der Uni benötige ich eine Möglichkeit Daten 
seriell mit 10 MBit zu senden. Da ich privat mit dem AVR und LPC arbeite 
würde ich gern einen der Beiden benutzen. Leider finde ich nichts 
darüber hier im Forum. Nur 10 MBit Netzwerkanschluss. Aber nichts über 
10 MBit SPI oder IIC.

Kann mir da jemand einen Tip geben ober es mit einem der Beiden µC 
überhaupt geht.

Gruss Sacha.

von A.K. (Gast)


Lesenswert?

10MHz I2C gibt es nicht.

AVRs können SPI als Master bis CLK/2 und als Slave bis CLK/4. Master 
geht also mit den neueren 20MHz-Typen bis 10MHz, Slave nicht.

LPCs können mit dem SSC als Master bis CLK/2, als Slave bis CLK/12. 
Master geht also bis 30MHz, Slave bis 5MHz.

Bist du dir sicher, dass mit deiner seriellen Verbindung 2-3 Leitungen 
gemeint sind, d.h. Takt plus Daten (evtl. 2x Daten bei SPI), nicht nur 
eine Leitung?



von Ralph (Gast)


Lesenswert?

Hallo

SPI mit 10 MBit ist möglich.

Ich habe das zwischen zwei TMS 470 von TI schon gesehen.
Die TMS 470 sind ARM 7 TDMI genauso wie die LPC 2XXX Serie, also sollten 
die LPC das auch können.

Wichtig ist jedoch das ein DMA Modul vorhanden ist, das die SPI direkt 
bedienen kann.

Ohne DMA kannst du das Byte oder Wort zwar mit 10Mbit übertragen, 
bekommst jedoch sehr lange Pausen zwischen den einzelnene Übertragungen.

von Sacha U. (sacha148)


Lesenswert?

Eigentlich benötige ich nur 2 Leitungen(Daten).
Es geht darum Daten über einen Flexray Bus zu schicken. Da wir bis an 
seine Grenze(10 MBit) gehen müssen, muss ich leiber nen 10 MBit Signal 
generieren und empfangen evtl. auch analysieren (BitFehlerRate).
Die 30 MHz Master reichen da zum senden völlig aus aber wenn er nur mit 
5 MHz empfängt wird es schon schwierig.

von A.K. (Gast)


Lesenswert?

@Ralph: Für SPI ist die Peripherie zuständig, nicht der Prozessor. Ob 
das also ARM7TDMI sind, ist für den SPI-Takt nicht relevant.

von A.K. (Gast)


Lesenswert?

Master/Slave != Senden/Empfangen. Nur ist bei SPI immer einer der Master 
und einer der Slave, in welcher Richtung auch immer.

Wenn also bei dir an jedem Mikrocontroller ein FlexRay-Controller sitzen 
sollte, der per SPI angespeochen wird, dann ist sehr wahrscheinlich der 
Mikrocontroller der Master und der FlexRay-Controller der Slave. Dann 
scheiden nur die ganz alten LPCs mit ihrem 7,5Mbps-SPI aus, alle andere 
können schnell genug.

von sepp (Gast)


Lesenswert?

@Sascha

Wenn ihr die volle 10Mbit über Flexray ausnutzen wollt werdet ihr 
entweder eine deutlich höhere Bandbreite über SPI benötigen oder einen 
hohen Aufwand treiben müssen, um die vollen 10 Mbit über SPI zu 
übertragen(Double Buffer/ DMA).

Wenn Ihr wirklich die BitFehlerRate von FlexRay messen wollt, dann 
solltet ihr beachten das euer Messsystem eine deutlich niedrigere Bit 
Fehler Rate als FlexRay haben muss. Das heist ihr müsst eine sehr gute 
Fehlererkennung bei SPI einsetzen, sonst messt ihr nachher die Bit 
Fehler Rate vom SPI Bus oder eueren uC.



Ich denke das SPI für euere Zwecke vielleicht nicht das richtige 
ist.Weiterhin würde ich euch zu einem etwas schnelleren 32Bit Controller 
raten. Also die neuren V850(80 MHZ)oder ARM9...

Was für einen FlexRay Controller wollt Ihr einsetzen?



von sepp (Gast)


Lesenswert?

Welche UNI?

von Sacha U. (sacha148)


Lesenswert?

Nun stellt sich nur ein Problem:
Wenn ich SPI richtig verstanden habe erzeugt der Master den Takt zur 
synkronisation auf der Clockleitung.
Nun arbeitet der Flexray Transsiver eher als Pegelumsetzter und ist 
Taktunabhängig.
Zum senden ist das Unbedenklich, aber beim Empfang wird es schwierig 
ohne weiteren Schaltungsaufwand. Zumal evtl. auch die Signallaufzeiten 
berücksichtig werden müssen.

von A.K. (Gast)


Lesenswert?

Mit FlexRay wird es sein wie mit CAN, Ethernet, usw: da noch kein µC 
selber FlexRay beherrscht, wird sich zwischen µC und dem 
FlexRay-Transceiver ein FlexRayController befinden müssen. Und ich habe 
so den Verdacht, dass es genau der ist, der dir in deinem Konzept noch 
fehlt. Und der den Hautpaufwand ausmacht.

von Sacha U. (sacha148)


Lesenswert?

@ sepp
Uni Dortmund.
In dem Projekt geht es ersteinmal darum über einen 
Signalgenerator(gesteuert über USB) ein 10 MHz Signal zu erzeugen. 
Dieses mittels TJA1080 übers Flexray zu übertragen und mittels DigiOszi 
(auch USB gesteuert und ausgelesen) zu messen. Der TJA1080 wird, von 
einer zu entwickelnder IO Karte gesteuert.

Soweit alles kein Problem. Mathlab steuert, misst und wertet alles aus.

Nun dachte sich der Prof. SG und Oszi kann man sich hier sparen und 
alles via µC machen(in Rahmen seiner Möglichkeiten, allso keine 50MHz 
abtastung).

von Sacha U. (sacha148)


Lesenswert?

@A.K.

Genau hier setzt der µC ein. Flexray ist einwenig aufwendiger als CAN 
oder LIN. Das Protokoll kann der µC übernehmen und das Steuerung des TJA 
kann auch ein Mega8 ganz ohne Probleme. Aber die 10 MBit sind mein 
Problem!

von sepp (Gast)


Lesenswert?

>Mit FlexRay wird es sein wie mit CAN, Ethernet, usw: da noch kein µC
>selber FlexRay beherrscht, wird sich zwischen µC und dem
>FlexRay-Transceiver ein FlexRayController befinden müssen.

Doch die gibt es schon.

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.