Gast
#3604631
Liebe Experten, ich versuche, einen ATmega8 auf Breedboard mit einem Raspberry Pi per I2C/TWI zu verbinden. Auf dem ATmega läuft ein kleines Assemblerprogramm, das LED anschalten soll. Auf dem Pi läuft ein Java-Programm mit Pi4J als Zugriffsbibliothek. Ziwcshne den beiden hockt der I2C-fähige 3,3-auf-5V-Pegelwandler für die SDA/SCL-Leitungen von Adafruit. Fernziel ist, den µC als Sensor einzusetzen und die Auswertelogik für seine Daten in Java auf dem Pi abzuwickeln. In dieser Teststellung dienen die LED erstmal nur zur Anzeige des Innenlebens im ATmega. Die Listings des Java und des Assembler-Programms habe ich angehängt. Sobald ich auf die Zeile "device.write(b);" im Java debugge und diese ausführe passiert folgendes: a) Das Startmuster wird gezeigt (korrekt! Verbindung scheint also zu funktionieren) b)Nach dem "wait" kommt das Muster 0x60 für TW_SR_SLA_ACK, auch korrekt c) Und dann kommt das Muster für 0xFE, was der ausgeschalteten LED D0 entspricht, auch korrekt...aber das war's dann leider auch. Theoretisch müßte ja jetzt das Muster für die Datenübertragung folgen, tut's aber nicht. Parallel kriege ich auf der Java-Seite den Error java.io.IOException: Error writing to /dev/i2c-1 at address 0x40. Got -20001. at com.pi4j.io.i2c.impl.I2CDeviceImpl.write(I2CDeviceImpl.java:72) at TwiTest.run(TwiTest.java:32) at TwiTest.main(TwiTest.java:14) Ich knalle also direkt nach der erfolgreichen Adressierung vor die Wand, wobei die "Elektrik" zu funktionieren scheint. Was mache ich falsch? Grüße und Danke Frank