Forum: Mikrocontroller und Digitale Elektronik I2C-Slave mit mehreren Adressen


von Martin P. (jmasterj)


Lesenswert?

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
von ingo (Gast)


Lesenswert?

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

von Martin P. (jmasterj)


Lesenswert?

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.

von Wolfgang H. (Firma: AknF) (wolfgang_horn)


Lesenswert?

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

von Martin P. (jmasterj)


Lesenswert?

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.

von Martin P. (jmasterj)


Lesenswert?

@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
Noch kein Account? Hier anmelden.