पिछले लेखों में से एक में, हमने पहले से ही शिफ्ट रजिस्टर के उपयोग पर संक्षेप में बात की थी, विशेष रूप से, 74HC595। आइए इस माइक्रोक्रिकिट के साथ काम करने की क्षमताओं और प्रक्रिया पर करीब से नज़र डालें।
ज़रूरी
- - अरुडिनो;
- - शिफ्ट रजिस्टर 74HC595;
- - तारों को जोड़ना।
अनुदेश
चरण 1
शिफ्ट रजिस्टर 74HC595 और इसी तरह के सीरियल डेटा को समानांतर में बदलने के लिए उपकरणों के रूप में उपयोग किया जाता है, और डेटा के लिए "कुंडी" के रूप में भी इस्तेमाल किया जा सकता है, स्थानांतरित स्थिति को धारण करता है।
पिनआउट (पिनआउट) बाईं ओर की आकृति में दिखाया गया है। उनका उद्देश्य इस प्रकार है।
Q0… Q7 - समानांतर डेटा आउटपुट;
जीएनडी - जमीन (0 वी);
Q7 '- सीरियल डेटा आउटपुट;
^ एमआर - रीसेट मास्टर (सक्रिय कम);
SHcp - शिफ्ट रजिस्टर क्लॉक इनपुट;
एसटीसीपी - "कुंडी" घड़ी पल्स इनपुट;
^ ओई - आउटपुट सक्षम (सक्रिय कम);
डीएस - सीरियल डेटा इनपुट;
वीसीसी - बिजली की आपूर्ति +5 वी।
संरचनात्मक रूप से, microcircuit कई प्रकार के मामलों में बनाया जाता है; मैं दाईं ओर की आकृति में दिखाए गए का उपयोग करूंगा - आउटपुट - क्योंकि ब्रेडबोर्ड के साथ उपयोग करना आसान है।
चरण दो
मुझे SPI सीरियल इंटरफ़ेस को संक्षेप में याद करने दें, जिसका उपयोग हम डेटा को शिफ्ट रजिस्टर में स्थानांतरित करने के लिए करेंगे।
SPI एक चार-तार द्वि-दिशात्मक सीरियल इंटरफ़ेस है जिसमें एक मास्टर और एक दास भाग लेते हैं। हमारे मामले में मास्टर अरुडिनो होगा, दास रजिस्टर 74HC595 होगा।
Arduino के विकास के माहौल में SPI इंटरफ़ेस पर काम करने के लिए एक अंतर्निहित लाइब्रेरी है। इसे लागू करते समय, उन निष्कर्षों का उपयोग किया जाता है जो चित्र में अंकित हैं:
एससीएलके - एसपीआई क्लॉक आउटपुट;
MOSI - मास्टर से दास तक का डेटा;
MISO - दास से मास्टर तक का डेटा;
एसएस - दास चयन।
चरण 3
आइए चित्र के अनुसार सर्किट को एक साथ रखें।
मैं शिफ्ट रजिस्टर माइक्रोक्रिकिट के सभी पिनों के लिए एक तर्क विश्लेषक भी जोड़ूंगा। इसकी मदद से हम देखेंगे कि भौतिक स्तर पर क्या हो रहा है, कौन से संकेत कहां जा रहे हैं, और हम यह पता लगाएंगे कि उनका क्या मतलब है। यह फोटो जैसा कुछ दिखना चाहिए।
चरण 4
आइए इस तरह एक स्केच लिखें और इसे Arduino मेमोरी में लोड करें।
चर PIN_SPI_SS एक आंतरिक मानक स्थिरांक है जो Arduino के पिन "10" से मेल खाता है जब हम यहां उपयोग कर रहे SPI इंटरफ़ेस के मास्टर के रूप में उपयोग किए जाते हैं। सिद्धांत रूप में, हम Arduino पर किसी भी अन्य डिजिटल पिन का उपयोग कर सकते हैं; तब हमें इसे घोषित करना होगा और इसका ऑपरेटिंग मोड सेट करना होगा।
इस पिन को LOW फीड करके, हम अपने शिफ्ट रजिस्टर को ट्रांसमिट / रिसीव करने के लिए एक्टिवेट करते हैं। ट्रांसमिशन के बाद, हम वोल्टेज को फिर से हाई पर बढ़ाते हैं, और एक्सचेंज समाप्त हो जाता है।
चरण 5
आइए अपने सर्किट को काम में बदलें और देखें कि तर्क विश्लेषक हमें क्या दिखाता है। समय आरेख का सामान्य दृश्य चित्र में दिखाया गया है।
नीली धराशायी रेखा 4 एसपीआई लाइनें दिखाती है, लाल धराशायी रेखा शिफ्ट रजिस्टर के समानांतर डेटा के 8 चैनल दिखाती है।
समय के पैमाने पर बिंदु ए वह क्षण है जब संख्या "210" को शिफ्ट रजिस्टर में स्थानांतरित किया जाता है, बी वह क्षण होता है जब संख्या "0" लिखी जाती है, सी शुरुआत से दोहराने वाला चक्र है।
जैसा कि आप देख सकते हैं, ए से बी - 10.03 मिलीसेकंड, और बी से सी - 90.12 मिलीसेकंड, लगभग जैसा कि हमने स्केच में पूछा था। 0, 03 और 0, 12 एमएस में एक छोटा सा जोड़ Arduino से सीरियल डेटा स्थानांतरित करने का समय है, इसलिए हमारे यहां बिल्कुल 10 और 90 एमएस नहीं हैं।
चरण 6
आइए खंड ए पर करीब से नज़र डालें।
सबसे ऊपर एक लंबी पल्स है जिसके साथ Arduino SPI-ENABLE लाइन - स्लेव सिलेक्शन पर ट्रांसमिशन शुरू करता है। इस समय, SPI-CLOCK घड़ी की दालें (ऊपर से दूसरी पंक्ति), 8 टुकड़े (1 बाइट स्थानांतरित करने के लिए) उत्पन्न होने लगती हैं।
ऊपर से अगली पंक्ति SPI-MOSI है - वह डेटा जिसे हम Arduino से शिफ्ट रजिस्टर में स्थानांतरित करते हैं। बाइनरी में यह हमारा नंबर "210" है - "11010010"।
स्थानांतरण के पूरा होने के बाद, SPI-ENABLE पल्स के अंत में, हम देखते हैं कि शिफ्ट रजिस्टर ने अपने 8 पैरों पर समान मान निर्धारित किया है। मैंने इसे नीली बिंदीदार रेखा के साथ हाइलाइट किया है और स्पष्टता के लिए मानों को लेबल किया है।
चरण 7
अब आइए अपना ध्यान खंड बी की ओर मोड़ें।
फिर से, यह सब एक दास को चुनने और 8 घड़ी दालों को उत्पन्न करने के साथ शुरू होता है।
SPI-MOSI लाइन पर डेटा अब "0" है।यही है, इस समय हम रजिस्टर में "0" नंबर लिखते हैं।
लेकिन हस्तांतरण पूरा होने तक, रजिस्टर "11010010" मान को संग्रहीत करता है। यह समानांतर पिन Q0.. Q7 के लिए आउटपुट है, और आउटपुट तब होता है जब समानांतर आउटपुट Q7 'से SPI-MISO लाइन तक लाइन में क्लॉक पल्स होते हैं, जिसे हम यहां देखते हैं।
चरण 8
इस प्रकार, हमने मास्टर डिवाइस, जो कि Arduino था, और 74HC595 शिफ्ट रजिस्टर के बीच सूचना विनिमय के मुद्दे का विस्तार से अध्ययन किया है। हमने सीखा कि शिफ्ट रजिस्टर को कैसे जोड़ा जाता है, उसमें डेटा कैसे लिखा जाता है और इससे डेटा कैसे पढ़ा जाता है।