- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 10

Thema: zeitmessung über I2C Bus

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    12.09.2007
    Beiträge
    10

    zeitmessung über I2C Bus

    Anzeige

    E-Bike
    Hallo,
    um einmal die Möglichkeiten zu checken, folgende Frage:

    Als Zeitmesssystem für eine Slotcar-Bahn möchte ich einige Lichtschranken (ca. 15 - 20) vom PC aus auslesen können.
    Mein Plan: Fototransistoren an -> [????] -> I2C bus Nachricht mit ID und Zeitstempel (ms genau!)

    Frage: was muss hinter [????] stecken? Gibt es spezielle I2C Chips? Muss man Mikrocontroller programmieren (was ist die einfachste / billigste Lösung?)

    Ich plane I2C auch noch für andere Aufgaben einzusetzen, z.B. Bahnspannung, Ample LEDs, etc.

    Vielen Dank für Hilfe!

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Wie groß sind die Entfernungen, I2C ist nur für kurze Distanzen geeignet.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    12.09.2007
    Beiträge
    10
    bis zu 4 - 5 m.
    Ich finde nur: "In typical applications, the length is a few meters (9-12ft)."
    Hat jemand praktische Erfahrung bzgl. der Länge / kann Empfehlungen für die Verkabelung und max. Übertragungsrate geben?
    Gibt es Alternativen? One-Wire Bus, CAN Bus z.B.?

    Danke, Dirk

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Ich bin über 50cm noch nicht hinausgekommen. Es wurde aber hier und auch in anderen Foren diskutiert und der Schluß daraus war immer, wenn man das geschlossene Gerät, Gehäuse, verlassen muss ist I2C ungeeignet. Ich kenne sonst nur RS485, vieleicht findet sich hier jemand der zum Thema CAN-Bus etwas sagen kann.

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Crazy Harry
    Registriert seit
    15.01.2006
    Ort
    Raum Augsburg - Ulm
    Beiträge
    1.308
    Ich habe einige LCDs über I²C (PCA9555D) laufen mit 400 kBit und Längen bis 2.3m. Geschirmtes Kabel und Abschlußwiderstände 1 kOhm.

    Es gibt auch Repeater die Kabellängen bis in den km-Bereich erlauben.
    Ich programmiere mit AVRCo

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.11.2003
    Beiträge
    813
    Hallo
    Wieso willst du denn unbedingt I2C ?
    Sind die Lichtschranken so inteligent?
    Oder nuzt du zusaetzlich noch RFID oder aehnliches zum erkennen deines Autos?
    Wenn es nur die Lichtschranken sind wuerde das vielleicht auch ueber den kaskadierten Lpt-Port des PC's gehen.
    MFG

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    12.09.2007
    Beiträge
    10
    Moment - jetzt mal logisch: wenn ich die LS über Treiber und 4m an den Lpt anschließen kann, warum dann nicht auch an einen I2C Chip ???
    I2C zur Überbrückung der Distanz war wohl ein Denkfehler meinerseits.

    Mir gefiele das Design wesentlich besser, als etliche Par.Port Karten in den PC einzubauen (und die ganzen dicken Kabel / außerdem geht in den alten Aldi-Rechner eh nur noch eine PCI Karte rein, womit ich kaum auskomme, wenn ich auch noch Augänge für Startampel, Weichen, etc. brauche.)

    Zum anderen erwarte ich mir erheblich einfachere Software PC-seitig, um die notwendige Genauigkeit und Zuverlässigkeit hin zu bekommen (müsste sonst soetwas wie RealTime-Linux machen, denke ich.) Dazu benötige ich eben die [????] Lösung (s.o.).

    Drittens habe ich bereits Schaltung und Software, die mittels I2C die Bahnspannung steuert.

    Gruß Dirk

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    12.09.2007
    Beiträge
    10
    Muss ich aus dem Fehlen von Antworten auf meine eigentliche Frage schließen, dass es keine integrierte Schaltung gibt, die auf ein Signal an einem Input eine I2C Nachricht mit einem Zeitstempel absetzt?

    Na gut, programmiere ich halt einen µC. Ich würfele mal zwischen PIC und AVM.

    Falls noch jemand einen Tipp hat - immer sehr gern !!!

    Gruß Dirk

  9. #9
    Moderator Roboter Genie
    Registriert seit
    26.08.2004
    Beiträge
    1.228
    Hi!
    Also wie schon geschrieben würde ich auf CAN-Bus oder RS-485 setzten und nicht auf I²C.
    Die Nachricht zum Start des Timers muss auch recht zügig gesendet werden, und zwar am besten gleichzeitig an alle (vllt. gibt's da so eine Art Broadcast-Befehl der an alle geht). Bei der Zeitmessung müssen auch relativ genaue Taktquellen verwendet werden, die max. 1ms pro Zyklus falsch gehen. Nimmt man jetzt an, dass die max. Zeit 1000s (16 Minuten) beträgt, muss der Takt eine Abweichung von unter 1 ppm haben (hab mich hoffentlich nicht verrechnet). Ein normaler Grundton-Quarz von Reichelt hat ca. 30ppm Abweichung.

    Falls du dich doch für I²C entschieden hast, dann kannst du das Signal von der Lichtschranke (wenn es Logik-Kompatibel ist) mit einem PCF8574 oder PCA9557 erfassen. Bei den Bausteinen handelt es sich um 8-I/O-zu-I²C Konverter über den du die Pins lesen und schreiben kannst. Der PCF kostet bei Reichelt 1,75€ und der PCA 1,45€ (den Unterschied weiß ich nicht, der PCA ist aber SMD).
    Um die lange Kabelstrecke zu schaffen brauchst du wie schon gesagt ggf. einen Repeater. Bei Reichelt gibt es z.B. den PCA9517 und PCA9515 (1,75 bzw. 1,55€).
    Bei Reichelt gibt es auch noch mehr interessantes I²C "Zubehör"...einfach mal reinschauen.

    Um die Auswertung vom PC und Betriebssystem unabhängig zu machen, würde ich einen µC verwenden, der dir die Bus-Signale der Lichtschranken in ein passendes Format wandelt (z.B. als .csv) und über USB an den PC sendet. Da jeder halbwegs aktuelle PC (und Notebooks fast nur noch) einen oder mehrere USB-Anschlüsse hat, dürfte das das Sinnvollste Interface sein.

    MfG
    Basti

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    25.08.2004
    Ort
    Planegg
    Beiträge
    96
    Es gibt jede Menge I2C Bausteine, die in Frage kommen. Ich selbst hab mit dem PCF8574 von Philips schon gute Erfahrungen gemacht. Das ist allerdings nur ein "einfacher" IO Baustein. Die Lichtschranke musst noch extra aufbauen.
    beppo

Berechtigungen

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

12V Akku bauen