Saya mencoba untuk menghubungkan perangkat 3.3VI 2 C ke Arduino 5V.
Saya tidak punya masalah dengan saluran SCL. Saya dapat menggunakan pembagi tegangan sederhana tetapi saya memiliki masalah dengan garis SDA karena ini adalah dua arah.
Saya sama sekali tidak yakin bagaimana menangani ini. Saya telah menambahkan sepasang dioda, dengan pembagi tegangan pada sisi input slave dan tidak ada tambahan pada input master.
Apakah ada solusi lain?
Jawaban:
Dokumen yang baik tentang subjek adalah Bi-directional level shifter untuk I2C-bus dan sistem lain yang menggunakan MOSFET tunggal sebagai bi-directional level shifter.
sumber
Untuk memperluas jawaban sivu, ini adalah penggunaan umum untuk apa yang disebut "bus switches" yang pada dasarnya adalah MOSFET yang dikendalikan oleh logika. Menggunakan MOSFET diskrit memiliki beberapa kelemahan (kapasitansi parasit / kopling kapasitif menjadi satu) dan mungkin sulit untuk memilih MOSFET yang baik. Sakelar bus dioptimalkan untuk digunakan dalam sirkuit logika berkecepatan tinggi.
Beberapa produsen membuatnya, termasuk Fairchild, TI, IDT, dan Pericom. Lihatlah NC7SZ384 .
Lihat catatan aplikasi berikut ini, antara lain:
sumber
Banyak Arduino memiliki dukungan onboard untuk berjalan pada 3,3 V. Sebenarnya, semua dapat berjalan pada 3,3 V dan skema FTDI menjelaskan bagaimana dalam contoh. Paul, yang membuat USB Arduino yang kecil , menyarankan agar saya bisa membuka kabel USB dan menyediakan tegangan 3,3 V sebagai pengganti kabel V CC kabel. Anda bisa mencoba ini. Tetapi ada juga opsi lain.
Terakhir, kami memiliki diskusi yang mungkin menarik bagi Anda tentang hal ini di sini di Chiphacker tentang solusi uni-directional dan bi-directional untuk penurunan tegangan. Artikel tentang SparkFun yang disebutkan oleh todbot ini bermanfaat, seperti halnya diskusi tentang artikel MOSFET dua arah yang ditautkan dari SparkFun. Untuk meringkas artikel SparkFun:
sumber
Ada IC yang tersedia secara khusus untuk pengalihan level I2C:
Saya tidak tahu kendala apa yang Anda miliki pada desain Anda, tetapi saya akan berpikir menggunakan IC khusus akan lebih mudah daripada datang dengan solusi Anda sendiri.
sumber