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


von Hias (Gast)


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

von thkais (Gast)


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.

von Hias (Gast)


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

von Hias (Gast)


Angehängte Dateien:

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

von hamed (Gast)


Lesenswert?

whate is master code star-sat sr-x150d plus  i forget my pasword

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.