-         

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

Thema: Zwei M32 Erweiterungen möglich? / M128 Slaveprogramm?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2010
    Beiträge
    6

    Zwei M32 Erweiterungen möglich? / M128 Slaveprogramm?

    Anzeige

    Hallo,
    ist es möglich zwei M32 zu betreiben, wenn ja, wie stelle ich das an?
    Und nochwas anderes:
    Wo gibt es für die M128 ein Slave-Beispielprogramm oder wie mache ich am besten eins, damit ich mit der M32 die I/O der M128 ansteuern kann?
    Danke euch schonmal für die Antworten.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    28
    Beiträge
    607
    Da gibts unterschiedliche Möglichkeiten. Stichwörter dazu: TWI , SPI , usart.
    Das sind Bus-Systeme, mit denen du deine Prozessoren kommunizieren lassen kannst. Beispielprogramme lassen sich in Datenblättern deines Controllers finden.
    Wenns dir nur um die IO geht, dann kannst du auch eine Porterweiterung nutzen (z.B. PCF8574A), die du dann mit einem der beiden Bus-Systeme ansteuerst.

    Gruß, Yaro

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    23.07.2009
    Alter
    23
    Beiträge
    133
    Ich denke mal, er meint die M32-Erweiterung für den RP6...

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    28
    Beiträge
    607
    Oh.....dann ist das natürlich was anderes.... =) Sorry

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Hallo Matthias1172,

    ja, es geht, zwei M32 auf den RP6 zu setzen. Einfach draufschrauben und mit den Steckern verbinden.
    Bei der I2C-Kommunikation darf aber nur 1 uC (der auf der Base oder einer der 2 auf den M32) als Master arbeiten, die anderen 2 als Slave.
    Hier habe ich am 13.1. mal ein Beispiel für die M32 als I2C-Slave gepostet:
    http://www.roboternetz.de/phpBB2/viewtopic.php?t=52031

    Gruß Dirk

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2010
    Beiträge
    6
    Ok, danke schonmal, aber wie programmiere ich dann die I/O? Die heißen doch auf beiden M32 gleich, wie definiere ich dann ob ich den I/O des Masters oder des Slaves ansprechen will?

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Wenn du zwei M32 auf den RP6 setzt, dann hast du am I2C-Bus ja drei Microprozessoren. Einer muss Master sein, die anderen beiden Slave mit je einer eigenen I2C-Adresse.
    In den Examples sieht eine Adresse so aus:
    RP6CONTROL_I2C_SLAVE_ADR 10

    Davon brauchst du dann 2, z.B. so:
    RP6CONTROL_I2C_SLAVE_1_ADR 10
    RP6CONTROL_I2C_SLAVE_2_ADR 12

    Dann kann der Master beide Slaves ansprechen und von ihnen Werte lesen oder Werte zum Slave schicken.


    Gruß Dirk

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    28
    Beiträge
    607
    Ich kenn mich zwar mit dem RP6 nicht aus, jedoch passt folgendes trotzdem hier rein: I2C erlaubt es auch, mehrere Master zu haben.
    Im Multimaster Betrieb können Controller als Master und als Slave (gleichzeitig) agieren. Das I2C Protokoll regelt dabei den Verkehr so, dass keiner gestört wird. natürlich muss das alles sinvoll programmiert werden...
    Kann ja sein, das man, wenn man 3 Boards hat, sie unabhängig von einander kommunizieren lassen will...dann ist sowas sehr nützlich.

    Gruß, Yaro

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2010
    Beiträge
    6
    Ahja ok, und wenn ich den Base als Slave und eine der M32 als Master und die andere ebenfalls Slave haben will?
    Und wie mach ich das dann, wenn ich z.B. den setLEDs Befehl auf beiden M32 benutzen möchte, wie regel ich das dann, welche M32 ich mit dem Befehl ansprechen will?
    Sorry wenn ich so dumm frage, aber ich hab erst vor kurzem mit C und Robotern angefangen, daher habe ich noch null Erfahrung damit.
    Danke für die Geduld

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    @yaro: Klar, die RP6 I2C-Libs sind aber leider nicht Multi-Master-fähig...

    @Matthias1172:
    und wenn ich den Base als Slave und eine der M32 als Master und die andere ebenfalls Slave haben will?
    Ja, das geht gut.
    wenn ich z.B. den setLEDs Befehl auf beiden M32 benutzen möchte, wie regel ich das dann, welche M32 ich mit dem Befehl ansprechen will?
    Wenn du 3 Teilnehmer am I2C-Bus hast, must du ja jeden der 3 eigenständig programmieren. Wenn du auf einer M32 den setLEDs Befehl anwendest, dann hat das natürlich nur da eine Wirkung.
    Wenn du vom Master aus die LEDs auf einem Slave schalten willst, dann must du dir "Befehle" ausdenken, die der Master zum Slave über I2C schickt.
    Z.B.: Wenn der Master erst ein Byte mit 99 schickt und danach ein Byte mit 0b0001, dann must du den Slave so programmieren, dass er die 99 als Befehl zum LED-Umschalten erkennt und dann die 0b0001 als Anweisung versteht, eine LED bei sich einzuschalten. Das wird er dann mit setLEDs(0b0001); tun.

    Klar so?
    Gruß Dirk

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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