पीसीबी पर एन्कोडिंग संस्करण या कॉन्फ़िगरेशन


10

मुझे बोर्ड पर या विद्युत रूप से संस्करण या कॉन्फ़िगरेशन के बारे में जानकारी संलग्न करने की आवश्यकता है, इसलिए फर्मवेयर का पता लगा सकता है कि किस बोर्ड लेआउट का उपयोग किया गया है।

क्या विकल्प संभव हैं और उनके समर्थक / विपक्ष क्या हैं?


1
थोड़ी देर पहले से यह क्यू भी है, उत्तर पहले से दिए गए (जो अच्छा है!) के समान हैं: Electronics.stackexchange.com/questions/41757/…
awjlogan

जवाबों:


14

मेरे सिर के ऊपर से, दो आसान समाधान दिमाग में आते हैं।

  1. है n लाइनों अपने माइक्रोकंट्रोलर की GPIO से जुड़ी। अपने बोर्ड संस्करण के आधार पर इन उच्च या निम्न को बाँधें। यह आपको बोर्ड कॉन्फ़िगरेशन विकल्प देगा। यह आपके माइक्रोकंट्रोलर पर n पिन का उपयोग करेगा । स्थैतिक वर्तमान ड्रा नगण्य होगा।2n
  2. माइक्रोकंट्रोलर के एडीसी के लिए एक इनपुट है और बोर्ड कॉन्फ़िगरेशन के आधार पर विभिन्न मूल्यों के साथ एक वोल्टेज विभक्त का उपयोग करें। यह केवल एक ही माइक्रोकंट्रोलर पिन का उपयोग करेगा। इसका नुकसान यह है कि डिवाइडर के माध्यम से स्थिर वर्तमान ड्रॉ होगा। यह भी BOM त्रुटियों के लिए प्रवण होगा, जबकि पहला सुझाव बोर्ड को हार्ड वायर्ड है।

इन दोनों सुझावों में एक कमजोरी है कि अंतिम उपयोगकर्ता आसानी से उन्हें बदल सकता है, "लॉक" सुविधाओं को खोलने के लिए कह सकता है। यह आपके लिए चिंता का विषय नहीं हो सकता है, लेकिन कुछ को ध्यान में रखना चाहिए।


1
[१] और [२] का संयोजन भी है। आप एडीसी के लिए माइक्रोकंट्रोलर के एक पिन का उपयोग कर सकते हैं, लेकिन वोल्टेज विभक्त बनाने के लिए समानांतर में जुड़े समान मूल्य घटक का उपयोग करें। तो उदाहरण के लिए आपके पास 10k / फ्लोट (vcc के लिए पुल), float / 10k (gnd के लिए पुल), 10k / 10k (vcc / 2), 5k / 10k (vcc का 2/3), 10k / 10 बनाने वाले चार 10k रेसिस्टर हो सकते हैं। 5k (vcc का 1/3)। तो संक्षेप में: बीओएम में एक लाइन, बस अलग-अलग मात्रा और एक एडीसी इनपुट की आवश्यकता होती है। यह नेत्रहीन भी मदद करता है।
सुकरात

2
आप एडीसी समाधान के स्थिर वर्तमान ड्रा से छुटकारा पा सकते हैं यदि आप एक दूसरे पिन को अलग कर सकते हैं: वीसीसी और जीएनडी के बीच वोल्टेज डिवाइडर के बजाय, वीसीसी या जीएनडी को दूसरे पिन के साथ बदलें - आपको केवल एक बार बोर्ड कॉन्फ़िगरेशन को पढ़ने की आवश्यकता है कार्यक्रम की शुरुआत में, ताकि वोल्टेज डिवाइडर को सक्षम करने के लिए पिन को उच्च / निम्न सेट करें, एडीसी माप करें, फिर पिन को टॉगल करें ताकि वोल्टेज डिवाइडर के दोनों छोर एक ही क्षमता पर हों और कोई वर्तमान प्रवाह न हो।
अलेक्सी तोराहो

1
GPIO संस्करण भी BOM त्रुटियों से ग्रस्त है, क्योंकि आमतौर पर इसे शून्य ओम लिंक के साथ कॉन्फ़िगर किया गया है। आप इसे योजनाबद्ध और लेआउट में कर सकते हैं, लेकिन यह अधिक महंगा है (लेआउट समय लागत )।
ग्राहम

1
एडीसी को पुनः भेजें, यह वही है जो हमने उन उत्पादों पर उपयोग किया है जहां मैं वर्तमान में काम करता हूं। हालांकि आपको प्रतिरोधक सहिष्णुता से सावधान रहना होगा। यदि आपके दो प्रतिरोध 1% सहिष्णुता हैं, तो वोल्टेज 2% तक हो सकता है, इसलिए अधिकांश समय आपको 50 कदम मिल सकते हैं। व्यवहार में यह आधा करने के लिए सुरक्षित है। इसलिए यदि आपके पास एडीसी पर 1% प्रतिरोधक और 5V रेंज है, तो आप चाहते हैं कि संस्करण 0.2V चरणों में बताए जाएं।
ग्राहम

9

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

यदि आपको रन टाइम पर आईडी बदलने में सक्षम होना है तो ट्रैवर्स के साथ इनपुट बांधने के बजाय जंपर्स का उपयोग करना एक अच्छा विचार होगा।


मैं गैर-अद्वितीय सिलिकॉन सीरियल नंबर वैरिएंट IC के लिए जा रहा था, लेकिन यह एक स्मार्ट विकल्प है। खासकर यदि आप इसे एकल तार IO विस्तारक के साथ जोड़ते हैं।
जेरोइन 3

7

कुछ विकल्प जो मैं सोच सकता हूँ: -

एसएमडी पैड / ओ ओएचएम रिसिस्टर लिंक। अपने प्रोसेसर के लिए पिन गणना को कम करने के लिए हार्डवेयर कॉन्फ़िगरेशन के लिए एक बाइनरी सिस्टम का उपयोग करें।

जम्परों। बोर्ड 2xN कनेक्टर पिंस को सही पिन में एक जम्पर जोड़कर आपको अपने कॉन्फ़िगरेशन का चयन करने देगा। एक गलती को हल करना आसान है। यह शायद थोड़ा महंगा है और जम्पर के आधार पर अधिक बोर्ड स्थान का उपयोग करें।

यदि आपके पास बोर्ड पर EEPROM है तो आपके लिए कॉन्फ़िगरेशन को मेमोरी में एम्बेड करना संभव हो सकता है।

क्या यह संभव है कि आप फर्मवेयर को #define या समान का उपयोग करके बदल दें? फिर आपको संस्करण का पता लगाने के लिए बोर्ड स्थान और अतिरिक्त पिन की आवश्यकता नहीं है।


1

एक तार EEPROMs एक अच्छा समाधान है क्योंकि उन्हें केवल एक GPIO की आवश्यकता होती है, लेकिन बड़ी मात्रा में कॉन्फ़िगरेशन जानकारी संग्रहीत कर सकते हैं। वे बोर्ड टेस्ट (जैसे अंशांकन डेटा) के दौरान उस जानकारी को लिखने के लिए माइक्रोकंट्रोलर को भी अनुमति देते हैं। कई में आगे की बदलाव को रोकने के लिए राइट-प्रोटेक्ट पिन या वन-टाइम प्रोग्रामेबल बिट है।

अन्य लाभों में उपयोगी विशेषताएं शामिल हैं जैसे गारंटीकृत अद्वितीय सीरियल नंबर।

इस विकल्प का उपयोग कई प्रणालियों में किया जाता है, जैसे कि आस्टसीलस्कप जांच और बैटरी, केवल एक डेटा लाइन की आवश्यकता के कारण। EEPROM को डेटा लाइन से भी संचालित किया जा सकता है।

मुख्य नुकसान लागत है। लागत अधिक नहीं है, लेकिन बड़े पैमाने पर उत्पादित उत्पादों पर कुछ सेंट मायने रख सकते हैं।

ऐसे EEPROM का एक उदाहरण DS2431 है, जो 1kb स्टोर करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.