PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Problem mit TWI Slave



porter91
08.01.2013, 14:53
Hallo

Ich habe ein Problem mit dem TWI bus. Ich habe einen ATmega 32 als master genommen, nutze die Lib. von P.Fleury und einen Atmega 8 als Slave, verwende die Slavedatein aus dem RN-Wissen Bereich.
Das schreiben von Werten in den Slave funktioniert wunderbar, nur das lesen von Daten aus dem Slave geht nicht. Es wird noch im Programm die Bufferadresse auf 0 gesetzt und dann bleibt scl auf GND der Mega32 wartet. Das er wartet erkenne ich an der Ausgabe am Uart, da ich in den Programmcode Ausgaben eingefügt habe. Des weiteren habe ich noch ein Logikanalyser angeschlossen der mir das Gleiche bestätigt.
Programm code im Annhang.

Schönen Gruß an euch

KR-500
08.01.2013, 17:49
Hi,

wie es aussieht benutzt du noch eine veraltet "twislave.c", deine Version kommt mir einem Repeated Start nicht klar. Ich habe damals einen Verbesserungs Vorschlag (https://www.roboternetz.de/community/threads/57885-TWI-Slave-mit-avr-gcc) gemacht, mit dem auch der Repeated Start funktioniert, am besten guckst du noch mal hier (http://www.rn-wissen.de/index.php/TWI_Slave_mit_avr-gcc):



case TW_SR_STOP:
TWCR_ACK;
break;


Im Moment wird bei dir immer "TWCR_RESET" ausgeführt, es müsste jedoch "TWCR_ACK" ausgeführt werden. Ich hoffe ich konnte helfen ansonsten könnte es vlt auch an den Pullup Widerständen liegen.

Viele Grüße!

porter91
09.01.2013, 10:02
Hey

Du hast recht gehabt es war der Fehler. :-)
Danke Schön