Wie XMOS X-Link an STM32F4 anschliessen

Gast #3697287
Lesenswert?

Hallo,

ich brauche für ein Projekt eine Art Coprozessor.
Dafür wollte ich einen XMOS Prozessor nehmen.

Die Daten vom XMOS kommen aber recht flott und müssen entsprechend 
eingelesen werden.
Ich habe auf dem XMOS auch keinen Platz mehr für einen SPI Task, wenn 
der überhaupt schnell genug wäre.
Hatte auch schon überlegt alles mit XMOS zu machen, aber der STM32F4 hat 
halt fast alles was ich brauche als Hardware drin.
Mir fehlt halt nur eine Schnittstelle und der XMOS macht noch gleich 
eine Vorverarbeitung um den STM zu entlasten.

So nun brauche ich aber eine Schnittstelle und da hat XMOS diesen 
schönen X_LINK.
Über den wollte ich den XMOS auch gleich booten.

Nur wie kann man den X-LINK nutzen?

Es soll so was für den AVR geben, nur der Code ist unauffindbar.

Viele Grüsse,
Uli
Gast #3698026
Lesenswert?

Kann mir keiner helfen?


Ich bin ja nicht untätig, ich glaube das der Empfang wohl am schnellsten 
mit einem Pin-Change Interrupt gehen müsste. Wobei man dann irgendwie 
die Daten weiterleiten muss.
Aber wie ich das nun so hin bekomme das ich kaum Systemlast produziere 
kann ich noch nicht sagen

Das Senden ist ja mehr ein abarbeiten der Bits.
Aber auch hier suche ich noch was ohne viel Systemlast.

Hat jemand eine Idee?

Uli
Gast #3698160
Lesenswert?

> ich glaube das der Empfang wohl am schnellsten  mit einem Pin-Change
> Interrupt gehen müsste.

Da bist Du wohl auf dem Holzweg.
Mit einem Interrupt per Flankenwechsel duerfte das eher die langsamste
Methode werden da Daten einzulesen.

Wenn es im Angebot der STM32-Peripherie nichts passendes gibt:
Schraub Dir ein paar Schieberegister an den ARM.
Wenn die voll sind, dann waere ein Interrupt ja vielleicht OK.
Gast #3699325
Lesenswert?

Den Code für den AVR hatte ich schon gesucht aber nie gefunden, Danke.

Der Code basiert aber auch auf Pin-change.
Das das nicht das Optimum ist, ist auch mir klar, aber SPI geht halt 
nicht (nichts mehr frei).
Ob wohl mir das sehr entgegen kommen würde, alleine schon weil der STM32 
dann nicht viel damit zu tun hat außer nach dem einlesen die Daten zu 
verarbeiten.
Von XMOS aus ist es ein einfaches Senden zu einem andern Kern, ohne 
Systemlast.

Wenn der STM32 ein 16 Bit Parallel SPI Interface hätte dann könnte ich 
den Coprozessor auch mit einem zweiten STM32 machen.
Es kommen aber ca. 6 Mega Byte pro Sekunde auf der Schnittstelle an.
Die werden durch den XMOS auf ca. 500KB/sec reduziert.

An einen FPGA hatte ich auch schon gedacht, aber da kenne ich mich nicht 
aus.
Gut ist kein Grund, kann man lernen, aber XMOS & STM32 kenne ich.

Ein paar Schieberegister werden nicht gehen, wüste jetzt nicht wie man 
diese System umbiegen könnte. Da braucht man schon etwas mehr Logik.
Die Bits kommen etwas anders rein (2 Draht):
Es gibt eine Leitung für "0" und eine für "1".
Ein Flankenwechsel an einer Leitung entspricht einer 0 oder 1.
Also Leitung "0" ->Lo->Hi->Lo->Hi --> macht 4 Wechsel auf der Null also 
-> 0000.
Gast #3700350
Lesenswert?

Ich versuche mal mein Glück mit dem Pin-Change.
Der STM32 ist ja nicht gerade langsam und sollte das schaffen.
Wenn mir das zuviel Systemzeit schluckt dann überlege ich weiter.

Nebenbei schaue ich noch mal ob ich nicht einen Task frei bekomme.

Ein Zweiter XMOS wollte ich nicht, wenn dann kommt ein grösserer drauf.
Auch wenn das dann schwerer zu löten ist.
Alternativ könnte ich ja auch einen AVR dazwischen hängen, den Code habe 
ich ja jetzt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren