-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: i2c bus

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    30.04.2010
    Beiträge
    8

    i2c bus

    Anzeige

    Hallo,

    ich möchte mehrere Ultraschallsensoren über den I2C-Bus anschließen. Reicht dafür eine 4x0,14 Telefonleitung aus? Darf diese dann etwa 2m bis 2,5m lang sein?

    Danke für die Hilfe!

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Du brauchst für den I²C Bus eigentlich nur 2 Leitungen (SCL und SDA). Wenn du die Sensoren dann aber über die Leitung mit Strom versorgen wollst reichen die 4 Adern. Ob die Dicke reicht musst du schauen. Aber dürfte eigentlich kein Problem sein, da die Sensoren nicht so viel Strom ziehen (würd ich vermuten). Wenn du jetzt paar 50 oder so mit den zwei Adern versorgen willst kann es von der dicke her etwas eng werden. Bei der Länge musst du mal nachgooglen, wie weit die Leitungen für I²C sein dürfen bevor die Pegel nicht mehr richtig erkannt werden.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Fast... 3 Leitungen Minimum, da eine gemeinsame Masse auch noch gebraucht wird, auch wenn die Sensoren ihre eigene Stromquelle haben. (Ist leider nicht differentiell wie beim CAN, wo tatsächlich CAN-H und CAN-L reichen)
    Bei der Länge können 2m auch noch gehen, wenn man nicht unbedingt mit Vollgas fährt, d.h. wenns Probleme gibt, einfach die Geschwindigkeit etwas senken; also z.B: 100 statt 400 kHz.
    #ifndef MfG
    #define MfG

  4. #4
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    mmmh das mit den 3 Leitungen ist mir auch neu. Ich hab bisher immer nur gelesen das 2 Signalleitungen gebraucht werden, die über Pull-Ups an 5V gelegt werden.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Naja schon; solche Erklärungen gibts viele, da wird aber dann vorausgesetzt (bzw. gern auch mal verschwiegen), dass alle Bus-Teilnehmer an der gleichen Versorgungsspannung hängen.
    (Was auf ner Platine bzw. in einem Gerät, dem Haupteinsatzgebiet des I2C, eigentlich immer der Fall ist).

    Beim I2C ist das Potential auf den Leitungen wichtig; und um das zu messen braucht man noch nen gemeinsamen Bezugspunkt.
    Ok, wenn SCL 5V mehr hat als SDA bzw. andersrum, dann isses ja klar. Nur wenn SCL = SDA ist... sind dann beide High oder beide Low?
    #ifndef MfG
    #define MfG

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    30.04.2010
    Beiträge
    8
    Erstmal danke für die Antworten. Ich habe allerdings keine Ahnung, wie ich die Geschwindigkeit vom I2C Bus senken kann. Ich steuere meinen US-Sensor über einen USB/I2C Adapter vom PC aus an. Kann mir da jemand weiterhelfen?

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Hm... bei nem AVR wärs ein Wert in nem Register.
    Wenn die PC-Software aber einigermassen anständig geschrieben ist, müsste es da die Möglichkeit geben, den Wert zu ändern.
    #ifndef MfG
    #define MfG

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    30.04.2010
    Beiträge
    8
    also die Software habe ich mit C geschrieben. Auf eine Distanz von 25cm funktioniert das auch einwandfrei. Jetzt versuche ich 4,5m und da kommt kein Signal am Sensor an. Und in meinem C-Programm weiß ich nicht, wie die Clock-Time zu berücksichtigen ist.

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Häng mal am Kabel testweise an einem Ende 5V und GND an und miss mal, was davon am anderen Ende noch rauskommt. Auf >4m dürfte der Widerstand des Kabels dann doch zu gross sein.

    Aber irgendwie musst du in dem Programm ja vorgegeben haben, welchen Takt du verwendest. Du bist ja mit dem USB-Adapter ja vermutlich der Master, d.h. es muss irgendwo ne Stelle geben, wo du den Takt für die SCL-Leitung (100kHz, 400kHz) erzeugst.
    Oder ist nur die Bediensoftware von dir, die den Adapter nur abfragt?
    (Bzw. welcher Adapter isses denn eigentlich?)
    #ifndef MfG
    #define MfG

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    30.04.2010
    Beiträge
    8
    Der USB/I2C Adapter ist von Devantech. Und soeben habe ich erfahren, dass bei diesem Adapter die SCL Frequenz auf 100kHz FEST eingestellt ist. Das heißt, bei diesem Adapter kann man die nicht ändern
    Trotzdem Danke für die Hilfe!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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