Jadi saya sudah membaca beberapa utas di sini dan di forum lain. Saya mengerti ada berbagai solusi untuk mundur atau naik tegangan. Apa yang saya temukan adalah reg seri pergeseran LVC yang memberikan ouput konstan, MCP1825 yang akan turun 5 ke 3.3 (dan versi lain yang memiliki peningkatan berbeda) 74LCX245 yang akan melangkah 2.5 atau 3.3 ke 5v dan mungkin beberapa yang lain saya lupa . Lalu ada papan siap pakai seperti konverter Sparkfun atau konverter 8 pin ke 8 pin ini . Tetapi semua ini adalah satu arah saja, atau dua arah diaktifkan oleh jumper.
Bagaimana saya mengubah tegangan turun atau naik di kedua arah tanpa memerlukan pin pilih.
5--3.3
5--2.5
5--1.8
Terima kasih
sumber
Maxim memiliki banyak Penerjemah Tingkat Logika , yang sebagian besar adalah bidirectional. Kecepatan bervariasi, tercepat mendukung kecepatan data 100 MBit / detik, yang harus mencakup hampir semua hal yang ingin Anda lakukan di tingkat hobi. Tegangan berkisar dari 0,9V hingga 5,5V.
sumber
Anda bekerja dengan bus I2C, kan? Saya akan memanggil saluran di sisi 3.3 V SDA3 dan SCL3 ; dua garis pada sisi 5.0 V SDA5 dan SCL5 .
" MOSFET dan dua resistor"
Seperti yang todbot dan cyphunk tunjukkan, rangkaian "MOSFET dan dua resistor" yang dijelaskan dalam tutorial "sensor interfacing" SparkFun melakukan apa yang Anda inginkan: Aliran data logis simetris - aliran data di kedua arah pada garis SDA, dari sisi rendah ke sisi tinggi dan, milidetik kemudian, dari sisi tinggi ke sisi rendah.
Catatan "tidak akan bekerja ke arah lain" menunjukkan bahwa sirkuit secara fisik asimetris: perangkat 5,0 V I²C Anda harus terhubung ke "sisi tinggi", perangkat 3,3 V Anda harus terhubung ke "sisi rendah". Karena rangkaian secara fisik asimetris, tentu tidak jelas bahwa itu adalah simetris secara logis. (Tautan tutorial itu ke catatan aplikasi AN97055 yang menunjukkan sirkuit "dua MOSFET dan dua resistor" yang secara fisik simetris, dan karenanya jelas-jelas simetris secara logis).
Garis-garis berlabel "TX" pada konverter SparkFun - yang ditunjukkan oleh poster asli - mengimplementasikan sirkuit dua arah "MOSFET dan dua resistor". Jadi sambungkan SDA3 ke TX_LV, SDA5 ke TX_HV, SCL3 ke TX2_LV, dan SCL5 ke TX2_HV.
Kemudian data mengalir di kedua arah: Ketika perangkat sisi rendah Anda menggerakkan pin SDA3 dan SCL3, tegangan yang sesuai terlihat pada pin SDA5 dan SCL5 sisi tinggi. Milidetik kemudian, ketika perangkat sisi tinggi menggerakkan pin SDA5 dan SCL5, tegangan yang sesuai terlihat pada pin SDA3 dan SCL3.
(Secara tidak konsisten, saluran berlabel "RX" pada papan konverter hanya akan mengirimkan data dalam arah tegangan tinggi ke tegangan rendah.)
Optoisolator dua arah
Karena Anda menggunakan I²C, Anda mungkin juga tertarik dengan optoisolator dua arah untuk I²C . Sirkuit dua optoisolator lebih mahal dan lebih lambat daripada sirkuit "MOSFET dan dua resistor", tetapi ia bekerja ketika satu sisi memiliki sinyal yang berayun antara 0 V dan 5.0 V, dan di sisi lain memiliki sinyal yang berayun antara 500.0 V dan 505.0 V.
Sirkuit dua optoisolator juga sepenuhnya simetris secara fisik - dan karena itu secara logis simetris - tidak masalah sisi mana yang sisi tinggi dan sisi mana sisi rendah.
sumber
Pada salah satu papan kami, kami menggunakan TXS0104E untuk menerjemahkan antara 3.3V dan 5V pada bus I2C (bi-directional).
sumber