त्वरण Arduino। तरल नाइट्रोजन के तहत। 20 ⇒ 65.3Mhz @ -196 ° C

लेख के शुरू होने से पहले, आपको तुरंत 2 प्रश्नों का उत्तर देना चाहिए, फॉर्च्युनरेलर पर न जाएं - उनसे पूछा जाएगा:

1) इसमें व्यावहारिक अर्थ क्या है? यह जानने के लिए कि इलेक्ट्रॉनिक्स क्रायोजेनिक तापमान पर कैसे व्यवहार करता है, और यह सिर्फ दिलचस्प है कि आप 20 मेगाहर्ट्ज से एवीआर को कितना निचोड़ सकते हैं :-) हम एक ऐसे क्षण का पता लगाने में कामयाब रहे जो क्रायोजेनिक कूलिंग के साथ डेस्कटॉप प्रोसेसर को ओवरक्लॉक करने के लिए बेहद महत्वपूर्ण है।

2) क्यों Arduino, सब के बाद, वहाँ microcontrollers का एक गुच्छा तेजी से है, और i7 आम तौर पर हर कोई आँसू? यह सही है। बहुत अधिक आधुनिक माइक्रोकंट्रोलर का एक गुच्छा है, जो परिमाण के 2-3 क्रम तेज हैं (और मेरे पास)। हालांकि, Arduino ने प्रशंसकों के बीच बहुत प्रसिद्धि प्राप्त की, क्योंकि इसे पीड़ा देने का फैसला किया गया था। और व्यावहारिक अनुप्रयोगों के लिए, यह निश्चित रूप से सस्ता है और तेज माइक्रोकंट्रोलर (कॉर्टेक्स-एम 3, एम 4) लेना आसान है।

तरल नाइट्रोजन के तहत एक माइक्रोकंट्रोलर को ओवरक्लॉक करना "डेस्कटॉप" प्रोसेसर को ओवरक्लॉक करने की तुलना में कुछ अधिक जटिल होने का वादा करता है - क्योंकि कोई स्थिरता परीक्षण, कोई प्रोग्राम घड़ी जनरेटर, या बिजली की आपूर्ति वोल्टेज नियंत्रण नहीं है। और Arduino पर घटकों, जैसा कि अभ्यास ने दिखाया है, क्रायोजेनिक तापमान का सामना नहीं करते हैं - और आपको उनके साथ व्यक्तिगत रूप से निपटना होगा। सौभाग्य से, हम इन सभी समस्याओं को हल करने में कामयाब रहे।

तरल नाइट्रोजन

मैं बहुत समय से उससे मिलना चाहता था। यह पता चला कि कई कंपनियां इसे मॉस्को में बेच रही थीं। निकटतम एनआईआई केएम था , जहां प्रति लीटर 50 रूबल से नाइट्रोजन है। कुछ कंपनियां 5 लीटर के लिए 950 रूबल से नहीं फेंक रही हैं - उनके साथ हम निश्चित रूप से रास्ते में नहीं हैं।

तरल नाइट्रोजन को शाब्दिक रूप से हवा से प्राप्त किया जाता है - इसे द्रवीभूत करके और इसे आसवन स्तंभ पर अलग करके, या इसके विपरीत - पहले, विशेष फिल्टर के साथ हवा से नाइट्रोजन को अलग करना, और फिर इसे तरलीकृत करना। जैसा कि यह निकला, यहां तक ​​कि तरल नाइट्रोजन (प्रति दिन 10 लीटर) के उत्पादन के लिए छोटे पौधे भी बेचे जाते हैं। बिजली उत्पादन की लागत 5-10 रूबल प्रति लीटर है। अब मुझे पता है कि मुझे अपने जन्मदिन के लिए क्या चाहिए!



आप साधारण स्टील थर्मस में नाइट्रोजन ले सकते हैं (कांच तापमान में तेज गिरावट से दरार कर सकता है)। अतिरिक्त वार्मिंग (कंडेनसेट के खिलाफ सुरक्षा के लिए थर्मल इन्सुलेशन और पॉलीइथिलीन का +1 सेंटीमीटर) के बाद, नाइट्रोजन 30 घंटे में उबला हुआ, जो, सिद्धांत रूप में, काम के लिए पर्याप्त है। एक विशेष देवर पोत खरीदना काफी महंगा आनंद है, हालांकि छोटे (~ 5 लीटर) "सही" देवर जहाजों से नाइट्रोजन 25 दिनों में उबल जाता है। आपको यह भी याद रखने की आवश्यकता है कि किसी भी स्थिति में आप तरल नाइट्रोजन को कसकर बंद नहीं कर सकते हैं - यह कतरन को फाड़ देगा।

Phys.stackexchange.com/ में उन्होंने सुझाव दिया कि थर्मल इंसुलेशन को दूसरे तरीके से किया जाना चाहिए - शीर्ष पर, नीचे नहीं। थर्मस की बाहरी दीवार को ठंडा करने के लिए नाइट्रोजन को वाष्पित करना।


लोड परीक्षण

मुझे एक परीक्षण लिखना था जो SRAM में पढ़ने / लिखने का परीक्षण करता है, फ्लैश से पढ़ना, अंकगणितीय संचालन और एक कार्यक्रम प्रवाह परीक्षण (शाखाओं के साथ)। परीक्षणों का विचार - आदेशों का एक क्रम पाया गया जो सिस्टम को उसकी प्रारंभिक अवस्था से बाहर ले जाता है, और फिर कुछ निश्चित चरणों के बाद - अपनी मूल स्थिति की ओर ले जाता है। यहां पूरा तनाव परीक्षण डाउनलोड करें
परीक्षण देखें
void run_flow_test() { for(int repeat=0;repeat<250;repeat++)//We are aiming at ~10 benches per second { //Program flow check //Magic loop which after 93 itterations yields same value for(unsigned char i=0;i<93;i++) { flow_check=(flow_check<<1) + (flow_check>>7) + 25; if(flow_check&8) flow_check^=4; else flow_check^=16; flow_check=flow_check ^ 192 + 1; } } } void run_mul_test() { for(int repeat=0;repeat<350;repeat++)//We are aiming at ~10 benches per second { //Multiplication check for(unsigned char i=0;i<64;i++) { mul_check=mul_check*(mul_check-1); mul_check=mul_check*(mul_check+1)+2; } } } void run_flash_test() { for(int repeat=0;repeat<1000;repeat++)//We are aiming at ~10 benches per second { //flash_check for(unsigned char i=0;i<16;i++) { flash_check=(flash_check ^ svalue1) + svalue2; flash_check=(flash_check<<((svalue3+flash_check)&7)) + (flash_check>>((svalue3+flash_check)&7)) + svalue4; } } } void run_sram_test() { for(int repeat=0;repeat<10;repeat++)//We are aiming at ~10 benches per second { //SRAM check for(int i=0;i<2405;i++) { value1=(value1+value2+value3+value4+sram_check)&1; value2=(value2+value1+value3+value4+sram_check)&1+1; value3=(value3+value1+value2+value4+sram_check)&1+2; value4=(value4+value1+value2+value3+sram_check)&1+3; sram_check=(sram_check<<1)+(sram_check>>7)+value1+value2+value3+value4; } } } 


4-बिट बस के माध्यम से एक मानक तरीके से जुड़े HD44780 स्क्रीन पर, दूसरी पंक्ति चेकसम के लूप पुनरावृत्ति संख्या और 8 हेक्साडेसिमल अंकों को प्रदर्शित करती है। पहले 2 एसआरएएम परीक्षण, फिर फ्लैश, अंकगणित और कार्यक्रम प्रवाह हैं। यदि सब कुछ ठीक है, तो चेकसम 12345678 होना चाहिए। चेकसम में त्रुटि संचित है। इसके अलावा, त्रुटि कोड बोर्ड पर एलईडी को ब्लिंक करके प्रदर्शित किया जाता है: नीरस निमिष - सब कुछ ठीक है, 1 फ्लैश - एसआरएएम त्रुटि, 2 - फ्लैश, आदि। ~ -100 डिग्री सेल्सियस पर परीक्षणों के लिए - मुझे आमतौर पर -196 डिग्री सेल्सियस पर एक प्रोग्राम फ्लो टेस्ट त्रुटि मिली, एसआरएएम मेमोरी पढ़ने / लिखने के साथ एक परीक्षण।

यह मान लिया गया था कि बढ़ते वोल्टेज के साथ, मुझे डिस्प्ले को बंद करना होगा, और केवल एलईडी पर भरोसा करना होगा। हालांकि, इसने दूसरे रास्ते को गोल कर दिया - तरल नाइट्रोजन के तापमान पर एलईडी ने काम करना बंद कर दिया (बैंड गैप के विस्तार के कारण, इग्निशन के लिए आवश्यक वोल्टेज आपूर्ति वोल्टेज से अधिक हो गया, उस पर और अधिक)।



घड़ी का जनरेटर

Arduino क्वार्ट्ज के लिए चूक। पहले हार्मोनिक पर क्वार्ट्ज आमतौर पर 30 मेगाहर्ट्ज से अधिक नहीं काम करता है, इसलिए बाहरी जनरेटर के साथ काम करना अपरिहार्य है। Arduina बोर्ड को स्वयं नहीं मिलाप करने के लिए, मैंने 2 पैरों को झुका दिया, जिससे क्वार्ट्ज जुड़ा हुआ है, और बाहरी घड़ी की आवृत्ति के संपर्क को मिला दिया। खैर, बाहरी जनरेटर से काम करने के लिए फ़्यूज़ को बदलना आवश्यक था, जिसके लिए एक अलग प्रोग्रामर (मेरे मामले में - TL866CS MiniPro ) की आवश्यकता होती है। बेशक, मैंने अपने पैरों को झुकने के बाद पहले से ही इस बारे में सोचा था, और माइक्रोकंट्रोलर को प्रोग्रामर में बैसाखी के साथ रखा जाना था। बाईं ओर की तस्वीर में, LM2596 पर चीनी DCDC मॉड्यूल भी दिखाई दे रहा है, जिसके साथ मैंने आपूर्ति वोल्टेज को बदल दिया।



बेशक, मेरे पास 100 मेगाहर्ट्ज तक सिग्नल जनरेटर नहीं है - यह एक महंगा व्यवसाय है। 50% के कर्तव्य चक्र के साथ मुझे (16-100 मेगाहर्ट्ज) रेंज में उत्पन्न करने में सक्षम एक ट्यूनेबल जनरेटर केवल 4 वें प्रयास से एकत्र करना संभव था। यह पता चला है कि कई जेनसेट जेनरेटर या तो बहुत कम अधिकतम आवृत्ति वाले होते हैं या उच्च आवृत्तियों पर अस्थिर होते हैं (कुछ दालें गलती से छोटी / चौड़ी हो जाती हैं)। अंत में, निम्नलिखित सर्किट संपूर्ण आवश्यक सीमा पर मज़बूती से उत्पन्न होता है। आउटपुट पर रोकनेवाला R1 एक आंशिक धारावाहिक समाप्ति है, ताकि माइक्रोकंट्रोलर की तरफ घड़ी संकेत का एक ओवरशूट इतना डरावना न हो। हमें उच्च वोल्टेज पर काम करना होगा, और आप चिप को जला सकते हैं (8V के आयाम के साथ "तेज" संकेत के साथ - माइक्रोकंट्रोलर के किनारे पर तात्कालिक "सर्जेस" 16 वोल्ट तक होगा)।





क्रायोजेनिक तापमान पर इलेक्ट्रॉनिक्स के संचालन की विशेषताएं

जब -196 डिग्री तक ठंडा हो जाता है, तो धातुओं का प्रतिरोध काफी कम हो जाता है। उदाहरण के लिए, तांबे के लिए, कॉइल में कमरे के तापमान पर 56.3 ओम का प्रतिरोध था और ठंडा होने पर केवल 6.6 ओम होता है (ड्रॉप 8.5 बार)।

कैपेसिटर का व्यवहार बहुत अधिक जटिल है: इलेक्ट्रोलाइटिक कैपेसिटर इलेक्ट्रोलाइट फ्रीज होने पर ~ 500'000 गुना क्षमता खो देते हैं। सिरेमिक कैपेसिटर - ढांकता हुआ पर निर्भर करता है: सबसे सस्ता Y5V - ठंडा होने पर लगभग पूरी कैपेसिटेंस खो देते हैं, X7R - कैपेसिटेंस और NP0 (C0G) का 66% खो देते हैं - 1% से अधिक के कैपेसिटेंस में बदलाव (लेकिन 1000 से अधिक पीएफ के कैपेसिटेंस वाले ऐसे कैपेसिटर दुर्लभ हैं)। तदनुसार, यदि बिजली के लिए अलगाव कैपेसिटर Y5V ढांकता हुआ होता है, तो सर्किट ठंडा होने के दौरान स्थिरता खो सकता है। आप 100-150 डिग्री तक गर्म होने पर ढांकता हुआ के प्रकार की जांच कर सकते हैं - समाई पर प्रभाव उसी के बारे में है। इस समस्या को खत्म करने के लिए, X7R और NP0 डाइलेक्ट्रिक्स वाले कैपेसिटर को सीधे माइक्रोकंट्रोलर के पावर फीट में मिलाया गया।

अर्धचालकों के लिए, बैंड गैप बढ़ता है, और इलेक्ट्रॉनों / छिद्रों की गतिशीलता में परिवर्तन होता है (यहां निर्भरता जटिल है)। व्यवहार में, यह इस तथ्य की ओर जाता है कि, उदाहरण के लिए, सिलिकॉन डायोड - में 0.6-0.7 वी के वोल्टेज की बूंदें नहीं हैं, लेकिन 1.1। यह एनालॉग सर्किट के लिए विशेष रूप से सच है, जिसमें कई द्विध्रुवी ट्रांजिस्टर हैं।

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



ठंडा होने पर माइक्रोक्रिस्केट्स तेजी से काम करना क्यों शुरू कर सकते हैं? CMOS तर्क के संचालन की गति आवारा कैपेसिटर के चार्ज / डिस्चार्ज की दर (ट्रांजिस्टर और मेटल कनेक्शन के गेट कैपेसिटेंस) द्वारा सीमित है। और तब से जब तापमान घटता है, तो धातुओं का प्रतिरोध कम हो जाता है - संचालन की गति बढ़ सकती है, खासकर अगर सर्किट गति में महत्वपूर्ण है, तो ये कुछ लंबी श्रृंखलाएं थीं।

यानी तरल नाइट्रोजन को गर्मी की एक बड़ी मात्रा को निकालने की आवश्यकता नहीं है (इसकी गर्मी क्षमता के साथ यह साधारण पानी से भी बदतर है), लेकिन आंतरिक धातु के यौगिकों के प्रतिरोध को कम करके माइक्रोकिरिट की विशेषताओं में सुधार करना है।

एक नाटकीय शुरुआत के साथ प्रत्यक्ष त्वरण

इन सभी तैयारियों के बाद, मैं धीरे-धीरे तरल नाइट्रोजन के साथ Arduino को भरता हूं, मैं वहां कनेक्शन को चटकता सुनता हूं, और अचानक स्क्रीन बैकलाइट बाहर चला जाता है, और फिर बोर्ड जमा देता है। मैंने सोचा कि यह अंत था। फिर यह पता चला कि यदि आप बोर्ड को नाइट्रोजन से थोड़ा ऊपर उठाते हैं ताकि यह इतना ठंडा न हो, तो बैकलाइट फिर से रोशनी में आ जाए और बोर्ड काम करे। ओवरक्लॉक करना मुश्किल था ~ 50 मेगाहर्ट्ज। लेकिन निश्चित रूप से, परिणाम विश्वसनीय नहीं था, क्योंकि माइक्रोकंट्रोलर का तापमान अस्थिर था।

अचानक, यह देखते हुए कि जब बोर्ड नाइट्रोजन में उतारा जाता है तो यह कैसे बंद हो जाता है और जब वह गर्म होता है तो काम करना जारी रखता है, तो एक विचार आया: क्या होगा अगर आपूर्ति कम होने के बावजूद आपूर्ति वोल्टेज काम करता है? ब्राउन-आउट डिटेक्शन को बंद कर दिया - और जब तरल नाइट्रोजन में उतारा गया तो माइक्रोकंट्रोलर ने काम करना शुरू कर दिया! स्क्रीन के साथ - यह पता चला कि बैकलाइट बोर्ड पर 3.3V रैखिक नियामक से जुड़ा था (पावर पिन बाहर चल रहे थे) - और जब तापमान गिरा, तो उसे भी लगा कि शायद सुरक्षा काम कर गई है, वोल्टेज बहुत गिर गया। सीधे 5 वी से जुड़ा - और यह भी काम किया।

स्थिर काम लगभग 50 मेगाहर्ट्ज था - और मैंने वोल्टेज बढ़ाना शुरू कर दिया। यह पता चला कि 8 वोल्ट से ऊपर - सिस्टम ने काम करना बंद कर दिया, और 7.5-8 वोल्ट ने 65.3 मेगाहर्ट्ज की आवृत्ति पर बिल्कुल स्थिर संचालन प्रदान किया। तुलना के लिए, कमरे के तापमान और 5 वी पर - सबसे स्थिर आवृत्ति 32.5 मेगाहर्ट्ज है, और 8 वी - 37 मेगाहर्ट्ज पर।

65 मेगाहर्ट्ज की आवृत्ति पर, परीक्षण ने लगभग एक घंटे से अधिक समय तक काम किया, कुल 3 लीटर नाइट्रोजन में तेजी आई।





हवा में - बोर्ड को झटके के साथ तुरंत कवर किया जाता है:


वीडियो में, 65 मेगाहर्ट्ज की आवृत्ति पर परीक्षण 7:12 से शुरू होता है, तरल नाइट्रोजन की एक परत के तहत अरुडिनो के काम का प्रकार - 9.00 पर।


और तरल नाइट्रोजन के अवशेष गर्म पानी के साथ आमने-सामने मिलेंगे:

सारांश


पुनश्च । तरल नाइट्रोजन के साथ अन्य प्रयोगों में - हरी रोशनी के साथ चीनी का फॉस्फोरेसेंस । और यदि आप फल तोड़ते हैं - तो टुकड़े को हटा दें इससे पहले कि वे पूरे कमरे में बिखरे हुए फल दलिया में बदल जाएं

पुनश्च : यदि किसी को पता है कि सुपरकंडक्टर्स के नमूने कहां से खरीदें - लिखिए । मुझे जो मिला वह राक्षसी रूप से महंगा है।

पुनश्च : रेडिट पर चर्चा

Source: https://habr.com/ru/post/In190180/


All Articles