بردهای آردوینو Uno، Nano و Pro Mini توسط تراشه میکروکنترلر ATmega32P تغذیه میشوند. در اینجا چیزی است که باید بدانید.
ATmega328P یکی از محبوب ترین میکروکنترلرهای سازگار با DIY در جهان است. این میکروکنترلر تک تراشه ای برای کسانی که به سمت الکترونیک DIY می روند انتخاب خوبی است و در آخرین نسل آردوینو Unos (همراه با سایر بردهای میکروکنترلر) یافت می شود. اما قبل از اینکه بتوانید از آردوینو خود استفاده کنید چه چیزهایی باید در مورد ATmega328P بدانید؟
میکروکنترلر ATmega328P چیست؟
ATmega328P که توسط Atmel ساخته شده است، یک میکروکنترلر تک تراشه ای است که بر اساس یک هسته پردازشگر RISC 8 بیتی است. این میکروکنترلر کوچک کم مصرف و مقرون به صرفه است، و آن را به انتخابی عالی برای کاربردهای مختلف، از جمله پروژه های DIY که می خواهید بسازید، تبدیل می کند.
تراشه ATmega328P سالهاست که به عنوان یکی از بخش های برجسته آردوینو معرفی شده است. Arduino Uno از این میکروکنترلر به همراه بردهای Arduino Pro Mini و Arduino Nano استفاده می کند. این باعث می شود که در فضای الکترونیکی DIY بسیار رایج باشد و اگر قصد استفاده از این بردها را دارید، ارزش یادگیری در مورد قابلیت های آن را دارد.
بردهای آردوینو با استفاده از میکروکنترلر ATmega328P
ATmega328P روی بردهای میکروکنترلر آردوینو Uno و آردوینو نانو، دو تا از محبوب ترین محصولات آردوینو، یافت می شود. اگر میخواهید بدون برد میکروکنترلر آن را آزمایش کنید، میتوانید این تراشه را بهعنوان یک محصول مستقل نیز خریداری کنید، اگرچه این یک راه چالش برانگیز برای شروع خواهد بود. برای آشنایی با انواع بردهای میکروکنترلر آردوینو می توانید از راهنمای مفید ما استفاده کنید.
مشخصات صفحه داده ATmega328P
ATmega328P یک دیتاشیت غافلگیرکننده برای چنین تراشه کوچکی دارد. قبل از شروع کدنویسی برای میکروکنترلر خود باید از تعدادی مشخصات آگاه باشید. ما این موارد را تقسیم کرده ایم تا درک محدودیت ها و محدودیت های این تراشه را آسان تر کنیم. بیایید با مشخصات اولیه شروع کنیم تا به شما ایده دهیم که چگونه ATmega328P شکل می گیرد.
- CPU: AVR 8 بیتی با حداکثر سرعت 20 مگاهرتز
- حافظه فلش: 32 کیلوبایت فلش روی برد
- SRAM: 2 کیلوبایت
- EEPROM: 1 کیلوبایت
- تعداد پین: 28 یا 32 (بسته به نوع بسته بندی)
- کانال های لمسی خازنی: 16
- حداکثر پین ورودی/خروجی: 23
- وقفه های خارجی: 2
هر یک از این مشخصات مختلف نقش خاص خود را در مناسب ساختن ATmega328P برای استفاده با بردهای توسعه مانند آردوینو ایفا می کند. اما در واقع هر کدام از آنها به چه معناست؟
- CPU: CPU در تراشه ATmega328P یک CPU 8 بیتی مبتنی بر AVR RISC است. RISC مخفف “کامپیوتر مجموعه دستورالعمل کاهش یافته” است و نوعی پردازنده است که برای ساده کردن وظایف فردی که یک کامپیوتر انجام می دهد طراحی شده است. در مقابل، CPU اینتل یا AMD رایانه شخصی شما احتمالاً یک پردازنده CISC (کامپیوتر مجموعه دستورات پیچیده) است.
- فلش مموری: فلش نوعی حافظه غیر فرار است که برای ذخیره سازی دائمی استفاده می شود. ATmega328P تنها به 32 کیلوبایت حافظه فلش مجهز شده است، اگرچه این برای کدهای فراوان کافی است. در وب سایت MUO می توانید با تفاوت های حافظه فرار و غیر فرار آشنا شوید.
- SRAM: SRAM مخفف «حافظه دسترسی تصادفی استاتیک» است. این حافظه همان نقش RAM را در رایانه شما ایفا می کند و تراشه ATmega328P را با حافظه موقتی برای ذخیره داده ها و متغیرها در هنگام اجرای کد فراهم می کند.
- EEPROM: این یک نوع حافظه قابل پاک کردن بایت است که برای ذخیره مقادیر کمی داده استفاده می شود. برخلاف SRAM، EEPROM غیر فرار است و زمانی که تراشه ATmega328P روشن نباشد، داده های خود را حفظ می کند.
نمودار Pinout ATmega328P
نمودار pinout ATmega328P در بالا پین های مختلف تراشه DIP ATmega328P و پین های برد Arduino Uno را نشان می دهد. این باید به شما ایده خوبی از نحوه کار این تراشه و برد میکروکنترلر محبوب با یکدیگر بدهد.
ATmega328P یک تراشه همه کاره با کاربردهای متنوع است. به این ترتیب، تعدادی بسته بندی مختلف برای این تراشه در دسترس است، همگی در اشکال مختلف و با انواع مختلف سرب. TQFP (بسته چهار تخت)، MLF/VQFN (میکرو لید فریم یا چهار تخت بدون سرنخ) و DIP (بسته درون خطی دوگانه) رایج ترین این بسته ها هستند.
بردهای آردوینو Uno اصلی از نوع DIP تراشه ATmega328P (معروف به ATmega328P-PU) استفاده می کنند و این بدان معنی است که تراشه را می توان برداشت و جایگزین کرد (برخلاف ATmega328P-AU). انواع دیگر بردهای آردوینو از تراشه های مختلف ATmega از نوع بسته چهار تخت استفاده می کنند که قابل حذف نیستند.
محدودیت های ATmega328P و Arduino Uno
مانند هر تراشه میکروکنترلر، ATmega328P دارای محدودیتهای خاصی است که باید قبل از تصمیم به کار با آن در نظر گرفته شود. این محدودیت ها برای بردهای آردوینو که از این تراشه ها استفاده می کنند نیز اعمال می شود.
بودجه SRAM پایین
تراشه ATmega328P با 2 کیلوبایت SRAM عرضه می شود و این برای اکثر پروژه ها کافی است. برای کسانی که میخواهند از چندین کتابخانه و کد با متغیرهای زیاد استفاده کنند، ممکن است به راحتی از SRAM استفاده شود و باعث از کار افتادن برنامه شما شود.
برنامه نویسانی که با بردهای آردوینو کار می کنند به لطف استفاده از C++ کنترل زیادی بر مدیریت حافظه دارند. متن، تصاویر، و سایر دارایی های از پیش ساخته شده را می توان در حافظه فلش ذخیره کرد تا راهی برای آزاد کردن حافظه اضافی برای برنامه هایی که در حال اجرا هستید، و بودجه SRAM شما را بهبود بخشد.
قدرت پردازش محدود
پردازنده 20 هرتزی موجود در تراشه ATmega328P برای اجرای کدهای ساده عالی است، اما قدرت پردازش محدودی را برای برنامه های پیچیده ارائه می دهد. این بدان معنی است که برای مواردی مانند تشخیص گفتار، یادگیری عمیق یا سایر کارهای رایج میکروکنترلر مناسب نیست.
حل این مشکل با ATmega328P امکان پذیر نیست. اگر به قدرت بیشتری نیاز دارید، باید به دنبال برد میکروکنترلر مناسب تری برای کاری باشید که می خواهید انجام دهید، اما گزینه های زیادی در بازار وجود دارد که به شما امکان می دهد به آنچه نیاز دارید دسترسی داشته باشید.
مزایای ATmega328P و Arduino Uno
در کنار محدودیت های ATmega328P، مزایایی نیز با استفاده از تراشه ای مانند این وجود دارد. اینها اغلب از محدودیت های میکروکنترلر برای پروژه های ساده بیشتر است، به خصوص اگر تازه کار با میکروکنترلرها را شروع کرده اید.
- مقرون به صرفه بودن: تراشه ATmega328P مقرون به صرفه است و یافتن آن آسان است و آن را برای پروژه های کم هزینه DIY ایده آل می کند. به لطف ارزش بالای این تراشه، Arduino Uno یک برد بسیار مقرون به صرفه است.
- سهولت استفاده: ATmega328P که با توجه به مصرف کنندگان ساخته شده است، در مقایسه با سایر تراشه های میکروکنترلر به راحتی قابل استفاده است و آن را برای کسانی که پروژه های DIY خود را شروع می کنند ایده آل می کند.
- تراشه مستقل: تراشه ATmega328P را می توان به تنهایی یا با یک برد میکروکنترلر مانند Arduino Uno استفاده کرد.
آشنایی با ATmega328P و Arduino Uno
منابع زیادی در سراسر وب وجود دارد که برای کمک به شما برای شروع کار با Arduino Uno و ATmega328P که از آن استفاده میکند، طراحی شدهاند. ارزش آن را دارد که قبل از شروع پروژه بعدی میکروکنترلر، زمانی را صرف یادگیری در مورد این سخت افزار کنید و به خودتان ایده ای از محدودیت ها و چالش هایی که ممکن است در این راه با آن ها روبرو شوید، بدهید.