EV-O'ya:
Devreniz Raspberry Pi'den IO genişleticiye I2c aracılığıyla iletişim kurmaya başlamak için uygun görünüyor, ancak adres pini için neden 3v3 kullandığınızı anlamıyorum ( s) (devre tahtanızda sol MCP23017'nin 15. pimine bakın), cihazın kendisi 5V ile çalışır. Adres pinleri için de 5V kullanmalısınız, onlara bir "1" atamak istemeniz durumunda ...
Şu anda biraz şanslısınız, çünkü "1" için minimum seviye A0 ve A1 adres pinleri 0,25 x Vdd + 0,8 V = 2,05 V'dir (MCP23017 veri sayfasına bakın, bölüm 2.1 DC Özellikleri, Param No. D040).
Atamayı seçtiyseniz Raspberry Pi'nin 3V3 güç kaynağı aracılığıyla A2 pinini adreslemek için bir "1", bu yanlış olurdu, çünkü bu pin için minimum giriş yüksek voltajı 0.8 x 5V = 4V olmak üzere 0.8 x Vdd olmalıdır !!! Aynı bölüme bakın, Param No. D041.
Artık cihazın özelliklerine daha da yakından baktığıma göre, I2c seviyelerinizle de sorun yaşayabileceğinizi düşünüyorum. Yine de parametre no. Veri sayfasının D041'i, SCL ve SDA'nın minimum giriş yüksek voltajı da 0,8 x Vdd olmalıdır. Bu 4V'dir.
Ancak, Raspberry Pi yalnızca maks. I2c pinlerindeki 3V3 oranı çok düşük.
Şu an için yapabileceğiniz en iyi şeyin 3V3 ile MCP'lerinizi de güçlendirmek olduğunu düşünüyorum. Veya Raspberry I2c ile MCP I2c arasına bir I2c seviyesi dönüştürücü koyarsınız ...