Pemrograman dalam sistem
Pemrograman dalam sistem (In-system programming disingkat ISP), sering kali disebut pemrograman serial dalam sirkuit (ICSP), adalah kemampuan beberapa perangkat logika yang dapat diprogram, mikrokontroler, dan perangkat tertanam lainnya untuk diprogram saat dipasang dalam sistem yang lengkap, daripada memerlukan chip diprogram sebelum menginstalnya ke dalam sistem. Ini juga memungkinkan pembaruan firmware dikirimkan ke memori on-chip mikrokontroler dan prosesor terkait tanpa memerlukan sirkuit pemrograman khusus pada papan sirkuit, dan menyederhanakan pekerjaan desain.
Tidak ada standar untuk protokol pemrograman dalam sistem untuk pemrograman perangkat mikrokontroler . Hampir semua produsen mikrokontroler mendukung fitur ini, tetapi semua telah menerapkan protokol mereka sendiri, yang seringkali berbeda bahkan untuk perangkat yang berbeda dari pabrikan yang sama. Secara umum, protokol modern mencoba menjaga jumlah pin yang digunakan tetap rendah, biasanya hingga 2 pin. Beberapa antarmuka ISP berhasil mencapai hal yang sama hanya dengan satu pin, yang lain menggunakan hingga 4 untuk mengimplementasikan antarmuka JTAG.
Keuntungan utama dari pemrograman dalam sistem adalah memungkinkan produsen perangkat elektronik untuk mengintegrasikan pemrograman dan pengujian ke dalam satu fase produksi, dan menghemat uang, daripada memerlukan tahap pemrograman terpisah sebelum merakit sistem. Hal ini memungkinkan produsen untuk memprogram chip di jalur produksi sistem mereka sendiri alih-alih membeli chip yang telah diprogram sebelumnya dari produsen atau distributor, sehingga memungkinkan untuk menerapkan perubahan kode atau desain di tengah proses produksi. Keuntungan lainnya adalah produksi selalu dapat menggunakan firmware terbaru, dan fitur baru serta perbaikan bug dapat diimplementasikan dan dimasukkan ke dalam produksi tanpa penundaan yang terjadi saat menggunakan mikrokontroler yang telah diprogram sebelumnya.
Mikrokontroler biasanya disolder langsung ke papan sirkuit tercetak dan biasanya tidak memiliki sirkuit atau ruang untuk kabel pemrograman eksternal yang besar ke komputer lain.
Biasanya, chip yang mendukung ISP memiliki sirkuit internal untuk menghasilkan tegangan pemrograman yang diperlukan dari tegangan suplai normal sistem, dan berkomunikasi dengan pemrogram melalui protokol serial. Sebagian besar perangkat logika yang dapat diprogram menggunakan varian protokol JTAG untuk ISP, untuk memfasilitasi integrasi yang lebih mudah dengan prosedur pengujian otomatis. Perangkat lain biasanya menggunakan protokol atau protokol berpemilik yang ditentukan oleh standar yang lebih lama. Dalam sistem yang cukup kompleks untuk memerlukan logika lem yang cukup besar, perancang dapat menerapkan subsistem pemrograman yang dikendalikan JTAG untuk perangkat non-JTAG seperti memori flash dan mikrokontroler, yang memungkinkan seluruh pemrograman dan prosedur pengujian diselesaikan di bawah kendali satu protokol.
Sejarah
Mulai dari awal 1990-an evolusi teknologi penting dalam arsitektur mikrokontroler disaksikan. Pada awalnya, mereka diwujudkan dalam dua kemungkinan solusi: dengan OTP (satu kali diprogram) atau dengan memori EPROM . Dalam teknologi ini, proses penghapusan memori mengharuskan chip terkena sinar ultraviolet melalui jendela tertentu di atas paket. Pada tahun 1993 Teknologi Microchip memperkenalkan mikrokontroler pertama dengan memori EEPROM : PIC16C84. Memori EEPROM dapat dihapus secara elektrik. Fitur ini memungkinkan untuk menurunkan biaya realisasi dengan menghapus jendela penghapus di atas paket dan memulai teknologi pemrograman dalam sistem. Dengan ISP proses flashing dapat dilakukan langsung pada board pada akhir proses produksi. Evolusi ini memberikan kemungkinan untuk menyatukan pemrograman dan fase uji fungsional dan di lingkungan produksi dan untuk memulai produksi awal papan bahkan jika pengembangan firmware belum selesai. Dengan cara ini dimungkinkan untuk memperbaiki bug atau membuat perubahan di lain waktu. Pada tahun yang sama, Atmel mengembangkan mikrokontroler pertama dengan memori flash, lebih mudah dan lebih cepat untuk diprogram dan dengan siklus hidup yang lebih lama dibandingkan dengan memori EEPROM.
Mikrokontroler yang mendukung ISP biasanya dilengkapi dengan pin yang digunakan oleh perangkat komunikasi serial untuk antarmuka dengan programmer, memori flash/EEPROM dan sirkuit yang digunakan untuk memasok tegangan yang diperlukan untuk memprogram mikrokontroler. Perangkat komunikasi pada gilirannya terhubung ke perangkat pemrograman yang menyediakan perintah untuk beroperasi pada flash atau memori EEPROM.
Saat merancang papan elektronik untuk pemrograman ISP, perlu mempertimbangkan beberapa pedoman untuk memiliki fase pemrograman yang dapat diandalkan. Beberapa mikrokontroler dengan jumlah pin yang sedikit berbagi jalur pemrograman dengan jalur I/O. Ini bisa menjadi masalah jika tindakan pencegahan yang diperlukan tidak diperhitungkan dalam desain papan; perangkat dapat mengalami kerusakan komponen I/O selama pemrograman. Selain itu, penting untuk menghubungkan saluran ISP ke sirkuit impedansi tinggi baik untuk menghindari kerusakan komponen oleh programmer dan karena mikrokontroler sering tidak dapat memasok arus yang cukup untuk mengarahkan saluran. Banyak mikrokontroler membutuhkan jalur RESET khusus untuk masuk ke Mode Pemrograman. Penting untuk memperhatikan arus yang dipasok untuk penggerak jalur dan untuk memeriksa keberadaan pengawas yang terhubung ke jalur RESET yang dapat menghasilkan reset yang tidak diinginkan dan, dengan demikian, menyebabkan kegagalan pemrograman. Selain itu, beberapa mikrokontroler memerlukan tegangan yang lebih tinggi untuk masuk ke Mode Pemrograman dan, oleh karena itu, perlu untuk memeriksa bahwa nilai ini tidak dilemahkan dan tegangan ini tidak diteruskan ke komponen lain di papan.
Aplikasi industri
Proses Pemrograman Dalam Sistem berlangsung selama tahap akhir produksi produk dan dapat dilakukan dengan dua cara berbeda berdasarkan volume produksi.
Pada metode pertama, konektor dihubungkan secara manual ke programmer. Solusi ini mengharapkan partisipasi manusia dalam proses pemrograman yang harus menghubungkan programmer ke papan elektronik dengan kabel. Oleh karena itu, solusi ini dimaksudkan untuk volume produksi yang rendah.
Metode kedua menggunakan titik uji di papan tulis. Ini adalah area khusus yang ditempatkan di papan cetak, atau PCB, yang terhubung secara elektrik ke beberapa komponen elektronik di papan tulis. Titik uji digunakan untuk melakukan tes fungsional untuk komponen yang dipasang di papan dan, karena terhubung langsung ke beberapa pin mikrokontroler, titik tersebut sangat efektif untuk ISP. Untuk volume produksi menengah dan tinggi menggunakan titik uji adalah solusi terbaik karena memungkinkan untuk mengintegrasikan fase pemrograman dalam jalur perakitan.
Di jalur produksi, papan ditempatkan di atas alas paku yang disebut perlengkapan uji. Yang terakhir ini terintegrasi, berdasarkan volume produksi, dalam sistem pengujian semi-otomatis atau otomatis yang disebut ATE – Alat Uji Otomatis . Perlengkapan dirancang khusus untuk setiap papan - atau paling banyak untuk beberapa model yang mirip dengan papan yang dirancang untuk itu - oleh karena itu ini dapat dipertukarkan dalam lingkungan sistem tempat mereka terintegrasi. Sistem pengujian, setelah papan dan perlengkapan ditempatkan pada posisinya, memiliki mekanisme untuk menghubungkan jarum perlengkapan dengan Titik Uji di papan untuk diuji. Sistem yang terhubung dengannya, atau telah terintegrasi langsung di dalamnya, seorang programmer ISP. Yang ini harus memprogram perangkat atau perangkat yang dipasang di papan: misalnya, mikrokontroler dan/atau memori serial.