میکروکنترلر ATtiny24A یک تراشه یک میکروکنترلر کوچک اما قدرتمند از خانواده AVR شرکت Microchip (قبلاً Atmel) است که برای پروژههای کوچک و کاربردهایی که به تعداد پینهای کمتر و مصرف انرژی پایین نیاز دارند، بسیار مناسب است.
مشخصات کلیدی ATtiny24A
ATtiny24A بر اساس معماری RISC (مجموعه دستورالعملهای کاهشیافته) طراحی شده است، که به آن اجازه میدهد اکثر دستورالعملها را در یک چرخه کلاک اجرا کند. این ویژگی باعث سرعت بالا و کارایی مناسب در پردازش میشود. مشخصات اصلی آن شامل موارد زیر است:
- حافظه: دارای 2 کیلوبایت حافظه Flash برای ذخیره برنامه، 128 بایت حافظه EEPROM برای ذخیره دادههای دائمی و 128 بایت حافظه SRAM برای دادههای موقت.
- پینها: این تراشه دارای 14 پین است که 12 پین آن برای ورودی/خروجی (I/O) قابل برنامهریزی هستند.
- ولتاژ کاری: میتواند در محدوده وسیعی از 1.8 تا 5.5 ولت کار کند، که آن را برای پروژههای باتریخور یا با ولتاژ پایین مناسب میسازد.
- فرکانس کلاک: حداکثر فرکانس کاری آن 20 مگاهرتز است که میتواند از اسیلاتور داخلی یا خارجی تأمین شود.
- مبدل آنالوگ به دیجیتال (ADC): دارای یک ADC 10 بیتی است که میتواند تا 8 ورودی آنالوگ را به مقادیر دیجیتال تبدیل کند. این قابلیت برای خواندن سنسورهای آنالوگ مانند سنسورهای دما یا نور بسیار مفید است.
- تایمر/کانتر: دارای دو تایمر/کانتر است: یک تایمر 8 بیتی و یک تایمر 16 بیتی. این تایمرها برای کارهایی مانند تولید تأخیرهای زمانی دقیق، تولید سیگنال PWM و شمارش رویدادها استفاده میشوند.
کاربردها
به دلیل اندازه کوچک، مصرف انرژی پایین و ویژگیهای مناسب، ATtiny24A در طیف وسیعی از پروژهها استفاده میشود:
- الکترونیک مصرفی: در دستگاههای ساده مانند کنترلهای از راه دور، اسباببازیها و گجتهای کوچک.
- اتوماسیون خانگی: برای کنترل روشنایی، سنسورهای دما و رطوبت و سایر سیستمهای هوشمند.
- رباتیک: در رباتهای کوچک برای کنترل موتورها و خواندن اطلاعات از سنسورها.
- پروژههای DIY و آموزشی: به دلیل قیمت پایین و سهولت برنامهنویسی، یک گزینه عالی برای علاقهمندان به الکترونیک و یادگیری میکروکنترلرها است.
برنامهنویسی و ابزارها
برای برنامهنویسی ATtiny24A، میتوانید از محیطهای توسعه (IDE) مختلفی مانند Arduino IDE یا Microchip Studio (که قبلاً Atmel Studio نام داشت) استفاده کنید.
- Arduino IDE: با نصب یک پکیج سختافزاری اضافی (Board Package)، میتوانید این تراشه را با زبان برنامهنویسی سادهتر و کتابخانههای آماده آردوینو برنامهنویسی کنید.
- Microchip Studio: این محیط توسعه حرفهایتر، امکان برنامهنویسی با زبانهای C و Assembly را فراهم میکند و کنترل بیشتری بر روی رجیسترهای میکروکنترلر به شما میدهد.
برای انتقال برنامه به تراشه، از یک برنامهریز (Programmer) مانند USBasp یا AVRISP mkII استفاده میشود. این دستگاهها از طریق پینهای ISP (In-System Programming) به ATtiny24A متصل شده و کد کامپایل شده را روی حافظه فلش آن بارگذاری میکنند.
این میکروکنترلر دارای چندین پورت ارتباطی است که برای اتصال به سایر دستگاهها و ماژولها استفاده میشود:
1. پورت سریال (UART)
یکی از مهمترین پروتکلهای ارتباطی است که ATtiny24A میتواند آن را شبیهسازی کند. برخلاف بسیاری از میکروکنترلرهای بزرگتر که یک ماژول UART سختافزاری اختصاصی دارند، در ATtiny24A باید از طریق نرمافزار (software) و با استفاده از پایههای ورودی/خروجی عمومی، این پروتکل را پیادهسازی کرد. این کار با دقت در زمانبندی ارسال و دریافت بیتها انجام میشود.
- کاربرد: برای ارتباط با کامپیوتر از طریق مبدل USB به سریال (مانند FTDI)، ماژولهای بلوتوث، ماژولهای GPS و نمایشگرهای LCD سریال.
2. پروتکل SPI (Serial Peripheral Interface)
این پروتکل یک روش ارتباطی همزمان (synchronous) است که در آن یک دستگاه به عنوان استاد (Master) و یک یا چند دستگاه به عنوان برده (Slave) عمل میکنند. ATtiny24A دارای یک واحد سختافزاری SPI است که سرعت و کارایی بالایی در ارتباط فراهم میکند.
- پینها: این پروتکل از سه یا چهار پین اصلی استفاده میکند:
- MOSI (Master Out Slave In): برای ارسال داده از Master به Slave.
- MISO (Master In Slave Out): برای دریافت داده از Slave به Master.
- SCK (Serial Clock): پین کلاک که توسط Master تولید میشود و همزمانی ارتباط را تضمین میکند.
- (SS) Slave Select: پینی که برای انتخاب یک Slave خاص از میان چند Slave استفاده میشود.
- کاربرد: برای اتصال به سنسورهای SPI، کارتهای حافظه SD، نمایشگرهای OLED و شیفت رجیسترها.
3. پروتکل I2C (Inter-Integrated Circuit)
این پروتکل که به نام TWI (Two-Wire Interface) در تراشههای AVR شناخته میشود، یک پروتکل ارتباطی دو سیمه است. ATtiny24A دارای یک واحد سختافزاری TWI است که امکان ارتباط با چندین دستگاه را تنها با دو سیم فراهم میکند.
- پینها:
- SDA (Serial Data): خط داده برای ارسال و دریافت اطلاعات.
- SCL (Serial Clock): خط کلاک که توسط Master برای همزمانی تولید میشود.
- کاربرد: برای اتصال به سنسورهای I2C (مانند سنسورهای دما و فشار)، ماژولهای RTC (ساعت زمان واقعی) و EEPROM خارجی.
4. پروتکل One-Wire
این پروتکل به وسیله شرکت Maxim Integrated توسعه داده شده و همانطور که از نامش پیداست، تنها از یک پین برای ارتباط دو طرفه استفاده میکند. این پروتکل نیاز به سختافزار اختصاصی ندارد و معمولاً به صورت نرمافزاری پیادهسازی میشود.
- کاربرد: به طور گسترده برای ارتباط با سنسورهای دما مانند DS18B20 استفاده میشود.
با استفاده از این پروتکلها، ATtiny24A میتواند با طیف وسیعی از سنسورها، نمایشگرها، و سایر میکروکنترلرها ارتباط برقرار کند و پروژههای پیچیدهتری را مدیریت نماید.
📌 پایههای مورد نیاز برای پروگرام ISP
برای پروگرام کردن با USBasp یا AVRISP mkII (یا حتی Arduino as ISP)، فقط 6 پایه لازم داریم:
| پایه میکرو (ATtiny24A SOIC-14) | نام عملکرد | اتصال به پروگرامر |
|---|---|---|
| Pin 1 → VCC | تغذیه مثبت (2.7 تا 5V) | VCC پروگرامر |
| Pin 14 → GND | زمین | GND پروگرامر |
| Pin 7 (PA6 → MOSI/DI) | داده ورودی به میکرو | MOSI پروگرامر |
| Pin 8 (PA5 → MISO/DO) | داده خروجی از میکرو | MISO پروگرامر |
| Pin 9 (PA4 → SCK/USCK) | کلاک سریال | SCK پروگرامر |
| Pin 4 (PB3 → RESET) | ریست برای ورود به مود پروگرام | RESET پروگرامر |
سایت آموزشی الکترونیک و کامپیوتر اوپن مقاله های آموزشی الکترونیک و کامپیوتر و فن آوری