Saya sedang berpikir tentang melakukan modul untuk papan pengembangan yang saya lakukan beberapa hari yang lalu yang akan mencakup antarmuka spi / i2c.
Masalahnya adalah saya tidak memasukkan resistor pull-up di pin MCU di papan utama dan berpikir untuk menambahkannya di modul untuk membuatnya lebih "generik" sehingga setiap pengguna dapat menggunakannya tanpa perlu menambahkan resistor tambahan di papan prototipe.
Tapi kemudian saya menghadapi masalah berikutnya. Jika saya menambahkan pull-up resistos di modul tambahan dan saya menghubungkan misalnya dua atau lebih modul ke bus yang sama saya akan mendapatkan resistor secara paralel sehingga hambatan akan turun dan tidak akan mencapai fungsinya.
Tetapi jika saya menambahkan resistor pull-up ke papan utama saya akan memiliki pin di MCU selalu aktif rendah.
Jadi pertanyaan utamanya adalah:
Bagaimana agar beberapa modul terhubung ke bus yang sama dengan masing-masing memiliki resistor pull-up tetapi tidak membuatnya paralel ketika Anda memiliki lebih dari satu modul? Apakah itu mungkin?
Atau solusi terbaik di sini adalah mengaktifkan resistor pullup di MCU dan tidak memasukkannya dalam modul?
Terima kasih.-
Jawaban:
Saya akan berasumsi bahwa panjang total masing-masing bus Anda di bawah 1 meter, yang khas untuk dataran I 2 C dan SPI. Juga, kapasitansi bus berada dalam spesifikasi.
Seharusnya hanya ada satu (1) set resistor pull-up. Hasilnya, tempat terbaik bagi mereka adalah di papan pengontrol utama. Jangan letakkan pull-up pada modul.
Jika Anda ingin memiliki pull-up dalam beberapa kasus dan tidak memilikinya dalam kasus lain.
sunting: Terus terang, saya pikir itu adalah kesalahan yang Sparkfun menempatkan pull-up pada modul slave I 2 C. Sayangnya, tidak semua orang yang membeli modul menyadari bahwa pull-up yang berlebihan dapat menjadi masalah. Akan lebih baik jika papan pengontrol (bukan papan periferal slave) memiliki pull-up dengan jumper solder. Oh ... Tunggu ... Arduino tidak membawa pull-up (opsional) (walaupun mungkin harus). Jadi, mari kita mulai di mana-mana. Pengalaman awal out-of-the-box yang lebih mudah. Tetapi tambahkan beberapa modul slave dan bus akan berhenti bekerja.
pembaruan (Mei 2015):
- Diskusi terkait dalam komentar di utas lain.
- Dalam modul terbaru mereka, SparkFun mulai menambahkan jumper gumpalan solder antara Vcc dan resistor pull-up I 2 C ( contoh ). Itu memungkinkan untuk memutuskan sambungan pull-up dengan lebih mudah.
update (Des 2015):
Pertanyaan serupa tentang pemecahan masalah I 2 C dengan beberapa modul terus bermunculan di papan pesan. Mencoba tanggapan umum yang diperluas.
sumber
Salah satu opsi adalah menggunakan paket resistor SIL atau DIL, dan memasangnya dalam soket pada setiap modul. Saat membangun sistem dengan banyak modul, tarik keluar dari setiap modul kecuali yang terakhir. Ini menghemat ruang papan kecil di atas jumper.
Variasi pada tema ini dapat mencakup sakelar FET untuk menghubungkan atau melepaskan resistor, dikontrol oleh satu jumper, atau pin cadangan pada konektor (sehingga jika modul lain dicolokkan, resistor secara otomatis terputus)
sumber