प्रोग्रामर (हार्डवेयर)

एक प्रोग्रामर, डिवाइस प्रोग्रामर, चिप प्रोग्रामर, डिवाइस बर्नर, या प्रोम राइटर इलेक्ट्रॉनिक उपकरण का एक अंश है जो प्रोग्रामयोग्य गैर-ह्रासी एकीकृत सर्किट, जिसे प्रोग्रामेबल डिवाइस कहा जाता है, को कॉन्फ़िगर करने के लिए लिखित सॉफ़्टवेयर की व्यवस्था करता है |  लक्षित उपकरणों में प्रोम (प्रोग्रामेबल रीड-ओनली मेमोरी), EPROM (इरेजेबल प्रोग्रामेबल रीड-ओनली मेमोरी), EEPROM (इलेक्ट्रिकली इरेजेबल प्रोग्रामेबल रीड-ओनली मेमोरी), फ्लैश मेमोरी, eMMC (एम्बेडेड मल्टीमीडिया कार्ड), MRAM (मैग्नेटोरेसिस्टिव रैंडम-एक्सेस मेमोरी),  FeRAM (फेरोइलेक्ट्रिक रैंडम-एक्सेस मेमोरी), अनह्रासी रैंडम-एक्सेस मेमोरी, प्रोग्रामेबल लॉजिक डिवाइस, काम्प्लेक्स प्रोग्रामेबल लॉजिक डिवाइस, फील्ड प्रोग्रामयोग्य गेट सरणी और  माइक्रो-कंट्रोलर सम्मिलित है।

फंक्शन
प्रोग्रामर हार्डवेयर के दो प्रकार हैं। एक प्रोग्रामर पर सॉकेट के साथ नियत डिवाइस को स्वयं कॉन्फ़िगर कर रहा है। एक अन्य मुद्रित सर्किट बोर्ड पर डिवाइस को कॉन्फ़िगर कर रहा है।

पूर्व स्थितियो में, नियत डिवाइस को प्रोग्रामर के शीर्ष पर एक सॉकेट (सामान्यतः शून्य सम्मिलन बल) में डाला जाता है। यदि डिवाइस एक मानक डीआईपी (डुअल इन-लाइन) पैकेज नहीं है, तो एक प्लग-इन एडेप्टर बोर्ड, जो फुट्प्रिन्ट (इलेक्ट्रॉनिक्स) को दूसरे सॉकेट के साथ परिवर्तित करके उपयोग किया जाता है।

बाद की स्थितियो में, सामान्यतः एक केबल के साथ, डिवाइस प्रोग्रामर सीधे एक कनेक्टर द्वारा मुद्रित सर्किट बोर्ड से जुड़ा होता है। इस तरीके को ऑन-बोर्ड प्रोग्रामिंग, इन-सर्किट प्रोग्रामिंग या इन-सिस्टम प्रोग्रामिंग कहा जाता है।

बाद में कनेक्टिंग पिन के माध्यम से सिग्नल लगाकर प्रोग्रामर से डिवाइस में डेटा ट्रांसफर किया जाता है। कुछ उपकरणों में प्रोग्रामिंग डेटा (JTAG इंटरफ़ेस सहित) प्राप्त करने के लिए एक सीरियल इंटरफ़ेस होता है। अन्य उपकरणों को डिवाइस में डेटा प्रोग्रामिंग के लिए समानांतर पिन पर डेटा की आवश्यकता होती है, जिसके बाद उच्च वोल्टेज के साथ प्रोग्रामिंग पल्स होता है।

सामान्यतः डिवाइस प्रोग्रामर एक समानांतर पोर्ट USB पोर्ट, या लोकल एरिया नेटवर्क इंटरफ़ेस के माध्यम से निजी कंप्यूटर से जुड़े होते हैं। कंप्यूटर पर एक सॉफ्टवेयर प्रोग्राम तब डेटा को प्रोग्रामर को स्थानांतरित करता है,   डिवाइस और इंटरफ़ेस प्रकार का चयन करता है, और डिवाइस के अंदर डेटा को पढ़ने/लिखने/मिटाने/खाली करने के लिए प्रोग्रामिंग प्रक्रिया प्रारंभ करता है।

प्रकार
डिवाइस प्रोग्रामर के चार सामान्य प्रकार हैं:


 * 1) स्वचालित प्रोग्रामर (मल्टी-प्रोग्रामिंग साइटों, जिसमें सॉकेट्स का एक सेट होता है) बड़े पैमाने पर उत्पादन के लिए होता है। ये प्रणालियां ऑन-बोर्ड साइटों के साथ रोबोटिक पिक एंड प्लेस हैंडलर का उपयोग करती हैं। यह उच्च मात्रा और काम्प्लेक्स आउटपुट (जैसे लेजर मार्किंग, 3डी निरीक्षण, टेप इनपुट/आउटपुट, आदि) के लिए अनुमति देता है।
 * 2) डिवेलप्मन्ट प्रोग्रामर (सामान्यतः एकल-प्रोग्रामिंग साइट) पहले आर्टिकल डिवेलप्मन्ट और लघु श्रृंखला उत्पादन के लिए है।
 * 3) विकास और व्यापक क्षेत्र के लिए पॉकेट प्रोग्रामर है।
 * 4) केवल कुछ प्रकार के सर्किट के लिए विशिष्ट प्रोग्रामर, जैसे फील्ड प्रोग्रैमबल गेट सरणी, माइक्रोकंट्रोलर,  और EEPROM प्रोग्रामर है।

इतिहास
पुराने प्रोम प्रोग्रामरों के संबंध में, क्योंकि कई प्रोग्रामेबल उपकरणों में विभिन्न वोल्टेज आवश्यकताएं हैं, प्रत्येक पिन चालक को 0-25 वोल्ट की सीमा में विभिन्न वोल्टेज लागू करने में सक्षम होना चाहिए। लेकिन मेमोरी डिवाइस प्रौद्योगिकी की प्रगति के अनुसार, हाल ही में फ्लैश मेमोरी प्रोग्रामर्स को उच्च वोल्टेज की आवश्यकता नहीं होती है। कम्प्यूटिंग के प्रारंभिक दिनों में, बूटिंग मैकेनिज्म एक यांत्रिक उपकरण था जिसमें सामान्यतः स्विच और प्रकाश उत्सर्जक डायोड सम्मिलित होते थे। इसका मतलब है कि प्रोग्रामर एक उपकरण नहीं बल्कि मानवीय था, जिसने स्विच को ऑन और ऑफ पोजीशन की श्रृंखला में सेट करके एक-एक करके मशीन कोड दर्ज किया जाता था। स्विच की ये स्थिति आज की असेंबली भाषा के समान मशीन कोड के अनुरूप है।   आजकल, EEPROMs का उपयोग बूटस्ट्रैपिंग प्रक्रिया के लिए BIOS (बेसिक इनपुट आउटपुट सिस्टम) के रूप में किया जाता है, और प्रोग्रामिंग के लिए यांत्रिक स्विच संचालित करने की कोई आवश्यकता नहीं है।

निर्माता
प्रत्येक विक्रेता की वेब साइट के लिए, बाहरी लिंक अनुभाग को संदर्भित करें।
 * बैट्रोनिक्स
 * बीपीएम माइक्रोसिस्टम्स
 * DiagProg4: CodiProg
 * जेलटेक इंक
 * कोनिटेक डेटा सिस्टम्स
 * MCUmall Electronics Inc.
 * डेटा I/O
 * Elnec
 * डेडिप्रोग प्रौद्योगिकी कंपनी लिमिटेड
 * मिनाटो होल्डिंग्स
 * हाई-लो सिस्टम रिसर्च
 * फाइटन, इंक.

यह भी देखें

 * ऑफ-लाइन प्रोग्रामिंग (रोबोटिक्स)|ऑफ-लाइन प्रोग्रामिंग
 * इन-सिस्टम प्रोग्रामिंग
 * डिबग पोर्ट
 * जेटीएजी
 * सामान्य फ्लैश मेमोरी इंटरफ़ेस
 * नंद फ्लैश इंटरफेस वर्किंग ग्रुप खोलें
 * एटमेल एवीआर # प्रोग्रामिंग इंटरफेस
 * तस्वीर माइक्रोकंट्रोलर#डिवाइस प्रोग्रामर
 * इंटेल हेक्स - ASCII फ़ाइल स्वरूप
 * SREC (फ़ाइल स्वरूप) - ASCII फ़ाइल स्वरूप
 * निष्पादन योग्य और लिंक करने योग्य प्रारूप - बाइनरी फ़ाइल स्वरूप
 * COFF - बाइनरी फ़ाइल स्वरूप
 * हार्डवेयर विवरण भाषा

बाहरी संबंध

 * Technical information
 * JEDEC - Memory Configurations: JESD21-C
 * JEDEC - Common Flash Interface (CFI) Specification, JESD68.01, September 2003.
 * Intel - Common Flash Interface (CFI) and Command Sets
 * IEEE Std 1532-2002 (Revision of IEEE Std 1532-2001) - IEEE Standard for In-System Configuration of Programmable Devices
 * What is the IEEE 1532 Standard? | Keysight Technologies
 * JEDEC - STANDARD DATA TRANSFER FORMAT BETWEEN DATA PREPARATION SYSTEM AND PROGRAMMABLE LOGIC DEVICE PROGRAMMER: JESD3-C, Jun 1994
 * JEDEC - JC-42 Solid State Memories


 * Manufactures
 * BPM Microsystems
 * Batronix GmbH & Co. KG
 * Xeltek Inc.
 * Conitec Datasystems Inc.
 * Data I/O Corporation
 * Elnec s.r.o.
 * Dediprog
 * Minato Holdings Inc.
 * Hi-Lo System Research Co. Ltd.
 * Phyton, Inc.
 * halec