কেন আমি পিডব্লিউএম বর্বর করা উচিত নয়?

তাই আমি একটি ATTiny45 এর সাথে খেলছি, এবং এটি আমার কাছে ঘটেছে যে আমি সম্ভবত পিডব্লিউএমএমকে সিএসসক্লক/64 তে টাইমার স্থাপন করে, তারপর ISR কোড চালাতে পারি যা স্বয়ংক্রিয়ভাবে আউটপুটগুলি বন্ধ বা বন্ধ করে অন্যত্র সেট বিশ্বব্যাপী ভেরিয়েবলগুলির উপর নির্ভর করে কোড বা আইও মাধ্যমে। 20MHz এর সর্বোচ্চ সাইসক্লকের গতিতে আমি যথাযথ রেজোলিউশন পেতে পারি, এবং চিপগুলি সরবরাহ করার পরিবর্তে আমি আমার সমস্ত আইও পিনগুলি PWM হিসাবে ব্যবহার করব, তাই বড় প্রশ্ন হচ্ছে ... কেন নয়? অনেক সাইসক্লক চক্র ব্যবহার করার পাশাপাশি, আমি সত্যিই অসুবিধা দেখতে পাচ্ছি না ... কেউ আমাকে কিছু দিতে পারে?

6
ATTinyX5 কি 3 আউটপুট তুলনাকারী, OC0A, OC0B/OC1A (PB1 তে ভাগ করা), OC1B প্রদান করে না?
যোগ লেখক Hrvoje Hudo, উৎস
যোগ লেখক Dan, উৎস
আমি একবার এই কাজ করার চেষ্টা (কিন্তু একটি ভিন্ন নিয়ামক সঙ্গে)। অভ্যাস আপনি একটি পরিষ্কার পালস পেতে না। পরিবর্তে এটি আপনার ঘড়ি চক্র সময় উপর নির্ভর করে পরিবর্তিত হয়, এবং আপনার নিয়ামক অন্য কিছু সঙ্গে ব্যস্ত হলে নিচে ধীর।
যোগ লেখক Teresa Ortega, উৎস
এটি কুৎসিতও মনে করে - এটি একটি খুব পিএমএম চ্যানেলের জন্য খুব সামান্য হার্ডওয়্যারটি নেয় - এটি আক্ষরিকভাবে একটি পুনঃনির্ধারণযোগ্য বাইনারি কাউন্টারকে নিবন্ধিত হতে পারে এবং নিবন্ধিত করতে পারে, সাথে সাথে কিছু ঘড়ি বিভক্ত যুক্তি এবং সম্ভাব্য একটি অনুরূপ সেটআপ খুব পালস বন্ধ। বিট banging অসঙ্গতিপূর্ণ এবং সঠিকভাবে সময়জ্ঞান, পাশাপাশি (অপেক্ষাকৃত) তীব্র সম্পদ ব্যবহার - কঠিন execution, বিঘ্নিত চ্যানেল, সিস্টেম ঘড়ি (যা Pwm ঘড়ি তুলনায় আরো বৈশিষ্ট্য থাকতে পারে) - - যেমন একটি সহজ বৈশিষ্ট্য জন্য কঠিন। কেন আপনি আরো চ্যানেল প্রয়োজন? একটি সস্তা উপায় হতে পারে।
যোগ লেখক lanzo, উৎস

6 উত্তর

তিনটি অসুবিধা হ'ল বিদ্যুৎ খরচ, একটি টাইমার টাইপ করা, এবং অন্য কোডটি বিঘ্নিত করা। যদি আপনি কম শক্তি মোডগুলি সম্পর্কে উদ্বিগ্ন না হন এবং টাইমারের কোন প্রয়োজন নেই এবং কোনও জটিল কোড না থাকে যা বাধা দেওয়ার জন্য কয়েক ঘড়ি চক্রগুলি সহ্য করতে পারে না, তবে কোনও অসুবিধা নেই। কিছু প্রকল্পগুলি মোটামুটি সহজ, এবং মাইক্রোকন্ট্রোলারের দশ ভাগেরও বেশি সময় নেন না, তাই যে কেউ টাইমারদের সুবিধা গ্রহণ করে আপনি ভুল করছেন তা বলবেন না। এটি আপনার প্রয়োজন ফিট করে যদি সফ্টওয়্যার PWM জরিমানা।

6
যোগ
@ প্যাসারবি আপনি দ্বন্দ্বপূর্ণ শব্দ। সুতরাং, যে শিরা, টাইমার এখনও চলমান যদি MCU ঘুম করতে পারে না। এটি সর্বোত্তম পদ্ধতিতে অক্ষম মোডে স্থানান্তরিত হয় যা ATTiny এ 3.8 এমএ সংরক্ষণ করে থাকে (তবে আপনি যদি সত্যিই শক্তি সম্পর্কে চিন্তা করেন তবে আপনি 1.8 V তে চলমান হবেন, এ ক্ষেত্রে এটি শুধুমাত্র 0.2 এমএ সংরক্ষণ করে), তাই যদি আপনি ' আবার একটি একক বিচ্ছিন্ন LED একটি "ডিমের" 2 এমএ তে চলমান, আমি নিশ্চিত যে আপনার সঞ্চয়গুলি "পরিসংখ্যানগতভাবে উল্লেখযোগ্য", তারা প্রকৌশল দৃষ্টিকোণ থেকে অপ্রাসঙ্গিক।
যোগ লেখক Hrvoje Hudo, উৎস
মনে রাখবেন যে, "সঞ্চয় শক্তি" সম্পর্কে এই সমস্ত কথোপকথন অপ্রাসঙ্গিক, যদি আপনি একটি একক LED এর ধীরে ধীরে আলোকিত হন।
যোগ লেখক Hrvoje Hudo, উৎস
একটি সফটওয়্যার পিডব্লিউএম ব্যবহার করে পাওয়ার খরচ বাড়িয়ে তুলতে পারে যাতে CPU দ্রুততর ঘড়ির গতিতে চালিত হয়, অন্যথায় প্রয়োজন হয় না।
যোগ লেখক firedfly, উৎস
@ মথে যখন CPU গুলি নির্দেশনা নিচ্ছে না, তখন আপনি এটি কম বিদ্যুৎ ঘুম মোডে প্রবেশ করতে নির্দেশ দিতে পারেন। এর মানে হল ডিভাইসটি নির্দিষ্ট সময়ের জন্য অনেক কম শক্তি গ্রাস করবে। কিছু ঘুম মোড টাইমার নিয়ন্ত্রিত PWM চলমান রাখা হবে, কিন্তু অবশ্যই বিট banged PWM হবে না। ইন্টারাপ্টগুলি ঘুম মোড থেকে প্রস্থান করার একটি সাধারণ পদ্ধতি।
যোগ লেখক La raison, উৎস
@ মথে হার্ডওয়্যার/টাইমার পিডব্লিউএম ব্যবহার করার সময়, আপনার CPU টির প্রয়োজন নেই এবং আপনি এটি ঘুমাতে পারেন। যে একটি ন্যায্য পরিমাণ সংরক্ষণ করবে। তিনি মনে করেন যে পিএমএম বিট ঠেকাতে যখন নির্দেশিকা চক্র গণনা করার পরিবর্তে টাইমার নিয়ন্ত্রিত পিডব্লিউএম (এবং এইভাবে ঘুমিয়ে যেতে পারে) ব্যবহার করার সময় সিপিইউ অলস হচ্ছে।
যোগ লেখক La raison, উৎস
PWM অনেক প্ল্যাটফর্মের উপর একটি টাইমার আপ সংযোগ
যোগ লেখক wannabecapablanca, উৎস
কোডটি পরিবেশন করার জন্য একটি বাধা একটি নিম্ন পাওয়ার মোড থেকে মাইক্রোকন্ট্রোলারটি এনে দেয়। একটি হার্ডওয়্যার পিডব্লিউএম মডিউল LPM আউট চিপ আনয়ন ছাড়া, আরো দক্ষতার সব সামলাতে পারেন। যদি সকল এমকিউ ব্যবহার করা হয় প্রধানত PWM, মাঝে মাঝে ব্যবহারকারীর সাথে যোগাযোগের সাথে, এটি বিদ্যুৎ ব্যবহারের উপর একটি বড় আঘাত।
যোগ লেখক Eloise Coramsfield, উৎস
@ নিক্ট আপনার মিথ্যা ধারণার সাথে মতবিরোধী কোন দ্বন্দ্বী নয়।
যোগ লেখক Eloise Coramsfield, উৎস
@ নিক্ট বিপরীতভাবে, কম সাম্প্রতিক অ্যাপ্লিকেশনগুলির মতো একটি একক নেতৃত্বে ডিমিং পাওয়ার সুবিধা থেকে সর্বাধিক সুবিধা লাভ করে। আপনার লক্ষ্য লক্ষ্য 3mAh হয়, ক্রমাগত mcu জাগ্রত থেকে 2 mAh গড় একটি বিশাল আঘাত। অন্যদিকে, একটি 500mA মোটর পিএমএম অ্যাপ্লিকেশন একটি 2mAh আঘাত, miniscule হয়।
যোগ লেখক Eloise Coramsfield, উৎস
@ জ্প্পি গ্রেট। ধন্যবাদ।
যোগ লেখক John Keddy, উৎস
@jippie হ্যাঁ, আমি বুঝতে পারি যে কেউ শক্তি বাঁচানোর জন্য ঘুমের মোড থেকে বেরিয়ে আসতে বাধা সৃষ্টি করতে পারে - একটি সুবিধা। আমি পাসারবিয়ের মন্তব্য বুঝতে চেষ্টা করছিলাম যে বিদ্যুৎ খরচ একটি অসুবিধা। আমি নিশ্চিত Passerby কিছু মনে আছে কিন্তু এটা আমার কাছে স্পষ্ট নয় যে PWM হার্ডওয়্যার ISR সহ একটি পাল্টা তুলনায় কম শক্তি গ্রাস করবে। সব পরে, PWM মডিউল অতিরিক্ত হার্ডওয়্যার সঙ্গে শুধুমাত্র একটি পাল্টা।
যোগ লেখক John Keddy, উৎস
বিদ্যুৎ ব্যবহারের মাধ্যমে আপনি বোঝেন যে আইএসআরের সাথে টাইমার একটি বিশুদ্ধভাবে সফ্টওয়্যার সমাধান চেয়ে বেশি শক্তি ব্যবহার করে, তাই না? ডেডিকেটেড পিডব্লিউএম হার্ডওয়্যার ব্যবহার করে আইএসআর-এর সাথে টাইমারের একই বিদ্যুতের ব্যবহার সম্পর্কে থাকা উচিত।
যোগ লেখক John Keddy, উৎস

আমি সম্প্রতি পিডব্লিউএম স্যুইচিং পাওয়ার সাপ্লাই স্টাফ নিয়ে অনেক খেলছি, এবং আপনি সঠিক, "বিট ব্যাং" পালস প্রস্থের সংশোধিত সংকেতগুলির পুরোপুরি বৈধ কারণ আছে। কিন্তু আপনি যখন জেনেটিক ডিউটি ​​চক্রের অবিলম্বে প্রতিক্রিয়া নিয়ন্ত্রণের প্রয়োজন তখন এই পদ্ধতির প্রধান ব্যর্থতার একটি।

এমনকি 20 মেগাহার্টজ অনবোর্ড ঘড়ির সাথে, চক্র সময় 50 ন্যানোসেকেন্ড হয়। কম্পিউটেশালিভাবে, আপনি নজরদারি করা সংকেত অর্জন করতে হবে, রেফারেন্স স্তর থেকে এটি সরিয়ে, এবং তারপর কর্তব্য চক্রের প্রজন্মের সারসংকলন। এটি "জিটার" তৈরি করবে যেখানে কর্তব্য চক্র অসঙ্গত। একটি অনবোর্ড DAC ব্যবহার করে প্রশ্নটির বাইরে নেই, তবে এটি চক্রগুলি খায়। এটিকে ছিন্ন করার জন্য, আপনি একটি বহিরাগত DAC যুক্ত করতে পারেন, তবে আপনি দ্রুত রিডিংয়ের জন্য মাইক্রোকন্ট্রোলার থেকে বাইরের DAC এ 8 বা 1২ টি পিন তৈরি করেছেন (আপনি কত রেজোলিউশন চান তা নির্ভর করে)। তারপর আপনি সুইচিং উপাদান মাধ্যমে অতিরিক্ত সংকেত প্রচারের বিলম্ব সম্পর্কে চিন্তা করতে হবে।

যদি আপনি চান দ্রুত প্রতিক্রিয়া নিয়ন্ত্রণ, এটি একটি স্বাধীন দায়িত্ব চক্র আইসি বীট কঠিন। বোর্ড ত্রুটি এম্প্লিফায়ারের বিলম্বটি এত ছোট যে আপনি উচ্চ ফ্রিকোয়েন্সিগুলিতে পরিবর্তন সম্পর্কে আরও বেশি চিন্তিত। স্যুইচিংয়ের মাধ্যমে সংকেত বিস্তার এখনও অবশ্যই একই ঝুঁকি, এবং প্রায় ডিজাইন করা হয়েছে।

এটিও মূল্যবান যে PWM IC প্যাকেজগুলির অনেকগুলি শাটডাউন বৈশিষ্ট্য এবং মৃত সময় নিয়ন্ত্রণ ইনপুটগুলি রয়েছে যা মাইক্রোকন্ট্রোলারের সাথে মিলিত হলে সত্যিই নিফটি জিনিসগুলি করতে পারে, সমস্ত 8 বা 16 পিন প্যাকেজে।

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

4
যোগ

চিপের হার্ডওয়্যার ডিভাইস থাকার বিন্দু অন্যান্য কাজের জন্য প্রসেসরটি মুক্ত করতে হয়। আপনি PWM হার্ডওয়্যার ব্যবহার করেন তবে আপনি একযোগে অন্যান্য মাইক্রোকন্ট্রোলার কাজ করতে পারেন।

এখন আমি মনে করি আপনি এই বিটটি ধরেছেন কারণ আপনি একটি/যখন লুপ ব্রুট ফোর্স পাল্টানোর পরিবর্তে একটি ISR ব্যবহার সম্পর্কে জিজ্ঞাসা করছেন তবে আবার এটি একই উত্তর। আমরা যদি পালস এর প্রস্থ পরিবর্তন না করি তবে কেন আমরা অপ্রয়োজনীয়ভাবে আমাদের অন্যান্য কাজকে বিঘ্নিত করতে চাই?

3
যোগ
কারণ আমরা BOM যোগ না করে 3 টিও বেশি PWM চ্যানেল চাই।
যোগ লেখক Dan, উৎস
@ ইগনাসিও হয়তো আমি প্রশ্নটি ভুল করে ফেলছি কিন্তু আমি এটা পড়ি কারণ ওপেন পিডব্লিউএম শক্তি বজায় রাখতে চেয়েছিল এবং তারপর একটি বোনাস আরো PWM চ্যানেল পেয়েছিল। ওপেন করতে চাইলেই আপনি সঠিক হন কারণ তাদের আরও চ্যানেল দরকার।
যোগ লেখক John Keddy, উৎস

আপনি সহজেই যা করতে পারেন তা করতে পারেন - আমি এটি কয়েক বার করেছি। আপনি যদি ভবিষ্যতে আপনার PWM পরিবর্তন করতে চান তবে এটি আরও দরকারী; আপনি পিডব্লিউএম চক্রের সংখ্যা গণনা করে এটি করতে পারেন, এবং যেভাবে আপনি তা করতে টাইমারের প্রয়োজন বোধ করবেন।

যাইহোক, PWM/# আউটপুটগুলির রেজোলিউশনের মধ্যে মুক্ত প্রসেসর সময় বনাম রেজোলিউশন রয়েছে। আপনি এমন একটি বিন্দুতে পৌঁছাবেন যেখানে এটিতে কাজ করার জন্য আপনার কাছে পর্যাপ্ত ফ্রি CPU নেই।

আমি একটি বিনামূল্যে পিন পর্যন্ত একটি সুযোগ hooking সুপারিশ, এবং তারপর ISR শুরুতে এবং শেষে কম যে পিন উচ্চ সেটিং। এটি আপনাকে আপনার রুটিন ব্যবহার করার সময় অনুপাত দেখতে দেবে।

1
যোগ

সঠিকভাবে সম্পন্ন হলে সফটওয়্যার পিডব্লিউএমটির খুব CPU ঘনত্ব নেই, যেমন বাইনারি কোড মডুলেশন । এই চমৎকার এবং সহজ পদ্ধতির সাহায্যে আপনি অনেক বড় CPU সিউডহেড ছাড়া SoftPWM চ্যানেলগুলি পেতে পারেন।

0
যোগ
আমি LEDs এর জন্য বিসিএমের বৈচিত্র ব্যবহার করেছি, এবং তারা কঠিন মাত্রার জন্য ঠিক আছে, কিন্তু প্রদত্ত পদ্ধতিটি যদি 127 এবং 128 এর মধ্যে পরিবর্তিত হয় তবে প্রদত্ত পদ্ধতিটি খারাপভাবে ফুলে উঠবে। 256-স্তরের PWM এর বিকল্প বিকল্পটি একটি বাধা চালানো যেমন প্রতি 256 চক্র একবার, এবং প্রতিটি বিঘ্ন লিড দুটি বার, 16 চক্র পৃথক লিখুন। অর্ধেক চক্র (বিকল্প), বিট 3 এবং তারপর বিট লিখুন 7. বাকি অর্ধেক, বিট 2 এবং তারপর 6, ইত্যাদি লিখুন। 1/16 তে, শুধুমাত্র শূন্য লিখুন এবং অন্য প্রক্রিয়া করুন।
যোগ লেখক firedfly, উৎস
বাইনারি কোড মডুলেশন এর সংযুক্ত প্রয়োগটি হ'ল অসুবিধা যা 1২5 থেকে 1২8 তে পরিবর্তিত একটি আউটপুট 255 ক্রমশ ডালগুলির জন্য কম হবে এবং যার মান 128 থেকে 127 পর্যন্ত পরিবর্তিত হবে 255 ক্রমাগত চক্রের জন্য। অধিকন্তু, যন্ত্রটি নিয়ন্ত্রিত থাকলে অ-ইউনিফর্ম টার্ন-অন/টার্ন-অফ আচরণ থাকবে, পিডব্লিউএম তার বেশিরভাগ ক্ষেত্রে রৈখিকভাবে আচরণ করবে, আর বিসিএম করবে না। বিসিএমে কিছু বৈচিত্র্য উপকারী হতে পারে, তবে এর সীমাবদ্ধতাগুলি প্রায়শই স্বীকৃত এবং মোকাবেলা করতে হবে।
যোগ লেখক firedfly, উৎস
ক্ষুদ্র নিট: পিডব্লিউএম কিছু নির্দিষ্ট মডুলেশন স্কিমের কথা উল্লেখ করে যার মধ্যে একটি নির্দিষ্ট আউটপুট স্তরটি একটি নির্দিষ্ট দায়িত্ব চক্রের সাথে একটি পালস তরঙ্গ দ্বারা উপস্থাপিত হবে এবং তরঙ্গের ফ্রিকোয়েন্সিটি প্রতিনিধিত্বকারী স্তর থেকে স্বাধীন। আউটপুট স্তরে পরিবর্তনগুলি কীভাবে প্রতিনিধিত্ব করা হবে তা কেবল স্কিমগুলিতে পরিবর্তিত হবে। বাইনারি কোড মডুলেশন ডিউটি ​​চক্র মডুলেশন স্কিমগুলির একটি সাধারণ শ্রেণির সদস্য।
যোগ লেখক firedfly, উৎস
যদিও আপনি ভালভাবে লক্ষ্য করেছেন যে বিসিএম সবকিছুর জন্য সমাধান নয় তবে এটি বেশিরভাগ যন্ত্রের সাথে খুব ভাল এবং খুব কম CPU ব্যবহারের সাথে মোকাবিলা করবে। সবচেয়ে সাধারণ সম্ভবত LEDs dimming হবে। এই ক্ষেত্রে উজ্জ্বলতা রৈখিকতা প্রয়োজন হলে, উভয় PWM এবং BCM উভয় একটি সংশোধন টেবিল প্রয়োজন হবে।
যোগ লেখক TheFaderJockey, উৎস

ব্যক্তিগতভাবে আমি টাইমার পিডব্লিউএমগুলি দ্রুত এবং সামঞ্জস্যপূর্ণ (সম্পূর্ণ 256 পরিসরের মধ্যে, যদি আপনাকে এইরকম রেজোলিউশন দরকার না হয় তবে সফ্টওয়্যার ["বর্বর-শক্তি"] দ্রুত হতে পারে) এবং যখন আমার 2 এর বেশি প্রয়োজন হয়। হার্ড পিডব্লিউএমগুলির পাশাপাশি নরম পিডবামিংয়ের চেষ্টা করে এবং এটি খুব মসৃণ ছিল না তাই আমি সফ্টওয়্যারে সমস্ত পিডব্লিউএম করতে পছন্দ করেছিলাম এবং এটি দুর্দান্ত হয়ে গেছে।
একমাত্র জিনিস যখন এবং মধ্যস্থতাকারীর গণনা/প্রক্রিয়াজাতকরণ/বিরতি যা কিছু সময় নেয়, নরম PWM স্টলগুলি এবং খুব লক্ষণীয় হতে পারে।

0
যোগ