Hallöchen, Problem: I²C Bus System besitzt 2 Master. Es kann nur der Raspberry als als Lösung betrachtet werden. Mein Bus System besteht aus 2 Master, das System an sich wird sie nicht ändern. Dabei handelt es sich um Microcontroller - ein spezieller und ein Raspberry PI. Als Kommunikationsschnitstelle wird nur I2C unterstützt. Nun bin ich am überlegen wie der PI als Slave im Bus-System implementiert werden kann. Nach stunden Recherche bin ich auf diesen Link gestoßen "https://raspberrypi.stackexchange.com/questions/76109/raspberry-as-an-i2c-slave", dort wird beschreiben wie mit der Bib "pigpio" ein Slave "emuliert" wird. Nur leider bekomme ich es nicht kompiliert =(. Vielleicht kennt ja noch irgendjemand eine alternative Lösung. Viele Grüße, Rhaudi
Rhaudi X. schrieb: > Nur leider bekomme ich es nicht kompiliert =(. Meine Glaskugel sagt, dass du vergessen hast die -pigpio lib zu linken
Joan (pippio Creator) ist sehr aktiv im RPi Forum. Einfach dort fragen. -- Würde mich aber schon sehr überraschen wenn sich die Lib nicht kompilieren läßt. Anm: 1: Der "BSC Slave" des RPi ist sehr schlecht dokumentiert. Den SPI Slave bekommt man gar nicht zum Laufen. Mit dem I2C Slave scheint Joan aber Erfolg gehabt zu haben. 2: Pigpio läuft im Linux Userland. Da der "BSC Slave" kein DMA unterstützt ist daher mit Linux/Userland-typischen Aussetzern zu rechnen.
Rhaudi X. schrieb: > Als Kommunikationsschnitstelle wird nur I2C unterstützt. > [..] Vielleicht kennt ja noch irgendjemand eine alternative Lösung. u.U. Unterstützung mit einem µC als I2C <-> Rs232 Wandler anschaffen. Vom Prinzip eignet sich I2C (Langform: "IC 2 IC") nicht sonderlich für I2P, da es zwar sehr einfach ist aber praktisch sofort reagiert werden muss was für PC (auch einfache wie der RP) sehr schwierig ist. Ein µC der praktisch ein IC für I2C UND ein IC für Rs232 eingebaut hat (der PPi hat praktisch auch ein Rs232-IC) eignet sich damit sehr gut um beim RPi I2C nachzurüsten. Die "Linux/Userland-typischen Aussetzer" die von typischen Anwendern berichtet werden die gewohnheitsmäßig Hardware im Userland installieren, sind eher die Folge der User/Os Kombination. Bit-Banging im Userland kann etwas funktionieren, aber wenn das betroffene Userland ansonsten ähnliche Aussetzer hat, dann hat der Landverwalter davon schon vorher ähnliches auf dem Land laufen.
Dirk B. schrieb: > I2C (Langform: "IC 2 IC") Gibt es dafür eine Quelle? Das kannte ich noch nicht. Dirk B. schrieb: > Die "Linux/Userland-typischen Aussetzer" die von typischen Anwendern > berichtet werden die gewohnheitsmäßig Hardware im Userland installieren, > sind eher die Folge der User/Os Kombination. Direktzugriff auf Peripherie aus dem Userland ist nicht "echtzeitfähig". Dazu kommt, dass der Zugriff auf die Interrupts fehlen. Was man allerdings hin bekommen kann, ist Daten über DMA zu streamen. Streams können so in Echtzeit aus dem Userland gesendet und empfangen werden. Dialoge bekommt so aber nicht zuverlässig hin (oder nur sehr trickreich über CB chains). Für den BSC Slave sind die DREQ signals 8 und 9 vorgesehen. Dann sagt aber §11.2: "BSC and SPI controllers do not have DMA connected, hence DMA is not supported." Die Alternative wäre es Joans Lib als Vorlage zu nehmen und selbst einen Kernel Treiber zu schreiben. Wer es sich denn zutraut.
Mikro 7. schrieb: > Dirk B. schrieb: >> I2C (Langform: "IC 2 IC") > > Gibt es dafür eine Quelle? Das kannte ich noch nicht. https://de.wikipedia.org/wiki/I%C2%B2C ("I²C, für englisch Inter -(I)ntegrated (C)ircuit) praktisch ist I die Abkürzung für IC und C die Abkürzung für IC wenn I schon für eine andere Abkürzung benutzt wird. Mikro 7. schrieb: > Dirk B. schrieb: >> [Vom Prinzip eignet sich I2C ..nicht sonderlich für >> I2P, da es .. für PC (auch einfache wie der RP) sehr schwierig ist]. >> Die "Linux/Userland- typischen Aussetzer" die von typischen Anwendern >> berichtet werden die gewohnheitsmäßig Hardware im Userland installieren, >> sind eher die Folge der User/Os Kombination. > > Direktzugriff auf Peripherie aus dem Userland ist nicht "echtzeitfähig". u.a. deswegen ist eine halbwegs lauffähige Softwarevariante *sehr schwierig*. Wenn User von typischen Aussetzern berichten, dann ist das eher die Kombination. > Was man allerdings hin bekommen kann, ist Daten über DMA zu streamen. Wenn man DMA (Langform: Direct memory access) dann noch mit einem IC unterstützt das einerseits das einerseits 2IC und andererseits 2memory bereitstellt, dann könnten Daten sogar aus einem IC2IC stammen, bei dem auf einzelne Bits/Flanken regiert werden muss. DRM (Langform: Direct reaction access) mit einer 20er Packung Flipflops wäre da deutlich zielführender. > Die Alternative wäre es Joans Lib als Vorlage zu nehmen und selbst einen > Kernel Treiber zu schreiben. Wer es sich denn zutraut. Die Alternative mit einem mehrbitigem OS auf einzelne bits zu reagieren dürfte wohl von Frau Merkel stammen (historisch: "alternativlos") Selbst 8-bittige µC lassen sich deutlich sicherer mit einem Co-Schieberegister aus ca. 10 FlipFlops programmieren um nicht jedes 1-Bit von Hand bzw. von 8++-bit CPU verarbeiten zu müssen. Die Alternative für grob 50cent einen µC zu organisieren und mit einem 20-Zeiler den µC zum Transceiver zu konfigurieren, dürfte bei denjenigen die sich so ein Spiel zutrauen ein zufälliges spielen unwahrscheinlich machen.
Dirk B. schrieb: >>> I2C (Langform: "IC 2 IC") Ok, es handelt sich also um deine Interpretation der Schreibweise von I2C (Inter Process Communication würdest du dann als Process To Process Communication schreiben.) Dirk B. schrieb: > Wenn User von typischen Aussetzern berichten, dann ist das > eher die Kombination. Ich habe ehrlich gesagt nicht verstanden was du sagen willst, daher auch mein Folgeposting; und es ist mir nach deiner Antwort immer noch nicht klar. Ist aber nicht wichtig. Wenn der TS Fragen hat, wird er sich schon melden.
:
Bearbeitet durch User
Mikro 7. schrieb: > Dirk B. schrieb: >> I2C (Langform: "IC 2 IC") > > Gibt es dafür eine Quelle? Das kannte ich noch nicht. https://de.wikipedia.org/wiki/I%C2%B2C ("I²C, für englisch Inter -(I)ntegrated (C)ircuit) praktisch ist I die Abkürzung für IC und C die Abkürzung für IC wenn I schon für eine andere Abkürzung benutzt wird. Mikro 7. schrieb: > Dirk B. schrieb: >>>> I2C (Langform: "IC 2 IC") > Ok, es handelt sich also um deine Interpretation der Schreibweise von I2C Falls du einen barrierefreien Zugang zu Wikipedia und dem Text auf den du reagiert hast gehabt hättest, dann hättest du nicht nur auf dein "Ok" antworten müssen, sondern könntest dein Problem eine ausgeschriebene Abkürzung als längere Form zu verstehen und deine Unkenntnis, dass I2C nicht als "IC to Computer" geplant war, eigenständig schreiben. > Dirk B. schrieb: > [Direktzugriff auf Peripherie aus dem Userland ist nicht "echtzeitfähig". u.a. deswegen ist eine halbwegs lauffähige Softwarevariante *sehr schwierig*. ] >> Wenn User von typischen Aussetzern berichten, dann ist das >> eher die Kombination. > > Ich habe ehrlich gesagt nicht verstanden was du sagen willst, daher auch > mein Folgeposting; Falls du ehrlich schreiben könntest welchen Text du nicht verstehen kannst, dann könntest du die Aussetzer beim kopieren bemerken. Du bist wohl eher der ehrliche Sprecher der bei der Anforderung ein Wort ehrlich zu schreiben etwas überfordert ist. Wenn du auf gesprochene Sprache angewiesen bist, dann sind "daher" Folgeposting bei textbasierten Foren eine klassische Suchform. > Ist aber nicht wichtig. Wenn der TS Fragen hat, wird er sich schon > melden. wenn du so unwichtig schreiben musst, dass du nicht mehr weißt warum du nach der Quelle gefragt hast und was diese belegen soll, dann kannst du dich wohl nicht mehr an das Ursprungsposting erinnern. Wenn du dich ehrlich auf eine schriftliche Frage konzentrieren könntest, dann müsste es nicht bei deinem "Ok" bleiben.
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.