Hallo Leute, ich möchte 2 Sensoren mit UART Schnittstelle an einen I2C (TWI) Bus anbinden. Der I2C ist im System bereits vorhanden. Pins um die 2 UART Sensoren anzubinden habe ich leider keine mehr frei. Daher würde ich gern einen ATtiny1626 nehmen, um eine I2C-UART Brücke zu konstruieren. Man könnte sich jetzt ein Protokoll überlegen, wo unterschiedliche I2C Kommandos die beiden Sensoren ansprechen. Aus systemtechnischer Sicht fände ich den Ansatz mit 2 I2C Adressen jedoch eleganter (da leichter erweiterbar). Was ich Suche ist eine Möglichkeit den ATtiny als I2C Slave zu betreiben, der bei 2 unterschiedlichen Adressen antwortet. Als HW I2C wird das wohl kaum gehen aber hat vielleicht jemand so ein Problem schon mal mit einem BitBang I2C gelöst oder kennt Beispiele dafür? Gruß Ben
Man kann das auch mit einer I2C Adresse lösen, indem man einfach die Register der Sensoren über das übergeordnete Protokoll anspricht.
Ben S. schrieb: > ich möchte 2 Sensoren mit UART Schnittstelle an einen I2C (TWI) Bus > anbinden. Das TWI einiger AVRs, wie ATtiny1634 und ATtiny417, ATtiny814, ATtiny816, ATtiny817 kann auf einen Adressbereich oder 2 Adressen reagieren. Wer oder was ist der Master? Manche Master kommen nicht mit Clock-Stretching zurecht, was einen µC als Slave zum Problem werden kann.
:
Bearbeitet durch User
Beitrag #7016646 wurde vom Autor gelöscht.
Ben S. schrieb: > Was ich Suche ist eine Möglichkeit den ATtiny als I2C Slave zu > betreiben, der bei 2 unterschiedlichen Adressen antwortet. https://ww1.microchip.com/downloads/aemDocuments/documents/MCU08/ProductDocuments/DataSheets/ATtiny1624-26-27-DataSheet-DS40002234B.pdf Kapitel 26.5.14 Client Address Mask Man kann Bits ausmaskieren...
STK500-Besitzer schrieb: > Kapitel 26.5.14 Client Address Mask > > Man kann Bits ausmaskieren.. TWAMR – TWI (Slave) Address Mask Register Das hat eigentlich jeder AVR mit TWI, der moderner als die Genration Mega8-128 ist, nicht nur die o.a. ganz neuen Typen. Oliver
Den ATtiny1626 kenne ich nicht, steht dazu nichts im Datenblatt? Die ATtiny mit USI müssen die Adresse in SW auswerten, können also mehrere. Die ATmega48 usw. haben ein TWAMR – TWI (Slave) Address Mask Register, können also auch mehrere Adressen. Der ATmega328PB hat 2 I2C, die könnte man parallel schalten.
Oliver S. schrieb: > Das hat eigentlich jeder AVR mit TWI, der moderner als die Genration > Mega8-128 ist, nicht nur die o.a. ganz neuen Typen. Ich bezog mich einfach nur auf den vom OP genannten. Manche tun sich schwer mit dem Lesen von Datenblättern.
Falk B. schrieb: > Man kann das auch mit einer I2C Adresse lösen, indem man einfach die > Register der Sensoren über das übergeordnete Protokoll anspricht. genau das wollte ich nicht, da es sich um 2 identische Sensoren handelt. Man müsste also speziell für diesen fall eine Register Map aufbauen. Eine Wiederverwendbarkeit wäre nicht gegeben. H.Joachim S. schrieb: > Schneller am Ziel: SC16IS741 o.ä. Diese Art von Lösung habe ich mir auch schon angesehen. Nachteil ich bräuchte mehrere dieser Bausteine, die auch noch teurer sind und bei den aktuellen miesen Verfügbarkeiten der IC Branche wäre ich an diesen Typ gebunden. STK500-Besitzer schrieb: > Man kann Bits ausmaskieren... Da steht noch mehr: If the ADDREN bit is written to ‘1’, the Client Address Mask (TWIn.SADDRMASK) register can be loaded with a second client address in addition to the Client Address (TWIn.SADDR) register. In this mode, the client will have two unique addresses... Danke STK500-Besitzer, ich glaube das ist das was ich gesucht habe
Ben S. schrieb: > Aus systemtechnischer Sicht > fände ich den Ansatz mit 2 I2C Adressen jedoch eleganter (da leichter > erweiterbar). Ob die Sensorauswahl mit einen Adreßbyte oder einem Datenbyte erfolgt, ist doch nur eine Namenssache. Bei EEPROMs (AT24C512) sind doch auch die ersten beiden Datenbytes die Adresse.
Peter D. schrieb: > Ben S. schrieb: >> Aus systemtechnischer Sicht >> fände ich den Ansatz mit 2 I2C Adressen jedoch eleganter (da leichter >> erweiterbar). > > Ob die Sensorauswahl mit einen Adreßbyte oder einem Datenbyte erfolgt, > ist doch nur eine Namenssache. Bei EEPROMs (AT24C512) sind doch auch die > ersten beiden Datenbytes die Adresse. Du vergleichst Äpfel mit Birnen - bzw. Tomaten mit Gurken. Wieso sollte ein Gemüsehänder nicht unter 2 Adressen firmieren? Gleiches Gebäude: Vordertür in der Lessingstraße 17, Hintertür in der Schillerstraße 28. Gehst du zur Vordertür rein, gibt's da Tomaten - beim Laden an der Hintertür nur Gurken. Also, ein wirkliches Problem sehe ich da nicht. Außer vielleicht, wenn sich der gute Mann entschließt, auch noch mit Äpfel und Birnen zu handeln ...
Ich hab die Lösung!!! Der gute Mann kauft sich noch die Schlossallee - und baut da ein Hotel.
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.