از مفاهیم ابتدایی کار با میکروکنترلرها یا میکروپروسسورها، راهاندازی GPIO است. اما گاهی اوقات در آیسیهای خاص هم این واژه را در کارکرد پایهها میبینیم. در این پست به بررسی مفهوم GPIO میپردازیم تا در آینده بهتر بتوانیم در خصوص راهاندازی آن در میکروکنترلرهای STM32 صحبت کنیم.
GPIO چیست؟
یک مدار مجتمع دیجیتال که میتواند میکروکنترلر، FPGA، یا یک آیسی خاص باشد، از طریق پایههای خود با سایر اجزا مدار ارتباط برقرار میکند. به عبارتی -در حالت دیجیتال- با صفر و یک کردن پایهها، اطلاعاتی را به بیرون انتقال میدهد یا با خواندن صفر و یکهایی که به آن اعمال میشود، اطلاعاتی را دریافت میکند.
گاهی این پایهها یک نقش ثابت را برعهده میگیرند. مثلاً فرض کنید پایه یک آیسی به عنوان پایه فرستنده(TX) در پروتکل سریال(USART) تعریف میشود. در این حالت تحت قوانین از پیش تعیین شده USART، رفتار این پایه تغییر میکند. اما گاهی ممکن است نیاز باشد کاربر به صورت مستقیم پایه را یک یا صفر منطقی کند. یا در حالت ورودی مقدار قرارگرفته بر روی آیسی را بخواند. در این صورت پایه باید به عنوان GPIOGeneral Purpose Input/Output تنظیم شود. در واقع در حالت GPIO ما یک نقش کلی (General) به پایه دادهایم که کاربر به شکل دلخواه و مستقیم میتواند وضعیت مورد نظر خود را بر روی پایه لحاظ کند یا مقدار قرار گرفته بر روی آن را بخواند.
از کاربردهای GPIO در حالت خروجی، میتوان به روشن یا خاموش کردن Led و در حالت ورودی، برای فهمیدن وضعیت یک کلید در مدار اشاره کرد. این دو مثال کاربرد بسیار ساده و معمول GPIO را نشان میدهند. هرچند کاربردهای پیچیدهی دیگری نیز میتواند داشته باشد، که به تدریج در آینده از آنها خواهیم گفت.
دیجیلاگیست محلی برای کسانی که به دنیای دیجیتال و آنالوگ علاقه دارند
با تشکر از آموزش های شما