Forum: Mikrocontroller und Digitale Elektronik FlexRay mit MB88121 im SPI-Modus


von P. S. (pierred)


Lesenswert?

Hallo,

ich möchte ein bisschen mit FlexRay experimentieren und habe daran 
gedacht, mir einen einfachen Knotentyp mit einem MB88121C aufzubauen, 
den ich über einen µC aus im SPI-Modus ansteuere. Als Transceiver habe 
ich ebenfalls Muster vom TJA1080A.

DAS SPI-Interface ist mit maximal 8 MBit/s ansteuerbar. Welche 
Übertragungsraten sind somit auf dem FlexRay möglich, wenn man auch zwei 
Kanäle (A+B) betreiben möchte. Es soll ja erstmal dafür sein, um ein 
bisschen zu spielen. Ein Testboard zu kaufen kommt nicht in Frage, 
einerseits zu teuer und andererseits traue ich mir das schon zu da was 
Brauchbares aufzubauen.

Die Sache ist die, dass ich ein 32-Bit µC-System zur Verfügung habe, an 
das ich in einem Hardware-Einschubslot 10 Ausgangspins zur Verfügung 
habe. Da kann man so kleine Einsteckkarten für machen.

Laut dem Datenblatt des MB88121C würde ich im SPI Modus auf jeden Fall 
vom CC aus die Leitungen CS, SCK, SDO, SDI, INT1, INT2, INT3, INT4, INT5 
und RST an den µC legen. Die Resetleitung auch da dranzulegen macht ja 
nämlich großen Sinn!

Von den beiden TJA-Transceivern würde ich drei Leitungen an den µC 
legen, nämlich EN, STBN und ERRN. Diese braucht man ja, um den 
Transceiver vom Mikrocontroller aus in die entsprechenden Zustände zu 
bringen. Plus Diagnose. Das macht also zusätzlich 6 Leitungen.

Somit müsste ich auf jeden Fall mit 16 Leitungen an den µC gehen. Dies 
könnte ich mit einer Doppeleinsteckkarte realisieren, die ich mir 
schnell bastele. Wie die Schaltungen zu machen sind, kann ja unzähligen 
Beispielen und Experimentierboards entnommen werden. Als Schnittstelle 
zum physikalischen Medium habe ich an normale (9-polige) Sub-D-Stecker 
gedacht.

Ein paar Modus-Config-Eingänge des CC würde ich über Jumper 
programmieren/hardwaremässig einstellen.

Dann hat der CC aber noch etliche Diagnose/Debugging-Ein-/Ausgänge, 
nämlich 9 an der Zahl. Dies sollte auch sinnvoll an dem µC sein, damit 
man eine bessere Chance hat zu sehen, was im Controller los ist. Aber 
die könnte man ja separat an eine Karte führen, die einfach 10 Pins nach 
außen führt.

Oder meint Ihr das ist alles Käse und man sollte gleich im parallelen 
Modus drangehen? Oder eine µC mit integriertem CC nehmen? Dann hätte ich 
aber wieder zusätzliche Arbeit eine Kommunikation zwischen diesem µC und 
meinem Propeller zu vereinbaren und aufzubauen. Aus Audwandsgründen 
würde ich gerne darauf verzichten. Stichwort viel zu komplexe 
Statemachines.

Kann mir also jemand was zum MB88121C sagen, der schon Erfahrungen mit 
dem SPI Modus hat?

Vielen Dank für Eure Hilfe und Meinungen.

Gruß
Pierre

von peterguy (Gast)


Lesenswert?

> DAS SPI-Interface ist mit maximal 8 MBit/s ansteuerbar. Welche
> Übertragungsraten sind somit auf dem FlexRay möglich, wenn man auch zwei
> Kanäle (A+B) betreiben möchte.

Sofern du nicht in jedem Slot eine Botschaft sendest/empfängst langen 
die 8MBit am SPI locker für einen 10MBit FlexRay.
Erst wenn sehr viele Daten zu schaufeln sind könntest du Probleme 
bekommen.

Bevor du anfängst mit dem Basteln solltest du auf jeden Fall mal schauen 
wie du die Register des Controllers konfigurierst. Das ist ne ganze 
Batterie an Parametern, ohne Konfigurationstool wirds sehr zäh.

Achso, und für FlexRay brauchst du mindestens 2 Knoten (macht ja sonst 
auch keinen Sinn), sonst kommt noch nciht einmal ein Startup zustande.

von P. S. (pierred)


Lesenswert?

Ja, da sind ja Puffer drin in den CCs. Und so einen Kanal kann man ja 
runtersetzen, von der Geschwindigkeit oder eine große Anzahl statischer 
Slots festlegen und nur zwei werden erstmal in großem Abstand genutzt, 
dazwischen sind "Leerslots".
Das sind glaube ich 51 Register, die man zu konfigurieren hat. Da ich 
alles nicht mit diesen wilden Formeln von Hand ausrechnen möchte, die in 
der Spec. sind, kann man vielleicht ein Tool wie Eberspächer FlexConfig 
missbrauchen. ;-)

von peterguy (Gast)


Lesenswert?

Wegen der Konfiguration: Schau mal ob die freie Version des FlexConfig 
CHI files exportieren kann.
Diese files kannst du quasi direkt in deinen Code includieren und die 
Register beschreiben lassen. Glaube die Aufrufe in den CHIs waren so 
ähnlich  wie "Write32(<RegisterAdresse>, <Wert>);" aufgebaut.

von P. S. (pierred)


Lesenswert?

Genauso sieht es aus! Das habe ich mir auch so gedacht. Die freie 
Version kann das. ;-)

Es sind nach der E-Ray Spec. 51 Parameter, nicht Register. ;-)

von peterguy (Gast)


Lesenswert?

Na dann passt das ja schon.

Viel Erfolg beim Basteln!
Und wenns mal hakt nicht gleich aufgeben.
Der FlexRay ist nicht leicht ans Laufen zu bringen. Ein kleiner Fehler 
und nix geht mehr, z.b. ein Parameter falsch, Terminierung vergessen, 
Transceiver falsch verdrahtet, Leitungen nicht verdrillt, beim Startup 
was falsch gemacht, und und und... :-)

von P. S. (pierred)


Lesenswert?

Einen wichtigen Punkt hätte ich noch. Und zwar wird in den DBs anderer 
CCs (z.B. FR 4310) beim Layout angegeben, dass man einen Massestern 
machen soll. Beim MB88121 steht aber nix davon. Wie kommt das denn, dass 
das bei Freescale, auch für deren µCs so angegeben ist? Bei anderen aber 
nicht? Besondere Vorsichtsmaßnahme, da die Amerikaner Angst vor 
Gewährleistungsansprüchen haben? :-D
Irgendwelche Punkte, die man noch beachten sollte? Ich würde auf jeden 
Fall eine durchgängige Massefläche machen, um sicherzugehen, dass nichts 
stört.

von Tom (Gast)


Lesenswert?

Du brauchst wie o.g. mind. zwei Knoten um den Cluster überhaupt starten 
zu können. Beide müssen als startup-nodes und einer als cold-start 
configuriert sein.
Hmmm, ja - ein Bus-Analyse Tool ist VERY sinnvoll.

Ansonsten würde ich mal beim Hersteller deines FR-Controllers grasen und 
ein funktionierendes Beispielprojekt/code auf Deiner HW zum funzen 
bringen und im nexten Schritt dann die eigene App aufsetzen.
Ist schon ein ganzes Stück komplexer als CAN...

Die layout empfehlungen beim FR4310 sind wg. emi/emv wichtig und wenn 
ich recht erinnere wird der auch mit 40Mhz direkt getaktet, das ist 
schon keine NF mehr...

gutt lack, Tom.

von P. S. (pierred)


Lesenswert?

Ja, aber der MB88121 wird von außen z.B. mit einem 4 bis 20 MHz Quartz 
getriggert und macht das über eine interne PLL auf 80 MHz rauf. Etliche 
Mikrocontroller machen das ja auch so, weil es schwer wäre so eine 
Außenbeschaltung zu machen, Stichwort EMV. Könnte es vielleicht sein, 
dass dieser Massestern da beim Fujitsu schon intern mit im Gehäuse ist? 
Mich wundert es nur, dass der Freescale direkt den Massestern im Layout 
haben will und die anderen nicht. Mag sein, dass die anderen das nicht 
brauchen. Habe hohe Frequenzen sind da überall drin. Kann mir 
irgendjemand vielleicht schon ein paar Erfahrungswerte zum 88121 geben? 
Ich meine, wenn man die Strecken kurz macht, im cm-Bereich muss man da 
auch wahrscheinlich keine speziellen Leitungen verlegen.

von R.B. (Gast)


Lesenswert?

Weiss nicht, wie aktuell das Thema bei dir ist, aber ich hab erfahrung 
mit dem MB88121. Ich hab das ding im Parallelmode am MB91F467D dran 
gehabt. Massefläche drunter habe ich mir gespart, zum rumspielen reichts 
:-). Die Beschaltung kann man bei dem 467D Starterkit abkupfern. Dort 
sind aber RS485 Tranceiver verbaut (scheint ein workaround zu sein). Auf 
dem MB91F465X sind aber AMS8221 verbaut, die zu TJA1080 pinkompatibel 
sind. Ich hab auch die TJA1080 verbaut. Läuft alles insgesamt stabil. 
bei einer Kabellänge von 20cm brauch ich hier noch nicht mal eine 
Terminierung, da man diese Common Mode chockes so schlecht bekommt und 
schon gar nicht als Muster ;-). Nen zweiten Knoten brauchst du auf jeden 
Fall, sonst hat man weniger als zwei Sync Frames und es kommt kein 
Startup zustande. Für Zusatzknoten kann man entweder gleich zwei stück 
bauen, oder man nimmt so ne VN3600 Box oder so ne PCI karte. Damit kann 
der zweite Knoten simuliert werden und die Messages getraced werden. bei 
dem VN Treiber ist auch ne API dabei, wo man sich mal schnell so n Trace 
Prog zusammenschustern kann. Sonst müsste man das Teuere CANoe kaufen 
:-)

Gruß

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.