विषयसूची:

अपनी आँखें खोलें! तार्किक विश्लेषक: 21 कदम
अपनी आँखें खोलें! तार्किक विश्लेषक: 21 कदम

वीडियो: अपनी आँखें खोलें! तार्किक विश्लेषक: 21 कदम

वीडियो: अपनी आँखें खोलें! तार्किक विश्लेषक: 21 कदम
वीडियो: ब्रह्ममुहूर्त में जागते ही बैड पर लेटे लेटे केवल 3 बार ऐसे बोलो उसी समय इच्छा पूरी होगी 2024, जुलाई
Anonim
Image
Image
सभा
सभा

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

इस वीडियो में, मैंने ग्राफिकल इंटरफेस और मुफ्त सॉफ्टवेयर के साथ अपेक्षाकृत सस्ते (लगभग $35) और कुशल मॉडल का इस्तेमाल किया।

चरण 1: विधानसभा

चरण 2: प्रयुक्त सुविधाएँ - सर्वर

प्रयुक्त सुविधाएँ - सर्वर
प्रयुक्त सुविधाएँ - सर्वर

• कनेक्शन के लिए जम्पर

• 2 Arduinos (हमने 2 मेगा Arduinos 2560 का उपयोग किया)

• तार्किक विश्लेषक (हम Saleae का उपयोग करते हैं)

• Arduino और विश्लेषक के लिए USB कनेक्शन केबल।

• ऑसिलोस्कोप (वैकल्पिक)

• प्रोटोबार्ड

चरण 3: प्रयुक्त सर्किट

सर्किट प्रयुक्त
सर्किट प्रयुक्त

यहां हमारे पास योजनाबद्ध है, जो तीन पिनों की निगरानी दिखाता है: TX0, SDA और SCL। हमारे पास दो Arduinos हैं: एक स्वामी और एक दास।

चरण 4: स्रोत कोड: मास्टर

सेटअप में, हम i2c संचार के लिए पुस्तकालय शामिल करेंगे। हमने मास्टर के रूप में नेटवर्क में प्रवेश किया और सीरियल 0 को आरंभ किया। लूप में, हमने अपने Arduino नंबर 8 के साथ संचार के लिए दास डेटा बाइट्स का अनुरोध किया, जैसा कि हमने उदाहरण में परिभाषित किया है। हम धारावाहिक में प्रिंट करते हैं, जिसका मूल्यांकन तर्क विश्लेषक, प्राप्त बाइट्स के साथ किया जाएगा।

#include //inclui a biblioteca para comunicação I2C void setup() { Wire.begin(); // एन्ट्रा ना रेडे कोमो मेस्त्रे (एंडरेको é ऑप्सियनल पैरा ओ मेस्टर) सीरियल.बेगिन(११५२००); // inicia a serial 0 } void loop() { Wire.requestFrom(8, 6);// requireita 6 बाइट्स de dados do escravo de endereço 8 जबकि (वायर.उपलब्ध ()) {// enquanto houver बाइट्स पैरा रिसेबर ।.. चार सी = वायर.रीड (); // रिसेबे कैडा बाइट ई आर्मजेना कॉमो कैरेक्टर सीरियल.प्रिंट (सी); // एन्विया ओ कैरेक्टर पेला सीरियल (ना वर्देड वै पैरा ओ बफर)} देरी (500); // अगुआर्डा मेयो सेगुंडो }

चरण 5: स्रोत कोड: गुलाम

इस दास कोड में, मैं फिर से i2c संचार के लिए पुस्तकालय शामिल करता हूं। मैं 8 पते के साथ एक दास के रूप में नेटवर्क में प्रवेश करता हूं। हम अनुरोध घटना को पंजीकृत करते हैं और इसे "अनुरोध" फ़ंक्शन के साथ जोड़ते हैं। आपको लूप पर कुछ भी करने की आवश्यकता नहीं है, बस 0.1 सेकंड की देरी दें।

अंत में, हमारे पास अनुरोध फ़ंक्शन है जिसे मास्टर द्वारा अनुरोध ईवेंट होने पर निष्पादित किया जाएगा, जो सेटअप में पंजीकृत था। हम अंत में, 6 बाइट्स के संदेश के साथ उत्तर देते हैं।

#include //inclui a biblioteca para comunicação I2C void setup() { Wire.begin(8); // प्रवेश और फिर से काम एस्क्रावो कॉम अंत में 8 Wire.onRequest(requestEvent); // पंजीकरण या घटना की आवश्यकता है // ई संघ função अनुरोधइवेंट } शून्य लूप () {देरी (१००); // कोई फ़ैज़ नाडा नो लूप, एपेनस अगुआर्डा 0, 1 सेगुंडो} // फ़नकाओ क्यू सेरा एक्जीक्यूटाडा क्वांडो ऑकोररर ओ इवेंटो डे रिक्विसिस्को पेलो मेस्त्रे // फ़ॉई रजिस्ट्रार कोमो इवेंटो नो सेटअप शून्य अनुरोधइवेंट () {वायर.राइट ("टेस्ट"); // उत्तरदाता कॉम उमा मेन्सेजम डे 6 बाइट्स }

चरण 6: विश्लेषक: हार्डवेयर

विश्लेषक: हार्डवेयर
विश्लेषक: हार्डवेयर

नमूना दर अप करने के लिए: 24 मेगाहर्ट्ज

तर्क: 5 वी से 5.25 वी

निम्न-स्तरीय दहलीज 0.8 V

उच्च स्तरीय दहलीज 2.0 वी

लगभग 1 मोहम या अधिक का इनपुट प्रतिबाधा

चरण 7: बिक्री सॉफ्टवेयर स्थापना

सेलई सॉफ्टवेयर इंस्टालेशन
सेलई सॉफ्टवेयर इंस्टालेशन

प्रोग्राम जो लॉजिक एनालाइज़र द्वारा कैप्चर किया गया डेटा प्राप्त करता है और बिट्स को डिकोड करता है, उसे निम्न लिंक पर डाउनलोड किया जा सकता है:

चरण 8: हमारे परीक्षण के लिए पर्यावरण को कॉन्फ़िगर करना

हमारे परीक्षणों के लिए पर्यावरण को कॉन्फ़िगर करना
हमारे परीक्षणों के लिए पर्यावरण को कॉन्फ़िगर करना

मैं यहां इंटरफ़ेस दिखाता हूं, जो मुझे विशेष रूप से पसंद आया क्योंकि यह साफ था।

चरण 9: हमारे परीक्षणों के लिए पर्यावरण को कॉन्फ़िगर करना

हमारे परीक्षणों के लिए पर्यावरण को कॉन्फ़िगर करना
हमारे परीक्षणों के लिए पर्यावरण को कॉन्फ़िगर करना

यहां कुछ कॉन्फ़िगरेशन विकल्प दिए गए हैं:

• चैनल के नाम पर क्लिक करके हम इसे बदल सकते हैं।

• हम यह निर्धारित कर सकते हैं कि चैनलों में से एक कैप्चर और पता लगाने के लिए ट्रिगर के रूप में काम करेगा या नहीं।

• चैनल नंबर को क्लिक और होल्ड करके, आप सूची में अपनी स्थिति बदल सकते हैं।

• गियर पर क्लिक करके, हम चैनल विज़ुअलाइज़ेशन को कॉन्फ़िगर कर सकते हैं, विस्तार कर सकते हैं …

• … या चैनल छुपा रहे हैं। हम उन सभी चैनलों को छिपा देंगे जिनका हम उपयोग नहीं करेंगे।

चरण 10: हमारे परीक्षण के लिए पर्यावरण को कॉन्फ़िगर करना

हमारे परीक्षणों के लिए पर्यावरण को कॉन्फ़िगर करना
हमारे परीक्षणों के लिए पर्यावरण को कॉन्फ़िगर करना

"प्रारंभ" बटन के तीरों पर क्लिक करने पर, नमूनाकरण दर और रिकॉर्डिंग की अवधि के विकल्प होते हैं।

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

चरण 11: हमारे परीक्षण के लिए पर्यावरण को कॉन्फ़िगर करना

हमारे परीक्षणों के लिए पर्यावरण को कॉन्फ़िगर करना
हमारे परीक्षणों के लिए पर्यावरण को कॉन्फ़िगर करना

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

चरण 12: हमारे परीक्षण के लिए पर्यावरण को कॉन्फ़िगर करना

हमारे परीक्षणों के लिए पर्यावरण को कॉन्फ़िगर करना
हमारे परीक्षणों के लिए पर्यावरण को कॉन्फ़िगर करना

"डिकोडेड प्रोटोकॉल" टैब में, हमें जांचना चाहिए कि कौन से प्रोटोकॉल विश्लेषक सक्षम हैं। वहां, डेटा दिखाई देगा। "एनोटेशन" टैब में, हम बेहतर विज़ुअलाइज़ेशन के लिए कुछ परिणाम जोड़ सकते हैं। बस "माप जोड़ें" आइकन पर क्लिक करें।

चरण 13: कैप्चर: अवलोकन

कैप्चर: सिंहावलोकन
कैप्चर: सिंहावलोकन

कैप्चर स्क्रीन में, प्रोग्राम SDA, SCL, और TX0 की डेटा पल्स ट्रेन प्रदर्शित करता है।

चरण 14: कैप्चर: प्रोटोकॉल विश्लेषण का परिणाम

कैप्चर: प्रोटोकॉल विश्लेषण का परिणाम
कैप्चर: प्रोटोकॉल विश्लेषण का परिणाम

यहां, हम कैप्चर का परिणाम देखते हैं। "डिकोडेड प्रोटोकॉल" टैब में, हमारे पास है:

• आईडी 8 के साथ दास के लिए सर्वर अनुरोध।

• दास प्रतिक्रिया, छह वर्ण: "टी", "ई", "एस", "टी", "ई" और एक स्थान।

• प्रत्येक के बाद एक एसीके बिट (पावती) होता है जो एनएकेसी (नौकरी नहीं) स्पेस कैरेक्टर को छोड़कर, सही बाइट रिसेप्शन को दर्शाता है।

• इसके बाद, हम TX0 सीरियल का डिकोडिंग परिणाम देखते हैं, जो Arduino IDE सीरियल टर्मिनल को प्राप्त और भेजे गए वर्णों को दर्शाता है।

चरण 15: कैप्चर करें: चैनल 0 और डेटा (एसडीए)

कैप्चर: चैनल 0 और डेटा (एसडीए)
कैप्चर: चैनल 0 और डेटा (एसडीए)

इस छवि में, हमारे पास एसडीए लाइन की पल्स ट्रेन है। ध्यान दें कि प्रत्येक प्रेषित बाइट को देखा जा सकता है।

चरण 16: कैप्चर: चैनल 1 और घड़ी (एससीएल)

कैप्चर: चैनल 1 और घड़ी (एससीएल)
कैप्चर: चैनल 1 और घड़ी (एससीएल)

अब, हमारे यहाँ SCL लाइन की पल्स ट्रेन है। जैसा कि आप छवि में देखते हैं, आप सिग्नल पर माउस को रखकर अधिक विवरण देख सकते हैं। हम देख सकते हैं कि घड़ी की आवृत्ति 100 kHz पर थी।

चरण 17: कैप्चर: चैनल 2 और सीरियल (TX0)

कैप्चर: चैनल 2 और सीरियल (TX0)
कैप्चर: चैनल 2 और सीरियल (TX0)

TX0 लाइन की पल्स ट्रेन के लिए, हम प्रत्येक बिट के स्टार्ट बिट और फ्रेमिंग पॉइंट देख सकते हैं। हमारे पास "ई" चरित्र का प्रतिनिधित्व करने वाला एक बाइट है।

चरण 18: हमारे परीक्षण के लिए पर्यावरण को कॉन्फ़िगर करना

हमारे परीक्षणों के लिए पर्यावरण को कॉन्फ़िगर करना
हमारे परीक्षणों के लिए पर्यावरण को कॉन्फ़िगर करना

यहां हमारे पास डेटा पढ़ने के लिए कई विकल्प हैं।

चरण 19: कैप्चर: ऑसिलोस्कोप और विश्लेषक

कब्जा: आस्टसीलस्कप और विश्लेषक
कब्जा: आस्टसीलस्कप और विश्लेषक

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

चरण 20: कैप्चर: एक विफलता का अवलोकन (सीरियल विफलता का उदाहरण)

कैप्चर: एक विफलता का अवलोकन (सीरियल विफलता का उदाहरण)
कैप्चर: एक विफलता का अवलोकन (सीरियल विफलता का उदाहरण)

अब, मैं एक सीरियल विफलता का एक उदाहरण दिखाऊंगा, जो वास्तव में मेरे साथ हुआ था। मैं एक जीपीआरएस मॉडेम के साथ था, जिस तरह से सेल फोन पर इस्तेमाल किया जाता है, सिम कार्ड, ईएसपी 32 से कनेक्ट करने का प्रयास कर रहा है। लेकिन यह सिर्फ कनेक्ट नहीं हुआ। मैंने फिर बिजली की आपूर्ति, वायरिंग की जाँच की और बोर्ड को बदल दिया। मैंने सब कुछ किया, लेकिन कुछ भी ठीक नहीं हुआ। मैंने एक तार्किक विश्लेषण करने का फैसला किया: मैंने पाया कि UART 115200 पर ESP सिग्नल बेमेल होने लगा। यानी, ESP32 खेल रहा था जो 115, 200 से अलग गति से होना चाहिए।

यह त्रुटि, जिसे पार्सर द्वारा पहचाना गया था, लाल रंग में X के साथ प्रदर्शित किया गया था। मेरी समझ में कार्यक्रम कहता है कि जिस बिंदु पर इतना सा होता है वह समय में आधा विस्थापित हो जाता है। जैसे-जैसे यह बदलाव बढ़ता है, एक समय ऐसा भी आ सकता है जब सब कुछ बेमेल हो जाता है, जिससे जानकारी दूसरे पक्ष तक नहीं पहुंच पाती है। यह आमतौर पर आता है, लेकिन SIM800 संवेदनशील है और यदि यह सटीक नहीं है, तो जानकारी दूसरे छोर तक नहीं पहुंचती है।

मुझे नहीं पता कि यह ऐसा कुछ है जो अक्सर होता है या नहीं, लेकिन यह मेरे साथ हुआ, और इसलिए मैंने इस विषय को यहां संबोधित करने का फैसला किया। तो, मैंने क्या किया? मैं धीमा हो गया। यदि आप ९, ६००, १९, २००, ३८, ४०० तक डालते हैं, तो यह काम करता है, जो ११५, २०० के साथ नहीं होता है।

चरण 21: फ़ाइलें डाउनलोड करें

पीडीएफ

मैं नहीं

सिफारिश की: