میدونم سوالام بدجور ابتدایی هست در حد کلاس ابتدایی اما یه کتابی خوندم که همه ذهنمو ریخت به هم! و اینکه من رشتم برق نیست متاسفانه....
وقتی تو میکرو یک پایه رو OUT میکنیم:
وقتی 1 رو توش مینویسیم توش جریان برقرار میشه وقتی هم که صفر مینویسیم متوقف، درسته؟
حالا وقتی In هست:
پایه میتونه Tri-state\High Impedance باشه این یعنی چی؟ حالا اگه Pull Up بشه یعنی چی؟ توی هرکدوم از این حالات اگه جریان اعمال بشه به پایه چی میشه؟
وقتی پایه ورودی باشه ورودیه دیگه! حالتش رو وضعیت مدار خارج از میکرو تعیین میکنه پس Tri-state و Pull Up کردنش یعنی چی؟
در ضمن من فقط با مدارات DC کار میکنم
گاهی وقت ها در اثر تغییرات ولتاژ جریان و.... یا نویز در مدار باعث میشه تا حالت پایه برای یه مدت خیلی کم تغییر کنه
از جایی که سرعت اجرای برنامه ها در میکرو بسیار بالا است این تغییرات کوچک و ناپایدار باعث میشه تا میکرو فکر کنه که کلید فشرده شده و فرمان های خاص همون کلید رو به اجرا در میاره
برای اینکه این تاثیرات رو از بین ببریم باید پایه رو pullup یا pulldown کنیم.
pullup یا pullldown کردن پایه ها بسته به برنامه ای است که برای میکرو تعریف میشه
یک روش برای پول آپ کردن از داخل برنامه برای بسکام هست اگه لازم شد بگید بزارم.
شما فرض کن یه ترانزیستور منفی (NPN) داری که روی کلکتورش هیچی نیست (بهش می گن open collector) این وقتی روشن می شه به زمین وصل می گیم صفر شده و می تونه جریان بکشه (sink) کنه یعنی می تونه مثلا یه موتور که یک آمپر نیاز داره رو روشن کنه جالا وفتی خاموش چی؟
مثل این می مونه که ول باشه یعنی صفرش کنی صفر می شه یکش هم کنی یک می شه به این حالت می گن High Impedance یعنی مقاومتش بالاست یعنی هیچ جریانی نمی کشه با نمی ده (خودمونی بگم قطع شده) این مفید ها ولی وقتی داری صفر و یک می خونی این حالت تکلیفش معلوم نیست ممکنه صفر باشه ممکنه یک باشه برای همین می یان با یه مقاومت به مثبت ( می شه به منفی هم وصل کرد می شه پول داون) وصلش می کنن تا مواقعی که قطع شده بره بالا (یک بشه) برای همین در بعضی موارد جلوی نویز رو می گیره البته فقط همون نویز حالت High Impedance رو نه هر نویزی رو
سلام.
در ادامه ي توضيحات دوستان ...
مقاومتي كه بين پايه ي ميكرو و VCC گذاشته مي شه رو pullup مي گن.
مقاومتي كه بين پايه ي ميكرو و GND گذاشته مي شه رو pulldown مي گن.
علت استفاده هم كه گفته شده ...
حالا ميكرو اين قابليت رو داره كه مي تونيد توسط خود ميكرو pullup رو فعال كنيد و ديگه نيازي به مقاومت خارجي نداره ...
اون tri-state بافريه كه در مسير هر پايه ي ميكرو قرار گرفته ...
از نظر وضعيت ، اين بافر مي تونه 0 و 1 و Z باشه ...
0 و 1 كه معلومه ... ، اما اون Z رو كه همون High Impedance هست رو اينطوري تصور كن ، يك رشته سيم كه سر اون در هوا معلق هست ، در واقع بافر يك امپدانس بزرگ ( يا براي درك راحت تر ،يه مقاومت بزرگ ) ايجاد مي كنه كه ورودي و خروجيه خودش رو از هم جدا مي كنه ، مثل اينكه يك رشته سيم رو از وسط قطع كني ...
خلاصه جرياني ازش نمي گذره ...
اما با مورد High Impedance برخورد زيادي نخواهيد داشت ... ، لازم نيست زياد خودتون رو در گيرش كنيد.
موفق باشيد.
يا علي.
مرسی از جوابای خوبتون!
من با کدویژن کار میکردم حالا دارم AVRStudio یاد میگیرم ولی سوالا بر اساس CodeVision هست
یه قابلیت خوب که کدویژن برای مبتدیهایی مثل من داشت این بود که گرافیکی انتخاب میکردی پایه ورودی باشه یا خروجی
در حالت ورودی باز انتخاب میکردی tri/state باشه یا Pull-Up. در حالت pull-up بر اساس جوابای شما تا حدی یک سری از نویزها رو حذف میکنیم
اما حالت tri-s چی؟ اگه بافر هست (جواب Sharin)حالت Z چه کاربردی داره؟
و دیگه اینکه در هر دوحالت ورودی pوtri-s اگه جریان اعمال بشه از پورت چی میخونیم؟
مرسی از جوابای خوبتون!
من با کدویژن کار میکردم حالا دارم AVRStudio یاد میگیرم ولی سوالا بر اساس CodeVision هست
یه قابلیت خوب که کدویژن برای مبتدیهایی مثل من داشت این بود که گرافیکی انتخاب میکردی پایه ورودی باشه یا خروجی
در حالت ورودی باز انتخاب میکردی tri/state باشه یا Pull-Up. در حالت pull-up بر اساس جوابای شما تا حدی یک سری از نویزها رو حذف میکنیم
اما حالت tri-s چی؟ اگه بافر هست (جواب Sharin)حالت Z چه کاربردی داره؟
و دیگه اینکه در هر دوحالت ورودی pوtri-s اگه جریان اعمال بشه از ورودی چی میخونیم؟
براي High Impedance :
كمي توضيحش و دركش سخته ...
فرض كن يه سري مقاومت بين پايه هاي ميكرو گذاشتي . حالا مي خواي كنترل كني كه در هر شرايطي چندتاشون تو مدار باشن و چند تا شون تو مدار نباشن ( در واقع مقاومت معادل رو تغيير بدي ... )
هر پايه اي رو كه 0 كني ، مقاومت هايي كه بين VCC تا همون پايه اي كه 0 كردي در مدار قرار مي گيرن و بقيه خارج از مدار هستن ... ( فقط به يك پايه مقدار 0 مي دي )
در اين وضعيت پايه هايي كه مابين VCC و GND هستن ، براي هدفي كه ما مي خواهيم ، نه مي تونن 0 باشن و نه مي تونن 1 باشن . ( چرا ؟ ) چون كار ما رو خراب مي كنن .
براي هدف ما بهتره كه نباشن ! يا به عبارتي قطع باشن ...
برطبق گفته هاي قبلي پايه هاي مابين رو High Impedance مي كنيم ...
و مطمئن باشيد كه به كارتون نمي ياد ...
چون وقتي مي تونيد ازش استفاده كنيد ، كه عميقا دركش كرده باشيد ... اما كلا استفاده ي زيادي هم نداره ...
اگر نفهميدي هم مهم نيست ...
نقل قول: و دیگه اینکه در هر دوحالت ورودی pوtri-s اگه جریان اعمال بشه از پورت چی میخونیم؟
منظورت رو نفهميدم ...
موفق باشي.
يا علي.