Hallo, ich hab da mal ne Frage: ich will eine Kommunikation zwischen einem raspberry pi und einem Nucleo Mbed aufbauen. Nucleo Mbed benutzt I2C-Bus. Raspberry Pi den SM-Bus, der ja auf dem I2C-Bus aufbaut. Ich benutze folgenden Befehl in Python: read_i2c_block_data(int addr, char cmd) und krieg Fehlermeldung. Kann mir vielleicht jemand weiterhelfen? Der entsprechende Write-Befehl funktioniert. Gruß Sven
Sven S. schrieb: > und krieg Fehlermeldung. Kann mir vielleicht jemand weiterhelfen? Nur wenn Du bereit bist, uns die Fehlermeldung zu veraten.
Was ist ein "Nucleo Mbed"? Wenn das ein µC als I2C-Slave ist, dann wirst du vielleicht feststellen, dass der Clock Stretching verwendet. Und damit kommt der RPi nicht zurecht. Setz mal den I2C-Takt auf ein paar kHz runter. Wenn es dann läuft...
Die Fehlermeldung ist ein Input/output Error [Errno5] Ein Nucleo Mbed F411RE ist ein Microcontroller und wird bei mir als I2C-Slave verwendet.
@A.K. Weißt du denn Befehl bzw. die Vorgehensweise, wie ich den I2C-Takt verändere? Finde dazu grad nichts. Danke Sven
/sys/module/i2c_bcm2708/parameters/baudrate
Ich hab die Taktrate von 100kHz auf 50, fünf und ein kHz verändert gehabt. Das hatte allerdings keine Auswirkung, auf die fehlerhafte Übertragung. Ich denke es liegt nicht am Clock-Stretching des SM-Buses, sondern am (Re-)start-Bit im read_block_data-Befehl. Siehe auch auf Seite 3 bei incompatible: http://www.ti.com/lit/an/sloa132/sloa132.pdf Vielleicht weiß auch jemand was es mit dem modifizierten block-read-befehl auf sich hat. Weil read_i2c_block_data ist das nicht, weil der auch nicht funktioniert?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.