Forum: Mikrocontroller und Digitale Elektronik Passiver I²C TWI USI ATtyin4313


von MOBA 2. (Gast)


Lesenswert?

Hallo liebes Forum,

ich möchte bei meiner Schaltkarte mit ATtiny4313, Relais und Triacs, 
Netzsynchronisiert gerne die PCF-Expander nachbilden.

Ich wollte gerne Adresse, Datenpaket Relais, Datenpakete der Dimmstufen 
(4stk)senden, der ATtiny4313 soll einfach nur empfangen und verwalten, 
sofern die Adresse mit seiner übereinstimmt.
Weder Master noch ATtiny sollen rücksicht auf "Formalitäten" nehmen, 
sprich der Master sendet das Signal alle 100ms, egal ob es den Slave 
wirklich gibt oder nicht - der ATtiny soll nichts bestätigen oder 
zurücksenden, sondern wirklich nur empfangen - nichts weiter; wie die 
PCFs.

Hat jmd. eine Idee, wie man das mit der USI macht, ich habe div. 
Quellcodes ausgetestet, aber das klappte nicht, bzw habe ich das USI 
auch nicht verstanden wie man das als I²C konfiguriert.

von Peter D. (peda)


Lesenswert?

Marius Dege schrieb:
> der ATtiny soll nichts bestätigen oder
> zurücksenden, sondern wirklich nur empfangen - nichts weiter; wie die
> PCFs.

Die PCFs bestätigen mit ACK. Das muß der ATiny auch machen.

Zusätzlich muß der Master das Clock Stretching beherrschen, da der 
ATtiny einige Zeit braucht, um den Interrupt zu behandeln.

von MOBA 2. (Gast)


Lesenswert?

Hallo,

du hast recht mit den PCFs, ich meine das ich beim Master alles 
ignoriere, wenn er das also an den ATtiny sendet, ist es ihm egal ob der 
Bestätigt oder nicht, da der slave existieren kann, muss er aber nicht.

Wie muss das denn mit dem stretching laufen, das klingt ziemlich 
kompliziert. Hat jmd. eine Idee, wie ich den Tiny konfigurieren muss, 
bzw was beim Master zu beachten ist?

von Peter D. (peda)


Lesenswert?

Du scheinst noch nichts über I2C gelesen zu haben.
Das ACK ist zwingender Bestandteil, es läßt sich nicht ignorieren.
Das HW-I2C benötigt es.
Das HW-I2C beachtet auch automatisch das Stretching.

von MOBA 2. (Gast)


Lesenswert?

Jaein, ganz tiefgehend weis ich es nicht, grob schon.
Beim Master bekomme ich theoretisch zwar bei Artribation lost, usw Werte 
zurückgeliefert, aber die ignoriere ich, ich sende einfach alle 100ms 
das Signal, ob da nun ein Slave reagiert oder nicht wird vernachlässigt.
Stretching habe ich noch nicht gehört, wenn HW I2C es aber automatisch 
macht, dann sollte auf der Masterseite ja alles klar gehen, ist ein 
ATMega1284.

Wie funktioniert das nun bei den Tiny, Quellcode Beispiel?

von Mark R. (stevestrong)


Lesenswert?


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.