शॉर्ट डिस्टेंस बोर्ड टू बोर्ड कम्युनिकेशन


24

मेरा MCU लगभग 4 उपकरणों के साथ एक SPI बस चलाता है। मैं इस बस को ऑफ बोर्ड होने के लिए विस्तारित करना चाहता हूं, यानी कुछ पीसीबी "मुख्य" बोर्ड से कनेक्ट करते हैं और कार्यक्षमता का विस्तार करते हैं। "पैड टू पैड" दूरी होगी:

मुख्य बोर्ड की लंबाई का पता लगाने + केबल की लंबाई + विस्तार बोर्ड पर लंबाई का पता लगाने

3 "+ 6" + 3 "= लगभग 12"

मेरे अनुभव में, यहां तक ​​कि एक 1 मेगाहर्ट्ज सिग्नल, लगभग 7 ns बार बढ़ने के साथ, एक रिबन केबल के माध्यम से यह दूरी 1 वी से अधिक थी (लेकिन कोई अत्यधिक रिंगिंग नहीं थी)। बोर्ड उसी बिजली की आपूर्ति द्वारा संचालित होंगे।

यहाँ छवि विवरण दर्ज करें

नोट: आप यहां उदय का समय नहीं देख सकते हैं लेकिन आप अत्यधिक ओवरशूट देख सकते हैं - यह एक 3.3V संकेत है। और हां, यह जांच से जमीन तक एक बहुत ही कम तार के साथ ठीक से मापा गया था। बहुत कुछ ऐसा है जो अक्सर इस साइट पर सुझाता है। मुझे नहीं लगता कि यह माप त्रुटि है।

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

हालांकि, मेरी चिंता यह है कि एक बोर्ड से दूसरे में एसपीआई डेटा कैसे भेजा जाए। क्या मुझे सीधे एसपीआई भेजना चाहिए या इसे एक छोर पर एलवीडीएस में बदलना चाहिए और फिर इसे दूसरे छोर पर एसपीआई में बदलना चाहिए?


1
आपका उदय समय क्या है?
कोर्तुक

@Kortuk पूरी तरह से सूची में भूल गया कि, क्षमा करें। सवाल अपडेट किया।
साद

7nS वृद्धि समय, कि तेजी से चिल्ला रहा है।
कोरटुक

दो अप्रासंगिक प्रश्नों के लिए क्षमा करें। आपके द्वारा उपयोग किया जाने वाला आस्टसीलस्कप क्या है? 2. क्यों छल्ले इतने मायने रखते हैं?
रिचीकियान

जवाबों:


15

नियम-के-अंगूठे का कहना है कि आपको ट्रांसमिशन लाइन के प्रभावों की गणना करना होगा यदि आपके कनेक्शन की लंबाई सिग्नल की तरंग दैर्ध्य के 1/10 वें से अधिक है।

यहाँ छवि विवरण दर्ज करें

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

12 "तार की लंबाई (30 सेमी) 1 मीटर की 3 मीटर की तरंग दैर्ध्य या 100 मेगाहर्ट्ज है। 1 मेगाहर्ट्ज, और यहां तक ​​कि 4 मेगाहर्ट्ज को भी यहां ज्यादा समस्या नहीं देनी चाहिए। लाइन को समाप्त करना, जैसे कि राउटर कहते हैं, पहला उपाय हो सकता है, हालांकि।" इनपुट शायद उच्च प्रतिबाधा है, और यह कभी भी अच्छा मिलान नहीं है। चूंकि आपके पास अपने कनेक्शन (पीसीबी, तार, पीसीबी) में तीन अलग-अलग टुकड़े हैं, इसलिए प्रतिबाधा को ढूंढना मुश्किल होगा। (यह पीसीबी और तार के लिए भी अलग होगा)। इसलिए बहुत उच्च आवृत्तियों पर आपको केबल के कनेक्शन पर भी प्रतिबिंब मिलेंगे।) कम लंबाई और कम आवृत्ति को देखते हुए आपके समाप्ति रोकनेवाला का मूल्य महत्वपूर्ण नहीं है। 100 माइक्रोकंट्रोलर के लिए बहुत कम हो सकता है, उनमें से अधिकांश। टी 33mA (या 5V पर भी 50mA) की आपूर्ति। मैं एक 1k कोशिश करेंगेΩΩΩ रोकनेवाला के साथ शुरू करने के लिए, और देखें कि हमें कितनी दूर तक जाता है।

संपादित करें (प्रश्न अद्यतन)
उदय समय लगता है 7ns है। यह तेज़ है, जैसे कि कोरटुक कहते हैं, इसका मतलब है कि आपके पास कम से कम 400 मेगाहर्ट्ज तक स्पेक्ट्रम है, और उन हारमोंस को वास्तव में ट्रांसमिशन लाइन प्रभाव भुगतना पड़ेगा, भले ही आपकी घड़ी केवल 1MHz हो। उन्हें फ़िल्टर करने का प्रयास करें, 20MHz बैंडविड्थ (4MHz घड़ी के लिए 80MHz) आपको पर्याप्त वृद्धि समय से अधिक देता है। यह 20MHz पर एक ईंट की दीवार LPF के साथ फ़िल्टर किया गया 1MHz वर्ग तरंग है :

यहाँ छवि विवरण दर्ज करें

एक श्रृंखला रोकनेवाला रखने से लाइन के समाई के साथ एलपीएफ का पहला ऑर्डर होगा। अगर हम अनुमान लगाते हैं कि 50pF पर तो

आर=12π100एमएचz50पीएफ=32Ω

आपको 100 मेगाहर्ट्ज की कटऑफ फ्रीक्वेंसी देता है। तो एक 33 श्रृंखला रोकनेवाला आपके वृद्धि समय को कम करना चाहिए, लेकिन 4MHz पर एक अच्छा संकेत देने के लिए पर्याप्त से अधिक छोड़ दें।Ω


2
1MHz आवृत्ति अप्रासंगिक है। यह महत्वपूर्ण समय है।
रॉकेटमेग्नेट

@stevenvh, गंतव्य पर जमीन पर 1K रोकनेवाला जोड़ने की कोशिश की। इसने स्पाइक्स के साथ मदद की लेकिन सिग्नल स्तर को थोड़ा नीचे ले आया। क्या यह सामान्य है? जब मैं कहता हूं कि वह स्तर जहां सिग्नल बसता है। इसके अलावा 500 ओम, 220 ओम एक ही प्रभाव की कोशिश की, लेकिन अधिक स्पष्ट।
साद

@ साद - कितना थोड़ा है? 1k में 3.3V केवल 3mA है, ड्राइवर को पूरी तरह से आपूर्ति करने में सक्षम होना चाहिए। इसका कुछ आंतरिक प्रतिरोध हो सकता है, लेकिन यह कुछ दसियों ओम है, इसलिए स्तर केवल 2 या 3% कम होना चाहिए।
स्टीवनव

@stevenvh मैं भूल गया कि मैं लाइन पर अवरोधक को श्रृंखलाबद्ध करता हूं, तो जाहिर है कि मैं कुछ वोल्टेज छोड़ दूंगा। मुझे मूर्ख! हालांकि, यहां तक ​​कि एक 180 ओम अवरोधक ने बहुत मदद नहीं की। इसने ओवरव्यू को 4.5V में लाया। मैं अनुमान लगा रहा हूं कि मुझे बहुत कम प्रतिरोध की आवश्यकता होगी लेकिन फिर मुझे वर्तमान ड्रा के बारे में चिंता करनी होगी।
साद

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

6

इस तरह की एक छोटी बस के लिए, मैं श्रृंखला में एक छोटे से अवरोधक को किसी भी रेखा पर चलाने की कोशिश करूंगा। यह ट्रांसमिशन लाइन सिद्धांत को ध्यान में रखते हुए सैद्धांतिक आदर्श तरीका नहीं है, लेकिन एक व्यावहारिक दृष्टिकोण जो मुझे लगता है कि आपके मामले के लिए काफी अच्छा काम करेगा। शुरुआत के लिए 47 start का प्रयास करें और देखें कि वह क्या करता है। यदि वह मदद करता है लेकिन काफी नहीं है, तो आप उच्च जा सकते हैं लेकिन मैं 120 Ω से अधिक नहीं होगा। संभावना है कि उस सीमा में कहीं न कहीं आपको एक ऐसा मूल्य मिलेगा जो अच्छी तरह से काम करता है।


मैंने कोशिश की है कि दृष्टिकोण, ओलिन। मैंने 100 ओम अवरोधक का उपयोग किया और इसने ओवरशूट को लगभग 500 mV गिरा दिया और इसे 4.7 V से 4.3 V तक नीचे लाया। यह अभी भी 3.3 V से ऊपर का वोल्ट है! उदय का समय प्रारंभिक 7. की तुलना में 12 ns था
साढ़

ऐसा लगता है कि जब आप अपना उत्तर, ओलिन पोस्ट कर रहे थे, तब मैं अपने अवरोधक की गणना कर रहा था। इसके बारे में क्षमा करें
stevenvh

@ ओलिनथ्रोप I ने श्रृंखला के प्रतिरोध को 330 ओम तक बढ़ा दिया और इसने ओवरशूट को 3.7V पर ला दिया। मैं इससे काफी खुश हूं। उदय का समय 10 एनएस था। क्या मुझे बस इसके साथ रहना चाहिए या बोर्ड के अगले संशोधन पर समाप्ति के प्रतिरोधों में डाल देना चाहिए? मैं पूछता हूं क्योंकि आपने 120 ओम से अधिक की सिफारिश नहीं की है।
साद

@ साद: मैं लाइन पर अन्य भार के प्रभाव के बारे में चिंतित था और यह शोर के लिए अतिसंवेदनशील हो रहा था। यदि संकेत साफ हैं और लाइनों पर कोई डीसी लोड (सिर्फ उच्च प्रतिबाधा CMOS इनपुट) नहीं हैं, तो आगे बढ़ो और 300 ओम का उपयोग करें।
ओलिन लेट्रोप

4

AFAIK ओवरशूट को प्रॉपर टर्मिनेशन द्वारा समाप्त किया जा सकता है, अगर आपका ड्राइवर लोड ड्राइव कर सकता है। अन्यथा कुछ समर्पित ड्राइवर / रिसीवर जोड़ी जैसे LVDS या शायद RS485 भी निश्चित रूप से करेंगे।


+1: हम अक्सर SPDS संकेतों को ले जाने के लिए LVDS का उपयोग करते हैं।
जेसन एस

1

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

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