Saya memiliki puluhan chip PIC16. Saya ingin mengambil semacam nomor seri unik dari chip untuk tujuan identifikasi. Saya tahu itu bisa dilakukan secara manual. Tapi itu membosankan.
Pertanyaan:
Apakah PIC memiliki nomor seri bawaan?
Jika jawabannya Tidak, apakah ada cara mudah untuk mengunggah kode dengan nomor seri unik ke setiap chip saat saya memesan chip dari Microchip?
Mungkin saja, tetapi saya tidak tahu jumlah apa yang diperlukan, yaitu jika mereka akan melakukannya untuk puluhan perangkat. Kami selalu memiliki kumpulan setidaknya 1000 bagian. Ini seperti persiapan pemrograman dengan perangkat lunak Anda, tetapi Anda menunjukkan di lokasi mana ID unik harus diprogram. Anda harus memberikan ID awal, dan formatnya (BCD, binary, LSD / MSD terlebih dahulu, ...).
Perhatikan bahwa nomor ini berada di memori program normal, dan itu akan dihapus jika Anda menghapus bagian untuk pemrograman ulang.
sunting
Alasan pengendali yang paling sering tidak memiliki ini pada tingkat chip adalah karena mahal: pemrograman dilakukan dengan lasering, yang merupakan langkah produksi tambahan. Mikrokontroler yang diprogram secara massal dapat dengan mudah memiliki ID unik yang diprogram dengan perangkat lunak, dan ini tidak memerlukan langkah tambahan.
Alternatifnya adalah SSN (Silicon Serial Number) seperti Maxim DS2411 . Ini juga diprogram dengan laser, jadi tidak murah juga, tetapi Anda menghindari langkah-langkah logistik ekstra, di mana selalu ada yang salah. Saya sudah tahu itu terjadi. (suntingan lain) Mike menyarankan chip alamat MAC sebagai alternatif. Ini adalah EEPROM yang memiliki ID unik (alamat MAC unik secara global) yang diprogram di bagian perangkat yang dilindungi penulisan. Bagian sisanya dapat digunakan sebagai EEPROM normal, seperti untuk menyimpan parameter perangkat. EEPROM tampaknya jauh lebih murah daripada SSN, sambil melayani fungsi yang sama.
Adakah alasan mengapa hal itu tidak selalu dilakukan?
Federico Russo
@Federico - ditambahkan ke jawaban saya
stevenvh
1
Alternatif yang lebih murah untuk bagian Dallas / Maxim adalah chip alamat Ethernet Microchip, yang juga memberi Anda ruang eeprom. microchip.com/stellent/…
mikeselectricstuff
@ stevenvh, terima kasih atas jawabannya. Terutama tentang SSN. Saya perlu memesan 100 chip, cara "menunjukkan di lokasi mana ID unik harus diprogram. Anda harus menyediakan ID awal, dan formatnya". Maksud Anda, saya bisa melakukan ini melalui situs microchip ketika saya memesan chip?
mlam
Terima kasih @mikeselectricstuff, ini berguna. Saya akan mempertimbangkannya.
mlam
10
Seperti yang dikatakan Steven, PIC tidak memiliki nomor seri unik yang terpasang pada mereka saat pembuatan. Mari kita perjelas bahwa kita berbicara tentang angka yang akan bervariasi antara dua chip dari model yang sama.
Kebanyakan PIC memiliki chip ID yang dikodekan ke dalamnya. Ini dapat dibaca oleh programmer PIC untuk menentukan jenis PIC yang terhubung. Sejauh yang saya tahu, hanya inti 12 bit PIC tidak memiliki ID chip seperti itu. Semua PIC lainnya dapat diidentifikasi secara elektrik, meskipun ada sejumlah cara berbeda yang harus dimasukkan ke dalam mode pemrograman dan kemudian chip ID dibacakan. Perangkat lunak programmer PIC yang dapat mengidentifikasi PIC yang sewenang-wenang bukanlah hal sepele.
Jika Anda benar-benar bermaksud nomor seri, maka ini harus diprogram ke dalam bagian setelah produksi. Kami telah melakukan ini berkali-kali. Selama proses pengujian produksi ketika firmware diprogram ke dalam PIC, Anda mengaturnya untuk juga mendapatkan nomor seri unik dan program yang juga. Salah satu cara mudah adalah mulai dengan file master HEX seperti yang dihasilkan oleh alat firmware. Ini berisi nomor seri kosong. Anda menulis sebuah program kecil yang mengambil nomor seri baru sesuai dengan apa pun strategi Anda, membaca file master HEX, mengganti nomor seri baru dengan yang kosong, dan menulis file HEX sementara. File HEX sementara digunakan untuk memprogram bagian tersebut, lalu dihapus.
Untuk ketahanan yang lebih baik, Anda menyimpan status nomor seri di EEPROM dalam jig produksi, bukan dalam file disk. Sistem meminta jig untuk nomor baru, dan jig ini dirancang untuk tidak pernah memberikan nomor yang sama dua kali. Ketika rentang nomor seri yang diasumsikan habis, ia menolak untuk bekerja. Ini sangat berguna jika Anda memiliki unit bangunan pabrikan jarak jauh untuk Anda. Dengan cara ini jika mereka mengacaukan sesuatu di komputer dan memulihkan dari cadangan, itu juga tidak akan mengatur ulang kisaran nomor seri. Ya, ini benar-benar terjadi.
Jika nomor seri harus dibaca dari luar, maka lokasi ID pengguna yang dimiliki sebagian besar PIC mungkin merupakan tempat yang tepat untuk menyimpannya. Ini berbeda dari memori program umum atau EEPROM karena dapat dibaca bahkan ketika chip dilindungi kode.
Jika Anda membuat PIC Anda diprogram oleh Microchip atau distributor, Anda biasanya dapat membuat serial dengan beberapa cara. Namun, pemrograman pabrik hanya untuk produk volume tinggi yang matang. Jika Anda berpikir Anda akan meningkatkan firmware secara teratur, maka jangan gunakan pemrograman pabrik. Waktu tunggu panjang dan Anda akan terjebak dengan versi lama di dalam pipa. Perangkat Anda harus diuji setelah dibangun, jadi menambahkan langkah ke program PIC biasanya sangat sedikit beban tambahan.
Perangkat PIC16 (L) F15324 / 44 terpisah secara individual 7 selama pembuatan akhir dengan Microchip Unique Identifier, atau MUI. MUI tidak dapat dihapus dengan perintah Penghapusan Massal atau cara lain yang dapat diakses pengguna. Fitur ini memungkinkan penelusuran pembuatan perangkat Teknologi Microchip dalam aplikasi yang memerlukan ini. Ini juga dapat digunakan oleh produsen aplikasi untuk sejumlah fungsi yang memerlukan identifikasi unik yang tidak diverifikasi, seperti:
Melacak perangkat
Nomor seri unik. MUI terdiri dari sembilan kata program.
sunting
Lihatlah lini Microchips dari Produk Chip ID Unik. Hanya masing-masing beberapa sen. Paket kecil, komunikasi I2C dan sejumlah kecil EEPROM.
Seperti yang dikatakan Steven, PIC tidak memiliki nomor seri unik yang terpasang pada mereka saat pembuatan. Mari kita perjelas bahwa kita berbicara tentang angka yang akan bervariasi antara dua chip dari model yang sama.
Kebanyakan PIC memiliki chip ID yang dikodekan ke dalamnya. Ini dapat dibaca oleh programmer PIC untuk menentukan jenis PIC yang terhubung. Sejauh yang saya tahu, hanya inti 12 bit PIC tidak memiliki ID chip seperti itu. Semua PIC lainnya dapat diidentifikasi secara elektrik, meskipun ada sejumlah cara berbeda yang harus dimasukkan ke dalam mode pemrograman dan kemudian chip ID dibacakan. Perangkat lunak programmer PIC yang dapat mengidentifikasi PIC yang sewenang-wenang bukanlah hal sepele.
Jika Anda benar-benar bermaksud nomor seri, maka ini harus diprogram ke dalam bagian setelah produksi. Kami telah melakukan ini berkali-kali. Selama proses pengujian produksi ketika firmware diprogram ke dalam PIC, Anda mengaturnya untuk juga mendapatkan nomor seri unik dan program yang juga. Salah satu cara mudah adalah mulai dengan file master HEX seperti yang dihasilkan oleh alat firmware. Ini berisi nomor seri kosong. Anda menulis sebuah program kecil yang mengambil nomor seri baru sesuai dengan apa pun strategi Anda, membaca file master HEX, mengganti nomor seri baru dengan yang kosong, dan menulis file HEX sementara. File HEX sementara digunakan untuk memprogram bagian tersebut, lalu dihapus.
Untuk ketahanan yang lebih baik, Anda menyimpan status nomor seri di EEPROM dalam jig produksi, bukan dalam file disk. Sistem meminta jig untuk nomor baru, dan jig ini dirancang untuk tidak pernah memberikan nomor yang sama dua kali. Ketika rentang nomor seri yang diasumsikan habis, ia menolak untuk bekerja. Ini sangat berguna jika Anda memiliki unit bangunan pabrikan jarak jauh untuk Anda. Dengan cara ini jika mereka mengacaukan sesuatu di komputer dan memulihkan dari cadangan, itu juga tidak akan mengatur ulang kisaran nomor seri. Ya, ini benar-benar terjadi.
Jika nomor seri harus dibaca dari luar, maka lokasi ID pengguna yang dimiliki sebagian besar PIC mungkin merupakan tempat yang tepat untuk menyimpannya. Ini berbeda dari memori program umum atau EEPROM karena dapat dibaca bahkan ketika chip dilindungi kode.
Jika Anda membuat PIC Anda diprogram oleh Microchip atau distributor, Anda biasanya dapat membuat serial dengan beberapa cara. Namun, pemrograman pabrik hanya untuk produk volume tinggi yang matang. Jika Anda berpikir Anda akan meningkatkan firmware secara teratur, maka jangan gunakan pemrograman pabrik. Waktu tunggu panjang dan Anda akan terjebak dengan versi lama di dalam pipa. Perangkat Anda harus diuji setelah dibangun, jadi menambahkan langkah ke program PIC biasanya sangat sedikit beban tambahan.
sumber
sunting
sumber