pca9674a — I2C Genişletici Sürücüsü

pca9674a modülü, NXP PCA9674A 8 bitlik yarı çift yönlü G/Ç genişletici için bir sürücü sağlar. Çip, I2C üzerinden 8 bitlik bir G/Ç bağlantı noktası ve herhangi bir giriş pininin durumu her değiştiğinde darbe veren etkin-düşük bir INT hattı açığa çıkarır.

Her pin yarı çift yönlüdür: 1 yazmak, pini zayıf bir dahili yukarı çekme direncine bırakır, böylece harici bir sürücünün düşük çekebileceği bir giriş gibi davranır; 0 yazmak ise pini etkin olarak düşük seviyeye sürer. Ayrı bir yön yazmacı yoktur – PCA9674A.read(), son yazılan değerden bağımsız olarak her pinin geçerli harici seviyesini döndürür.

7 bitlik I2C adresi, A0/A1/A2 strap pinlerine bağlı olarak 0x380x3F arasındadır; varsayılan değer 0x3F (63) şeklindedir (tüm strap’ler yüksek).

class PCA9674A – 8 bitlik G/Ç genişletici

class pca9674a.PCA9674A(bus: machine.I2C, irq_pin: str, address: int = 63, callback: Callable | None = None)

Bir PCA9674A G/Ç genişleticiye arayüz oluşturur.

  • bus, genişleticinin bağlı olduğu machine.I2C veri yoludur.

  • irq_pin, ana MCU üzerinde genişleticinin INT çıkışına bağlı pin etiketidir. Sürücü, bunu yukarı çekme dirençli bir giriş olarak yapılandırır ve düşen kenarını izler.

  • address, genişleticinin 7 bitlik I2C adresidir (0x380x3F). Varsayılan değeri 0x3F şeklindedir.

  • callback, herhangi bir pin durumu değiştiğinde irq_pin pininin düşen kenarında çağrılır. Tek argüman olarak PCA9674A örneğini alır; yeni pin durumu read() ile okunabilir. Yoklama tabanlı kullanım için None (varsayılan) geçirin.

write(value: int) None

8 bitlik value değerini G/Ç genişletici pinlerine yazar.

read() int

G/Ç genişletici pinlerinin 8 bitlik değerini döndürür.

reset() None

G/Ç genişleticiyi sıfırlar ve yeniden ilklendirir, ayrıca sağlanmışsa IRQ callback geri çağırmasını yeniden bağlar.