विषयसूची:

STM32 उपकरणों के साथ RC सर्वो के लिए उच्च रिज़ॉल्यूशन PWM सिग्नल जनरेशन: 3 चरण
STM32 उपकरणों के साथ RC सर्वो के लिए उच्च रिज़ॉल्यूशन PWM सिग्नल जनरेशन: 3 चरण

वीडियो: STM32 उपकरणों के साथ RC सर्वो के लिए उच्च रिज़ॉल्यूशन PWM सिग्नल जनरेशन: 3 चरण

वीडियो: STM32 उपकरणों के साथ RC सर्वो के लिए उच्च रिज़ॉल्यूशन PWM सिग्नल जनरेशन: 3 चरण
वीडियो: EVE4 Riverdi Intelligent Displays - BT817Q Bridgetek graphic controller - Embedded Video Engine 2024, सितंबर
Anonim
STM32 उपकरणों के साथ RC सर्वो के लिए उच्च रिज़ॉल्यूशन PWM सिग्नल जनरेशन
STM32 उपकरणों के साथ RC सर्वो के लिए उच्च रिज़ॉल्यूशन PWM सिग्नल जनरेशन
STM32 उपकरणों के साथ RC सर्वो के लिए उच्च रिज़ॉल्यूशन PWM सिग्नल जनरेशन
STM32 उपकरणों के साथ RC सर्वो के लिए उच्च रिज़ॉल्यूशन PWM सिग्नल जनरेशन
STM32 उपकरणों के साथ RC सर्वो के लिए उच्च रिज़ॉल्यूशन PWM सिग्नल जनरेशन
STM32 उपकरणों के साथ RC सर्वो के लिए उच्च रिज़ॉल्यूशन PWM सिग्नल जनरेशन

वर्तमान में, मैं SX1280 RF चिप पर आधारित RC ट्रांसमीटर/रिसीवर बना रहा हूं। परियोजना के लिए एक लक्ष्य यह है कि मुझे लाठी से लेकर सर्वो तक 12 बिट सर्वो रिज़ॉल्यूशन चाहिए। आंशिक रूप से क्योंकि आधुनिक डिजिटल सर्वो में 12 बिट रिज़ॉल्यूशन होता है, दूसरी बात यह है कि एक उच्च अंत ट्रांसमीटर वैसे भी 12 बिट्स का उपयोग कर रहा है। मैं जांच कर रहा था कि मैं एसटीएम 32 उपकरणों पर उच्च रिज़ॉल्यूशन पीडब्लूएम सिग्नल कैसे उत्पन्न कर सकता हूं। मैं इस समय प्रोटोटाइप के लिए काली गोली (STM32F103C8T8) का उपयोग कर रहा हूं।

चरण 1: भागों की सूची

हार्डवेयर

  • कोई भी STM32F103 विकास बोर्ड (नीली गोली, काली गोली, आदि)
  • बिजली की आपूर्ति के रूप में एक यूएसबी पावर बैंक
  • STM32 प्रोग्रामर (Segger j-links, ST-LINK/V2, या बस एक st-link क्लोन)

सॉफ्टवेयर

  • STM32CubeMX
  • STM32. के लिए एटोलिक ट्रूस्टूडियो
  • जीथब से परियोजना स्रोत

चरण 2: स्पष्ट समाधान

स्पष्ट समाधान
स्पष्ट समाधान
स्पष्ट समाधान
स्पष्ट समाधान
स्पष्ट समाधान
स्पष्ट समाधान

संभवत: सबसे आसान उपाय एक टाइमर का उपयोग करना है जो PWM सिग्नल उत्पन्न कर सकता है, जैसे STM32F103 पर TIM1-3। एक आधुनिक डिजिटल सर्वो के लिए फ्रेम दर 5 एमएस या उससे भी कम हो सकती है, लेकिन पुराने एनालॉग सर्वो के लिए यह 20 एमएस या 50 हर्ट्ज होना चाहिए। तो, सबसे खराब स्थिति के रूप में इसे उत्पन्न करते हैं। 72 मेगाहर्ट्ज घड़ी और 16 बिट टाइमर काउंटर रिज़ॉल्यूशन के साथ हमें 20 एमएस फ्रेम दर को कवर करने के लिए टाइमर के प्रीस्केलर को न्यूनतम 23 पर सेट करने की आवश्यकता है। मैंने 24 का चयन किया क्योंकि तब 20 एमएस के लिए मुझे काउंटर को ठीक 60000 पर सेट करने की आवश्यकता है। आप स्क्रीनशॉट में क्यूबएमएक्स सेटअप और उत्पन्न 1 और 1.5 एमएस पीडब्लूएम सिग्नल देख सकते हैं। दुर्भाग्य से, 1ms के लिए टाइमर का काउंटर 3000 पर सेट किया जाना चाहिए, जो हमें केवल 11 बिट रिज़ॉल्यूशन देगा। बुरा नहीं है, लेकिन लक्ष्य 12 बिट का था, तो चलिए कुछ और कोशिश करते हैं।

बेशक अगर मैं 32 बिट टाइमर काउंटर के साथ एक माइक्रो कंट्रोलर का चयन करूंगा, जैसे STM32L476 यह रिज़ॉल्यूशन बहुत अधिक हो सकता है और समस्या हल हो जाएगी।

लेकिन यहां, मैं एक वैकल्पिक समाधान का प्रस्ताव करना चाहता हूं जो एसटीएम 32 एफ103 पर भी संकल्प को और बढ़ा देगा।

चरण 3: उच्च संकल्प के लिए कैस्केडिंग टाइमर

उच्च संकल्प के लिए कैस्केडिंग टाइमर
उच्च संकल्प के लिए कैस्केडिंग टाइमर
उच्च संकल्प के लिए कैस्केडिंग टाइमर
उच्च संकल्प के लिए कैस्केडिंग टाइमर
उच्च संकल्प के लिए कैस्केडिंग टाइमर
उच्च संकल्प के लिए कैस्केडिंग टाइमर

पिछले समाधान के साथ मुख्य समस्या यह है कि वास्तव में उत्पन्न पीडब्लूएम सिग्नल (1 और 2 एमएस के बीच) की तुलना में फ्रेम दर (20 एमएस) अपेक्षाकृत अधिक है, इसलिए हम शेष 18 एमएस के लिए कुछ मूल्यवान बिट्स बर्बाद कर रहे हैं जब हम प्रतीक्षा कर रहे हैं अगला फ्रेम। इसे सिंक्रोनाइज़ेशन के लिए टाइमर लिंक सुविधा का उपयोग करके कैस्केडिंग टाइमर द्वारा हल किया जा सकता है।

विचार यह है कि मैं फ्रेम दर (20 एमएस) और टीआईएम 2, टीआईएम 3 उत्पन्न करने के लिए मास्टर के रूप में टीआईएम 1 का उपयोग दास के रूप में पीडब्लूएम संकेतों से निपटने के लिए करूंगा। जब मास्टर दास को ट्रिगर करता है तो वे केवल एक पल्स मोड में पीडब्लूएम सिग्नल उत्पन्न करते हैं। इसलिए मुझे उन टाइमर में केवल 2 एमएस कवर करने की जरूरत है। सौभाग्य से आप हार्डवेयर में उन टाइमर को कैस्केड कर सकते हैं, इसलिए इस सिंक्रनाइज़ेशन को प्रोसेसर से किसी हस्तक्षेप की आवश्यकता नहीं है और यह बहुत सटीक भी है, जिटर पीएस क्षेत्र में है। आप स्क्रीनशॉट पर CubeMX सेटअप देख सकते हैं।

जैसा कि आप देख सकते हैं कि मैंने 3 को प्रीस्कूलर के रूप में चुना है इसलिए 2 एमएस के लिए मुझे टाइमर के काउंटर में 48000 सेट करने की आवश्यकता है। यह हमें 1 एमएस के लिए 24000 देता है जो वास्तव में 14 बिट रिज़ॉल्यूशन के लिए हमें जितना चाहिए उतना अधिक है। तड़ा…

कृपया अंतिम परिणाम के लिए परिचय में आस्टसीलस्कप स्क्रीनशॉट पर एक नज़र डालें। चैनल ३ (बैंगनी) मास्टर टाइमर का व्यवधान है जो एक पल्स उत्पन्न करने के लिए लार को ट्रिगर करेगा। चैनल 1 और 4 (पीला और हरा बीम) अलग-अलग टाइमर द्वारा उत्पन्न वास्तविक पीडब्लूएम सिग्नल हैं। ध्यान दें कि वे सिंक में हैं लेकिन वे पीछे के किनारों पर सिंक किए गए हैं, जो कि पीडब्लूएम मोड 2 के कारण है। यह कोई समस्या नहीं है, क्योंकि विशेष सर्वो के लिए पीडब्लूएम दर अभी भी सही है।

इस समाधान का अन्य लाभ यह है कि फ्रेम दर को बदलने का मतलब केवल TIM1 में अवधि को बदलना होगा। आधुनिक डिजिटल सर्वो के लिए आप 200-300 हर्ट्ज तक भी नीचे जा सकते हैं, लेकिन अगर आप अच्छी धुन चाहते हैं तो कृपया सर्वो के मैनुअल से परामर्श लें।

सिफारिश की: