mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATTiny 25 als TWI Slave - Warum SCL als Output (AN 312)


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe versucht einen ATTiny 25 als TWI-Slave (nur Datenempfänger) zu 
nutzen und bin zunächst kläglich gescheitert: der als Master genutzte 
ATmega48 hat entweder das ACK der Daten nicht mehr empfangen (ACK der 
Adresse funktionierte offenbar) oder hat einen allgemeinen Busfehler 
gemeldet.

Also die AN 312 (Using the USI module as a I2C slave) konsultiert und 
gefunden, dass dort SCL-Pin des Tiny auf Ausgang geschaltet wird. Warum 
denn das, eigentlich ist das doch ein Eingang? Jedenfalls funktioniert 
es so, aber ich würde schon gerne wissen: warum?

Vielen Dank,
Thomas

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Clock stretching. Wenn der Kleine noch nicht so weit ist, zieht er SCL 
in die Länge.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verstehe ich das richtig? Der Tiny als Slave kann den eigentlich den 
Takt vorgebenden Master ausbremsen, dazu muss er aber die SCL Pin 
beeinflussen können. ... und trotz Schaltung als Ausgang kann der Pin 
als Eingang für das Taktsignal genutzt werden.

Vielen Dank,
Thomas

Autor: wjunky (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja!
Genau das kann der. Das Stichwort ist "Alterate Port Functions" (-> 
Doku). Die ATmegas können so sogar externe pull-ups überflüssig machen. 
Beim ATtiny25 ist das aber nicht der Fall.
Der hat beim PUOV (pull up override value) jeweils eine 0 stehen, 
erzeugt also niemals ein pull-up, wenn pull up override enable (hier 
USI_TWO_WIRE) 1 ist.

Hier findest du auch die Begründung, warum das ganze funktioniert, wenn 
du den auf Output stellst:
DDOV und PVOE sind von DDB2 abhängig. Die genaue Bedeutung kannst du im 
Datenblatt nachlesen. Tu dir den gefallen und ließ das mit den alternate 
port functions von vorne nach hinten durch...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.