Hi gibt es eine Möglichkeit einen I2C-Slave so zu programmieren, dass er auf mehrere Adressen reagiert um Daten zu empfangen oder ist das nur über ein rein Software implementierten I2C-Slave möglich??. Und wenn habt ihr vlt Codebeispiele in C?? Hab bis jetzt leider keine zufriedenstellenden Antworten hier oder bei Google gefunden.
:
Verschoben durch User
Das hängt vom jeweiligen Teil konkret ab, beim AVR als HW-Slave zum Beispiel, kannst Du eine Maske setzen, welche Bits der Adresse nicht beachtet werden sollen, damit reagiert der Slave dann auf mehrere Adressen. mfG ingo
Also ich benutze den Atmega 168P. Und dieser soll konkret auf vier Adresse anspringen. Wie meinst du das mit der Maske?? Die Adresse muss doch schon bei der Initialisierung in das TWAR geschrieben werden.
Oh, Martin, > Also ich benutze den Atmega 168P. Und dieser soll konkret auf vier > Adresse anspringen. Du meinst damit Lese- und Schreibadressen zu a) TWI General Call b) TWI Address Register? Wozu könnten weitere Adressen gut sein? Ciao Wolfgang Horn
Also der Atmega wird als Slave in ein bestehendes I2C-System mit eingebunden. Soll aber auf der Platine über einen internen I2C-Bus 4 PCF8591 ansteuern. Heißt also er bekommt über den externen I2C Daten und leitet die intern weiter. Der Atmega muss also nach außen so tun als wäre er 4 PCF8574 um mit dem bestehenden System kompatibel zu bleiben. Muss intern aber wie gesagt als Master arbeiten und die 4 PCF8591 ansprechen.
@ingo das mit der Maske war der richtige Tipp. Der Atmega 168p hat ja das TWAMR, mit dem man die Maske setzen kann. Stand da irgendwie am Freitag auf dem Schlauch. Auf jeden Fall danke für den Tipp. Das erleichtert mir die Aufgabe ungemein. :D
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.