Tolong jelaskan mengenai Sejarah dari Pemrograman dalam sistem

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.