PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : I2C Slave auslesen geht nicht



leibiflo
19.03.2011, 21:00
Hallo,

ich habe ein Problem mit dem I2C Slave und Master Codebeispiel in RN-Wissen (http://www.rn-wissen.de/index.php/TWI_Slave_mit_avr-gcc).
Hab für den Master und Slave je einen ATmega8. Vom Master Daten zum Slave übertragen funktioniert super. Da gab es keine Probleme.
Nun wollte ich aber Daten vom Slave auslesen. Das funktioniert aber nicht.
Der Master-µC bleibt immer an dieser Stelle "byte1= i2c_readAck();" stecken. Es werden keine Daten vom Slave übertragen. Was kann das für Ursachen haben? Liegt das am Slave-Programm?

Besten Dank für Hilfe.

mfg
Florian

PicNick
20.03.2011, 08:35
Bei "Master-Receiver" kommt der Takt u. der Ablauf vom Master, das Slave kann nur inhaltlich was ändern.
d.h. steckenbleiben kann der Master nur von selber, irgendwo hat er einen Murks drin.
Nochmal genau mit dem Beispiel vergleichen, wenn schreiben geht, kanns nur eine Kleinigkeit sein.

Erst wenn der Master Daten kriegt, diese aber Schrott sind, kommt der Slave dran

damfino
20.03.2011, 10:29
probier mal die Lib von http://www.jtronics.de/elektronik-avr/lib-i2ctwi-avr.html. Ein, zwei Register werden anders gesetzt und mit dieser hat es bei mir funktioniert.

LG!

leibiflo
20.03.2011, 12:01
Danke damfino! Mit der Slave-Lib von Junghans funktioniert das auslesen ohne Probleme.

lg
FLorian