5V toleransi pada input penginderaan VBUS

8

Saya merancang perangkat di sekitar STM32L476. Perangkat saya terutama bertenaga baterai, tetapi memiliki port USB yang, ketika dicolokkan, saya ingin menggunakan sebagai sumber daya alternatif (melalui regulator 3.3V) untuk membatasi pengurasan baterai. Ada kemungkinan juga bahwa pengguna menghubungkan port USB saat tidak ada baterai.

Saya ingin dapat merasakan ketika port USB terhubung, jadi saya menggunakan PA9 sebagai OTF_FS_VBUS.

Berita baiknya : datasheet mengatakan bahwa pin PA9 5V toleran.

Berita buruknya : 5V pin tolerant tampaknya benar-benar toleran 5V hanya ketika daya diterapkan. Lembar Data §6.2 tabel 18 mengatakan:

Tegangan input maks pada pin FT_xxx: min (VDD, VDDA, VDDIO2, VDDUSB, VLCD) + 4.0V

Dalam kasus saya, jika tidak ada baterai dan pengguna menghubungkan port USB, ada waktu, sebelum regulator mulai, di mana tegangan pada PA9 akan 5V sementara tidak ada daya yang diterapkan sama sekali pada pin pasokan CPU.

Berita lebih buruk : injeksi saat ini tidak diperbolehkan: lembar data §6.2, tabel 19, mengatakan:

Diinjeksikan saat ini pada FT_xxx: -5 / + 0 (lihat catatan 4)

Catatan 4: Injeksi positif diinduksi oleh VIN> VDDIOx sementara injeksi negatif diinduksi oleh VIN <VSS. IINJ (PIN) tidak boleh terlampaui.

Jadi sepertinya saya tidak bisa menggunakan resistor sederhana untuk membatasi kelebihan arus pada PA9 selama regulator mulai. Setiap jumlah arus yang akan mengalir dari VBUS ke PA9 sebelum VDD naik tampaknya dilarang.

Apa yang orang lain lakukan?

Saya telah melihat banyak desain di sekitar chip STM32, melihat koneksi VBUS mereka, dan mereka tampaknya tidak peduli. Mereka menghubungkan VBUS langsung ke PA9, atau akhirnya melalui resistor, tapi saya tidak pernah melihat yang lebih rumit. Tetapi mereka kebanyakan adalah papan pengembangan, jadi saya kira kasarnya (apakah itu sebuah kata?) Tidak terlalu penting. Dan mereka biasanya tidak didukung melalui port USB, dan tentu saja menganggap pengguna tidak akan menghubungkan port USB sebelum menyalakan papan.

Apa rencanaku?

Menempatkan ini antara VBUS pada port USB dan pin PA9 dari MCU:

Perlindungan VBUS

Saya benar-benar berusaha membuatnya tetap sederhana. Pada dasarnya, ini memastikan bahwa VUSB_CPU (yang merupakan pin PA9) tidak akan pernah bisa di atas VCPU + 4V (Vz + Vbe), tanpa mengkonsumsi daya apa pun jika OK.

Pertanyaan utama saya adalah : Apakah saya benar dalam analisis saya? Apakah rangkaian ini solusi yang baik? Apakah saya mengkhawatirkan hal-hal yang tidak relevan? Mengapa tidak ada orang lain yang peduli dengan masalah potensial ini?

Pertanyaan tambahan : Saya berencana menggunakan USB OTG. Apakah itu masalah jika ada resistor 4.7k antara konektor dan pin PA9? Saya kira itu akan menjadi jika saya harus menggunakan VBUS berdenyut selama SRP, tetapi metode ini tampaknya sudah usang. Jadi apakah saya baik, apa pun peran (perangkat / host) perangkat saya?

Yang terakhir : Berapa arus maks yang ditarik oleh pin pasokan VDDUSB? Datasheet menentukan, untuk perangkat USB: 16,4 μA / MHz untuk domain jam AHB + 23,2 μA / MHz untuk domain jam independen, tetapi kami tidak tahu dari mana itu diambil (VDD atau VDDUSB).

redup
sumber
Opsi perlindungan PA9 lainnya adalah dengan meletakkan saklar mos antara USB + 5v dan PA9, dan kemudian menggerakkan gerbang sakelar dengan output dari regulator.
Tandai
mengapa tidak menggunakan pembagi resistor? 430k dan 630k akan memberi Anda 3.3v pada pin.
b degnan
Tapi pembagi resistor tidak akan menyelesaikan masalah injeksi. Pembagi akan menyuntikkan 3,3 volt ke dalam pin sebelum bagian tersebut diberi daya.
Tandai
Saya mengerti dari datasheet bahwa pin dapat menahan 4v, bahkan ketika dimatikan (apakah ini benar?). Jadi pembagi resistor akan menjadi solusi yang baik, tetapi akan menarik daya secara permanen. Saya lupa menyebutkan saya memiliki kendala ketat tentang itu.
redup

Jawaban:

4

Pergilah dengan pembagi resistor (430k / 620k) pada Vbus - ini akan membuat mikrokontroler tetap di spec, dan penarikan arus parasit tidak akan menjadi masalah karena akan bersumber secara eksklusif dari Vbus, bukan dari baterai (yang merupakan apa Saya berasumsi Anda ingin menghemat).

ThreePhaseEel
sumber
Bodoh saya ... Saya memutuskan pembagi resistor karena konsumsi saat ini, tetapi alasan saya jelas tidak lengkap. Memang, itu bukan masalah untuk menarik daya dari vbus. Sekarang, mengapa tidak ada yang melakukan itu di papan mereka? ST itu sendiri (papan penemuan), olimex, ...? Saya masih tidak mengerti poin itu.
redup
0

Mungkin metode yang paling sederhana, gunakan resistor highish value (10-100k) memberi makan kapasitor largish (beberapa uF atau lebih) sehingga perlu waktu untuk tegangan untuk meningkatkan, saya tidak akan khawatir tentang fraksi volt yang membangun di kapasitor saat regulator mulai, jika mikro mendapat perlindungan ESD maka input dapat menangani 5-10V untuk beberapa puluh AS

Sam
sumber
Ini kedengarannya hebat ... tetapi hanya sampai Anda memikirkan apa yang terjadi ketika listrik dilepas. Kapasitor sebenarnya dapat memperburuk keadaan, daripada hanya memiliki nilai resistor yang besar - resistor tidak dapat memberikan banyak arus, tetapi kapasitor yang diisi dapat.
Chris Stratton
Bisakah Anda mengendarainya melalui zener kecil? Bagian datasheet itu mengatakan VDD + 4V kan? Jika Anda memiliki zener menjatuhkan rel ke kurang dari VDD + 4V apakah itu ok?
Sam
Saya tidak memvisualisasikan dengan baik saran zener Anda tanpa skema. Tetapi jika solusinya memiliki kompleksitas yang sama dengan saya (3 komponen diskrit murah), saya tidak akan mendapatkan banyak.
redup
Pada dasarnya: Input-> zener-> PA9, zener secara seri dengan input sebagai lawan dari resistor seri, zener menjatuhkan satu atau dua volt sehingga tegangan pada PA9 selalu sedikit lebih rendah. Jika papan dev hanya mengikat mereka, maka mungkin ok, saya pikir peringatan mungkin berlaku setelah MCU dinyalakan, lihat apakah ada bagian tentang urutan daya atau perilaku start-up.
Sam
1
@ Tom itu sebenarnya masalah utama saya. Saya memeriksa, mereka tidak melakukan apa pun. PA9 terhubung langsung ke VBUS pada port USB (bahkan melalui resistor), pada papan demo Discovery mereka. Jadi, kecuali saya melewatkan sesuatu, ini sepenuhnya bertentangan dengan datasheet. Masalah saya sebenarnya bukan sirkuit perlindungan itu sendiri. Saya pikir solusi saya, bahkan jika itu dapat ditingkatkan, dapat melakukan pekerjaan. Sejujurnya, masalah utama saya hanyalah: apakah semua itu benar - benar diperlukan?
redup