-         

+ Antworten
Ergebnis 1 bis 6 von 6

Thema: Verbindung von AVRs über I²C

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    29
    Beiträge
    674

    Verbindung von AVRs über I²C

    Anzeige

    schonmal im Voraus, ich hab die Suchenfunktion verwendet, aber nichts Passendes gefunden, kann natürlich sein, dass ich etwas übersehen habe...

    ich möchte mehrere AVRs(AT90S2313 und ATMEGA 8515L) über I²C verbinden, es kommen wahrscheinlich auch noch weitere I²C-Bauteile hinzu
    was I²C ist und wie es vom Prinzip her funktioniert, weiß ich inzwischen, auch wie man den Master dazu bringt, Daten zu senden

    mein Problem ist nun, wie man die AVRs dazu bringt, als Slave zu arbeiten,
    muss man das komplett selbst programmieren?
    gibts dafür fertigen Code(C oder Assembler)?
    unterstützen das die AVRs vielleicht sogar von Haus aus?

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    28
    Beiträge
    2.624
    Hi! :o)
    Das gleiche Problem bearbeite ich auch gerade, bin aber auch nicht weiter als Du! :o(
    Einfach keine Zeit! :o(
    Ich hoffe ich schaffe es bald! :o)

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.07.2004
    Ort
    Mammendorf
    Alter
    60
    Beiträge
    1.058
    Hallo Freunde
    auf der Seite 7 der I2C Spec steht im Prinzip die Lösung eures Problems: "I2C-Bus is a Multi-Master-Bus". Viel Spaß beim Lesen. Von der Software kann man die existierende I2C-Software für den AVR praktisch unverändert benutzen. Die einfachste Form ist die Kommunikation gedanklich auf ein höheres Layer zu legen. Erst uCA -> uCB, dann uCB an uCA!. Bei jedem Datenaustausch ist immer der die die Verbindung einleitet der Master, der Empfängt der Slave. Definiere ich jetzt auf "Anwendungsebene" meine Kommunikationsprotokolle, in Hochdeutsch: Wie Mache ich Job1, wie Job 2, dann könnten die von A an B übertragenen Daten bei B eine zuvor definierte Reaktion bewirken, und umgekehrt.
    MfG

    Hellmut

  4. #4
    Gast
    ich hab die Stelle grad mal durchgelesen(vielleicht hab ich auch was übersehen), das meiste wusste ich schon und beantwortet mein Problem nicht wirklich: ich möchte nen Mikrocontroller dazu bringen, dass er als Slave arbeitet

    inzwischen hab ich mir aber noch ein paar Gedanken dazu gemacht: könnte man nicht jeden Mikrocontroller, der an den Bus hinsoll, über zwei Interruptfähige Pins anschließen, die standartmäßig Eingang sind
    wenn dann ein uC was senden will, schaltet er seine beiden Pins als Ausgang und sendet seine Daten, wenn er wieder fertig ist, macht er wieder beide Pins zu Eingängen und wartet darauf, entweder wieder Master zu werden, oder als Slave zu arbeiten
    um zu verhindern, dass mehrere auf einmal Slave werden wollen(dazu stand ja auch was in den I²C specs, aber das hab ich mir nur ganz kurz angeschaut...keine Zeit), müsste man halt, wenn sich ein uC zum Master macht, in den anderen ein Bit so setzen, dass sie jetzt nicht Master werden dürfen; wenn die STOP-Sequenz vom Master erkannt wurde(die ja jeder uC mitbekommt), wird dieses Bit einfach wieder geändert

    um wieder zur Slaveprogrammierung zurückzukommen: man müsste die Interrupts der beiden Pins für fallende und steigende Signalflanken aktivieren und dann in den entsprechen Interruptroutinen die Daten der beiden Pins nach I²C-Normen verarbeiten

    wenn man das geschickt macht, müsste man doch auch senden und empfangen können(vom Slave aus)?

    ich hoffe, ich hab da jetzt nicht vollkommenen Unsinn erzählt...
    falls sich das nicht herausstellt, werde ich das mal in den nächsten Tagen versuchen, zu programmieren

  5. #5
    Gast
    der post war von mir, ich hab nur vergessen, mich einzuloggen...

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    29
    Beiträge
    674
    sorry, die beiden letzten posts waren von mir, mein Konqueror spinnt ein wenig herum wie man merkt...

+ Antworten

Berechtigungen

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