Hallo,
normalerweise macht man es so, dass bei der Übertragung einfach ein NACK nach dem letzten Byte gesendet wird, dann muss der Empfänger erkennen, das danach nix mehr kommt. Egal in welche Richtung die Daten gehen.
Hallo!
Gibt es im TWI Protokoll eine Möglichkeit, dass der Slave als Transmitter dem Master mitteilt, dass er keine weiteren Daten zur Verfügung hat?
Momentan ist dafür ein spezielles Byte in meinem Übertragungsprtokoll reserviert, was jedoch sehr umständlich ist...
Hallo,
normalerweise macht man es so, dass bei der Übertragung einfach ein NACK nach dem letzten Byte gesendet wird, dann muss der Empfänger erkennen, das danach nix mehr kommt. Egal in welche Richtung die Daten gehen.
Ja nur kann der Slave als Transmitter keine NACKs senden... soweit ich das verstanden habe.
Der Slave sendet nur die Daten und er Master bestätigt dann mit einem ACK.
Ich kann nur beim Master ein NACK senden und bekomme das dann beim Slave mit, aber umgekehrt geht das nicht. Es sendet ja immer nur der Empfänger ein ACK oder NACK.
Ich hab' da auch im offiziellen Protokoll nix gefunden, um dieses Problem zu lösen.
Man geht scheinbar immer davon aus, das der Master der klügere ist und weiss, wann es genug ist.
In meinem privat-twi-protokoll-layer hab ich das so, dass es bei "intelligenten" Geräten kein Daten-holen im Twi-Sinne gibt,
Der Master sendet ein Art "Enquiry" an irgend einen Empfänger, und der Sendet dann als Master die verlangten Daten
Sprich: es gibt nur forward-messages
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Ohh man, ich schnall das Protokoll nicht... ich habe nun ein wenig hin und her geschraubt und nun geht das...also wenn ich beim letzten Byte was der Slave sended kein NACK sondern ein ACK sende kackt der Master ab und hängt irgendwo inner Endlosschleife, wenn er den nächsten Slave adressieren will.
Gibts in dem Protokoll ne Regel, dass vor dem Stopsignal ein NACK kommen muss???
Hi,
müssen eigentlich nicht, der Slave kann das letzte Byte zwar bestätigen, aber der Master beendet trotzdem.
Wenn der Slave ein NACK zurückgibt muss aber ein Stop kommen, da er keine Daten mehr haben will.
In den AVR-Datenblättern ist das aber eigentlich schön aufgemalt, was alles sein kann oder darf, bei den verschiedenen Übertragungsarten.
Bei meinem letzten Post hattest natürlich recht, da hab ich nur mit einem Ohr hingelesen
Der Slave kann seine gesendeten Bytes weder acken noch nacken
Frage: Verwendest du die Hardware-Twi oder strickst du selbst ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hardware TWI
Moin.
Na, dann ist das mögliche Repertoire ja fest vorgegeben. (Table 77)
Irgendwas a la "Lastbyte" gibt's nicht.
Also muss man eine Layer drüberlegen, der sowas regelt.
TWI regelt eigentlich nur den Zugriff auf den Bus. ~"CollisionSense"
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
ok danke, habe es nun gelöst in dem ich in mein Protokoll ein weiters Steuer-Byte eingefügt habe
Lesezeichen