-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 27

Thema: I2C-Bus, analog <-> I2C

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    26.11.2007
    Beiträge
    36

    I2C-Bus, analog <-> I2C

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Ich stell zurzeit viele Fragen, weil ich als Anfänger noch ziemlich orientierungslos bin, was den richtigen Ansatz für mein Projekt betrifft. Ich möchte gern über folgenden Gedanken diskutieren und herausfinden, ob das mit akzeptablem Aufwand machbar ist. Sinn darin ist auch, etwas über Elektronik zu lernen.

    Ich möchte gerne den PC per USB als Controller nutzen, damit ich mit den Ressourcen erstmal auf der sicheren Seite bin. Sämtliche angeschlossene Roboterkomponenten sollen über einen I2C-Bus laufen, konkret Servos und Sensoren. So könnte man die Anwendung beliebig und einfach erweitern.

    Was wäre dafür eine geeignete Hardware, also das Interface USB <-> I2C?

    Macht dieses Konzept Sinn, oder ist I2C zu langsam für max. 100 Komponenten, die alle irgendwas auf den Bus schreiben bzw. zur "gleichen" Zeit abgefragt werden?

    Falls das alles kein Problem darstellt, ist eigentlich nur noch eine Frage offen. Da man auf dem Bus nur digital arbeiten kann, müssten Analogauswertungen in digitale Signale umgewandelt werden, also jeder analoge Sensor braucht eine eigene Elektronik, um am Bus teilnehmen zu können. Die Komponenten brauchen dann auch eindeutige IDs usw. Welches Tutorial könnt ihr mir empfehlen (auch Buch), um sowas zu basteln?

    So far,

    Ben

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die umsetzung USB-I2C sollte mit einem FT2232 gehen, wenn am PC die richte Software hat. Allerdings sind die FT.... micht gerade anfängerfreundlich zu löten. Das trift leider auf die meisten USB Chips zu.
    Die einfache alternative einen fertigen USB-RS232 Converter dazwischen zu nehmen.

    Als rs232-i2C eigent sich dann eine µC. Der kann dann auber auch gleich ein paar Servos und den AD wandler mit erledigen. Erst wenn man mehr braucht sollte man die am I2C haben.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.03.2005
    Ort
    Ulm
    Alter
    30
    Beiträge
    519
    Ich denke du setzt die Ansprüche etwas zu hoch an.

    Zumindest verstehe ich nicht wieso du einen Bus für max. 100(!!) Komponenten auslegen willst? Was ergibt das noch für einen Sinn? 3,4,5 Komponenten am I2C-Bus sind Okay. Meinetwegen auch noch 10, aber alles darüber ist in den meisten Fällen ein Fehldesign des Systems.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    26.11.2007
    Beiträge
    36
    Diesen FT-irgendwas werd ich mir anschauen. Ich habe bisher nur erfolgreich Conradbausätze zusammengelötet, also ein bisschen Erfahrung ist schon da. Was ich nicht kann, lern ich eben

    Vom mC will ich weg, denn langfristig werden mir da die Ressourcen zu knapp, und es ist relativ umständlich zu programmieren. Ich will von Anfang an was generisches aufbauen, damit mich das später nicht mehr belastet und von der eigentlichen Problematik abhält. Ich würd gern wissen, ob es wie beschrieben Sinn macht und umsetzbar ist. Falls ja, würd ich sogar einen Fachkundigen engagieren, um mir die eine oder andere Schaltung dazu zu bauen.

    Warum ist I2C nicht geeignet?
    Ich hab mir die Spezifikation durchgelesen und würde behaupten, das ist sogar sehr gut geeignet. Theoretisch lassen sich damit 10Bit adressieren, also weit mehr als 100 Slaves. Die Geschwindigkeit ist auch enorm, wobei ich das alles nur als Laie beurteilen kann.

    Was wäre denn aus deiner Sicht die bessere Methode?

    Auch ne Nachteule?

  5. #5
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    So doll ist die Geschwindigkeit nicht, vor allem wenn da mehr Geräte dran hängen geht dan nicht mehr die volle Geschwindigkeit. Wie Schon gesagt, viel mehr als 10 macht selten Sinn, oft hat man weniger. Auch mit I2C muß man das auch nocht irgendwie Programmieren. Gerade Echtzeit Sachen gehen da am PC eher schwerer als mit einem µC.

    Wenn man schon so viele Geräte zusammen am PC haben will, dann schon besser auf USB oder LAN Basis. Wobei USB mit so viel Mäusen auch schon mal Probleme machen kann....

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.03.2005
    Ort
    Ulm
    Alter
    30
    Beiträge
    519
    Mit I2C lassen sich zwar sehr viele Geräte anschließen, das stimmt...
    Aber mir stellt sich die Frage in wie weit diese vielen Geräte überhaupt Sinn machen...

    Man kann natürlich 10 I2C-A/D-Wandler, 3 I2C-EEPROMs und nochmal 5 I2C-Servosteuerungen an einen Bus hängen. Man könnte das aber genausogut mit einem einzigen Microcontroller lösen.
    Und genau da liegt der Punkt auf den ich raus will.
    Wer so viele Geräte an einem Bus betreibt hat einen schweren Denkfehler im System. Dann hat man nämlich genau das oben beschriebene nicht beachtet.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    26.11.2007
    Beiträge
    36
    Zitat Zitat von Besserwessi
    So doll ist die Geschwindigkeit nicht, vor allem wenn da mehr Geräte dran hängen geht dan nicht mehr die volle Geschwindigkeit. Wie Schon gesagt, viel mehr als 10 macht selten Sinn, oft hat man weniger. Auch mit I2C muß man das auch nocht irgendwie Programmieren. Gerade Echtzeit Sachen gehen da am PC eher schwerer als mit einem µC.
    Echtzeit brauche ich beim Controller nicht. Wenn ich z.b. PWM brauche, dann erzeuge ich das einfach dort, wo es benötigt wird, nämlich beim Servo. Per I2C will ich nur Stellkommandos schicken und Feedback bekommen. Das darf asynchron sein. Außerdem müsste ich im Falle von vielen Komponenten mit mehreren mC arbeiten, das ist mir dann wirklich zu umständlich.

    Zitat Zitat von Besserwessi
    Wenn man schon so viele Geräte zusammen am PC haben will, dann schon besser auf USB oder LAN Basis. Wobei USB mit so viel Mäusen auch schon mal Probleme machen kann....
    LAN würde mir auch gefallen, aber m.E. ist das zuviel Overhead. Oder ist das so einfach wie I2C? Ich muss nur kurze Strecken überbrücken.

    Eine Alternative wäre CAN. Allerdings kenne ich da den Aufwand auch nicht. Gibt's ein USB-CAN-Interface?

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    26.11.2007
    Beiträge
    36
    Zitat Zitat von Foooob
    Man kann natürlich 10 I2C-A/D-Wandler, 3 I2C-EEPROMs und nochmal 5 I2C-Servosteuerungen an einen Bus hängen. Man könnte das aber genausogut mit einem einzigen Microcontroller lösen.
    Und genau da liegt der Punkt auf den ich raus will.
    Wer so viele Geräte an einem Bus betreibt hat einen schweren Denkfehler im System. Dann hat man nämlich genau das oben beschriebene nicht beachtet.
    Was genau ist denn daran fehlerhaft? Es ist einfach eine andere Architektur in meinem Augen. Bei meiner Anwendung bräuchte ich dann mehrere mC, die sich auch noch untereinander verständigen müssten. Der PC erscheint mir als mC in diesem Fall am sinnvollsten.

    Ich würde mich freuen, wenn du mir nochmal genauer erklären könntest, wo bei mir der Denkfehler liegt. Denn ich bin Anfänger auf dem Gebiet der Elektronik. Als Softwareentwickler sehe ich das als modulares System, für das ich jederzeit weitere Module/Plugins entwickeln und anschließen kann. Vielleicht ist auch einfach nur die Wahl des Bus' falsch?

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.557

    Re: I2C-Bus, analog <-> I2C

    Hi Ben,
    Zitat Zitat von Normalo
    ... als Anfänger ... über folgenden Gedanken diskutieren ...
    Zitat Zitat von Normalo
    ... also ein bisschen Erfahrung ist schon da ...
    Darfs vielleicht ein bisschen mehr sein?

    Zitat Zitat von Normalo
    ... Ich hab mir die Spezifikation durchgelesen und würde behaupten, das ist sogar sehr gut geeignet ...
    Dann ist doch alles in Ordnung. Also hinsetzen und machen. Vielleicht sind die anderen blos zu ängstlich.

    Zitat Zitat von Normalo
    ... Wenn ich z.b. PWM brauche, dann erzeuge ich das einfach dort, wo es benötigt wird, nämlich beim Servo ...
    Zitat Zitat von Normalo
    ... Vom mC will ich weg, denn langfristig werden mir da die Ressourcen zu knapp, und es ist relativ umständlich zu programmieren ...
    Das finde ich gut. Schreib mal bitte, wie Du das machst - wir sind hier sicher viele, die sehr lernbegierig sind. Und vielleicht gibt es bei irgendeinem noch unbekannten Lieferanten dieses schicke SPIC (self programming IC) von dem wir alle träumen.
    Ciao sagt der JoeamBerg

  10. #10
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Es gibt zwar eine Menge verschiedener Ics für I2C, aber die sind doch oft recht starr. Man hat zum Beispiel je IC einen sehr kleinen Addressbereich, kann also in der Regel höchstens 8 gleiche (oft sogar weniger) anschließen. Auch für das Beispiel Servo per PWM steuern wüßte ich keinen andenen passenden I2C Chip außer einem µC. Man wird also gerade wenn man I2C verwendet dazu übergehn müssen mehrere µC zu benutzen.

    Die verlagerung des ganzen Progrmmes auf den PC hat auch probleme. Wenn esum die Hardwareansteuerung geht hilft einem das Betreibssystem eigentlich eher wenig, sondern kann eigentlich nur stören.

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •