Anda mendapatkan PCB Anda kembali dari pabriknya. Ini adalah desain baru, Anda tentu saja telah menaiki semua bagian utama, tetapi Anda tahu akan ada masalah. Ada terlalu banyak hal yang dapat menyebabkan masalah, misalnya:
- Kesalahan dalam skema
- Kesalahan dalam tata letak, tidak ditemukan oleh ERC / DRC
- Bagian yang salah tempat saat penyolderan
- Celana pendek dan sejenisnya selama penyolderan
- kombinasi di atas
Saya memiliki dua papan yang relatif kompleks akhir-akhir ini di mana saya pada dasarnya harus menghapus seluruh papan setelah perakitan untuk menemukan kesalahan. Saya menemukan kesalahan, tetapi papan adalah memo.
Saya sudah mencoba memulai dengan bagian minimum dan bagian yang tidak bisa disolder tangan (saya menggunakan pasta, stensil, dan pemanggang roti). Biasanya ini adalah MCU, konektor JTAG dan beberapa kapasitor. Lalu saya secara bertahap mengisi area lain sambil memeriksa mereka untuk masalah.
Pendekatan ini berhasil, tetapi sangat lambat. Saya juga harus berkomentar / berkomentar dalam kode apa pun yang mengasumsikan keberadaan beberapa perangkat keras tertentu.
Adakah yang punya tips / saran tentang cara mendekati PCB yang baru dirancang?
EDIT: Saya terutama berpikir tentang jenis masalah yang membuat papan Anda mati, seperti celana pendek power rail tersembunyi, atau apa pun yang merusak MCU.
sumber
Jawaban:
Saya telah memutuskan bahwa breadboarding sebelumnya adalah buang-buang waktu kecuali ada aspek kinerja bagian yang perlu Anda ukur sendiri.
Saya bahkan berpikir membangun papan dalam potongan-potongan adalah buang-buang waktu. Debug hardware awal hanya membutuhkan satu atau dua hari. Masalah halus apa pun tidak akan muncul sampai integrasi perangkat lunak. Saya lebih suka men-debug satu sirkuit (yang lengkap) daripada beberapa pengurangan ad-hoc dari sirkuit.
Bangun saja! Pasang seluruh papan dan nyalakan. Lihatlah tegangan suplai. Berapa banyak mA yang dihasilkannya? Bagian mana yang terbakar panas? Bagian mana yang hangat? Kemudian cobalah untuk membakar firmware ke mikrokontroler apa pun yang ada di papan tulis. Kemudian mulailah menulis firmware. Dapatkan jam berjalan dan beralih pin. Tingkatkan komunikasi serial (atau apa pun). Sekarang tulis program uji untuk setiap perangkat. Kemudian bangun perlengkapan pengujian produksi dan mulai menulis firmware "asli".
Edit:
Saat menemukan rel yang macet
Jika rel pasokan macet ke tanah, (mengukur 0 ohm dengan ohmmeter), hidupkan pada pasokan bangku. Atur tegangan secara normal dan batas arus ke beberapa ratus mA. Cetak desain PCB di atas kertas, dan temukan DMM yang mengukur microvolts. Ukur microvolts mulai dari terminal pasokan, dan tuliskan penurunan voltase pada hasil cetak PCB. Dengan melihat perbedaan microvolt, Anda dapat melacak dengan tepat ke mana arus mengalir tanpa mengurangi atau memotong PCB. Teknik ini lebih baik daripada menggunakan ohmmeter karena Anda dapat memompa banyak arus melalui rangkaian, lebih dari ohmmeter normal akan memasok.
Teknik serupa bekerja untuk menemukan jejak korsleting pada papan yang dihuni sebaliknya. Jalankan papan menggunakan lingkup untuk menemukan jejak "digital" yang berada dalam rentang tegangan di antara.
sumber
Saya melakukannya dengan mengisi papan dengan minimum semula, membuat pasokan berfungsi lebih dulu, lalu MCU, lalu menambahkan berbagai sub-sistem satu per satu, dan mengujinya sebelum melanjutkan, menulis perangkat lunak pengujian sesuai kebutuhan. Saya tidak menemukan proses sama sekali lambat.
Saya memiliki papan segala kompleksitas papan kosong yang diuji. Biayanya ekstra tapi itu sepadan.
sumber
Saya hanya papan tempat memotong roti sirkuit yang sangat kecil. Lalu saya solder sirkuit kecil ke papan proto. Jika bekerja dengan chip SMD, ada baiknya untuk mendapatkan SMD-> Thru-hole adapter.
Ini pada dasarnya memberi Anda "blok bangunan". Saya kemudian menyolder blok sirkuit ini ke kit dev, atau PCB tua dengan MCU yang saya coba gunakan. Itu terlihat mengerikan, dengan empat atau lima PCB kecil yang berbeda menggantung dari yang lebih besar, tetapi berhasil.
Setelah saya memiliki blok bangunan yang bekerja di papan dev, saya pindah ke PCB. Jika skematis berubah sama sekali saat membuat PCB, saya kembali dan mengerjakan ulang blok bangunan dan mengujinya di papan dev lagi.
Di samping catatan, alih-alih mengomentari kode, Anda harus melihat ke dalam menggunakan arahan preprocessor #define dan #ifdef. Ini membuatnya lebih mudah untuk menambah dan menghapus blok kode fungsional dalam MCU.
sumber
Dengan papan kompleksitas apa pun, hampir sama pentingnya untuk mengembangkan rencana pengujian seperti halnya mengembangkan papan itu sendiri. Bahkan pada awal merancang papan, itu ide yang baik untuk mengetahui apa yang akan Anda uji, meskipun implementasinya belum ada; "desain untuk pengujian" seperti yang mereka katakan. Pastikan untuk membawa sinyal kunci ke bantalan titik uji. Cobalah untuk mempartisi desain sehingga masing-masing subsistem dapat dinyalakan secara independen, atau semirip mungkin.
sumber
Saya kira satu pertanyaan kunci adalah: Apa daftar periksa pra-penerbangan sebelum Anda merilis papan untuk produksi. Daftar pra-penerbangan saya adalah:
Komunitas jawaban ini wiki'd.
sumber
Apa yang dikatakan orang lain semuanya valid, tetapi saya ingin menambahkan nilai 2 sen saya.
Hal terbaik yang harus dilakukan adalah tidak melakukan kesalahan sejak awal. Tampaknya konyol untuk menyebutkan ini, tetapi terlalu sering hal ini diabaikan. Lakukan tinjauan desain skematis dan PCB. Mintalah beberapa orang melihat desain Anda - bahkan insinyur pemula. Gunakan pemeriksaan aturan desain di perangkat lunak Anda. Gunakan sumber daya apa pun yang tersedia untuk memastikan desain Anda baik. Miliki praktik rekayasa yang baik untuk meningkatkan peluang Anda menangkap bug.
Dalam 20 tahun terakhir, dan telah mendesain puluhan dan lusinan PCB (beberapa dengan 14 lapisan dan 2.000 komponen) saya hanya memiliki DUA pcb yang tidak dapat digunakan pada putaran pertama prototipe. Tentu saja saya sudah memiliki bug, tetapi hanya dua papan yang "bata".
Dalam setiap kasus, prototipe diisi penuh sebelum saya mulai men-debug mereka. Aku akan keluar dari rel listrik untuk memastikan tidak ada celana pendek. Kemudian lakukan inspeksi visual menggunakan mikroskop. Kemudian nyalakan. Setelah itu saya akan mulai pada tes metodis dan sesi debug - bekerja pada bagian kecil dari rangkaian pada suatu waktu sampai semuanya diuji dan bekerja. Dalam kebanyakan kasus, saya akan melakukan beberapa perubahan dan mulai memproduksi volume dengan revisi PCB berikutnya.
Semua ini tidak akan mungkin terjadi tanpa upaya besar untuk mengurangi bug di muka.
sumber
Pada desain yang benar-benar segar, saya biasanya menggunakan pendekatan divide-and-conquer.
Saya mencoba dan mengisolasi blok arsitektur utama dan menyalakan setiap bagian secara independen menggunakan sakelar / suplai DC / potensiometer dll. Untuk mensimulasikan dependensi yang diperlukan untuk menjalankan sirkuit.
Pendekatan ini umumnya tidak sulit ketika Anda berurusan dengan catu daya - sebagian besar konverter hanya perlu input dan mungkin beberapa sinyal logika untuk mulai beralih (dan mudah-mudahan tidak melepaskan asap ajaib kegagalan).
Papan yang merupakan putaran kedua / ketiga (pembersihan) biasanya tidak membutuhkan ketekunan seperti itu. Saya hanya dapat mengisolasi bagian-bagian sirkuit yang diubah, mengujinya secara independen dan menyimpan pengujian sisa sirkuit untuk pengaktifan all-in.
Jangan lupa peralatan pelindung pribadi Anda. Saya sangat tidak nyaman menyalakan apa pun dengan komponen terbuka tanpa kacamata keselamatan saya (dan kadang-kadang penyumbat telinga ...)
sumber
Nah, salah satu langkah pertama untuk mencegah korsleting terjadi di tempat pertama adalah memanfaatkan pemeriksaan aturan desain di perangkat lunak papan Anda. Keduanya pada tingkat skematis untuk memastikan bahwa jaring tidak terikat secara tidak sengaja ketika seharusnya tidak; dan pada tingkat PCB untuk memastikan jarak bersih yang cukup antara jaring.
Jika ada elemen desain yang belum teruji, alih-alih menangani desain yang sama sekali baru di satu papan, saya mencoba membuat papan konsep-bukti dan papan uji kinerja pada PCB proto murah (seperti layanan BareBonesPCB Advanced Circuit - dua lapisan, tanpa topeng solder, sekitar $ 80 untuk giliran 24 jam).
Bahkan ketika saya membuat papan lengkap, di papan generasi pertama, saya suka memasukkan banyak header pelarian. Dalam beberapa kasus, Anda dapat mengisi dua PCB identik, satu dengan bagian "stabil", dengan pin header keluar ke atas; dan yang lainnya dengan bagian "testing", dengan wadah pin entri bawah. Jika semuanya baik-baik saja, Anda dapat menyelesaikan pengisian kedua papan. Atau, Anda dapat memutar versi baru dari rangkaian "pengujian" yang dapat Anda tukar di tempat.
sumber