Bir I2C otobüsüyle çalışıyorsunuz, değil mi? 3.3 V tarafı SDA3 ve SCL3'teki hatları arayacağım ; 5.0 V tarafı SDA5 ve SCL5 üzerindeki iki hat .
" MOSFET ve iki direnç"
Todbot ve cyphunk'in daha önce işaret ettiği gibi, "MOSFET ve iki direnç" devresi SparkFun "sensör arayüzü" eğitiminde istediğiniz şeyi yapar: Mantıksal veri akışı simetriktir - SDA hatlarında her iki yönde veri akışı alçak tarafı yüksek kenara ve milisaniye sonra yüksek taraftan alçak tarafa.
"Diğer yönde çalışmaz" notu, devrenin fiziksel olarak asimetrik olduğunu belirtir: 5.0 V I²C cihazınızın "yüksek tarafa", 3.3 V cihazınızın "düşük tarafa" bağlı olması gerekir. Devre fiziksel olarak asimetrik olduğundan, mantıksal olarak simetrik olduğu açık değildir. (Bu öğretici, fiziksel olarak simetrik olan ve dolayısıyla mantıksal olarak simetrik olan bir "iki MOSFET ve iki direnç" devresini gösteren bir AN97055 uygulama notuna bağlanır).
SparkFun dönüştürücülerde "TX" etiketli satırlar - orijinal posterin işaret ettiği gibi - bu "MOSFET ve iki direnç" çift yönlü devresini uygular. SDA3'ü TX_LV'ye, SDA5'i TX_HV'ye, SCL3'ü TX2_LV'ye ve SCL5'i TX2_HV'ye bağlayın.
Daha sonra veriler her iki yönde de akar: Düşük taraf cihazınız SDA3 ve SCL3 pinlerini çalıştırdığında, yüksek taraf SDA5 ve SCL5 pinlerinde uygun voltajlar görülür. Milisaniye sonra, yüksek taraf cihaz SDA5 ve SCL5 pinlerini çalıştırdığında, SDA3 ve SCL3 pinlerinde uygun voltajlar görülür.
(Tutarsız bir şekilde, bu dönüştürücü kartında "RX" etiketli hatlar yalnızca yüksek voltajdaki verileri düşük voltaj yönüne iletir.)
Çift yönlü optoizolatör
I²C kullandığınız için, I²C için çift yönlü bir optoizolatör de ilginizi çekebilir . İki optoizolatör devresi "MOSFET ve iki direnç" devresinden daha pahalı ve yavaştır, ancak bir tarafta 0 V ile 5,0 V arasında sallanan sinyaller ve diğer tarafta 500,0 V ile 505,0 arasında sallanan sinyaller olduğunda çalışır V.
İki optoizolatör devresi de tamamen fiziksel olarak simetriktir - ve dolayısıyla mantıksal olarak simetriktir - hangi tarafın yüksek taraf ve hangi tarafın düşük taraf olduğu önemli değildir.