PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TWI-Master Receiver; Slave Transmitter



dreadbrain
08.07.2008, 11:31
Hallo´,
ich habe 2 controller ( atmega 16 und atmega 128) miteinander über TWI verbunden.
Das Senden von Daten von Master(M128) zum Slave(M16) klappt schon super, nur die andere Richtung macht mir Probleme.

Ich habe mir das so vorgestellt, das der Master den Slave addresiert und der Slave dann ein Datenpaket ( 16 Byte) zurücksendet.
Die 16 Byte sind reine Daten, also muss der Master mitzählen damit er weis welches Byte das gerade empfangene ist.


Im Wiki ist dazu ja ein Beispiel, das genau das macht, halt nur mit einem Byte.
Ich habe schon ewig rumprobiert das auf 16 byte zu erweitern, komm aber nicht dahinter wies funktioniert.
Das Datenblatt von Atmel gibt auch nicht viel dazu her.

Kann mir jemand Beschreiben wie ich das machen könnte.
Wann muss wer ACK onder NACK senden etc.

Hat evtl. jemand ein Beispiel dazu?

mfg Benedikt

Dirk
08.07.2008, 20:05
Ich habe mir das so vorgestellt, das der Master den Slave addresiert und der Slave dann ein Datenpaket ( 16 Byte) zurücksendet.

Der Slave sendet einfach sein 1. bis 15. Byte und der Master antwortet jedes Mal mit ACK. Dann sendet der Slave das 16. Byte und der Master sagt "Stop" mit NACK.
Das war's. Der Slave sendet also z.B. so lange, bis er ein NACK kassiert.

Gruß Dirk

dreadbrain
10.07.2008, 14:01
hH

Danke, für deine Antwort.
Habe das Problem in einem "letztem verzweifelten Anlauf" doch noch selbst in den Griff bekommen.
Mann mus nur das liebe Datenblatt wirklich genau lesen und sich die Beispiele ansehen. Dann klappt das wunderbar.

mfg Benedikt