Saya telah merancang PCB untuk produksi skala kecil; Saat ini saya menyolder tangan mereka dalam batch 20 sekaligus. PCB ini menggunakan mikrokontroler ATMEGA168 yang saya program sebelum menyolder ke papan - metode ini bekerja dengan baik untuk saya saat ini.
Saya melihat ada 200 papan yang diproduksi dan dirakit untuk saya karena produk yang saya rancang tampaknya cukup populer. Apakah akan lebih baik untuk memasukkan header ICSP ke papan tulis atau terus memprogram sendiri IC? Pemrograman ulang papan setelah pembuatan atau perakitan bukanlah fitur yang dimaksudkan atau diperlukan.
Saya tidak yakin bagaimana ini dilakukan dalam lingkungan produksi skala yang lebih besar? Menambahkan header ICSP akan meningkatkan biaya pembuatan sedikit, jadi apakah pra-pemrograman merupakan praktik standar?
Jika Anda memiliki ruang untuk tajuk, itu mungkin pilihan terbaik, dan pin yang agak terhuyung-huyung direkomendasikan oleh Majenko adalah cara yang baik untuk menahan konektor di tempatnya tanpa menambah kerumitan.
Tapi inilah pendekatan alternatif, untuk papan di mana Anda tidak memiliki ruang untuk memasukkan header, atau header standar tidak menyelesaikan semua tugas pemrograman / pengaturan / pengujian papan Anda.
Diberi faktor bentuk PCB kecil seperti di sini (diameter 33mm)
Anda dapat meletakkannya dengan titik uji (berlabel di bagian belakang)
dan buat perlengkapan uji untuk itu (menggunakan Pin Pogo )
Ini membutuhkan beberapa kemampuan pemesinan dan setidaknya bor pilar (karena pin pogo harus persis vertikal). Namun jika Anda bersedia mengambil risiko prototipe PCB, Anda dapat menjepitnya ke selembar bahan dan "melihat" melalui lubang testpoint untuk mendapatkan pin pogo di tempat yang tepat. (Saya mendapatkan 10 PCB dengan harga yang sangat murah dari Itead, jadi kehilangan satu bukan masalah besar).
Dengan mesin bubut dan penggilingan, membuat pilar dan klem untuk menemukan PCB di tempat yang tepat adalah cara yang mudah, tetapi tidak terlalu sulit dengan alat yang lebih sederhana.
Kemudian Anda cukup memasang setiap PCB, memprogram dan mengujinya. Konektor longgar biasanya pergi ke pin header pada Launchpad TI, digunakan untuk pemrograman MPU ini (TI MSP430) melalui antarmuka SBW, tetapi prinsip yang sama akan berlaku untuk JTAG atau antarmuka lainnya. (Kabel cokelat di bagian atas adalah kabel ko-kap yang membawa sinyal kalibrasi ke penghitung frekuensi).
Basis mahoni yang dipoles adalah opsional; Kebetulan saya lebih suka gaya steampunk untuk perlengkapan tes saya.
sumber
Saya selalu menambahkan ruang untuk header ICSP, bahkan jika itu tidak diisi. Saya memiliki tiga cara untuk melakukannya saat ini tergantung pada situasinya.
Salah satu desain saya memiliki header pitch yang sangat baik untuk yang saya bangun adaptor (kawat inti padat 0.6mm sangat cocok untuk itu):
Saya menggunakan konektor ini ketika ruang berada pada premi absolut. (Maaf kabur, kamera ponsel saya tidak ada).
Pengaturan kedua yang sering saya gunakan adalah memasukkan ICSP ke header lain. Jika pin ICSP juga dapat digunakan sebagai pin GPIO, dan Anda dapat menggunakannya dengan koneksi yang dapat dilepas, maka itu cukup sederhana untuk menyertakan koneksi ICSP lain yang mungkin Anda perlukan (MCLR, misalnya) dengan biaya minimal. Kemudian Anda cukup pasang programmer Anda ke header itu dengan adaptor yang harus dibuat cukup sederhana.
Cara ketiga adalah menyediakan tapak tajuk "terhuyung-huyung" atau "offset" untuk ICSP. Saya menggunakan ini terutama pada papan pengembangan di mana pengguna akhir mungkin ingin melakukan ICSP tetapi tidak ingin merusak papan mereka dengan menyolder header secara permanen. Jejak ini memungkinkan header standar untuk push-fit dan melakukan kontak solid yang baik tanpa solder:
Ketika Anda mulai berurusan dengan jumlah yang jauh lebih besar tentu saja akan lebih hemat biaya untuk membuat produsen chip memprogram terlebih dahulu chip tersebut untuk Anda dengan firmware Anda. Saya pikir semua produsen utama menyediakan fasilitas itu.
sumber
Jika seseorang menggunakan prosesor yang dapat diprogram ulang dalam rangkaian, saya akan sangat merekomendasikan bahwa papan dirancang sedemikian rupa untuk memungkinkan penggunaannya, bahkan jika benar-benar menggunakan fitur akan membutuhkan membuat bangunan fixture untuk tujuan tertentu dan yang lain tidak. berencana membangunnya. Jika masalah firmware ditemukan setelah membuat sejumlah besar papan, membangun fixture yang dapat memprogram ulang papan tersebut mungkin jauh lebih murah daripada harus mengerjakan ulang atau membangunnya kembali.
Dalam beberapa kasus, pendekatan yang baik mungkin untuk memilih tata letak I / O papan sehingga pin pengontrol yang diperlukan untuk pemrograman ulang dalam sirkuit diberikan untuk tujuan yang "secara alami" mengakibatkan mereka terkena titik kontak yang mudah diakses. Sebagai contoh, papan yang dirancang untuk digunakan dengan kontak kubah logam mungkin memiliki kontak sendiri kabel ke pin pemrograman di-sirkuit. Desain seperti itu tidak akan membutuhkan pengabdian pada ruang di tata letak untuk konektor pemrograman, tetapi - terutama jika kontak baterai juga berukuran umumnya, memungkinkan konektor pemrograman untuk bertahan dengan kontak pegas sederhana.
Perhatikan bahwa tidak masalah apakah kode tersebut tampaknya telah diuji dengan baik; perubahan dari satu batch chip ke yang berikutnya masih dapat menyebabkan masalah yang tidak terduga. Sebagai contoh, saya mendesain produk yang seharusnya mematikan dirinya sendiri di bawah kendali prosesor dengan membuat output prosesor "tinggi" pada pin ketika seharusnya "menyala". Pada batch pertama sebanyak 10.000 unit semuanya bekerja dengan baik, tetapi pada batch berikutnya prosesor akan mulai tidak berfungsi ketika tegangannya mencapai sekitar 2 volt, dan dapat mengalihkan pin itu kembali ke "tinggi"; 2-volt "high" output hampir tidak cukup untuk menghidupkan kembali unit. Karena prosesor ditentukan untuk tetap dalam mode tidur ke IIRC 1,6 volt, adalah mungkin untuk memperbaiki masalah dengan memprogram ulang unit-unit sehingga mereka akan memasuki mode tidur ketika mengaktifkan kondisi shutdown mereka. Seandainya pemrograman ulang seperti itu tidak mungkin dilakukan, pengerjaan ulang yang jauh lebih mahal (atau pembatalan dan pembangunan kembali) akan diperlukan.
sumber