mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I²C Verständnisfrage: Repeated Start


Autor: Rene Mayer (gozu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

bei meinem aktuellen Projekt muss ich eine Busverbindung über TWI/I2C 
vom atmega32 zu einem RTC ( DS1340 ) herstellen. Hab mich dazu in I2C 
Thematik eingelesen und auch Datenblätter usw. gelesen, aber da das mein 
erstes uC Projekt ist, kenne ich mich noch nicht so gut aus. Habe nicht 
so wirklich verstanden, für was das Repeated Start wirklich gut ist. 
Dient das ganze nur dazu, dass man vom MR- zum MT-Modus und umgekehrt 
wechseln kann? Also würde das bei mir so funktionieren: Ich muss beim 
RTC zuerst den Register Pointer beschreiben, z.b. auf das Register für 
Minuten, danach muss ich von dort den Wert auslesen. Also würde ich dann 
START senden, dann SLA+W , danach Register Pointer und anschließend ein 
Repeated Start mit SLA+R? Was wäre der Unterschied dazu, wenn ich statt 
Repeated Start ein STOPP und anschließend ein START sende? Einfach nur, 
dass es 1 Befehl statt 2 ist oder steckt da noch mehr dahinter?

Danke schonmal

Autor: Eugen Kannsnet (kannsnet)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es geht nicht darum das du einen Befehl einsparst, so sprichst du nur 
deinen RTC an. In dem du zunächst eine bestimmte Register Adresse 
sendest und dann durch ein Repeated Start das Register ausliest. Wenn du 
Start > Send > Stopp > Start > Read ... machen würdest, wird der 
Baustein den du ansprechen willst, voraussichtlich nicht reagieren.

Ich hoffe ich erzähl kein Quatsch. :)

Autor: Mike R. (thesealion)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiert habe ich das ganze noch nicht, aber ich glaube der 
Hauptunterschied ist, das der Bus bei einem Repeated Start für ander 
Teilnehmer nicht wieder freigegeben wird.
Ist eigentlich nur bei Multimaster System interessant, da hier ein 
anderer Master anfangen könnte zu senden und so deine Kommunikation 
stören würde.

Autor: Chris S. (schris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein repeated Start ist für langsame i2c slaves gedacht, sowie wenn
Slaves aus einem power-down modus etwas Zeit brauchen, aufwachen.

Autor: Mark de Jong (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Der Repeated Start ist dafür da das ein Master ohne unterbrechung bytes 
schreiben und anschliessend lesen kann von einen Slave.

Weil der I2C einen Multi-Master bus ist könnte sonnst einen andere 
Master zwischen das schreiben und lesen, denn internen register vom 
slave ändern.

Master1 -> start
Master1 -> setzt register auf 4
Master1 -> stop

Master2 -> start
Master2 -> setzt register auf 6
Master2 -> stop

Master1 -> start
Master1 -> liest register 6, denkt aber es währe register 4
Master1 -> stop

Durch denn repeated start kann kein andere Master etwas auf der bus 
machen, der sequence is quassie nicht unterbrechbar.

Master1 -> start
Master1 -> setzt register auf 4
Master1 -> repeated start
Master1 -> liest register 4
Master1 -> stop

Ich hoffe ich habe es deutlich beschrieben.

Grüße Mark,

Autor: Eugen Kannsnet (kannsnet)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schau mal hier: http://i2c-interface.com/RepeatedStartCondition/
da wird die Aussage von Mike bestätigt das der Bus nicht freigegeben 
wird vom Master.

Autor: GoZu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, ist ja eigentlich ganz logisch :)

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.