কিছু পিনের আলাদা পিডব্লিউএম ফ্রিকোয়েন্সি থাকে কেন?


20

এর জন্য আরডুইনো রেফারেন্সanalogWrite() অনুসারে , বেশিরভাগ পিনের পিডব্লিউএম ফ্রিক্যোয়েন্সি হ'ল 490 ডলার। তবে এটি ইউনোতে পিন 5 এবং 6 এর জন্য ~ 980 হার্জ এবং লিওনার্দোতে পিনের 3 এবং 11 এর জন্য।

এগুলি আলাদা কেন? এটি ইচ্ছাকৃত ডিজাইনের বৈশিষ্ট্য, বা এটি কোনওভাবে হার্ডওয়্যার দ্বারা নির্ধারিত?

উত্তর:


23

পিডাব্লুএম সংকেতের জন্য এগুলি কেবলমাত্র ফ্রিকোয়েন্সি নয়। তবে এগুলি প্রয়োগিত প্রেসক্যালারের দ্বারা নির্ধারিত ফ্রিকোয়েন্সি (যা আপনি নীচে বিস্তারিতভাবে সহজেই পরিবর্তন করতে পারেন)।

পিডব্লিউএম পিনের তিনটি জোড়ের প্রত্যেকটি একটি টাইমারের সাথে আবদ্ধ, যার প্রতিটিটির নিজস্ব বেস ফ্রিকোয়েন্সি রয়েছে:

  • পিন 5 এবং 6 টাইমার 0 এ সংযুক্ত করা হয়, এর বেইজ ফ্রিকোয়েন্সি 62500 Hz সহ
  • পিন 9 এবং 10 টাইমার 1 এ জোড়া হয়, এর বেইজ ফ্রিকোয়েন্সি 31250Hz সহ
  • পিন 3 এবং 11 টাইমার 2-এ জোড়া হয়, যার বেজ ফ্রিকোয়েন্সি 31250Hz হয়

তারপরে পিনগুলির প্রতিটি সেটের মধ্যে বেশ কয়েকটি প্রেসকেলার মান রয়েছে যা বেছে নেওয়া যেতে পারে, যা সেই জোড় পিনের বেস ফ্রিকোয়েন্সিটিকে বিভক্ত করবে। উপলব্ধ প্রেসক্যালারের মানগুলি হ'ল:

  • পিন 5 এবং 6 এর 1, 8, 64, 256 এবং 1024 এর পূর্বনির্ধারিত মান রয়েছে
  • পিন 9 এবং 10 এর 1, 8, 64, 256 এবং 1024 এর পূর্বনির্ধারিত মান রয়েছে
  • পিন 3 এবং 11 এর 1, 8, 32, 64, 128, 256 এবং 1024 এর পূর্বনির্ধারিত মান রয়েছে

বিভিন্ন সংযুক্তি প্রদত্ত পিডব্লিউএম পিনে বিভিন্ন ফ্রিকোয়েন্সি দেয় yield লক্ষ্য করুন যে টাইমার 2 (পিন 3 এবং 11 এ আবদ্ধ) এর আরও বেশি প্রেসক্যালারের মান উপলব্ধ রয়েছে, যার ফলে আরও বেশি ফ্রিকোয়েন্সি পাওয়া যায়।

এখন, টাইমার 2 কেন আলাদা, এটি একটি পৃথক প্রশ্ন।

সম্পাদনা করুন: এখানে পিনের প্রতি সম্ভাব্য পিডব্লিউএম ফ্রিকোয়েন্সিগুলির একটি তালিকা রয়েছে ( এই নিবন্ধ থেকে ):

পিন 6 এবং 5 (OC0A এবং OC0B) এর জন্য:

  • যদি টিসিসিআর0 বি = এক্সএক্সএক্সএক্সএক্সএক্স০০1, ফ্রিকোয়েন্সিটি 64kHz
  • যদি টিসিসিআর0 বি = এক্সএক্সএক্সএক্সএক্সএক্স010, ফ্রিকোয়েন্সি 8 কেএইচজেড
  • যদি টিসিসিআর0বি = এক্সএক্সএক্সএক্সএক্সএল ১১, ফ্রিকোয়েন্সিটি 1 কেএইচজেড হয় (এটি ডাইসিমালা বুটলোডার থেকে ডিফল্ট)
  • যদি টিসিসিআর0 বি = এক্সএক্সএক্সএক্সএক্সএক্স 100, ফ্রিকোয়েন্সি 250Hz হয়
  • যদি টিসিসিআর0 বি = এক্সএক্সএক্সএক্সএক্সএক্স ১০০১, ফ্রিকোয়েন্সি 62.5 হার্জ হয়

9, 10, 11 এবং 3 পিনের জন্য (ওসি 1 এ, ওসি 1 বি, ওসি 2 এ, ওসি 2 বি):

  • যদি টিসিসিআরএনবি = xxxxx00001, ফ্রিকোয়েন্সি 32kHz
  • যদি টিসিসিআরএনবি = এক্সএক্সএক্সএক্সএক্সএক্স010, ফ্রিকোয়েন্সি 4 কেএইচজেড
  • যদি টিসিসিআরএনবি = xxxxxxx011, ফ্রিকোয়েন্সি 500Hz হয় (এটি ডাইসিমালা বুটলোডার থেকে ডিফল্ট)
  • যদি টিসিসিআরএনবি = এক্সএক্সএক্সএক্সএক্সএক্স 100, ফ্রিকোয়েন্সি 125Hz হয়
  • যদি টিসিসিআরএনবি = এক্সএক্সএক্সএক্সএক্সএক্স ১০০১, ফ্রিকোয়েন্সিটি 31.25 হার্জ হয়

TCCRnBআপনি টাইমার সেট করতে চান টাইমার উপর নির্ভর করে 0, 1 বা 2 দ্বারা nপ্রতিস্থাপন, টাইমার জন্য prescaler বিট nসেট। আপনি যদি এখনও বিটওয়াইজ অপারেশন সম্পর্কে অনিশ্চিত থাকেন তবে এই বিট গণিত টিউটোরিয়ালটি পড়ুন

আমার উত্স:

নোট করুন যে পিন 9 এবং 10 এর 5 এবং 6 বা 3 এবং 11 এর মতো আচরণ রয়েছে কিনা সে সম্পর্কে এই উত্সগুলিতে বিচ্যুতি আছে বলে মনে হয় তবে আপনি যেভাবেই ধারণাটি পেতে পারেন। আমি ডেটাসেটটি পড়তে চেষ্টা করছি এবং কোনটি সঠিক তা নির্ধারণ করার জন্য, বা এটি বোর্ডগুলির মধ্যে কোনও পার্থক্য কিনা।


1
এটিমেগা এই উত্তরটি কী বলে? আমি চেক করিনি, তবে আমি বাজি ধরে নিই যে এটি নিয়ামক প্রতি সামান্য আলাদা।
জিপ্পি

@ জিপ্পি গুড পয়েন্ট! উত্সগুলি ATmega168 এবং 328 উল্লেখ করেছে
রিকার্ডো

@ জিপ্পি জাস্ট স্পষ্ট করে বলতে গেলে, আমার উত্তরে, পিন নম্বরগুলি কীভাবে ইউনো বোর্ডে অ্যাসাইনার হয় তা নির্দেশ করে (পিন 1 এর অর্থ ডিজিটাল পিন 1 বা ডি 1, উদাহরণস্বরূপ), আইসি নয় (এটিমেগ 328 পিন 1 পুনরায় সেট করা হয়েছে)।
রিকার্ডো

1
আমি বিশ্বাস করি বোর্ডগুলি, ইউনো, ডায়মিলানোভ, মেগা, ... এর সাথেও এই বিবরণগুলি খুব বেশি পরিবর্তন হয়েছে ...
জিপ্পি

@ জিপ্পি অবশ্যই, হ্যাঁ
রিকার্ডো

8

আমি নকশার বিবেচনার বিষয়ে অবগত নই, তবে আপনি যদি নিজের আরডিনোতে মাইক্রোকন্ট্রোলারের জন্য ডেটাশিটটি পরীক্ষা করেন তবে আপনি খেয়াল করবেন যে পিডাব্লুএম পিনগুলি একসাথে গ্রুপযুক্ত এবং প্রতি গ্রুপে টাইমারের সাথে সংযুক্ত রয়েছে। এই টাইমারটি যে গতিতে বাড়ানো হয়েছে তা কনফিগার করা প্রেসক্যালারের দ্বারা পরিবর্তিত হয়। আপনি যদি একটি নির্দিষ্ট টাইমারের জন্য প্রেসকেলার পরিবর্তন করেন তবে আপনি সম্পর্কিত পিডব্লিউএম পিনের জন্য পিডব্লিউএম ফ্রিকোয়েন্সি পরিবর্তন করেন। আমি বিশ্বাস করি যে millis();ফাংশনের মতো অন্যান্য কাজের জন্য কিছু টাইমার দ্বিগুণ । আপনি যদি সেই টাইমারটির জন্য প্রেসক্যালার পরিবর্তন করেন তবে ফিরে আসা মানগুলি millis()একই গুণক দ্বারা বন্ধ হয়ে যাবে।

আপনি নিম্নলিখিতভাবে প্রেসকিলারের জন্য সেটিংস গণনা করতে পারেন:

\ \ পাঠ্য {প্রেসক্যালার} = \ dfrac {f_ {সিপিইউ} {পিডব্লুম্রেসোলিউশন × f_ {পিডাব্লুএমএম} = \ dfrac {16 \ পাঠ্য {MHz} {6 256 × 490} \ প্রায় 128 $$

প্রেসক্যালার = এফ [সিপিইউ] / (পিডব্লিউম্রেসুলেশন × চ [পিডাব্লুএম]) = 16000000 / (256 × 490) = আনুমানিক 128।

ডেটাশিটটি পরীক্ষা করে দেখুন এবং আপনি দেখতে পাবেন যে 128 হ'ল আপনি যে প্রেসক্যালারের মান নির্বাচন করতে পারেন তার মধ্যে একটি।


2
ছেলে, আমরা ম্যাথজ্যাক্স মিস করি নাকি কী? আমি আশা করি আমরা এটি বিটার পরে সক্ষম করব।
রিকার্ডো

1
@ রিকার্ডো আমার ব্রাউজারে ম্যাথজ্যাক্সের বোতাম রয়েছে; ও) মেটা.ার্ডুই
नो.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.