mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mir TWI (Master Receiver Modus)


Autor: Hias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

ich möchte mittels twi einen DS1631 ansteuern.
Dabei gerate ich beim Master Receiver Modus auf Probleme.

Aber von vorne:
Das Datenblatt gibt mir ja die Kommunikation vor.
Um genau zu sein sollte es so aussehen.

START->ControlByte(Write)->ACK->CommandByte->ACK->
->RepeatSTART->ControlByte(Read)->ACK->MS Data->ACK(Master)->LS
Data(Master)->Stop

Ich verstehe den Ablauf genau bis zum letzten ACK das vom Sensor
stammt. Ab hier komm ich nicht wirklich weiter.

Offene Fragen:
Wie sag ich es dem µC dass er einmal mit ACK antwortet, das andere mal
NACK. Ich kann ja zwischendurch ned umstellen!? (TWEA)
Wie soll ich abfragen ob ich die fertig übertragen Daten aus twbr
auslesen kann? TWINT in einer Schleife abfragen!?
Wie weiß ich ob ein Slave ein oder 2 Datenbyte überträgt. Ich muss ja
den Master darauf vorbereiten....????

Am liebsten wär mir natürlich ein asm-code-schnipsel, der mir all dies
beantwortet.

Ich hoffe ihr könnt mir helfen...
Danke schon mal
Hias

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Offene Fragen:
Wie sag ich es dem µC dass er einmal mit ACK antwortet, das andere mal
NACK. Ich kann ja zwischendurch ned umstellen!? (TWEA)"

Doch, man kann das umstellen.

"Wie soll ich abfragen ob ich die fertig übertragen Daten aus twbr
auslesen kann? TWINT in einer Schleife abfragen!?"

Genau so, oder einen Interrupt schreiben. Das TWINT-Bit wird aber nicht
nur einmal pro Übertragung ausgelöst, sondern mehrmals.

"Wie weiß ich ob ein Slave ein oder 2 Datenbyte überträgt. Ich muss
ja
den Master darauf vorbereiten....????"

Der Master muß einfach "wissen", wieviele Bytes kommen werden.
Umgekehrt (Master->Slave) ist das einfacher, da kann der Slave durch
ein "nACK" dem Master mitteilen, daß er satt ist.

Schau Dir die Diagramme im Datenblatt nochmal an, auch die
Codebeispiele des Datenblattes lassen normalerweise keine Fragen offen.

Autor: Hias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal.
Werd das alles gleich mal testen.
Leider ist im Datenblatt nur ein Codebeispiel des Master Write Modus.

Hat jemand einen Code rumliegen der das Lesen behandelt?

hias

Autor: Hias (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal!

ich habe jetzt versucht all das umzusetzten, was thkais gesagt hat.

Leider scheitert es immer noch am Empfang von Daten als Master.

Ich hab im Anhang mal den Code gegeben.
Vielleicht könnte einer von euch mal drüberschauen, speziell
receive_data_byte

Ich bekomm immer ne Error-Meldung, wenn ich in send_stop_r, TWSR
prüfe...

Danke Hias

Autor: hamed (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
whate is master code star-sat sr-x150d plus  i forget my pasword

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.