سخت افزار قطعات الکترونیک مدارهای الکترونیک میکروکنترلر AVR

بررسی سطح ولتاژ منطقی در میکروکنترلرها و ماژول‌های مختلف

logic-level-voltage-in-microcontroller-devices-digispark
نوشته شده توسط معین صابری

کلیه میکروکنترلرها اعم از AVR، XTENSA، ARM و…. دارای پایه های ورودی و خروجی به نام  GPIO هستند. به کمک این پایه ها، می توانیم ورودی را به صورت دیجیتال دریافت کرده و یا خروجی دیجیتال تولید نماییم. اما مهم ترین نکته در رابطه با ورودی و خروجی، سطح منطقی ولتاژ است. به عبارت دیگر، در سیستم های دیجیتال که میکروکنترلرها مهم ترین تجهیز دیجیتال به شمار می رود، صفر و یک منطقی در ورودی و خروجی، به کمک سطح ولتاژ تعیین می شوند. در این آموزش، به بررسی رابطه میزان ولتاژ در تعیین صفر و یک پرداخته و در نهایت با ساخت یک گیت منطقی ساده، موضوع را بیشتر شرح خواهیم داد. در ادامه با مرجع تخصصی آردوینو به زبان فارسی ،دیجی اسپارک همراه باشید.

 


مفهوم سطح ولتاژ منطقی


همانطور که بیان شد، تمامی میکروکنترلرها دارای پایه های ورودی و خروجی دیجیتال هستند. در صورتیکه پایه ای به صورت ورودی تعریف شود، مقادیر ۰ و یا یک می پذیرد. همچنین، در صورتیکه این پایه به عنوان خروجی تعریف شود، مقادیر ۰ و یا یک تولید خواهد کرد. اما این مقادیر صفر و یک، به صورت تفسیری از ولتاژ ها تعیین می شوند. به عبارت دیگر، مقدار صفر به ولتاژ صفر ولت و نقادیر یک به ولتاژ ۵ ولت اطلاق می گردد. در حقیقت، ما به صورت فیزیکی، صفر و یک منطقی نداریم، آن چه که به صورت واقعی رخ می دهد، تغییرات ولتاژ است که به عنوان صفر و یک شناخته می شود.

تصویر فوق، یک شمای کلی از بحث این آموزش است. مطابق تصویر فوق، در سیگنال ورودی و خروجی، یک منطقی از ۲٫۷ و ۲ ولت الی ۵ ولت در نظر گرفته می شود. به عبارت دیگر، چنانچه پایه GPIO به عنوان ورودی تعریف شده و ولتاژ اعمال شده بر روی این پایه بیش از ۲ ولت باشد، میکروکنترلر وضعیت این پایه را به عنوان یک منطقی تفسیر خواهد کرد. در طرف دیگر، چنانچه ولتاژ اعمل شده بر روی پایه مورد نظر بین ۰ الی ۰٫۸ ولت باشد، میکروکنترلر آن را به عنوان صفر منطقی تفسیر خواهد کرد.

موضوع فوق، در رابطه با پایه به صورت خروجی نیز صادق است. چنانچه برای پایه مورد نظر صفر تعیین کنیم، این مقدار به صورت ولتاژی بین ۰ تا ۰٫۵ خواهد بود. اگر مقدار این پایه برابر با یک شود، خروجی ولتاژ مقداری در حدود ۲٫۷ الی ۵ خواهد بود. اما مهم ترین نکته در این زمینه، حاشیه نویز است. مطابق تصویر فوق، هم در ورودی و هم در خروجی، بازه ای از ولتاژ وجود دارد که نه صفر منطقی و نه یک منطقی است. به عنوان نمونه، در ورودی، این بازه، بین ۰٫۸ الی ۲ ولت قرار می گیرد. این بازه تحت عنوان حاشیه نویز شناخته می شود. چنانچه چنین ولتاژی در ورودی میکروکنترلر قرار بگیرد، میکروکنترلر به صورت تصادفی صفر و یک منطقی تولید خواهد نمود. بنابراین، نیاز است تا در اعمال ولتاژ ورودی به میکروکنترلر، دقت لازم اعمال شود. همچنین، این مقادیر، برای پروتکل های مختلف ارتباطی نظیر I2C، SPI و UART صادق است. به عنوان مثال، چنانچه سنسوری دارید که پروتکل I2C آن، خروجی ۱٫۸ ولت دارد، برای اتصال آن به میکروکنترلر، می بایست یا از مقاومت های پول آپ استفاده نمایید، یا این که از یک مبدل سطح ولتاژ منطقی(level shifter) بهره ببرید.

 

قطعه فوق، یک نمونه از قطعات مبدل سطح ولتاژ I2C است. به کمک قطعه فوق، می توانید سطح ولتاژ منطقی دو دستگاه که قرار است با هم از طریق پروتکل I2C ارتباط برقرار کنند، اما سطح ولتاژشان متفاوت است، یکسان سازی نمایید.

 


صفر قوی، صفر ضعیف، یک قوی، یک ضعیف


در قسمت پیش، در رابطه با رابطه سطح ولتاژ و سطح منطقی صحبت کردیم. همانطور که در قسمت پیشین بیان شد، صفر منطقی یک بازه ولتاژ و یک منطقی نیز یک بازه ولتاژی را در نظر می گیرد. برای صفر منطقی در ورودی، این بازه بین ۰ تا ۰٫۸ ولت و برای یک منطقی از ۲ الی ۵ ولت است. برای یک منطقی، هرچه این ولتاژ به سمت ۵ حرکت کند، کیفیت سیگنال قوی شده و اصطلاحا به آن یک قوی می گویند. برای صفر منطقی نیز، هرچه این مقدار به سمت صفر حرکت نماید، صفر قوی خواهد شد. به عبارت دیگر، هرچه مقدار ولتاژ از بازه حاشیه نویز فاصله گیرد، کیفیت سیگنال قوی تر خواهد شد.

 


سطح منطقی در ورودی و خروجی آردوینو


بردهای آردویینو، دارای میکروکنترلرهای AVR و نیز ARM هستند. البته این در حالیست که هسته اکثر بردهای آردویینو را میکروکنترلرهای AVR تشکیل می دهند. به عنوان نمونه، برد آردویینو UNO که یکی از پرکاربردترین بردهای الکترونیکی است، دارای میکروکنترلر ATMEGA328P است. همچنین، برد آردویینو MEGA2560، از میکروکنترلر ATMEGA2560 بهره می برد. مطابق دیتاشیت این میکروکنترلر آردویینو UNO، یک منطقی در ورودی از ۶۰ درصد VCC به بالا در نظر گرفته می شود. به عبارت دیگر، چنانچه تغذیه میکروکنترلر ۵ ولت باشد(که در برد آردویینو UNO 5 ولت است)، یک منطقی در ورودی از ۳ ولت تا VCC+0.5 تفسیر می گردد. همچنین، برای صفر منطقی در ورودی، این مقدار از -۰٫۵ الی ۰٫۳ VCC خواهد بود. چنانچه ولتاژ تغذیه ۵ باشد، صفر منطقی از -۰٫۵ الی ۱٫۵ ولت خواهد بود.

یکی دیگر از بردهای پرکاربرد آردویینو، برد آردویینو MEGA2560 با تعداد بیشماری GPIO است. این برد، در حقیقت نوع پیشرفته تر برد آردویینو UNO با تعدا GPIO بسیار بالاتر و میزان حجم حافظه بسیار بیشتر است. این میکروکنترلر، دارای دو بازه تغذیه ۱٫۸ الی ۲٫۴ و ۲٫۴ الی ۵٫۵ است. یک و صفر منطقی در ورودی، برای این میکروکنترلر در جدول زیر با کادر قرمز رنگ مشخص شده است.

 


سطح منطقی در پایه‌های ESP8266 و ESP32


ماژول ESP8266 و ماژول ESP32، دو میکروکنترلر با قابلیت اتصال به شبکه وای فای و اینترنت هستند. از دیگر ویژگی آن ها می توان به برنامه نویسی توسط آردویینو نیز اشاره نمود. ماژول ESP32، در حقیقت نمونه پیشرفته تر ماژول ESP8266 بوده که دارای بلوتوث داخلی و پایه های GPIO بیشتر نسبت به ESP8266 و همچنین فرکانس کاری بیشتر است.

ماژول ESP8266 دارای بازه ولتاژی ۲٫۵ ولت الی ۳٫۶ ولت است. بر همین اساس، یک منطقی در ورودی این ماژول از ۷۵ درصد VCC یا همان تغذیه تا ماکزیمم تغذیه، قرار می گیرد. به عبارت دیگر، چنانچه تغذیه این ماژول را بر روی ۳٫۳ که مقدار معمول آنست قرار دهیم، یک منطقی از ۲٫۴ الی ۳٫۳ ولت خواهد بود. همچنین، صفر منطقی در این ماژول، از ۰٫۳- الی ۰٫۲۵ تغذیه خواهد بود.

در طرف دیگر، ماژول ESP32 با تغذیه از ۲٫۳ الی ۳٫۶ می تواند فعال باشد. در این ماژول، یک منطقی از ۷۵ درصد تغذیه تا تغذیه کامل قرار خواهد گرفت. همچنین، صفر منطقی از ۰٫۳- الی ۰٫۲۵ درصد تغذیه، تفسیر می شود. جدول زیر شرح کامل سطح منطقی ولتاژ را برای ماژول ESP32 نمایش می دهد.

 


جمع بندی


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

 

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

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه