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
Nimm Serial, dh RS232, allenfalls USB-to-Serial
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.