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
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
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.
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.
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.
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.
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.