Alternatif untuk saklar DIP klasik


10

Saya mencari bagian yang memungkinkan pengguna untuk sering mengubah konfigurasi. Saat ini saya menggunakan saklar DIP SMD yang terhubung ke I2C I / O expander.

Apa yang mengganggu saya adalah jejak besar dari komponen-komponen ini (saklar DIP dikombinasikan dengan IO expander IC) juga pada antarmuka pengguna yang agak membosankan. Apakah ada DIP switch atau sesuatu yang melayani fungsi yang sama yang saya dapat berbicara melalui bus digital seperti I2C untuk membaca kondisinya?

Saya juga terbuka untuk pendekatan yang sama sekali berbeda. Yang saya butuhkan adalah sesuatu yang dapat diubah secara mekanis secara permanen dan memungkinkan setidaknya 64 negara bagian yang berbeda. Penting bahwa konfigurasi dapat dibuat ketika sirkuit tidak dinyalakan dan memberikan umpan balik visual dari konfigurasi yang tepat kepada pengguna. Satu-satunya cara di mana itu akan baik-baik saja untuk menghidupkan rangkaian adalah jika konfigurasi dan umpan balik visual mandiri tanpa perlu kontrol dari mikrokontroler atau SoC.

Pertanyaannya agak terkait dengan pertanyaan ini dari 6 tahun yang lalu: penggantian saklar DIP

Sunting: Ada beberapa saran bagus dalam jawaban dan saya pikir saya meninggalkan pertanyaan ini tanpa jawaban, suara masyarakat harus memutuskan mana yang bermanfaat dan apa yang tidak. Jika Anda memiliki masalah yang sama seperti saya, lihat semua jawaban.


Jika Anda menginginkannya mewah, dobrak modul bluetooth dan atur semua sakelar melalui telepon pintar.
Chupacabras

8
Pikiran pertama saya adalah bahwa itu bukan jejak sebenarnya yang membuat saklar dip besar; itu adalah saklar yang sebenarnya. Pindah ke protokol serial tidak harus membuatnya lebih kecil.
pipa

3
Bisakah Anda mengajari Anda pengguna untuk menghitung dalam Hex dan menggunakan satu atau dua dari ini ?
brhans

Yah aku ingin menyingkirkan multiplexer / port I2C expander. Jika itu hanya saklar DIP itu akan baik-baik saja. Jadi jika ada sesuatu seperti "saklar DIP digital", itu akan bagus.
PTS

4
Berapa jauh lebih kecil dari paket 6-switch kecil yang Anda harapkan dapat dibuat sebelum tidak lagi dapat dimanipulasi secara mekanis?
Phil Frost

Jawaban:


19

Anda bisa menggunakan sakelar SIP alih-alih DIP. Penghematan di area papan akan memberi Anda ruang untuk antarmuka I2C Anda (atau antarmuka yang lebih sederhana seperti register geser dengan kait input):

masukkan deskripsi gambar di sini

Gambar menunjukkannya horisontal tetapi sebenarnya dipasang secara vertikal.


Mereka memang bagus dan saya sedang mempertimbangkan mereka untuk desain saya meskipun di papan SMD multilayer agak sulit untuk menggunakan salah satu dari ini tanpa menghalangi area yang luas untuk routing.
PTS

1
Mungkin ada versi SMD. Paket SIP SMD biasanya memiliki kaki terhuyung.
Pejalan kaki

SMD bisa menjadi tantangan, Apem (yang membuat satu di gambar) tidak melakukannya, saya tidak ingat melihat mereka di tempat lain. Saya biasanya memilikinya di dekat tepi PCB di mana routing tidak selalu begitu penting.
Finbarr

9

Saklar "DIP"

Pertama-tama, "DIP" -witch tidak harus besar. Ini adalah saklar SMD 6-bit dengan pin J-hook dan pitch 1,27 mm:

CHS-06TAmasukkan deskripsi gambar di sini

Potensiometer

Jika Anda putus asa mengurangi jejak, dan Anda bisa sedikit merepotkan pengguna, Anda bisa menggunakan potensiometer yang terhubung ke konverter A / D. Karena Anda memerlukan 64 pengaturan, konverter 12-bit harus memiliki ruang kepala resolusi lebih dari cukup untuk membedakan antara langkah-langkah, mengingat beberapa penyaringan dan pengurasan listrik dan perangkat lunak. Inilah solusi 2 x 2 mm:

PVF2A

Namun, saya belum pernah melihat potensiometer analog dengan 64 penahanan fisik. Ini berarti Anda tidak akan memiliki umpan balik taktis yang andal bagi pengguna saat mengonfigurasi perangkat. Juga sulit untuk menemukan pengaturan yang benar saat boot, karena dapat dibiarkan tepat di ambang batas antara dua pengaturan - Saya akan menyimpan pengaturan sebelumnya dalam EEPROM, dan jika potensiometer cukup dekat dengan nilai yang disimpan saat boot, saya akan menganggap mereka sama.

Juga, saya mungkin tidak akan menggunakan trimmer 2 kali 2 mm, tetapi ada ribuan trimpots berbeda.


Ide menarik dengan potensiometer. Padahal umpan balik visual dari pengaturan yang tepat akan menjadi penting.
PTS

Tersedia mini rotary encoders, profil yang mirip dengan pot pemangkas tetapi dengan keluaran biner, biasanya 4-bit / 16 langkah bertanda 0-F dengan deten yang jelas.
John U

@ JohnU Anda membutuhkan dua dari itu, yang mengarah ke solusi yang lebih besar.
pipa

Dua di antaranya (mungkin tegak daripada rata) bisa membuat pengemasan lebih mudah.
John U

@PTS Jika sudah ada semacam tampilan yang tersedia di perangkat Anda, Anda dapat menyalahgunakan perangkat lunak untuk membaca nilai dan menampilkannya. Dengan asumsi Anda sudah mendapatkan semacam menu konfigurasi, ini tidak perlu banyak pekerjaan baik. Tentu saja, Anda tidak akan dapat membaca tampilan saat perangkat mati.
Mast

9

Apakah Anda memiliki ADC cadangan?

Jika Anda memiliki 8-bit ADC cadangan pada mikrokontroler terdekat, Anda mungkin bisa membuang IO expander yang mendukung jaringan resistor - baik tangga R-2R atau tangga biner berbobot biner. Itu akan menyandikan posisi sakelar sebagai level analog. Tangga resistor tersedia dalam paket yang sangat kecil, tetapi saya tidak tahu apakah Anda akan mendapatkan yang lebih kecil dari expander I2C Anda.

Berapa banyak tujuan umum IO baris yang Anda miliki?

Jika Anda bisa bertahan dengan lebih sedikit jalur IO, mungkin Anda bisa membuang IO expander dan menggunakan yang Anda miliki? Anda dapat multiplex switch ke kurang dari enam jalur IO. Bahkan, jika Anda memiliki ruang untuk 3 dioda dan mikrokontroler Anda memiliki pin tristate, maka Anda dapat mengaturnya hanya dengan 3 pin.

Bisakah pengguna Anda mengelola sesuatu yang sedikit teknis?

Jika pengguna Anda dapat mengikuti instruksi, dan konfigurasi hanya jarang berubah, Anda bisa memiliki terminal terbuka di mana mereka dapat dimasukkan ke dalam resistor. Anda akan mengukur resistor dengan ADC, atau dengan mengukur konstanta waktu terhadap kapasitor. Anda harus dapat membedakan nilai-nilai resistor 64, yang bisa rumit dengan pendekatan yang terakhir. Dan tentu saja pengguna Anda perlu memiliki nilai-nilai resistor / gaya huruf yang tepat.


Dengan resistor, Anda juga bisa melakukan 2 resistor, maka Anda hanya perlu konverter A / D 4 bit, dan Anda membutuhkan lebih sedikit resistor untuk mendistribusikan, sehingga Anda menghemat harga
Ferrybig

Saya menulis ulang pertanyaan saya. Ini belum tentu ukuran saklar DIP yang menjadi perhatian saya tetapi kebutuhan komponen tambahan dalam bentuk I / O expander. Terlepas dari bus I2C saya, saya hanya memiliki 3 IO tersisa.
PTS

Tiga jalur IO tri-negara sudah cukup untuk mengatasi enam sakelar. Secara umum Anda dapat mengatasi n ^ 2-n switch dengan n IO lines dan n dioda. Haruskah saya menambahkan skema?
Jack B

7

Satu atau lebih sakelar putar kode adalah yang Anda cari.

Secara teoritis jumper menawarkan lebih banyak konfigurasi ketika Anda membutuhkan 100-an opsi karena pengguna dapat mempersingkat jumlah mereka bersama-sama dalam konfigurasi yang berbeda, menambahkan resistor, kapasitor, dioda, dll. Tetapi itu sangat teknis bagi pengguna dan untuk diuraikan oleh board!


Maaf saya pasti ketinggalan jawaban Anda ketika saya menambahkan jawaban saya. Memang mereka adalah alternatif yang bagus untuk DIP switch!
PTS

4

NFC NTAG dari smartphone NXP +. Ini pada dasarnya adalah EEPROM I2C, yang juga dapat dibaca dan ditulis melalui NFC tanpa daya sistem.


2

Banyak pilihan bagus di sini! Satu lagi yang agak tidak jelas: Gunakan penerima IR, dan kemudian gunakan remote TV atau komputer untuk menyorot pengaturan. Begitulah cara lampu RGB melakukannya.


1
IR memang menyediakan sedikit energi, jadi itu mungkin hanya bekerja ketika perangkat itu sendiri tidak bertenaga, tetapi bagaimana Anda menyadari itu dalam perangkat keras?
MSalters

2

Saat meneliti ini, saya mendapat rekomendasi untuk Rotary Coded Switches. Jejak kaki mereka sebanding dengan saklar DIP pitch 1,27 mm yang sedikit setara. Meskipun mereka menawarkan antarmuka pengguna yang jauh lebih unggul dibandingkan dengan switch DIP / SIP menurut saya.

Alih-alih perlu mengubah angka desimal atau heks menjadi biner dan membalik satu ton sakelar kecil, Anda cukup memutar 1 atau 2 sakelar putar ini dan bekerja dengan bilangan hex. Jauh lebih mudah untuk memberi tahu pengguna untuk "memasukkan" E6 daripada memerintahkan mereka untuk membalik banyak sakelar dalam pola tertentu.

masukkan deskripsi gambar di sini


1

Pendekatan yang berbeda dapat berupa rotary encoder, EEPROM dan 6 LED kecil.

Status disimpan dalam EEPROM, dan LED menunjukkan mode yang dipilih saat ini.

Mengubah encoder akan beralih di antara mode.

Mungkin tidak menghemat banyak ruang juga - encoder tipikal Anda memiliki poros 6 mm dan kemudian Anda membutuhkan ruang untuk LED juga.

Hanya menggunakan sakelar putar tunggal tidak terlihat menjanjikan. Dengan 64 posisi, Anda akan berakhir dengan hanya di bawah 6 ° per posisi, merasa bahwa atau pelabelan akan menjadi sulit.


Baca saja jawaban Anda @Trevors, jadi pendekatan ini juga tidak berguna.


Terima kasih dengan cara apa pun, ide Anda setidaknya tidak mengharuskan seluruh sistem di-boot. Saya menambahkan itu sebagai cara yang dapat diterima untuk pertanyaan itu.
PTS

Tombol kecil dengan LED untuk bersepeda bisa bekerja. Saya yakin itulah cara yang mereka gunakan untuk memprogram ulang tricorders di Star Trek TNG
PlasmaHH

1

Tiga opsi.

  1. Analog. Pembagi tegangan yang bisa disetel. Pengguna memasok resistor rentang 5% standar mereka sendiri untuk menetapkan nilainya.

  2. PWM. Sirkuit PWM atau RC gaya terisolasi terisolasi dengan 64 langkah yang dibaca perangkat Anda. Mereka dapat diaktifkan secara terpisah atau dari sumber yang sama, tetapi karena itu opto terisolasi perangkat Anda tidak akan hidup. Anda dapat menonaktifkan sirkuit PWM setelah boot.

  3. Digital. Potensiometer digital dengan kontrol tombol. Sekali lagi, sirkuit dapat diberdayakan secara independen dari perangkat Anda.


1

Encoder petir? Ini berkisar dari 0 hingga 9, dapat ditumpuk dan memiliki keluaran biner:

Encoder petir


2
Apakah ini benar-benar lebih kecil dari DIP-switch SMD?
pipa

Aduh, tidak. Ini tentang sebesar ketidakmampuan saya untuk membaca pertanyaan sederhana ... Silakan pilih sesuai keinginan Anda. Maaf karena membuang waktumu.
peter

0

Anda selalu dapat mengeluarkan I2C atau antarmuka lain mungkin USB dan membiarkan pengguna memasang teleponnya dengan aplikasi khusus yang memungkinkan Anda mengonfigurasi beberapa alamat EEPROM internal.

Namun, menggunakan aplikasi telepon bisa sangat bermasalah. Anda perlu mendukung aplikasi dan tetap mengikuti perkembangan teknologi terbaru, dan Anda perlu mendukung banyak vendor ponsel.

Atau Anda bisa menyediakan "Dongle" kustom yang dihubungkan dengan memungkinkan Anda melakukan hal serupa.

Tapi saya ragu itu akan menghemat banyak ruang.

Jika Anda memiliki input pengguna lain, ucapkan dua atau tiga tombol dan semacam indikator, juga dimungkinkan untuk, dengan input pengguna yang sesuai pada tombol (tahan waktu, dll.), Letakkan perangkat dalam mode pemrograman, dan konfigurasikan seperti itu. Hal yang sama Anda lihat pada peralatan rumah tangga seperti termostat, pelembut air, komputer, dll.

Anda dapat melakukan banyak hal dengan dua atau tiga tombol dan LED.

Jika perlu dikonfigurasi saat tidak berdaya, Anda cukup macet dengan sakelar atau jumper.


3
Menggunakan aplikasi ponsel bisa sangat bermasalah, karena ponsel cukup stabil. Sistem tertanam dapat dengan mudah bertahan hidup 5 hingga 10 generasi telepon dan memberikan dukungan untuk seluruh periode waktu dapat bermasalah.
AndrejaKo

@AndrejaKo poin bagus .. enuf bagus untuk tambahan :)
Trevor_G

3
Sayangnya aplikasi ini mensyaratkan bahwa pengguna dapat mengubah konfigurasi tanpa sirkuit dinyalakan, oleh karena itu saya membutuhkannya agar dapat dikonfigurasi secara mekanis. Namun beberapa ide menarik.
PTS

2
@ PTS maka Anda cukup banyak terjebak dengan sakelar atau jumper.
Trevor_G
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.