क्या माइक्रोकंट्रोलर सीधे एक यूएसबी पोर्ट से जुड़ सकता है?


9

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

माइक्रोकंट्रोलर को USB संचार के लिए बंदरगाहों में 2 सीरियल, एलईडी स्ट्रिप के साथ संचार के लिए दो सीरियल आउट पोर्ट की आवश्यकता होती है, और 5 वी पर काम करने में सक्षम होना चाहिए। USB संचार के लिए एक समर्पित आईसी होना अनावश्यक है जब मुझे ज़रूरत है एक सीरियल COM पोर्ट सेट अप।

उदाहरण के लिए, यहाँ Arduino कोड का स्निपेट है जो LPD8806 स्ट्रिप को बाइट लिखता है:

void write8(uint8_t d) {
  for (uint8_t i=0; i<8; i++) {
    if (d & _BV(7-i))
      digitalWrite(dataPin, HIGH);
    else
      digitalWrite(dataPin, LOW);
   digitalWrite(clockPin, HIGH);
   digitalWrite(clockPin, LOW); 
  }
}

उस डेटा को लेट करने के लिए जिसे आप स्ट्रिप में ज़ीरो भेजते हैं।


मुझे लगता है कि आपका मतलब एक यूएसबी कनेक्शन (वे दो तरह से हैं), और एक सीरियल कनेक्शन (दो तरह से भी)। यदि आप तस्वीर में हैं, तो 18f4550 परिवार काम करेंगे।
स्कॉट सिडमैन

1
एलईडी पट्टी के लिए प्रोटोकॉल क्या है? क्या आप स्ट्रिप के डेटशीट या वेब साइट से लिंक जोड़ सकते हैं?
रॉकेटमैग्नेट

@Rocketmagnet इसका यह एलईडी स्ट्रिप है । डेटाशीट चीनी में है, हालाँकि बस एक सीरियल इन और क्लॉक इन है, और आप लाइन के नीचे शून्य भेजकर कुंडी लगाते हैं।
स्टीव बारना

जवाबों:


7

मुझे लगता है कि "दो सीरियल आउट पोर्ट्स" से आपका मतलब है एक UART (क्योंकि आप USB को 2 पोर्ट के रूप में भी वर्णित करते हैं)। रॉकेटमैगम यह बताता है कि कई / सबसे अधिक एलईडी तार एसपीआई का उपयोग करते हैं, लेकिन इसके लिए कम से कम 3 तारों की आवश्यकता होगी। क्या आप निर्दिष्ट कर सकते हैं कि आपको किस प्रोटोकॉल की आवश्यकता है?

सामान्य तौर पर माइक्रोचिप में सबसे कम लागत वाले माइक्रोकंट्रोलर होते हैं, इस बार भी। और माइक्रोचिप डीआईएल पैकेज में कई माइक्रोकंट्रोलर के रूप में अच्छी तरह से है, जबकि कई अन्य ने इसे खाई है। DIY के लिए महत्वपूर्ण हो सकता है। PIC18F13K50

  • DIL-20 और SMT दोनों पैकेज में मौजूद है
  • 5 वी पर काम करता है (एलईडी पट्टी के साथ इंटरफेस के लिए)
  • $ 2.5 पर कम लागत है (ठीक है, कि रिश्तेदार है, लेकिन यूएसबी सक्षम नियंत्रकों हैं और अधिक बुनियादी प्रकार से थोड़ा अधिक महंगा)
  • UART इंटरफ़ेस के लिए USART बढ़ाया गया है
  • यदि आपके पास इसका मतलब है कि SPI इंटरफ़ेस है
  • 25 mA स्रोत और सिंक I / O है, इसलिए यदि आवश्यक हो तो आप सीधे सूचक एल ई डी की एक जोड़ी ड्राइव कर सकते हैं


एक एंबेडेड डिवाइस पर आगे USB जेनेरिक फ़ंक्शन पढ़ना , माइक्रोचिप एप्लिकेशन नोट AN1166


उन्होंने एलईडी स्ट्रिप्स का उल्लेख किया है, इसलिए मुझे लगता है कि यह एक तुल्यकालिक प्रोटोकॉल है (मूल रूप से डेटा रिटर्न पिन के बिना एसपीआई)। उस PIC में केवल 1 SPI पोर्ट है, इसलिए यह उपयुक्त नहीं होगा। यद्यपि वह प्रोटोकॉल को थोड़ा धमाका कर सकता था।
राकेटमग्नेट

@Rocket - वह कहाँ कहता है कि यह SPI है? और उसे दो एसपीआई बसों की आवश्यकता नहीं होगी: एसपीआई मल्टी-स्लेव है। और जैसे स्कॉट ने टिप्पणी की और मैंने अपने जवाब की शुरुआत में भी कहा, मुझे लगता है कि दो बंदरगाहों से उसका मतलब दो पिन है, यही कारण है कि मैंने पहले UART के बारे में सोचा।
स्टीवनवह

शायद PIC18F24J50? लेकिन यह एक 3.3v हिस्सा है, इसलिए मुझे नहीं पता कि यह एलईडी पट्टी के लिए इंटरफेस होगा या नहीं।
रॉकेटमैग्नेट

1
वह कहते हैं कि यह एसपीआई नहीं है, लेकिन मैंने पहले एलईडी स्ट्रिप्स का उपयोग किया है, और वे हमेशा तुल्यकालिक रहे हैं। मै गलत हो सकता हूँ। वह एक और तरह की एलईडी पट्टी का मतलब हो सकता है जो मैंने पहले कभी नहीं देखा है। मुझे लगता है कि वह घड़ी और डेटा के लिए दो पिन का मतलब है।
रॉकेटमैग्नेट

वास्तव में, मैंने प्रश्न को गलत पढ़ा और सोचा कि उसने दो एलईडी स्ट्रिप्स कहा! उन्होंने वास्तव में एक एलईडी पट्टी के लिए दो पिन कहा। तो, एर, जैसा कि आप मूल सुझाव के साथ थे।
रॉकेटमग्नेट

4

आपकी एलईडी पट्टी में एक सरल सीरियल इंटरफ़ेस है। यदि आप इसे कंप्यूटर के साथ नियंत्रित करने का प्रयास कर रहे हैं, तो आप पिन को बंद करने के लिए एक FTDI चिप का उपयोग कर सकते हैं: http://www.ftdichip.com/Products/ICs/FT232R.htm

तब जटिलता libftdi या D2XX पुस्तकालयों का उपयोग करते हुए पीसी की तरफ होती है। लेकिन यह बहुत बुरा नहीं है, आपके Arduino उदाहरण के समान जटिलता।

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

बेशक, यदि आप चाहते हैं कि परियोजना किसी भी तरह से स्टैंडअलोन या स्वायत्त हो, तो आप एक पूर्ण माइक्रोकंट्रोलर समाधान चाहते हैं।


मुझे USB नियंत्रक के माध्यम से एलईडी पट्टी पर कच्चे एसपीआई डेटा भेजने पर विचार करना चाहिए। माइक्रोचिप एक USB-to-SPI बनाता है जो खुद को एक HID डिवाइस के रूप में स्थापित करता है, जबकि FTDI चिप्स या तो VCOM या D2XX हैं और मुझे यकीन नहीं है जो अभी तक एक c ++ प्रोग्राम से एक लाइट स्ट्रिप चलाने के लिए उपयुक्त होगा।
स्टीव बारना

मुझे USB <-> SPI ब्रिज के बारे में जानकारी नहीं है जो USB <-> UART ब्रिज चिप्स की तरह वर्चुअल सीरियल पोर्ट के रूप में दिखाई देता है। इसके बजाय आपको बिट-बैंगिंग कोड लिखना होगा, जो एसपीआई के लिए आसान है।
निशान

3

PSoC3 का उपयोग करने पर विचार करें ।

PSoc3

वे यूएसबी के साथ उपलब्ध हैं, और लगभग किसी भी बाह्य उपकरणों को आप चाहते हैं। (वे सॉफ़्टवेयर में कॉन्फ़िगर किए गए हैं) आप निश्चित रूप से एलईडी स्ट्रिप्स के लिए दो सीरियल पोर्ट करने में सक्षम होंगे। यदि आप चाहते हैं तो आप शायद 20 कर पाएंगे।

विकास का वातावरण भी उपयोग करने के लिए एक खुशी है।

PSoC निर्माता


3
अच्छा है कि थोड़ा अधिक लगता है। लेकिन मैं इसे देखूंगा।
स्टीव बार्ना

8
@Rocket - मैं डिजिके पर देखता हूं कि एक पीएसओसी की लागत मेरे द्वारा बताए गए पीआईसी से दोगुनी है। मुझे संदेह नहीं है कि वे सोने में अपने वजन के लायक हैं (भाषण के एक आंकड़े के रूप में), यदि आपको उन सभी विन्यास योग्य बाह्य उपकरणों की आवश्यकता है , तो समाधान के लिए आपको 16 UART या तो जैसे किसी अन्य माइक्रोकंट्रोलर पर नहीं मिलेगा। लेकिन ओपी को सिर्फ एक यूएसबी पोर्ट और एक सीरियल पोर्ट (UART, SPI, या I2C) की जरूरत है, तो अपेक्षाकृत कम-एंड कंट्रोलर को चुनना काफी सस्ता है, जिसमें यह है।
स्टीवनवह

@stevenvh - मैं मानता हूं, PSoCs काफी महंगा हो सकता है। वे केवल उत्पादन के लिए वास्तव में इसके लायक हैं जब आप उनके कई कार्यों का लाभ उठा सकते हैं। लेकिन प्रोटोटाइप के लिए, वे पूरी तरह से इसके लायक हैं। आपको उस विशेष PIC के लिए शिकार करने की ज़रूरत नहीं है, जिसमें बाह्य उपकरणों का सही संयोजन है, और आप एक बटन के क्लिक पर हार्डवेयर परिवर्तन लागू कर सकते हैं !
राकेटमग्नेट

@Rocket - "एक बटन के क्लिक पर हार्डवेयर परिवर्तन लागू करें"। हाँ, यह है कि सरू के लोग मुझे बताते रहे। मुझे यह नहीं मिलता है (मैंने अपने सहयोगियों के साथ इस पर विस्तृत चर्चा की, और वे या तो नहीं करते हैं): अगर मुझे उदाहरण के लिए अपने आवेदन की संभावना में टाइमर की आवश्यकता है, तो मुझे यह हर समय चाहिए, इसे थोड़ी देर के लिए बाहर न फेंकें क्योंकि मैं हार्डवेयर के साथ कुछ अलग करना चाहता हूं। मैं कर अपने स्क्रीनशॉट में की तरह, विन्यास उपकरण की सराहना करते हैं, और मैं उनके HC05 नियंत्रकों के लिए एक छोटे FPGA जोड़ने के लिए मोटोरोला विनती की है (इससे पहले कि वे फ्रीस्केल बन गया) एक rhousand बार, लेकिन यह नहीं था ...
stevenvh

@Rocket - (जारी) ... इन-एप्लिकेशन पुन: कॉन्फ़िगर करने के लिए, कि विकास के दौरान अधिक लचीला नियंत्रक होना चाहिए । हम उस समय एक बड़े मोटोरोला ग्राहक थे, और उन्होंने हमारे साथ विचार-विमर्श किया कि कैसे HC05 गंदगी को साफ किया जाए; सैकड़ों अलग-अलग प्रकार के थे, दूसरों की तुलना में कुछ अधिक सफल। इसलिए मैंने आपको FPGA, और / या 2) एक क्रॉसपॉइंट स्विच सरणी का सुझाव दिया है ताकि आप चयनित बाह्य उपकरणों को (सीमित) I / O से कनेक्ट कर सकें; हार्डवेयर वैसे भी मरने पर था। न तो हुआ, और मोटोरोला अब नियंत्रक नहीं
बनाता है

0

यह इससे आसान नहीं हो सकता है: ATmega8U2

इसे बंद करने के लिए, आप Arduino बूटलोडर के साथ भी इसका उपयोग कर सकते हैं ...

डेटाशीट: http://www.atmel.com/Images/doc7799.pdf

(थोड़ा संक्षिप्त होने के लिए खेद है, मैं फोन से टाइप कर रहा हूं)


2
जब आप अपने पीसी के पीछे वापस आ जाएं (ऐसा नहीं होना चाहिए "के सामने"?) क्या आप विस्तृत कर सकते हैं: यह सबसे सरल समाधान कैसे है? यह एक अच्छी कहानी है :-), क्योंकि ATmega8U2 PIC की तुलना में 50% अधिक महंगा है।
स्टीवन्वह

1
मैं AVR लाइन (esp। ATmega) का पक्ष लेता हूं क्योंकि कोई भी त्वरित प्रोटोटाइप के लिए Arduino वातावरण का उपयोग कर सकता है (पोस्टर उस से परिचित है!), और त्वरित परीक्षण-फिक्सिंग चक्र की अनुमति देता है। फिर मैं मैन्युअल रूप से कोड का अनुकूलन करता हूं, या यहां तक ​​कि छोटे एवीआर यूसी का उपयोग करता हूं, जैसे टिनी 2313 (बीटीडब्ल्यू, एवीआर के लिए सॉफ्ट-यूएसबी लिबास हैं)। मैं PICs को पसंद करना चाहता था, लेकिन जब मैंने उन्हें देखा (Arduino बंद होने से ठीक पहले), तो मैंने AVRs को चुना: मैंने पाया कि उनके डॉक्स बेहतर होंगे और समुदाय मजबूत होगा - इसके बावजूद कि यहां हंगरी में, PIC ऐतिहासिक रूप से अधिक समर्थित हैं। मैं कम वॉल्यूम उत्पादन में कम लागत के लिए एक छोटा dev.cycle चुनूंगा।
पितृका

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