সুচিপত্র:

STM32 ডিভাইসের সাথে RC Servos এর জন্য হাই রেজোলিউশন PWM সিগন্যাল জেনারেশন: 3 ধাপ
STM32 ডিভাইসের সাথে RC Servos এর জন্য হাই রেজোলিউশন PWM সিগন্যাল জেনারেশন: 3 ধাপ

ভিডিও: STM32 ডিভাইসের সাথে RC Servos এর জন্য হাই রেজোলিউশন PWM সিগন্যাল জেনারেশন: 3 ধাপ

ভিডিও: STM32 ডিভাইসের সাথে RC Servos এর জন্য হাই রেজোলিউশন PWM সিগন্যাল জেনারেশন: 3 ধাপ
ভিডিও: 10টি দুর্দান্ত অ্যামাজন টেক গ্যাজেট আপনি কিনতে পারেন৷ 2024, জুলাই
Anonim
STM32 ডিভাইসের সাথে RC Servos এর জন্য হাই রেজোলিউশন PWM সিগন্যাল জেনারেশন
STM32 ডিভাইসের সাথে RC Servos এর জন্য হাই রেজোলিউশন PWM সিগন্যাল জেনারেশন
STM32 ডিভাইসের সাথে RC Servos এর জন্য হাই রেজোলিউশন PWM সিগন্যাল জেনারেশন
STM32 ডিভাইসের সাথে RC Servos এর জন্য হাই রেজোলিউশন PWM সিগন্যাল জেনারেশন
STM32 ডিভাইসের সাথে RC Servos এর জন্য হাই রেজোলিউশন PWM সিগন্যাল জেনারেশন
STM32 ডিভাইসের সাথে RC Servos এর জন্য হাই রেজোলিউশন PWM সিগন্যাল জেনারেশন

বর্তমানে, আমি SX1280 RF চিপের উপর ভিত্তি করে একটি RC ট্রান্সমিটার/রিসিভার তৈরি করছি। প্রকল্পের লক্ষ্যগুলির মধ্যে একটি হল যে আমি লাঠি থেকে সার্ভোতে 12 বিট সার্ভো রেজোলিউশন চাই। আংশিকভাবে কারণ আধুনিক ডিজিটাল সার্ভোসগুলিতে 12 বিট রেজোলিউশন রয়েছে দ্বিতীয়ত একটি হাই-এন্ড ট্রান্সমিটার 12 বিট ব্যবহার করছে। আমি তদন্ত করছিলাম কিভাবে আমি STM32 ডিভাইসে উচ্চ রেজোলিউশনের PWM সংকেত তৈরি করতে পারি। আমি প্রোটোটাইপের জন্য এই মুহূর্তে কালো পিল (STM32F103C8T8) ব্যবহার করছি।

ধাপ 1: অংশ তালিকা

হার্ডওয়্যার

  • কোন STM32F103 উন্নয়ন বোর্ড (নীল বড়ি, কালো বড়ি, ইত্যাদি)
  • পাওয়ার সাপ্লাই হিসেবে একটি ইউএসবি পাওয়ার ব্যাংক
  • STM32 প্রোগ্রামার (সেগার জে-লিঙ্ক, ST-LINK/V2, অথবা কেবল একটি স্ট-লিঙ্ক ক্লোন)

সফটওয়্যার

  • STM32CubeMX
  • STM32 এর জন্য Atollic TrueSTUDIO
  • গিথুব থেকে প্রকল্পের উৎস

ধাপ 2: স্পষ্ট সমাধান

স্পষ্ট সমাধান
স্পষ্ট সমাধান
স্পষ্ট সমাধান
স্পষ্ট সমাধান
স্পষ্ট সমাধান
স্পষ্ট সমাধান

সম্ভবত সবচেয়ে সহজ সমাধান হল একটি টাইমার ব্যবহার করা যা PWM সংকেত তৈরি করতে পারে, যেমন STM32F103 তে TIM1-3। একটি আধুনিক ডিজিটাল সার্ভোর জন্য ফ্রেম রেট 5 ms বা তার নিচে যেতে পারে, কিন্তু একটি পুরানো এনালগ সার্ভোর জন্য এটি 20 ms বা 50 Hz হওয়া উচিত। সুতরাং, একটি খারাপ কেস দৃশ্যকল্প হিসাবে আসুন এটি তৈরি করি। 72 মেগাহার্টজ ঘড়ি এবং 16 বিট টাইমার কাউন্টার রেজোলিউশনের সাথে আমাদের 20 এমএস ফ্রেম রেট কভার করার জন্য টাইমারের প্রেসকেলার ন্যূনতম 23 এ সেট করতে হবে। আমি ২ selected টি সিলেক্ট করেছি কারণ তখন ২০ এমএস এর জন্য আমাকে কাউন্টারটি ঠিক 00০০০০ সেট করতে হবে। আপনি CubeMX সেটআপ এবং স্ক্রিনশটে জেনারেটেড ১ এবং ১.৫ এমএস PWM সিগন্যাল দেখতে পারেন। দুর্ভাগ্যক্রমে, 1ms এর জন্য টাইমারের কাউন্টারটি 3000 এ সেট করা উচিত, যা আমাদের কেবল 11 বিট রেজোলিউশন দেবে। খারাপ না, কিন্তু লক্ষ্য ছিল 12 বিট, তাই আসুন অন্য কিছু চেষ্টা করি।

অবশ্যই যদি আমি 32 বিট টাইমার কাউন্টারের সাথে একটি মাইক্রো কন্ট্রোলার নির্বাচন করি, যেমন STM32L476 এই রেজোলিউশন অনেক বেশি হতে পারে এবং সমস্যাটি সমাধান করা হবে।

কিন্তু এখানে, আমি একটি বিকল্প সমাধান প্রস্তাব করতে চাই যা STM32F103 তে রেজোলিউশনকে আরও বাড়িয়ে তুলবে।

ধাপ 3: উচ্চতর রেজোলিউশনের জন্য ক্যাসকেডিং টাইমার

উচ্চতর রেজোলিউশনের জন্য ক্যাসকেডিং টাইমার
উচ্চতর রেজোলিউশনের জন্য ক্যাসকেডিং টাইমার
উচ্চতর রেজোলিউশনের জন্য ক্যাসকেডিং টাইমার
উচ্চতর রেজোলিউশনের জন্য ক্যাসকেডিং টাইমার
উচ্চতর রেজোলিউশনের জন্য ক্যাসকেডিং টাইমার
উচ্চতর রেজোলিউশনের জন্য ক্যাসকেডিং টাইমার

পূর্ববর্তী সমাধানের সাথে প্রধান সমস্যা হল যে প্রকৃতপক্ষে উৎপন্ন PWM সংকেত (1 এবং 2 ms এর মধ্যে) এর তুলনায় ফ্রেম রেট (20 ms) তুলনামূলকভাবে বেশি, তাই আমরা যখন অপেক্ষা করছি তখন বাকি 18 ms এর জন্য কিছু মূল্যবান বিট নষ্ট করছি। পরবর্তী ফ্রেম। সিঙ্ক্রোনাইজেশনের জন্য টাইমার লিঙ্ক বৈশিষ্ট্যটি ব্যবহার করে ক্যাসকেডিং টাইমার দ্বারা এটি সমাধান করা যেতে পারে।

ধারণা হল যে আমি টিআইএম 1 কে মাস্টার হিসাবে ব্যবহার করব ফ্রেম রেট (20 এমএস) এবং টিআইএম 2, টিআইএম 3 দাস হিসাবে পিডব্লিউএম সংকেতগুলি মোকাবেলা করতে। যখন মাস্টার দাসদের ট্রিগার করে তখন তারা শুধুমাত্র একটি পালস মোডে একটি PWM সংকেত উৎপন্ন করে। অতএব আমাকে সেই টাইমারগুলিতে কেবল 2 এমএস কভার করতে হবে। ভাগ্যক্রমে আপনি হার্ডওয়্যারে সেই টাইমারগুলিকে ক্যাসকেড করতে পারেন তাই এই সিঙ্ক্রোনাইজেশনের জন্য প্রসেসরের কোনও হস্তক্ষেপের প্রয়োজন নেই এবং এটি খুব সুনির্দিষ্টও, ঝাঁকুনি ps অঞ্চলে রয়েছে। আপনি স্ক্রিনশটগুলিতে CubeMX সেটআপ দেখতে পারেন।

আপনি দেখতে পাচ্ছেন আমি 3 টি প্রেসক্লার হিসাবে নির্বাচন করেছি তাই 2 এমএসের জন্য আমাকে টাইমার কাউন্টারে 48000 সেট করতে হবে। এটি আমাদের 1 এমএসের জন্য 24000 দেয় যা আসলে 14 বিট রেজোলিউশনের জন্য আমাদের আরও বেশি প্রয়োজন। Tadaaaa…

অনুগ্রহ করে চূড়ান্ত ফলাফলের জন্য ভূমিকাতে অসিলোস্কোপ স্ক্রিনশটগুলি দেখুন। চ্যানেল 3 (বেগুনি) হল মাস্টার টাইমারের বাধা যা একটি পালস উৎপন্ন করতে সালভগুলিকে ট্রিগার করবে। চ্যানেল 1 এবং 4 (হলুদ এবং সবুজ রশ্মি) হল বিভিন্ন টাইমার দ্বারা উত্পন্ন প্রকৃত PWM সংকেত। মনে রাখবেন যে তারা সিঙ্কে আছে কিন্তু সেগুলি প্রান্তিক প্রান্তে সিঙ্ক করা হয়েছে, এটি PWM মোড 2 এর কারণে। এটি কোনও সমস্যা নয়, কারণ নির্দিষ্ট সার্ভোর জন্য PWM রেট এখনও সঠিক।

এই সমাধানের অন্যান্য সুবিধা হল যে ফ্রেম রেট পরিবর্তন করা মানে শুধুমাত্র টিআইএম 1 এর সময়কাল পরিবর্তন করা। আধুনিক ডিজিটাল সার্ভিসের জন্য আপনি 200-300 Hz পর্যন্ত নিচে যেতে পারেন, কিন্তু আপনি যদি সূক্ষ্ম সুর করতে চান তবে দয়া করে সার্ভোর ম্যানুয়ালটি দেখুন।

প্রস্তাবিত: