12 V input pada 3.3 V GPIO, TVS ditarik ke bawah atau Schottky tarik ke atas?

12

Saya sedang membangun PLC sendiri yang harus menerima input permanen hingga 30 V DC menjadi STM32F dengan input 3,3 V.

Input yang diaktifkan harus bekerja dengan 8-30 V, tetapi 90% dari waktu tegangan input akan diperbaiki pada 12 V atau 24 V. Input hanya akan menjadi switch seperti limit switch, jadi saya tidak repot tentang mendeteksi input kurang dari 8 V atau input dari sensor, dll. Saya juga tidak khawatir tentang kecepatan karena secara realistis saklar tercepat akan bergerak setiap 1 detik; Saya hanya perlu memastikan bahwa mikrokontroler saya terlindungi.

Saya ingin rangkaian universal yang dapat saya gunakan di beberapa produk / proyek sejenis sehingga jumlah komponen, biaya dan ruang PCB harus minimal jadi saya tidak benar-benar ingin menggunakan optocoupler.

Dua insinyur elektronik telah merekomendasikan yang berikut ini, tetapi saya tidak terlalu yakin cara apa yang terbaik:

Masukkan deskripsi gambar di sini

Haruskah saya menggunakan yang paling atas atau yang paling bawah? Adakah alasannya?

Terry Gould
sumber
5
Saya biasanya tidak mengatakan ini, tapi ini kedengarannya tempat yang bagus untuk optocoupler.
Matt Young
@ MasYoung, bisakah Anda memperbarui komentar Anda untuk mengatakan mengapa optocoupler diperlukan?
Richard Chambers
1
Sirkuit yang saya tanyakan dalam pertanyaan ini adalah sirkuit input dari merek PLC utama.
Ron Beyer

Jawaban:

17

Ini sebenarnya masalah lama dengan PLC dan tidak sesederhana solusi yang Anda maksudkan.

Masalah terbesar yang Anda miliki adalah bahwa juga memiliki berbagai macam tegangan logika potensial yang Anda butuhkan untuk dapat menangani, level logika sebenarnya bisa jauh lebih tinggi daripada rel 3.3V yang Anda gunakan secara internal. Beberapa sensor dan perangkat memiliki ambang logika di atas 5V. Dengan demikian hanya menggunakan sirkuit cut-off seperti yang Anda tunjukkan tidak akan mendeteksi level rendah dari sensor tersebut.

Tahap input dari PLC harus jauh lebih fleksibel.

Bahkan jika level logika level rendah dapat diterima, sirkuit ini masing-masing mengalami masalah yang berbeda.

Pembatas Zener / TVS.

masukkan deskripsi gambar di sini

Sirkuit ini memiliki manfaat bahwa, untuk tegangan input yang diketahui, zener dapat diukur untuk tidak pernah membiarkan tegangan melebihi tegangan rel. Biasanya Anda akan memilih zener dengan tegangan balik yang lebih kecil dari rel, tetapi lebih tinggi dari ambang logika tingkat tinggi.

Namun, zener akan menghabiskan banyak bias terbalik hidup, seperti Anda membayar denda dalam bentuk waktu pemulihan terbalik ketika sinyal input turun yang akan menunda sinyal Anda sedikit.

VsayaH

Dioda Pembatas Over-Rail

masukkan deskripsi gambar di sini

Menggunakan dioda hingga rel memiliki masalah bahwa tegangan output masih akan melebihi Vcc, baik itu sedikit. Namun, itu masih bisa merugikan input. Selanjutnya, dalam hal ini waktu pemulihan terbalik berarti, untuk tepi input cepat, tegangan tinggi akan melewatinya dengan sangat singkat.

Begitu

VHAIL.

Alternatif


Opto-Coupling.

Metode umum yang digunakan oleh PLC adalah menggunakan opto-coupler.

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

Metode ini memberi Anda manfaat tambahan dari isolasi dan pemisahan tanah. Masalahnya adalah Anda memerlukan beberapa bentuk pengkondisian sinyal antara sensor dan input untuk memastikan LED menyala pada ambang batas yang benar, dan bahwa jumlah arus yang benar dimasukkan melalui LED. Pengkondisian itu bisa berupa resistor sederhana yang ditunjukkan di atas, atau rangkaian kompleks yang mencakup pembanding.

Kecepatan opto-coupler juga merupakan faktor pembatas. Namun, metode ini biasa digunakan karena memberi Anda fleksibilitas penuh.

Pengkondisian Input Analog

Metode lain adalah menerima sinyal dalam bentuk analog, membandingkannya dengan referensi variabel dengan histeresis, dan menghasilkan tingkat logika seperti itu.

skema

mensimulasikan rangkaian ini

Tentunya komponen, termasuk pembanding, perlu dipilih untuk mengakomodasi tegangan input maksimum. Sirkuit yang ditunjukkan cukup sederhana, dapat menjadi jauh lebih kompleks dengan filter, regulator, perlindungan ESD dll.

Kombinasi

Untuk alasan isolasi, Anda dapat menggabungkan di atas, dan memiliki daya pembanding driver arus konstan ke LED dari sebuah coupler-opto.

Jika saya mengembangkan suatu produk, saya akan merakit semua itu pada modul plug-in kecil yang dapat dicolokkan ke soket tepi kartu pada papan "ibu", seperti yang mereka gunakan untuk kartu di PC. Dengan begitu Anda dapat dengan mudah menggantinya jika Anda digoreng. Metode itu juga memungkinkan Anda membuat tipe input lain tersedia, misalnya, input serat optik.

Trevor_G
sumber
2
Apakah BJT atau FET tidak akan menjadi cara yang baik, aman, murah untuk melakukan ini? OK, sinyalnya akan terbalik, tetapi perangkat lunak akan memperbaikinya. Pertanyaan yang tulus, tidak berusaha menjadi pintar.
DiBosco
VHAIL.
Terima kasih atas jawaban Anda yang sangat terperinci, saya baru saja memperbarui pertanyaan saya untuk menjawab beberapa masalah yang Anda sebutkan. Tegangan input akan 8-30v dengan frekuensi maksimum 1s
Terry Gould
@ JerryGould keren, maka saya sudah menunjukkan kepada Anda semua yang perlu Anda ketahui :)
Trevor_G
Apakah akan banyak berubah jika inputnya toleran 5V? Banyak yang menggunakan STM32F, dengan maksimum absolut pada 5.3V. Juga Vih adalah 0,7 * Vdd jadi 2,3V untuk rel 3.3V.
Jan Dorniak
5

100k terlalu tinggi. Itu akan memicu dari hampir semua operasi relay atau switching di dekatnya. Tidak terlalu dapat diandalkan untuk sebuah PLC jika Anda bertanya kepada saya.

Sebenarnya ada standar dan peraturan untuk PLC . Karena Anda ingin semua vendor PLC memiliki perilaku serupa dalam instalasi, dan alangkah baiknya jika berbagai model dapat dihubungkan satu sama lain tanpa masalah.

Misalnya, input hanya menganggapnya aktif ketika tenggelam setidaknya ~ 2 mA dan di atas 10V. (IEC 61131-2) iec 61131-2

Anda tidak bisa mendapatkan ini tepat dengan pasif, itulah sebabnya ada bagian seperti SN65HVS880.

Dalam jawaban saya sebelumnya saya telah memberikan contoh skematis tentang bagaimana Anda dapat mencoba untuk mendekati perilaku ini dengan pasif *.

100K sederhana dan BAT54S tidak akan dapat diandalkan, saya dapat memberitahu Anda dari pengalaman.

contoh input plc
jawaban sebelumnya

* Memicu schmitt terpisah tidak penting

Jeroen3
sumber
2

Keduanya bisa diterima. Anda harus memastikan resistor berukuran benar sehingga arus input tidak menyebabkan tegangan input turun di bawah V_IH, tetapi dengan CMOS ini sepele karena arus input sangat kecil (100k hampir pasti baik-baik saja)

Dengan yang kedua satu-satunya peringatan adalah bahwa Anda harus memastikan bahwa total beban pada 3.3V tidak pernah kurang dari 30V / 100k (berapa kali banyak input yang Anda miliki), jika tidak rel 3.3 V dapat ditarik ke tegangan yang dapat merusak perangkat di atasnya. Jika Anda memasukkan mikro ke mode tidur, itu mungkin menarik sedikit.

Peringatan lainnya adalah bahwa dalam kedua kasus resistor 100k bertindak dengan kapasitansi input sebagai filter lolos rendah, yang memperlambat input. Jika ada kapasitansi input 10pF, mereka akan memiliki tingkat toggle maksimum sekitar 100kHz dan penundaan sekitar 2 mikrodetik.

τεκ
sumber
VHAIL.
"Tidak berfungsi jika VOL dari sensor yang terpasang> 1,5V atau lebih." - tambahkan resistor dari GPIO ke ground untuk membentuk pembagi tegangan. Masalah terpecahkan!
Bruce Abbott