SPI oder I2C COM als Slave am embedded Linux System für µC Kommunikation

Gast #6025489
Guten Morgen,

wir müssen auf der Uni ein Projekt starten, es geht um den 
Datenaustausch eines embedded Linux Board (imx6UL) mit einem µC 
Controller. Das System ist schon vorgegeben, µC muss Master sein imx6 
Slave. An sich habe I2C und SPI zur Verfügung.

Bin noch nicht ganz eingetaucht in die Materie aber soweit ich gegoogelt 
habe müsste die SPI Unit vom imx6 schon hardwäre-mässig SPI Slave 
unterstützen ist das richtig? I2C Slave geht am imx6 immer? Könnten man 
bei beiden Varianten einen Speicherbereich von der Hauptapplikation 
befüllen und eine COM Applikation arbeitet selbstständig und 
versenden/empfängt Daten als eigener Prozess und kommuniziert intern nur 
über den Speicher?

Die Kommunikation soll nicht GBs übertragen aber Pin-Toggeln kann ich 
auch nicht.
Hat da jemand Erfahrung und kann mir ein paar Tipps geben?

Vielen Dank

Mike
#6025577
Moin,

Guck', was die Treiber auf dem imx Board koennen/unterstuetzen. Selbst 
wenn's die Hardware kann, willst du nicht noch extra einen Kerneltreiber 
dafuer schreiben im Rahmen so einer Aufgabe.

Mike schrieb:
> Könnten man
> bei beiden Varianten einen Speicherbereich von der Hauptapplikation
> befüllen und eine COM Applikation arbeitet selbstständig und
> versenden/empfängt Daten als eigener Prozess und kommuniziert intern nur
> über den Speicher?

Ja, das waere wohl nicht der unvernuenftigste Weg.

Gruss
WK
Gast #6025770
Dergute W. schrieb:
> Ja, das waere wohl nicht der unvernuenftigste Weg.

Danke

Name H. schrieb:
> Nimm Serial, dh RS232, allenfalls USB-to-Serial

Das geht leider nicht, wir haben ein Board mit den Schnittstellen 
bekommen, auf beiden läuft auch schon was anderes I2C IO Expander und 
SPI ein Display also dürfen wir uns da nur ranhängen.
#6025795
Mike schrieb:
> Das geht leider nicht, wir haben ein Board mit den Schnittstellen
> bekommen, auf beiden läuft auch schon was anderes I2C IO Expander und
> SPI ein Display also dürfen wir uns da nur ranhängen.

Das klingt ziemlich unmöglich.
In der Regel kann nur eine Applikation ein Interface öffnen (fopen, 
fclose).
Unter einem OS wird es nicht möglich sein, daß mehrere Applikation sich 
ein Interface teilen.
Und das ein Linux überhaut I2C-, SPI-Slave-Treiber implementiert hat, 
klingt auch sehr unwahrscheinlich.

Generell ist SPI-Slave auf einer CPU sehr störanfällig, da SPI keinerlei 
Flußkontrolle hat. Der Master weiß also nie, ob der Slave überhaupt 
empfangsbereit ist bzw. ob er seinen Sendepuffer mit sinnvollen Daten 
gefüllt hat.
Gast #6025839
Peter D. schrieb:
> Mike schrieb:
>> Das geht leider nicht, wir haben ein Board mit den Schnittstellen
>> bekommen, auf beiden läuft auch schon was anderes I2C IO Expander und
>> SPI ein Display also dürfen wir uns da nur ranhängen.
>
> Das klingt ziemlich unmöglich.
> In der Regel kann nur eine Applikation ein Interface öffnen (fopen,
> fclose).

Im linux sind die Interfaces noch nicht verwendet, nur an den HW 
Schnittstellen selbst hängen schon andere Teilnehmer.
Gast #6038544
Peter D. schrieb:
> Mike schrieb:
>> Das geht leider nicht, wir haben ein Board mit den Schnittstellen
>> bekommen, auf beiden läuft auch schon was anderes I2C IO Expander und
>> SPI ein Display also dürfen wir uns da nur ranhängen.
>
> Das klingt ziemlich unmöglich.
> In der Regel kann nur eine Applikation ein Interface öffnen (fopen,
> fclose).
> Unter einem OS wird es nicht möglich sein, daß mehrere Applikation sich
> ein Interface teilen.
> Und das ein Linux überhaut I2C-, SPI-Slave-Treiber implementiert hat,
> klingt auch sehr unwahrscheinlich.
>
> Generell ist SPI-Slave auf einer CPU sehr störanfällig, da SPI keinerlei
> Flußkontrolle hat. Der Master weiß also nie, ob der Slave überhaupt
> empfangsbereit ist bzw. ob er seinen Sendepuffer mit sinnvollen Daten
> gefüllt hat.

Also /dev/i2c-X läßt sich problemlos von mehr als einem Prozess 
gleichzeitig bedienen.

Der Master liest doch bei SPI ein Datenwort ein, ober der Slave will 
oder nicht.
Steht da nüscht drin hatte der Slave noch keine Wort bereit gestellt, 
wird aber über das Eintreffen eines Wortes informiert und kann 
entsprechend handeln.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.