Hallo Leute,
ich versuche seit längerem einen PCA9539 16bit GPIO Expander auszulesen.
Dabei nutze ich derzeit das module smbus2.
Folgendes ist der Fall: Ich nutze ein Linux Betriebssystem (welches Read-only ist). Ich kann also keine module über pip installieren, jedoch diese in einem Ordner dazulegen. Mittlerweile konnte ich auf das Device schreiben, aber beim Lesen tritt immer der folgende Fehler auf:
Code:
import smbus2
from smbus2 import SMBus, i2c_msg, SMBusWrapper
from smbus2 import SMBusWrapper
import time
dev_add = 118 # 0x76
cmd = 0 # 0x00
write = i2c_msg.write(dev_add, cmd) # write command byte 0x00 to device 0x76 (activate following read)
#read = i2c_msg.read(dev_add, 1) # read one byte from device 0x76
with SMBusWrapper(1) as bus:
bus.i2c_rdwr(write)
#bus.write_byte(dev_add, 0)
time.sleep(0.2)
# value = bus.read_byte(dev_add) # read on byte from device 0x76
value = bus.read_word_data(dev_add, 0) # read one word from device 0x76 register 0
Fehlermeldung:
Traceback (most recent call last):
File "PCA2.py", line 15, in <module>
value = bus.read_word_data(dev_add, 0) # read one word from device register 0
File "/persistent/spv3/smbus2.py", line 396, in read_word_data
ioctl(self.fd, I2C_SMBUS, msg)
OSError: [Errno 5] Input/output error
Dazu kommt, dass der Schreibbefehl nicht immer funktioniert. Es ist ganz sicher das Device 0x76 (mit i2cdetect 1 überprüft). Dieser Befehl funktioniert auch ohne Probleme.
Ich habe gesehen, dass es einen Pythontreiber PCA95XX.py gibt welcher smbus nutzt (bin aber unfähig dieses Modul zu finden, und zu kopieren).
LG
PS.: Sorry ist mein erster Beitrag, ich weiß nicht genau wie ich den Code vom Text hervorhebe.
Auslesen PCA9539 über I2C
Im vollständigen Editor gibt es ein Code Tag. Das ist der </> Button. Code markieren & drücken.
Zu deinem Problem: zu 99.9% ein Hardwareproblem. Ist der Bus gut genug mit pull-ups versehen? Sind die Verbindungen gut? Kabellänge im Rahmen? Etc. Oszillograph hilft beim debugging.
Zu deinem Problem: zu 99.9% ein Hardwareproblem. Ist der Bus gut genug mit pull-ups versehen? Sind die Verbindungen gut? Kabellänge im Rahmen? Etc. Oszillograph hilft beim debugging.