وبلاگ اختراعات

موارد فنی و مطالب موردنیاز مخترعین

۲ مطلب با کلمه‌ی کلیدی «Pull-down» ثبت شده است

مقاومت Pull up چیست و چه کاربردی دارد؟

مقدمه
مقاومت Pull up  در الکترونیک یه چیز خیلی عمومی و معمولی هست  به خصوص وقتی که از میکروکنترلرها یا قطعات منطقی دیجیتال استفاده میکنیم. ما میخوایم در این آموزش بگیم که کی و کجا باید از این مقاومت استفاده کنیم. در ضمن یه سری محاسبات کوچک هم انجام میدیم تا بفهمیم که چرا اصلا این مقاومت Pull up اینقدر مهمه.مت Pull up چیست؟
فرض کنید یه میکروکنترلر داریم و یکی از پایه هاش رو به صورت ورودی تعریف کردیم. اگه هیچی به این پایه وصل نباشه و کد شما جوری باشه که وضعیت این پایه رو بخونه. حالا موقعی میخونیم این پایه 1 هست یا 0 ؟  معلوم نیست. ممکنه یه لحظه یک باشه ممکنه یه لحظه صفر. برای این که از این وضعیت ها جلوگیری کنیم از مقاومت Pull up یا Pull down استفاده میکنیم تا مطمین بشیم که یا صفره اون پایه و یا یک. ضمن این که جریان بسیار کمی هم این مقاومت مصرف میکنه. 
در این نوشته ما بیشتر روی مقاومت Pull up تمرکز میکنیم چون معمول تر از مقاومت Pull down هست. البته مفاهیمشون کاملا یکسانه و تنها تفاوتشون اینه که مقاومت Pull up وصل میشه به VCC ( معمولا یا 5 ولت هست و یا 3.3 ولت) و مقاومت Pull down وصل میشه به GND ( زمین)
مقاومت های Pull up اغلب با سوییچ ها و کلیدها استفاده میشن.
با مقاومت Pull up موقعی کلید رو فشار نداده باشیم  پایه ورودی در وضعیت منطقی 1 یعنی سطح ولتاژ VCC که 5 ولت یا 3.3 ولت میتونه باشه قرار میگیره. به عبارت دیگه یه مقدار جریان بین پایه VCC و پایه ورودی جا به جا میشه بنابراین پایه ورودی وقتی کلید فشار داده نشده مقداری نزدیک به VCC رو میخونه اما وقتی که کلید رو فشار بدیم مستقیم وصل میشه به زمین و یه مقدار جریان جاری میشه از طریق مقاومت به زمین و پایه ورودی مقدار GND رو میخونه. حتما یادتون باشه که اگه این مقاومت نباشه VCC مستقیم به GND وصل میشه و باعث میشه مدارتون اتصال کوتاه بشه و بعدش چه اتفاقای بدی میتونه بیفته. 
مقدار مقاومت Pull up چقدر باید باشد؟
اگه بخوایم یه جواب کوتاه و سریع بگیم اینه که مقدار مقاومت باید یه چیزی در حدود 10KΩ باشه. ولی اگه می خواید خیلی کامل بدونید مقدارش چقدر باید باشه پس ادامه مطلب رو بخونید:
نکته:
اگر مقدار مقاومت انتخاب شده کوچک باشد، چون مقدار زیادی جریان جاری میشود به آن مقاومت Pull up قوی ( Strong Pull up ) و اگر مقدار مقاومت بزرگ باشد چون جریان کمی جاری میشود به آن مقاوم Pull up ضعیف (weak pull up) گفته میشود.
 شکل زیر رو که در زیر اومده ببینید چون بعدا یه خورده باهاش کار داریم. در این شکل مقاومت R1 مقاومت Pull up و مقاومت R2 امپدانس داخلی یه پین هست. 
برای انتخاب یه مقاومت Pull up مناسب باید دو تا شرط زیر ارضا بشن:
موقعی کلید فشرده شد پایه ورودی مستقیما به زمین وصل میشه. مقدار مقاومت R1 تعیین میکنه که چه جریانی بین VCC و GND از طریق کلید جاری میشه .
موقعی کلید فشار داده نشده پایه ورودی در سطح منطقی 1 قرار میگیره. مقدار مقاومت Pull up ، ولتاژی که روی پایه ورودی میفته رو کنترل میکنه.
برای شرط 1 ما نباید از یه مقاومت خیلی کوچک استفاده کنیم، مقاومت خیلی کوچیک باعث میشه توان بیشتری مصرف بشه وقتی کلید رو میزنیم. شما معمولا به یه مقاومت با اندازه بزرگ احتیاج دارید(مثلا 10KΩ). همچنین نمیتونیم یه مقاومت خیلی بزرگ هم انتخاب کنیم چون باعث بشه ولتاژ روی پایه ورودی اونقدر کم بشه که نزدیک به صفر برسه و در واقع در تضاد با شرط 2 باشه. مثلا یه مقاومت 4MΩ  برای Pull up خوب نیست. چون باعث میشه اصلا ولتاژی روی پایه ورودی نیفته موقعی کلید بازه.
قانون عمومی برای شرط 2 اینه که مقدار مقاومت Pull up ای که انتخاب میکنیم (R1) باید کمتر از 1/10 امپدانس داخلی پایه مورد نظر ما باشه. امپدانس داخلی پایه ها در میکروکنترلرهای مختلف چیزی حدود 100 کیلو تا 1 مگا اهم هست.
وقتی کلیدی رو فشار ندادیم یه جریان خیلی کمی از VCC به سمت پایه ورودی از طریق مقاومت R1 جاری میشه. مقاومت R1 که Pull up هست و مقاومت R2 که امپدانس داخلی پایه مورد نظر ما هست تشکیل یه مقسم ولتاژ میدن و ولتاژی که روی پایه ایجاد میشه باید به اندازه کافی بزرگ باشه که پایه مقدار سطح ولتاژ 1 رو بخونه.
مثلا اگه مقاومت Pull up که انتخاب میکنید مقدارش 1M اهم باشه و امپدانس داخلی پایه مورد نظر ما هم 1M اهم باشه. در این حالت طبق فرمول مقسم ولتاژ، ولتاژی حدود 1/2 ولتاژ  VCC میفته روی پایه ورودی که معلوم نیست پایه مورد نظر ما بتونه اون رو به صورت سطح منطقی 1 تشخیص بده. مثلا اگه میکرو با 5 ولت کار کنه آیا 2.5 ولت رو سطح منطقی 1 تشخیص میده یا سطح منطقی 0 ؟ ولی اگه ما بیاییم و یه مقاومت 10 کیلو یا 100 کیلو بذاریم دیگه این مشکل رو نداریم.
چون مقاومت Pull up خیلی کاربرد داره اکثر میکروکنترلرها مثل Atmega328  که در بردهای arduino هم استفاده میشه خودشون یه Pull up داخلی دارن که میتونه فعال یا غیر فعال بشه. برای این که این مقاومت Pull up داخلی رو در پایه های آردوینو فعال کنید میتونید از کد زیر در تابع Setup استفاده کنید:

pinMode(5, INPUT_PULLUP); // Enable internal pull-up resistor on pin 5 
نکته دیگه ای  که باید به اون اشاره کنیم اینه که هر چه مقاومت پولاپ بزرگتر باشه پین مورد نظر به تغییرات ولتاژ کندتر پاسخ می ده. و این بخاطر اینه که سیستمی که کار تغذیه پین ورودی را به عهده داره لزوما یک خازنه که با یک مقاومت Pull up کوپل شده است بنابراین تشکیل یک فیلتر RC می ده و فیلتر RC هم نیاز به یک زمان دارد تا شارژ و دشارژ انجام بشه. اگر شما یک تغییر سیگنال پرسرعت(همانند USB) دارید یک مقاومت پولاپ بزرگ می تونه سرعت رو در تغییر حالت پین محدود بسازه. و به این دلیله که شما اغلب یک مقاومت 1 تا 4.7کیلواُهم را روی خطوط سیگنال USB مشاهده می کنید.
محاسبات مقاومت Pull up
شکل اول صفحه رو یه بار دیگه در نظر بگیرید و به مساله ی زیر فکر کنید:
مساله: حالا فرض کنید در مدار بالا وقتی کلید فشار داده میشه میخوایم جریان جاری شده رو به 1mA محدود کنیم. اگه مقدار VCC برابر 5 ولت باشد. مقدار مقاومت Pull up چقدر است؟
کار زیادی سختی نیست. باید از قانون اهم استفاده کنیم.

منبع: http://robouav.ir

۰ نظر موافقین ۱ مخالفین ۰
ابوالفضل ظهوریان

مقاومت های Pull-up ، کاربرد و محاسبه

استفاده از مقاومت های Pull-up در مدارات میکروکنترلری بسیار رایج است و شاید شما هم از این مقاومت ها در مدارات خود استفاده می کنید. در این پست نگاهی تخصصی تر به دلایل استفاده از این مقاومت ها و نحوه ی محاسبه آنها می اندازیم.

بیشترین کاربرد این مقاومت ها در زمانی است که پایه ای از میکروکنترلر به عنوان ورودی تعریف شود، در این حالت اگر این پایه به تغذیه یا زمین متصل نباشد، اگر مقدار این پایه را در برنامه بخوانیم، این پایه چه مقداری خواهد داشت؟ یک یا صفر؟

به این حالت اصطلاحا حالت float یا شناور می گویند و و نمیتوان در مورد وضعیت منظقی پایه در این حالت اظهار نظر قطعی کرد، یعنی ممکن است پایه در وضعیت یک منطقی باشد یا صفر . علاوه بر عدم مشخص بودن وضعیت منطقی یک پایه در این حالت، امکان ورود نویز به مدارات داخلی میکروکنترلر نیز از این طریق وجود دارد.

برای جلوگیری از این شرایط از مقاومت های Pull-up یا بالاکش یا مقاومت های Pull-down یا پایین کش استفاده می شود. مقاومت های بالاکش بین تغذیه مدار و پایه میکروکنترلر وصل می شوند و مقاومت های پایین کش بین پایه میکروکنترلر و زمین وصل می شوند. با وجود شباهت هر دو، استفاده از مقاومت های بالاکش در مدارات رایج تر است.

Pull-Up Res

در شکل بالا، در حالتی که کلید در وضعیت باز قرار دارد، جریان کمی (با توجه به مقاومت ورودی پایه میکروکنترلر) از مقاومت به درون پایه میکروکنترلر وارد می شود و وضعیت منطقی این پایه در حالت یک قرار می گیرد. با فشرده شدن کلید، جریان مقاومت از طریق کلید به زمین منتقل می شود و وضعیت منطقی پایه در حالت صفر قرار می گیرد.

نکته 1 : از مقاومت برای جلوگیری از اتصال کوتاه شدن تغذیه به زمین هنگام متصل وصل شدن کلید استفاده می شود، در غیر اینصورت میتوان پایه میکروکنترلر را مستقیما به تغذیه متصل نمود.

نکته 2 : استفاده از مقاومت بالاکش به دلیل افزایش جریان، مقدار توان مصرفی مدار را کمی افزایش می دهند.

نکته 3 : معمولا در میکروکنترلرها مقاومت بالاکش در همه ی پایه ها یا برخی پایه ها به صورت داخلی قرار داده شده است و با نوشتن مقدار مناسب در رجیسترهای مربوطه، در وضعیتی که پایه به عنوان ورودی تعریف شده است، این مقاومت بالاکش فعال می شود. در برخی کاربردها لازم است علاوه بر مقاومت بالاکش داخلی، برای افزایش مصونیت پایه های میکروکنترلر در برابر نویزهای محیطی، مقاومت بالاکش به صورت خارجی نیز قرار داده شود.

 

محاسبه مقدار مقاومت بالاکش :

برای محاسبه مقدار مقاومت بالاکش باید دو نکته را مد نظر قرار داد :

  • زمانی که کلید فشرده می شود، مقاومت میزان جریان کشی از منبع تغذیه را با توجه به قرار گیری ولتاژ تغذیه در دو سر آن تعیین می کند.
  • در زمان باز بودن کلید، مقاومت بالاکش ولتاژ روی پایه میکروکنترلر را تعیین می کند.

 

با در نظر گرفتن مورد اول، استفاده از مقاومت های کوچک با توجه به افزایش جریان و توان مصرفی مطلوب نیست و باید سعی شود از مقاومت های بزرگ استفاده شود. اما افزایش مقدار مقاومت نباید با مورد دوم تضاد پیدا کند.

طبق مورد دوم، مقاومت نباید آنقدر بزرگ باشد تا ولتاژ مورد نیاز برای پایه ی میکروکنترلر برای تشخیص سطح منطقی یک کافی نباشد. در واقع با توجه به شکل زیر، در ورودی پایه میکروکنترلر یک مقاومت با مقدار 100K اهم تا 1M اهم وجود دارد (R2) که ولتاژ تغذیه بر روی این دو مقاومت تقسیم می شود. اگر مقدار مقاومت بالاکش (R1) بزرگتر از حد مجاز باشد، ولتاژ روی پایه میکروکنترلر طبق رابطه تقسیم ولتاژ کمتر از حد مورد نیاز میکروکنترلر برای تشخیص سطح منطقی یک می شود و عملا وضعیت پایه مشابه حالت شناور می شود.

Input uc Res

معمولا برای رعایت این نکته باید سعی شود که مقاومت بالاکش برای ایجاد سطح ولتاژ کافی برای ورودی از 1/10 مقاومت ورودی پایه میکروکنترلر (R2) بزرگتر نباشد.

علاوه ملاحظات بالا، از آنجایی که مدار متصل شده به پایه ورودی میکروکنترلر معمولا دارای ظرفیت خازنی می باشد، این خازن با مقاومت بالاکش تشکیل یک فیلتر RC داده و همان طور که می دانیم در حالت تحلیل در حوزه زمان، مدت زمانی طول می کشد تا خازن به طور کامل شارژ و دشارژ شود و این مدت زمان با افزایش مقدار مقاومت، افزایش پیدا خواهد کرد، این مسئله باعش کاهش سرعت پاسخ میکروکنترلر به تغییر در ورودی ها می شود. به همین دلیل در ارتباط USB معمولا از مقاومت های بالاکش 1K اهم تا حداکثر 4.7K اهم استفاده می شود.

مقدار مقاومت بالاکش برای جریانی مشخص طبق قانون اهم، از تقسیم ولتاژ تغذیه  بر جریانی که می خواهیم از تغذیه کشیده شود (هنگام اتصال کلید) به دست می آید. به عنوان مثال با در نظر گرفتن تغذیه 5v و جریان  1mA :


Ohm's Law

منابع :

learn.sparkfun.com

melec.ir

۰ نظر موافقین ۱ مخالفین ۰
ابوالفضل ظهوریان