-
        

Ergebnis 1 bis 4 von 4

Thema: I2C - RP6, M32 und M128

  1. #1
    RN-Premium User Roboter-Spezialist
    Registriert seit
    21.04.2009
    Beiträge
    522

    I2C - RP6, M32 und M128

    Anzeige

    Hallo,
    ich habe gerade festgestellt, dass man als Slave im I2C-Bus nichts schreiben kann. Deshalb kann ich von meinen Ultraschallsensoren keine Werte abfragen.
    Ich habe eine Kombination aus RP6, M32 und M128. RP6 und M32 sind Slaves, M128 ist Master.
    Nun soll sich die M128 übergeordnet um alles kümmern, während die M32 die US-Sensoren abfragen und die Daten aufbereiten soll. Danach werden die Daten der M32 von der M128 abgefragt.
    Aber dieses Szenatio scheint nicht möglich zu sein, oder?

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    05.04.2008
    Beiträge
    40
    Hallo;

    der Slave kann sehr wohl Daten senden, aber nicht von sich aus, sondern nur wenn er vom Master "angesprochen" wird.
    Der Master fordert dann Daten vom Slave an und dieser kann diese dann senden. Der Slave kann nur nicht selber eine Start-Bedingung auslösen.
    Am besten liest du dir einmal die entsprechenden Artikel im RN-Wissen durch.

    MfG

  3. #3
    RN-Premium User Roboter-Spezialist
    Registriert seit
    21.04.2009
    Beiträge
    522
    Okay, das habe ich mir gedacht, danke!

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    32
    Beiträge
    1.514
    Hallo,

    dazu sind die "Interrupt" Leitungen am XBUS da.
    Die muss man nicht als "echten" Interrupt verwenden - die kann man auch einfach in der Hauptschleife abfragen das geht problemloser.

    Du musst mit diesen Leitungen nicht periodisch I2C Busabfragen machen sondern den Slave einfach nur den interrupt Pin setzten lassen sobald sich irgendwas an den Daten geändert hat. Das im Master abfragen und nur dann eine Abfrage (aller) Slaves machen.
    (wird in den Beispiel Libraries genau so gemacht)

    Kann man sich so vorstellen das der Slave beim Master das Telefon klingeln lässt und der dann rangeht und fragt was denn los ist
    Nur weiss der Master nicht direkt welcher Slave geklingelt hat und ruft quasi erstmal alle zurück
    Das kann man auch ändern - mit den Interrupt Jumpern auf den Boards kann man das umkonfigurieren.


    Aber vorsicht! Immer die Pinrichtungen richtig einstellen - oder die vorhandenen Funktionen in der RP6Lib (sind aber nicht für alle pins vorhanden!) verwenden - extIntON und OFF! Der Pin darf nur aktiv High treiben, bei Low Pegel muss man den Pin stattdessen als Eingang konfigurieren(!!!) - ein externer Widerstand zieht das Signal dann runter.

    MfG,
    SlyD

Berechtigungen

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