Hi! Ich weiß, dass es schon 100erte Artikel über den I2C bus gibt aber trotzdem hab ich eine frage... Ich möchte mehrere PIC über einen MasterPIC ansprechen... (das heist an einem "großen" PIC hängen viele "kleine") Jetzt schickt ja der Master eine Adresse voraus um damit die slaves anzusprechen... Meine Frage jetzt: Holt sich der Master aktiv die Daten vom Slave, oder sagt der Master nur: DU darfst jetzt senden.. (das heißt ich muss im slave implementieren, dass er dann sendet) Danke für eure Hilfe! (aja mal ein Lob an das Forum, da wurden bei mir schon einige Probleme gelößt =) ) Liebe Grüße Max =)
Nochmal richtig lesen ;) Der Master darf eine Verbindung starten, die Slaves nicht. Er holt sich also nicht die Daten aktiv sondern "Hey alter schick mir ma deine Daten raus", was der Sklave daraufhin auch tut.
Nicht "der Master darf die Verbindung starten", sondern derjenige der die Verbindung startet, ist der Master. Also der Teilnehmer, der die Startbedingung gesendet hat. Keine Ahnung, was du mit "aktiv holen" meinst, aber das Taktsignal wird immer vom Master erzeugt. Unabhängig von der Datenrichtung. Wenn dein Master also ein SLAR (Slaveadresse + Datenrichtung: lesen) sendet, muss der Slave nur seine Daten auf die Datenleitung legen. Wenn der Master nun meint, er hätte genug Daten gelesen, muss er (und niemand sonst) die Stopbedingung senden.
Hallo, ich glaube, Max meint folgendes: 1) der Master muss eine Leseverbindung starten 2) darf der Slave dann alles senden was er loswerden will/muss oder gibt es ein festgelegtes Protokoll ? Ich sehe da keine Festlegung ausser der, daß jeder Slave ein Protokoll implementiert, also z.B. definiert ein Eeprom, wie auf Read-Anfragen geantwortet wird. Eine Tastatur z.B. wird auf en Read einfach jedes Zeichen senden, es könnte aber auch festgelegt sein, daß der Master ein "Gib Zeichen" vorausschicken muss, um ein Fifo abzufragen, zB. im Gegensatz zu "Gib gedrückte Tasten" als Status der Tasten. Gruß, Michael
Grundlage Antwort: http://www.roboternetz.de/wissen/index.php/I2C Ein IC generiert einen Start und wird Master. Der Master adressiert seinen Gesprächspartner/Slave und sagt ihm ob er lesen oder schreiben will. Die folgenden Daten kommen dann vom Master oder Slave, das Clock immer vom Master, das Ack immer vom Empfänger. Der Master beendet die Übertragung mit einem Stop und beim Empfangen durch weglassen des Ack. Es gibt noch ein paar Sonderfälle wie Ack-Verzögerung, Bus-Belegt etc. gruß hans
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.