Pin UART ke MCU tidak berdaya?

11

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.

skema

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?

Inbae Jeong
sumber
@Toor Apa artinya "tbh"?
Elliot Alderson
1
Mungkin akan baik-baik saja. Gerbang harus dapat mentolerir hingga tegangan operasi maksimum mereka karena mereka harus dapat melakukan itu untuk berfungsi di ujung atas kisaran tegangan suplai mereka. Vdd + 0.3 mengacu pada dioda penjepit ESD di MCU, tetapi jika MCU tidak diberdayakan, dioda tersebut tidak memiliki rel untuk dijepit. Jika MCU berkemampuan 5V sedang dimatikan 3V dan Anda menerapkan 5V ke I / O, dioda itu akan mencoba dan menjepit ke rel 3.3V, tetapi itu tidak berarti itu akan meledak tanpa mereka pada 5V. Anda dapat menggunakan resistor seri untuk membatasi arus melalui dioda tersebut.
DKNguyen
3
@ElliotAlderson "tbh" adalah isme-internet umum untuk "jujur".
Hearth
7
@Kemudian Dioda akan membuat rel listrik; lihat youtube.com/watch?v=2yFh7Vv0Paw .
CL.
5
Ini memang bisa menjadi masalah - tidak hanya risiko teoritis kerusakan tetapi ada bagian yang tidak akan melakukan daya bersih pada reset jika mereka sebelumnya "agak" ditenagai oleh I / Os sebelum kekuatan nyata diterapkan. Jika Anda menemukan papan daya papan ditarik hingga .5v - .6v saat "mati", Anda mungkin berada di wilayah bermasalah.
Chris Stratton

Jawaban:

14

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.

TimWescott
sumber
5

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.

wrtlprnft
sumber
2

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.

glglgl
sumber
1
Ini adalah ide yang bagus tetapi pastikan untuk membaca lembar data transceiver USB dengan hati-hati. Beberapa IC akan mengalami kegagalan lain jika catu daya tidak diterapkan. Bagian Penilaian Maksimum Absloute di dekat awal lembar data harus membahas hal ini.
jherbold
1

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:

  1. Sakelar SPDT yang memilih daya USB saat daya baterai mati. Mengganti sakelar SPST di diagram sirkuit Anda.
  2. Dioda, dioda, sirkuit terintegrasi dioda ideal, atau MOSFET yang dikontrol oleh UC untuk memilih daya USB bila tersedia. Sekarang Anda perlu mempertimbangkan apa yang terjadi ketika sakelar baterai ditutup dan USB terhubung. Penggantian baterai yang tidak terkontrol jarang merupakan hal yang baik.
jherbold
sumber
7
Anda mungkin berpikir begitu - tetapi resistor saja tidak benar-benar berfungsi . Bahkan resistor seri besar pada saluran penerima UART tidak akan melakukannya (meskipun dapat mencegah kerusakan). Masalahnya adalah bahwa sampai Anda melebihi beberapa voltase ambang yang sangat rendah, tidak ada yang benar-benar menarik arus, dan itupun tidak banyak tanpa jam. Jadi, bahkan dengan resistor seri, papan daya papan dapat ditarik ke titik di mana hal-hal baru saja mulai memiliki keadaan yang tidak sesuai, di mana titik daya pada reset tidak lagi dapat diandalkan.
Chris Stratton
Sepakat. Terima kasih telah memberikan detail lebih lanjut untuk jawaban saya. Saya berharap dapat memberikan solusi prototipe cepat dan seharusnya mengatakan itu. Ini bukan solusi bukti bodoh dan hanya akan bekerja jika arus start-up UC cukup tinggi untuk membuat penurunan tegangan yang cukup pada resistor untuk menjaga tegangan pada UC cukup rendah sehingga tidak keluar dari kecoklatan.
jherbold
0

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.

Jorge D
sumber