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
Problem beim Read-Befehl: i2c-bus mit smbus von raspberry pi
Hallo Sven,
es würde helfen, den genauen Code und die komplette Fehlermeldung zu zeigen.
So wie du deinen Aufruf schreibst, scheint mir schon etwas seltsam. In Python brauchst du die Typen "int" und "char" nicht angeben. Vielleicht funktioniert der Aufruf schon, wenn du die 2 Worte weglässt.
es würde helfen, den genauen Code und die komplette Fehlermeldung zu zeigen.
So wie du deinen Aufruf schreibst, scheint mir schon etwas seltsam. In Python brauchst du die Typen "int" und "char" nicht angeben. Vielleicht funktioniert der Aufruf schon, wenn du die 2 Worte weglässt.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Hallo,
die Fehlermeldung ist ein Input/output Error [Errno5].
Ja, klar int und char sind wegelassen, hab das nur geschrieben um welche Daten es sich handelt.
Es geht eher um das Problem zwischen SM-bus und dem I2C-Slave im Nucleo Mbed.
die Fehlermeldung ist ein Input/output Error [Errno5].
Ja, klar int und char sind wegelassen, hab das nur geschrieben um welche Daten es sich handelt.
Es geht eher um das Problem zwischen SM-bus und dem I2C-Slave im Nucleo Mbed.
Bitte mehr Details, damit sinnvoll geholfen werden kann. Das mindeste wäre die Zeile, die im tatsächlichen Programm für den Aufruf genutzt wird, d.h. mit den echten Werten für die Parameter. Idealer wäre ein passendes Minimalbeispiel, bei dem der Fehler aufritt.
Sinnvolles Fragestellen heißt, dass man auch ausgiebig über die eigene Fragestellung nachdenkt und möglichst viele Hintergrundinformationen mitliefert. Das Forum ist schließlich kein Orakel, dem man nur die Frage stellen muss, um prompt die korrekte Antwort zu erhalten.
Sinnvolles Fragestellen heißt, dass man auch ausgiebig über die eigene Fragestellung nachdenkt und möglichst viele Hintergrundinformationen mitliefert. Das Forum ist schließlich kein Orakel, dem man nur die Frage stellen muss, um prompt die korrekte Antwort zu erhalten.
Tut mir leid, ich bin noch neu im Forum und bei der Thematik noch ein Anfänger.
Ich hab folgenden Code (Werte sind Beispiele):
Taktrate-Runtersetzen am Raspberry PI hat nichts gebracht. Ich denke es liegt nicht am Clock-Stretching, sondern am Restart-Bit.
Siehe Seite 3 bei incompatible:
http://www.ti.com/lit/an/sloa132/sloa132.pdf
Ich weiß auch nicht wie ich die Read_Block-Befehle modifizieren soll:
Hoffe das genügt euch erstmal
Ich hab folgenden Code (Werte sind Beispiele):
Code: Alles auswählen
import smbus
NUCLEO_ADDRESS = 0x5e #Nucleoadresse eintragen
data = [0x03,0x02,0x6f,0x6f]
ret = [0xc7,0xc8,0xc9]
i2c_port = smbus.SMBus (1) #I2C-Bus Nummer 1 am Raspberry
#ret = i2c_port.read_byte (NUCLEO_ADDRESS) #funktioniert
#ret = i2c_port.read_byte_data(NUCLEO_ADDRESS, 0xC3)
ret = i2c_port.read_i2c_block_data(NUCLEO_ADDRESS, 0xC3)
Siehe Seite 3 bei incompatible:
http://www.ti.com/lit/an/sloa132/sloa132.pdf
Ich weiß auch nicht wie ich die Read_Block-Befehle modifizieren soll:
Hoffe das genügt euch erstmal
Zuletzt geändert von Anonymous am Montag 27. Juli 2015, 14:30, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Grund: Quelltext in Python-Code-Tags gesetzt.