Ya, itu haiku. (EDIT: memperbaikinya ... sekarang sebenarnya Haiku)
Tidak, aku tidak tersenyum.
Saya sedang melakukan beberapa pengujian standar; melihat apa yang terjadi ketika salah satu dari dua rel daya disingkat menjadi GND pada PCB yang saya desain. Kita berbicara tentang rel daya 12 V yang dipasok oleh catu daya benchtop, dengan konverter on-board 5 V buck terpisah yang memasok rel lain pada PCB (yang terhubung dengan ATmega328PB saya).
12 V rail memiliki banyak jack barel DC di atasnya yang akan terkena pengguna akhir. Jadi, tentu saja saya memutuskan untuk memasukkan obeng perhiasan ke salah satu dari mereka untuk melakukan tes hubung singkat.
Lihatlah, kepulan asap dari ATmega328PB saya.
Saya pikir itu berarti salah satu dari hal-hal berikut terjadi:
Waktu Skematis
Berikut skema koneksi ke ATmega328PB:
Berikut adalah semua skema hal-hal dalam desain yang memiliki koneksi ke 12 V rail (VBAT + rail) dan yang mengontrol jalur pengembalian GND saat ini:
Dan di sini adalah skema jack barel dan jack yang terkait mendeteksi pin (perhatikan bahwa ini terhubung langsung ke beberapa pin ATmega328PB tanpa hambatan seri):
Rencana Sirkuit Pendek
Rencana untuk berurusan dengan hubung singkat pada rel 12 V adalah cukup mematikan FET N-channel LOAD_FET karena salah satu dari dua kondisi logis yang terpenuhi dalam firmware:
- Pengambilan sampel ADC pada kecepatan 1 Hz akan mendeteksi kondisi arus berlebih dan menyebabkan FET_LOAD beralih berhenti melakukan, sehingga memotong arus hubung singkat
- Tegangan yang memasok ATmega akan masuk ke kondisi mati, dan MCU akan mengatur ulang dan menginisialisasi FET_LOAD beralih ke "off", sehingga memotong arus hubung singkat
Asap Besar
Berikut ini adalah penyelidikan osiloskop dari apa yang terjadi pada rel Vbat + pada CH1 (kuning) dan rel +5 pada CH2 (biru) ketika menyingkat Vbat + ke GND melalui aplikasi obeng perhiasan ke kabel kabel yang terbuka yang terhubung ke kabel sirkuit barel jack (saya tidak memasukkan obeng ke dalam stopkontak ) saat sedang ditenagai oleh pasokan bangku atas yang diatur ke 12V @ 5 Amp:
Setelah itu terjadi, ATmega akan menjadi sangat panas setiap kali saya menyalakan papan, dan secara efektif bertindak sebagai hubungan pendek antara input + 5V dan ground sinyal. Saya desoldered ATmega dengan udara panas, dan menguji FET_LOAD N-channel FET untuk melihat apakah itu goreng. Memang itu telah gagal sehingga tidak akan lagi mematikan atau hidup ketika tegangan gerbang diterapkan ke +5 atau sinyal ground, tetapi sebaliknya beroperasi di suatu tempat di zona senja antara. Itu jatuh sekitar 2,3 volt sambil melakukan ~ 200 mA apakah itu "on" atau "off" ketika beban dicolokkan ke jack barel.
Firasat
Punya firasat bahwa karena FET rusak bahwa vektor untuk kerusakan ATmega mungkin disebabkan oleh transmisi tegangan tinggi melalui saluran FET ke gerbang dan ke MCU. Lakukan beberapa tes selanjutnya dengan tegangan rendah yang memasok rel 12V. Perhatikan tiga gambar pertama pada dasarnya sama, tetapi dengan arus puncak yang berbeda. Setelah ATmega dimatikan (karena tegangan yang jatuh pada Vbat + rail), sinyal LOAD_GND_ENABLE yang dipasok oleh MCU (biru, di bawah) pada gilirannya menjadi rendah, memotong FET_LOAD sakelar .
Legenda:
CH1 = Tegangan lintas Rshunt (0,005 ohm) CH2 = Tegangan pada sinyal LOAD_GND_ENABLE (terhubung ke ATmega)
Vbat + disediakan pada 6V:
Vbat + disediakan pada 7V:
Vbat + disediakan pada 8V:
Vbat + disediakan pada 9V:
Pada yang terakhir, arus tidak pernah berhenti meningkat dan sinyal LOAD_GND_ENABLE melakukan tarian yang funky, tetapi semuanya akan tampak bahwa batas maksimum tidak pernah dilanggar pada pin LOAD_GND_ENABLE (setidaknya saya tidak berpikir mereka ... Saya hanya memiliki lingkup 2-saluran dan harus mengukur rel + 5V untuk mengetahui apa tegangan pada LOAD_GND_ENABLE wrt Vcc).
Langkah selanjutnya
Saya hanya memiliki 1 papan tersisa yang dapat dikorbankan, oleh karena itu rencana saya adalah:
Gunakan ATmega328PB kosong sehingga semua pinnya akan default ke impedansi tinggi tanpa periferal yang dikonfigurasi / diinisialisasi. Ulangi tes hubung singkat untuk melihat apakah ATmega328PB masih menyala dalam asap. Jika tidak pergi jauh, maka MCU pasti gagal karena sumber / tenggelam terlalu banyak saat ini dari salah satu pin yang dikonfigurasi sebagai output saat sedang menjalankan firmware dalam tes sebelumnya.
Tes dengan ATmega328PB yang dipasang pada papan breakout (sayangnya chip ini tidak datang dalam paket DIP) yang terhubung ke PCB melalui flywires. Secara selektif mulailah menghubungkan satu flywire pada satu waktu, menjalankan tes, dan melihat flywire yang akhirnya menjadi penggorengan ATmega328PB.
Pesan PCB sampel baru dengan tata letak yang diubah sedemikian rupa sehingga semua jejak yang terhubung ke ATmega328PB dihubungkan oleh jembatan solder yang dapat disolder tangan saat saya uji. Dengan cara ini, tes hubung singkat (dan pengujian lainnya) dapat dilakukan dengan ATmega terhubung ke sejumlah sinyal pada satu waktu, dan membuatnya mudah untuk menghubungkan semua sirkuit eksternal lainnya ke jembatan solder ini untuk mengontrol mereka secara independen dari ATmega. .
Ya, itu benar-benar sebuah pertanyaan!
Dan pertanyaannya adalah:
- apakah ada yang melihat sesuatu di sini yang tidak saya lakukan. Apakah sudah jelas? Saya harap ini tidak jelas ...
- Apa langkah Anda selanjutnya?
sumber
Jawaban:
Saya pikir Anda beralih di baris LOAD_GND mungkin pihak yang bersalah di sini, dikombinasikan dengan jack mendeteksi garis terlindungi ke mikro (Yang saya perhatikan terhubung ke LOAD_GND untuk jack apa pun di mana TIDAK ada steker dimasukkan.
Pertimbangkan apa yang terjadi jika Anda mematikan MOSFET itu (Jack mendeteksi saluran pada soket tanpa jack yang dimasukkan akan terhubung ke tegangan baterai melalui beban hubung singkat, asap akan terjadi), Anda setidaknya harus memiliki beberapa seri resistensi dan penjepit pada jack mendeteksi garis (Katakanlah 10k atau lebih dan sepasang dioda), tapi sungguh saya tidak melihat apa yang benar-benar beralih LOAD_GND membeli Anda melalui saklar sisi yang tinggi?
Secara kebetulan, adegan otomotif memiliki kendali sisi switch yang dikendalikan dengan logika yang sangat bagus dengan built in over trip saat ini dan sensing saat ini, layak untuk dilihat.
sumber
Yang berarti Anda meletakkan + 12V di
JACK_DETECT
baris yang tidak terlindungi , menggoreng MCU. Lihat "voltase pada pin apa pun [..]" di atas.Desain ulang sirkuit yang mati pendek antara
VBAT+
danJACKx_DETECT
tidak memungkinkan tegangan pada pin MCU naik di atas VCC - misalnya dengan resistor dan dioda.sumber
Rupanya belum bisa berkomentar. Tetapi saya mengubah jawaban saya untuk menyetujui hal di atas, dengan mengikuti pengamatan.
Satu hal yang akan saya hadiri adalah untuk memastikan FET Anda dalam keadaan tergerakkan dengan baik (pullup / pulldown) ketika ATMega berada dalam keadaan boot / reset. Pin biasanya diatur ke mode input IIRC, yang menyebabkan gerbang FET melayang dan menghadirkan drive Vgs yang buruk, sehingga meningkatkan resistansi saluran. Jika aliran arus antara koneksi drain dan sumber signifikan, itu akan terlalu panas / menghancurkan FET dengan cepat.
sumber