-         

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

Thema: RS232 to I2C Adapter von Robotikhardware

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    18.12.2008
    Beiträge
    13

    RS232 to I2C Adapter von Robotikhardware

    Anzeige

    Hallo,

    ich habe mir vor kurzem den RS232 to I2C Adapter von Robotikhardware zugelegt und hoffentlich richtig zusammengebaut

    Nun meine Frage(n):

    Zwar ist da ein Test-Programm dabei, da ich aber nicht unter Windows arbeite, ist es recht sinnlos für mich (auch daß VB Programm). Benötige ich noch eine zusätzliche Treiber Software (für den Adapter)? Wie spreche ich nun "den Adapter" an? Als RS232 oder I2C? (Damit meine ich, ich öffne ja den RS232 (ttyPL2303...)...

    Weiß jemand einen Beispiel Code (in C, C++ ,...)

    Ich habe folgende Konfiguration: iMAC -> USB to RS232 (PL2303) -> RS232 to I2C Adapter -> MotorController MD23

    DANKE!

    tobias

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Also wenn es wirklich der gleiche Adapter ist, wie der den ich mal nachgebaut hab, ( http://www.shop.robotikhardware.de/s...products_id=68 ) dann reichts, wenn man da mit den Steuerleitungen arbeitet. 2 davon sind für SCL/SDA-Ausgang, die anderen beiden für SCL/SDA-Eingang.

    Und ob das mit dem USB-RS232-Wandler geht, hängt davon ab, ob das ein wirklich _gutes_ Teil ist oder nur so'n 1-Euro-Billigteil aus China, bei dem nur Rx und Tx durchgegeben sind.
    #ifndef MfG
    #define MfG

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    18.12.2008
    Beiträge
    13
    Danke für die Antwort!

    Vom Computer wird ja nur der serielle (rs232) Ausgang des Adapters erkannt und mit

    /dev/tty.PL2303-XXXX

    angelegt, aber nicht der dahintersteckende I2C Adapter erkannt (da dieser ja auch keine Driver Software besitzt).

    Soll ich somit einfach den tty.PL2303-XXXX Port aufmachen und an diesen einfach die BusAdr, Daten,... senden und der I2C Adapter formatiert mir diese Daten dann einfach um?

    Liebe Grüße,

    Tobias

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Der I2C-Adapter muss nicht erkannt werden. Du musst nur irgendwie (eigener Treiber oder eigene Software) den Pegel der Statusleitungen ändern bzw. überwachen. Und genau da kommt der Punkt, ob das Kabel eben Billigware ist (nur Rx/Tx und damit nutzlos, da diese Leitungen nicht benötigt werden) oder ob auch wirklich die Steuerleitungen verwendet werden.

    Wenn ich mich jetzt am Schaltplan nicht verschaut habe, müsste das die folgende Belegung sein:
    DTR: SDA "schreiben"
    RTS: SCL "schreiben"
    DSR: SDA "lesen"
    CTS: SCL "lesen"
    #ifndef MfG
    #define MfG

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    18.12.2008
    Beiträge
    13
    Danke, werde es probieren, habe es zur Zeit einmal anders gelöst.

    Zum USB/RS232 Adapter: Es ist der der auch im Robotikhardwareshop verkauft wird.

    Lg,

    Tobias

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576
    Hallo Leute.... schreibe mal gleich hier dazu....
    Habe mir jetzt auch den I2C Adapter für die RS232 gebaut...
    Signale gibt er aus.... nur scheinen mir die Signale nicht ganz zu stimmen...
    Im Anhang ein Bild mit dem DSO aufgenommen, für Schreiben, in Adresse 5.
    Mir scheint das da 8Bit für die Adresse verwendet werden stat 7 Bit.
    (Bit 128 wird auch dargestellt)
    Das R/W Bit scheint auch falsch zu sein?!
    Beim R/W Bit sehe ich keinen Unterschied zwischen Lesen oder schreiben..?!
    Oder sehe ICH da etwas falsch?
    normal 7 Bit Adresse, 1Bit R/W(wobei 0= schreiben) und dann ein Ack-Bit.

    Ich habe mal ins Programm geschaut. Mir scheint da gibt es aber nur 8Bit Adressierungen.?!

    Hat jemand eine Idee/Tipp??

    Danke

    l.G. Roberto

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576
    Bild nochmal.........................
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken i2c_senden_adresse-5.jpg  

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Die Adresse ist immer 8 Bit. Das "unterste" Bit ist R/W.
    D.h. wenn du Adresse 5 adressierst, dann adressiert du eigentlich Adr. 4 + Lesen-Bit.

    Also vom Diagramm her les ich die Bits als: 0000 0101 1
    D.h. Adr. 4 + Lesen Bit + NAK-Bit (d.h. das Gerät mit der Adresse 4 antwortet nicht bzw. ist nicht vorhanden.)
    #ifndef MfG
    #define MfG

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    51
    Beiträge
    576
    Hallo Jaecko
    Danke für die schnelle Antwort

    Habe aber Adresse 5! Also 0000 0101 (Als 8 Bit)
    Nach meiner Meinung müsste das so ausschauen:

    0000 101 = (7Bit Adresse)= 5, dann 0 für schreiben und 1 für NAck
    Also: 0000 1010 1
    Es scheint aber so auszuschauen: 0000 0101 1

    Ein Lesen von Adresse 5 schaut z.B. so aus: --> Anhang
    Müsste eigentlich so ausschauen: 0000 101 11
    Schaut aber so aus: 0000 010 11

    Bei Adresse 128 (die es normal gar nicht geben dürfte, wird das erste Bit gesetzt ? (=MSB)

    l.G. Roberto
    Ps: Tolle Projekte hast Du da auf deiner Home..!
    Den Can-Bus muss ich mir auch mal vornehmen

    Ps.:
    Ich werde es jetzt mal mit einem 24C32 probieren..
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken i2c_empfangen_adresse-5_1byte.jpg  

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    35
    Beiträge
    1.987
    Beim I2C gibt es nur gerade Adressen. Das letzte Bit (also gerade oder ungerade) ist das R/W-Bit. Die übrigen 7 Bits werden ohne Shiften angegeben; d.h. Adresse 128 gibt es: 1000 000x. Es sind alle Adressen im Bereich 0, 2, 4, 6, ... 250, 252, 254 möglich (wobei 0 für General Call freigehalten werden sollte)

    Also wenn du 0000 101x adressieren willst, dann ist das die Adresse 10 für schreiben, 11 für lesen. (0000 1010 binär = 10 Dezimal).
    D.h. was die I2C-Hardware ausspuckt, stimmt schon. Du gibst Adresse 5 an (0000 0101) an, das Lesen-Bit wird gesetzt (ist aber schon 1, d.h. es bleibt bei 0000 0101) und die I2C-Hardware schickt an die eigentliche Adresse 4 einen Lese-Auftrag (+1).

    Wenn im Datenblatt eines Geräts dann wirklich 0000 101 als Adresse angegeben ist, dann muss rechts noch das fehlende 8. Bit (R/W) angehängt werden.

    Bei den 24C-EEPROMS sind die Adress-Bits z.B. 1010 A2 A1 A0 x.
    D.h. die möglichen Adressen sind 0xA0, 0xA2, 0xA4, ... 0xAE (160, 162, 164,... 174).

    Nachtrag: am CAN-Bus ist die Adressierung wieder etwas einfacher *g*. Da sinds 11 bzw. 29 Bit und nur diese für die Adresse. Also Adresse 5 ist da dann wirklich 000 0000 0101.
    #ifndef MfG
    #define MfG

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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