Bagaimana Anda menyerang papan baru?

24

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.

morten
sumber
2
mungkin ide yang bagus untuk mengisi catu daya dan distribusi Anda, termasuk topi curah dan pintas, dan kemudian menerapkan daya input ke papan tulis. jika Anda memiliki topi tantalum di belakang, Anda akan segera tahu. kemudian periksa apakah MCU (dan lain-lain) memiliki voltase pasokan yang tepat di pin kanan, sebelum melanjutkan untuk mengisi perangkat tersebut.
JustJeff
1
Sebagai komentar sampingan, saya pikir ini praktik yang baik untuk menjaga kode Anda 'modular' seperti yang Anda lakukan (menghapus fungsionalitas untuk periferal yang hilang). Saya selalu menulis kode saya sehingga akan berfungsi dalam mode 'demo' yang mengabaikan periferal yang hilang tetapi masih berjalan melalui logika program sampai saya yakin periferal tersebut debugged dengan benar. Kemudian program Anda setidaknya berjalan sehingga Anda dapat mengetahui apakah itu diprogram.
AngryEE
2
Ketika Anda menerapkan daya input, mulailah dengan batas arus rendah.
starblue
1
Seharusnya wiki komunitas.
Brian Carlton
1
@Morten - Ah, masuk akal. Anda benar, topi tidak mungkin menyebabkan masalah.
Kevin Vermeer

Jawaban:

10

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.

markrage
sumber
Saya telah menggunakan pendekatan yang sama. Biasanya berhasil, tetapi beberapa kali kembali menggigit saya. Terakhir kali ini adalah slot yang tampaknya tidak bersalah di bawah konektor yang telah dilapisi selama pembuatan dan mempersingkat tanah dan pesawat listrik. Kesalahan saya sendiri sepenuhnya, tetapi itu adalah kesalahan yang membuat frustrasi dan sulit ditemukan.
Morten
1
Untuk menggunakan pendekatan "Just build the thing", saya pikir saya perlu memesan lebih dari satu PCB.
Morten
Saya telah melihat probe "squeaker" digunakan untuk tujuan yang sama - untuk membidik pada pendek. Sayangnya, saya tidak dapat menemukan tautan ke produk.
Toybuilder
20

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.

Leon Heller
sumber
3
hanya perlu satu bug besar yang ditemukan dengan cara ini untuk membuatnya jauh lebih cepat
Kortuk
11

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.

ajs410
sumber
Kedengarannya seperti bagaimana saya melakukannya yang saya rasa adalah cara yang sangat bagus untuk mengembangkan desain. Itu juga memungkinkan untuk menggunakan kembali bagian nanti.
Cobalah Laugstøl
9

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.

JustJeff
sumber
Hmm, saran bagus! Untuk beberapa alasan saya belum benar-benar memikirkan "desain untuk pengujian" dalam konteks ini sebelumnya.
Morten
2
Anda dapat membawanya ke level berikutnya dengan mendesain kemampuan swa-uji. itu menambah kompleksitas papan Anda, tetapi itu dapat membuat verifikasi desain Anda lebih mudah, dan bahkan memberi Anda pilihan untuk menyertakan pengujian mandiri yang aktif dalam produk yang Anda kirim.
JustJeff
8

Saya kira satu pertanyaan kunci adalah: Apa daftar periksa pra-penerbangan sebelum Anda merilis papan untuk produksi. Daftar pra-penerbangan saya adalah:

  1. Ulasan desain skematik
    1. Nama-nama bersih dan port-port off-sheet
    2. Pin catu daya terhubung
  2. DRC skematik
  3. Gosok jejak kaki
    1. Nomor komponen pabrikan lengkap
    2. Nomor bagian cocok dengan jejak pada PCB dan pinout dalam skema
    3. Nomor pin tapak adalah "sisi atas" dan benar
    4. Dimensi tapak ganda diperiksa untuk ukuran lubang, jarak bebas, keepout, dll.
    5. Konektor kawin berorientasi dengan benar; pin 1-ke-1, 2-ke-2, dll.
  4. Dimensi dan lubang PCB
  5. PCB DRC
  6. Fab Drawings memiliki semua lapisan dan info.

Komunitas jawaban ini wiki'd.

Toybuilder
sumber
5

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.

pengguna3624
sumber
Beberapa produsen (seperti 4pcb) bahkan menawarkan tes DFM gratis pada gerber Anda. Tes gratis tersebut merupakan tambahan yang bagus untuk DRC alat PCB Anda.
ajs410
4

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 ...)

Adam Lawrence
sumber
1
+1 untuk perlindungan mata / telinga! Saya pernah mendengar DAC meledak dari seberang lab - orang yang mengerjakannya memiliki titik buta sementara dalam visinya selama sekitar 5 menit!
Toybuilder
3

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.

Toybuilder
sumber
header sangat bagus, terutama jika Anda perlu mengerjakan ulang atau menambahkan fitur nanti, atau Anda perlu output debugging dadakan. Saya juga menyukai gagasan melakukan BareBones untuk foto kecil ... mungkin saja melakukannya sendiri
ajs410