-
        

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

Thema: RP6 und Asuro kombinierbar?!?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    29.05.2010
    Ort
    Trebur
    Alter
    33
    Beiträge
    36

    RP6 und Asuro kombinierbar?!?

    Anzeige

    Guten Morgen Zusammen

    Da ich mittlerweile meinen Asuro kaum noch nutze, da ich voll mit meinem kleinen RP6 zufrieden bin ist mir der Gedanke gekommen das man den Asuro doch theoretisch als quasi "Porterweiterung" auf dem RP6 betreiben könnte.

    Ich dachte da an die Komunikation über I2C, was ja eigentlich machbar sein sollte.

    Nun zu meiner eigentlichen Frage.
    Ich habe mich in die I2C Sachen was ich finden konnte auch Programmbeispiele mal eingelesen und bin der Meinung das soweit Verstanden zuhaben, nur verstehe ich nicht ganz wie das mit der Addressierung ist da so wie ich das verstanden habe Jedes I2C fähige IC eine Addresse besitzt.
    Nur woher kenn ich in meinem Fall z.b. Die Adresse das Atmega 8 vom Asuro??
    Und kann ich die I2C ansteuerung beim Asuro so umsetzen wie hier bei der Porterweiterung :http://www.asurowiki.de/pmwiki/pmwik...orterweiterung

    Hoffe ihr könnt mir bei meinen Fragen weiterhelfen da ich nach langem Suchen im Forum und bei Google nicht die richtige Antwort gefunden habe .

    Danke schonmal im Voraus

    MfG
    Joggel84

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Hallo Joggel84
    I2C ist deutlich komplexer als UART, daher:
    http://www.nxp.com/acrobat_download2...8/39340011.pdf
    Da findest du alles wissenswerte u.a. auch zum Timing und Adressen. Das Prozessordatenblat isz auch informativ.
    Dein Asuroboard müsste also als Slave laufen. Das läuft ähnlich wie eine M32 auf einem RP6 Baseboard und ist durchaus machbar. In den Beispielen zum RP6 findet sich z.B. ein Slave Treiber für den RP6. In dem Fall wäre der RP6 aber Master und das Asuro Board Slave... also den Code für den Asuro umschreiben... es steht schon alles da, du musst es nur noch zusammen suchen.
    LG Rolf

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    29.05.2010
    Ort
    Trebur
    Alter
    33
    Beiträge
    36
    Hallo Rolf
    Also der PDF-File ist wunderbar alles schön zusammen gefasst was man brauch. Danke
    Die Beispiele vom M32 hab ich mir auch schonmal angeschaut, nur entweder bin ich Blind oder ich denke falsch.
    Weil ich bin der Meinung das jedes IC schon Hardwareseitig eine I2C Adresse hat die ich ja dann für die Komunikation benutzen muss und noch Ergänzen kann damit eventuell mehrere gleiche IC's an einem Bus laufen.
    Nur finde oder erkenne ich in den Beispielprogrammen z.b. auch nicht die Adresse des RP6-Base.
    Falls ich was falsch verstanden habe was die Adressen angeht hoffe ich ihr könnt mich in die richtige Richtung weisen.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Also in der RP6Base_I2CSlave.c steht groß und breit:

    #define RP6BASE_I2C_SLAVE_ADR 10

    Als Master braucht man quasi keine Adresse... Portexpander und "dumme" Bausteine haben eine meist fest gelegte Adresse, die man wie beim SRF08 mit gefummel auch ändern kann... da ein Prozessor ein Stück schlauer ist, kann man die Adresse selbst belegen, man muss allerdings auch das Protokoll selbst schreiben... aber wie gesagt, das meiste kannst du dir aus den vorhandenen Sources raussuchen und ist beim AVR Dank I2C Hardware nur bissel Bit-schubserei.

    Ansonsten schau mal hier:
    http://www.ultratechnik.de/claudius/masterslave/
    LG Rolf

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    29.05.2010
    Ort
    Trebur
    Alter
    33
    Beiträge
    36
    Ich sags ja immer wieder Manchmal sieht man die Lösung einfach nicht.
    Sry mein fehler hab die #define Zeile iwie überlesen *schäm*
    Aber so bin ich schon mal ein ganzes stück weiter
    Nun noch die Frage woher ersehe ich den die Adressen von den "dummen" Bausteinen die ja Vorgegeben sind wie z.b. der Porteexpander.

  6. #6
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Die stehen in den Datenblättern der Bausteine oder entsprechenden Tabellen, Treiber Code Schnipsel usw. Einfach mal googeln.
    http://www.elektronik-magazin.de/pag...adressliste-23
    Schau doch mal da rein... das beantwortet viele Fragen.
    http://www.rn-wissen.de/index.php/I2C

    LG Rolf

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    29.05.2010
    Ort
    Trebur
    Alter
    33
    Beiträge
    36
    In das Tolle RN-Wissen Lexikon hab ich auch schon sehr oft reingeschaut und muss sagen super sache auch den Punkt mit dem I2C fand ich sehr Übersichtlich und gut erklärt.
    Aber wie gesagt hatte ich noch die Verständnis Probleme mit den Adressen

    Nun ist nur noch die letzte Frage übrig ob das Funktioniert mit der Asuro Verkabelung wenn ich das genauso Aufbau wie zum Portexpander nur halt dafür den RP6 dran henge da das ja eigentlich ADC Kanäle sind und nicht die eigentliche SCL und SDA Leitungen des Atmega.

    Ich weis ich hab komische Fragen aber beseitige gern alle unklarheiten bevor ich Anfang und dann zu sehr ins Stolpern komme und eventuell was kaputt geht

    MfG
    Joggel84

  8. #8
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Ich kenne mich mit der Portbelegung des Asuro Prozessor (ATMega8?) nicht aus aber grundsätzlich haben Ports oft Mehrfachfunktionen im Prozessor und die muss man per Register im Prozessor freischalten/setzen. Die Ports sind so beschaltet, das eigentlich nichts schief gehen kann wenn man nicht grade direkt gegen Masse oder + treibt. ADCs sind Eingänge und damit sozusagen hochohmig. Auch da hilft aber das Datenblatt der CPU weiter, dort nennt sich das TWI. Du kannst beruhigt slc, sda und einen gemeinsamen Minuspol anklemmen. Wenn du das besagte I2C slave Programm auf dem RP6 lädst, musst du nur noch ein Treiber auf dem Asuro schreiben der als i2c-Master läuft. und schon solltest du Daten vom RP6 auslesen können. Natürlich muss man das später umdrehen.. also Slave auf Asuro und Master auf RP6. Aber zum testen und fürs Verständnis reicht wohl erst mal "falsch rum".
    Der RP6 verhält sich mit dem Slaveprogramm wie ein dummer Baustein. Die Belegung von Registern ergibt sich dabei aus dem Quellcode des Slaves. Man kann aber auch das ganze berührungslos per IR machen indem man sich passende Treiber schreibt. Allerdings gibts da keine I2C-hardware und man muss sich wirklich um alles selbst kümmern.. wie bei den RC5-Codes. Mir wäre das zu umständlich aber gehen tut es im Prinzip.
    LG Rolf

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    29.05.2010
    Ort
    Trebur
    Alter
    33
    Beiträge
    36
    Ok dann bedanke ich mich schonma.
    Ich liebe dieses Forum ^^ immer schnelle und Top antworten bin echt begeistert grosses Lob

    Werd mich dann mal hinsetzen entweder heute noch oder am We und mir ne Adapterplatine Basteln um den Asuro auf den RP6 zu Docken und dann mal ans Programmiern denken.
    Wenn interesse Besteht kann ich euch meine Erfolge /miss Erfolge gerne schreiben

    MfG
    Joggel84

  10. #10
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414
    Also interessieren täte es mich schon... vor allem die Softwareseite. Technisch macht man nichts anderes wenn man ein Zusatzboard wie die M32 oder M128 auf dem RP6 aufsteckt... das halte ich nicht für das Problem.
    Besorg dir mal noch zusätzlich die Software "RP6 Remotrol 1.3" hier aus dem Forum, dort sind auch Master und Slave Sources für I2C Datenübertragung enthalten. Das M32 Masterprogramm könnte ggf. mit wenigen Änderungen auch auf dem Asuro laufen.
    Viel Erfolg
    LG Rolf

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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