-
        
+ Antworten
Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 33

Thema: Mehrere AVRs an einen Bus

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674

    Mehrere AVRs an einen Bus

    Also meine Idee war einen einfachen Bus herzustellen.
    Wie unten im biold zu sehehn hängen 3 Slave-Controller an einem amster.
    Dies können untereinander nicht kommunizieren, soviel ist klar.

    Die eigentlich Idee ist, dem Hauptcontroller Arbeit abzunehmen.
    Da ich eine GPS-Maus verwenden möchte, dachte ich mir, dass ein Co-Prozessor schon die ganzen Strings der Maus entschlüsselt, und zurechtschneidet, und dann z.B. nur die Position ausgibt, oder die Geschwindigkeit.

    Deshalb, also wenn der Prozessor gerade Zeit hat, die INformationen zu verarbeiten, oder diese jetzt benötigt, enabled er den entsprechenden Controller, der über einen Interrupt dann den Wert üder RS232 ausgibt.

    ODer man könnte es so machen, dass jeder Slave.Controller eine Adresse erhält, und der haupt-controller dann diese Andresse sendet,. so dass der Slave-C weiß, das er od nicht gemeint ist.

    Ja, vermutlich geht das über I2C einfacher, aber ich möchte günstige AVrs, wie den AT90S2313 oder sogar 2323 verwenden.

    Benötige ich dann für jeden Controller einen MAX, oder reicht es wenn sie Untereinandner so kommunizieren und nur für den PC einen MAX zusammen benutzen?

    MFG Moritz
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken 1_139.gif  

  2. #2
    Administrator Robotik Einstein Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    4.943
    Blog-Einträge
    1
    Wenn Du 2 - 3 Euro mehr zahlst, dann könntest Du Meg8 mit I2C nehmen. Vorteil wäre das du keine weitere Hardware (Bustreiber etc. brauchst). Bis 3m ist I2C eigentlich recht problemlos. Allerdings müsstest du dich dann mit der Slave-Programmierung beschäftigen und das ist gerade beim Einstieg nicht ein erhöhter Schwierigkeitsgrad.

    Von Software I2C-Slave Programmierung rate ich ab. Damit hab ich keine gute Erfahrung gemacht da dies einfach zuviel Performance kostet. Ein Slave sollte immer Hardware-I2C benutzen. Daher verwende ich bei meinen Karten RN-Speak, RN-Motor nun auch nur noch Hardware I2C des Mega 8.

    Alternativ bietet sich der RS485 Bus an, siehe unter den Artikeln. Der ist schon für mehrere Slave gedacht und kommt ab 2 Leitungen aus. Allerdings braucht man dazu einen Max 485. Hier hat glaub Kjion die meiste Erfahrung.

    Oben genanntes Schaltbild müsste eigentlich funktionieren. Allerdings muss Master halt die Slaves freigeben so das die sich nicht in die Quere kommen. Und zudem können sie so schlecht gegenseitig kommunizieren.

    Besser wäre ein Ringleitungskonzept wie es auch hier im Forum schon mal in einem Thread angesprochen wurde. Einfach die Controller in Reihee schalten. Also TX des ersten auf RX des zweiten. Dann TX des zweiten auf RX des dritten und zuletzt TX wieder auf RX des ersten.
    In dem Fall müssten die Controller die Daten empfangen und schaun ob diese für ihn bestimmt sind. Könnte man durch eine Kennung machen.
    Sind die Daten nicht für einen bestimmt, dann werden die einfach unverändert zum nächsten übertragen. So geht das wieter bis sie am Ziel sind.
    Kommen die Daten unverändert beim Absender wieder an, dann war der Empfänger nicht da!

    Eine andere Möglichkeit in Bascom wäre einfach die verwendung mehrerer RS232 Ports. Bascom kann recht einfach per Software jeden Port zu einer RS232 Schnittstelle machen.

    Und dann gibt es noch SPI und 1 Wire-Dallas Bus, mit denen hab ich aber noch nicht sonderlich Erfahrung.

    Erwähnen möchte ich noch das die Möglichkeiten des AT90S2313 beschränkt sind, die 2K hat man schneller voll als man denkt. Also nicht zu große Projekte mit diesem Controller planen.

    Gruß Frank

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Ich bin hatl noch ein voller Einstieger, kennst mich aus dem Thread mit dem Programmieradapter

    Also die möglichkeiten mit mehreren RS232 ausgängen finde ich interessant. da werd ich mich mal schlau machen.
    Aber da es ja hier wirklich nur Slave Prozessoren sind, die nur senden sollen, wenn sie gefragt werden, reicht das so wenns es läuft.
    Einen weiteren wollte ich zur überwachung der Abstandssensoren oder des Linienverfolgern nehmen. Einen vielleicht für ne Funksteuerung etc.

    MFg Moritz

  4. #4
    Gast
    Über das SPI ist es noch einfacher ...

  5. #5
    Gast
    Nu, dann beschreib es doch mal etwas genauer. Die Vorteile beispielsweise.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Was ist denn SPI?

  7. #7
    Gast
    Das ist der Bus, der auch zum programmieren benutzt wird. MOSI, MISO, SCK und Pin SS sind dafür zuständig. Auch der ist wie I2C hardwaremäßig in den AVR´s implementiert. Allerdings hab ich kaum Software gesehen wo der genutzt wird

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    28
    Beiträge
    2.624
    Seit wann ist denn I2C in AVR's hardwaremäßig integriert?

  9. #9
    Gast
    Schon immer in allen neueren AVR´s! Zum Beispiel in allen Mega´s! Es nennt sich dort nur "TWI"
    Ist aber genau das gleiche

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    28
    Beiträge
    2.624
    Also kann ich dort mit dem TWI auch I2C-Bausteine ansprechen?

+ Antworten
Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

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