Saya menggunakan IC USB-UART dengan MCU, yang ditenagai oleh baterai.
USB-UART IC diaktifkan dari konektor USB, bukan dari baterai, sehingga saya tidak perlu membuka konsol setiap kali sakelar dimatikan dan dihidupkan.
mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab
sunting: Saya tidak menggambarkannya tetapi IC memiliki regulator 3.3V internal dan setiap VDD berada pada level 3.3V ketika sakelar dihidupkan.
Sekarang saya khawatir ketika USB dicolokkan dan sakelarnya masih mati.
Dokumen MCU mengatakan bahwa peringkat maksimum setiap input pin adalah VDD + 0,3, yang akan menjadi 0,3 V ketika MCU tidak diaktifkan.
Jika pasangan TX / RX di sisi USB-UART menjadi tinggi, apakah itu akan merusak pin di sisi MCU?
Jika demikian, Apa yang saya butuhkan di antara pasangan TX / RX?
sumber
Jawaban:
Itu tergantung pada MCU, tetapi dalam kebanyakan kasus itu akan menyalakan MCU, dan mungkin sisa papan melalui MCU. MCU akan mencoba lari, dan melakukan hal-hal aneh. Papan Anda akan melakukan hal-hal yang lebih aneh. Jika papan Anda menggambar arus yang cukup, itu akan merusak pin pada MCU.
Anda perlu mengatur agar sinyal UART tetap di 0V ketika MCU dimatikan. Jika chip UART (atau UART) yang Anda gunakan tidak memiliki pin pengaktifan (chip USB UART yang telah saya kerjakan dapat dikonfigurasikan sesuai dengan kasus yang Anda gambarkan), maka DAN UART mengeluarkan dengan mikroprosesor VCC.
sumber
Solusinya mungkin sesederhana NMOS antara pin TX dari USB-UART (tiriskan) dan pin RX dari MCU (sumber), dengan gerbang terhubung ke MCU VDD.
Ini berarti bahwa USB-UART hanya akan dapat mengemudi hingga 3,3 V dikurangi tegangan ambang transistor. Anda harus memeriksa apakah ini masih cukup untuk memenuhi V_IH MCU Anda.
Saya skeptis terhadap solusi yang melibatkan gerbang logika yang didukung (secara tidak langsung) oleh VBUS. Selama gerbang logika mendorong input MCU tinggi, MCU VCC mungkin tidak turun cukup jauh untuk mematikan driver TX. Dengan solusi NMOS, pin TX hanya dapat didorong ke tegangan yang lebih rendah dari VCC, membuat umpan balik semacam ini tidak mungkin.
Ngomong-ngomong, Anda juga harus mempertimbangkan arah sebaliknya: Jika MCU diaktifkan, tetapi USB-UART tidak, Anda akan ingin memastikan bahwa Anda tidak sengaja memberikan daya ke USB-UART, menguras daya Anda. baterai lebih cepat dari yang Anda harapkan. Solusi khusus perangkat lunak sudah cukup untuk ini.
sumber
Saya punya solusi yang sama sekali berbeda, yang, bagaimanapun, tergantung pada chip USB yang Anda gunakan.
Beberapa dari mereka memiliki VBUS dan VCCIO yang berbeda. Dalam hal ini, Anda mungkin dapat menyalakan bagian IO dari chip itu bersama dengan UC.
sumber
Solusi mudah adalah dengan meletakkan beberapa resistor di antara pin I / O. Ini akan membatasi aliran arus ke pin sehingga transceiver tidak dapat memberi daya pada UC. Nilai resistor adalah keseimbangan antara membatasi bandwidth antara chip dan membatasi arus.
Buffer logika didukung oleh USB tetapi dengan output yang diaktifkan oleh UC. Ini melakukan hal yang sama seperti keluaran transceiver yang memungkinkan jawaban yang lain.
Apakah ada keuntungan untuk menonaktifkan UC ketika terhubung ke komputer? Jika tidak, Anda dapat memberi daya UC dari daya USB 5 V. Cara untuk melakukan ini adalah:
sumber
Sudahkah Anda mempertimbangkan jika beberapa buffer tri-state akan menjadi solusi yang baik? Anda dapat mengikat pin pengaktifan ke sakelar Anda dan kemudian memastikan polaritas dari tx ke rx benar, yang secara efektif memberi Anda perlindungan yang Anda minta.
sumber