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

۱. مروری بر ATtiny85
ATtiny85 یک میکروکنترلر جمع وجور ۸ بیتی است که برای وظایف کنترلی ساده طراحی شده است، جایی که فضا، مصرف انرژی و تعداد قطعات باید پایین نگه داشته شوند. فرم فاکتور ۸ پین آن به کاهش اندازه مدار، پیچیدگی سیم کشی و هزینه سیستم کمک می کند و در عین حال عملکرد کنترل پایه را نیز فراهم می کند.
با وجود حضور طولانی مدت در بازار، ATtiny85 به دلیل پایداری، مستندات قوی و سازگاری با ابزارهای توسعه رایج، همچنان به طور گسترده مورد استفاده قرار می گیرد. این سیستم در دامنه ولتاژ وسیعی کار می کند و از گزینه های متعدد کلاک پشتیبانی می کند، که آن را برای طراحی های جمع وجور و کم مصرف که نیازمند رفتار قابل اعتماد و قابل پیش بینی هستند، مناسب می سازد.
۲. مشخصات فنی ATtiny85
| نه. از پین ها | ۸ |
|---|---|
| CPU | AVR ۸ بیتی RISC |
| ولتاژ عملیاتی | ۱.۸ تا ۵.۵ ولت |
| حافظه برنامه | 8K |
| نوع حافظه برنامه | فلش |
| رم | ۵۱۲ بایت |
| EEPROM | ۵۱۲ بایت |
| تعداد کانال های ADC | ۱۰ بیت ۴ |
| مقایسه گر | ۱ |
| بسته ها | PDIP (۸ پین) SOIC (۸ پین) TSSOP (۸ پین) QFN/MLF (۲۰ پین) |
| اسیلاتور | تا ۲۰ مگاهرتز |
| تایمر (۲) | تایمرهای ۸ بیتی |
| قدرت تقویت شده هنگام ریست | بله |
| تایمر افزایش قدرت | بله |
| پین های ورودی/خروجی | ۶ |
| سازنده | میکروچیپ |
| SPI | بله |
| I2C | بله |
| تایمر واچ داگ | بله |
| تشخیص خروجی قهوه ای (BOD) | بله |
| بازنشانی | بله |
| USI (رابط سریال جهانی) | بله |
| حداقل دمای عملیاتی | -۴۰ درجه سانتی گراد |
| حداکثر دمای عملیاتی | ۱۲۵ درجه سانتی گراد |
۳. پیکربندی پین اوت ATtiny85

| پین | نام | وظایف اصلی |
|---|---|---|
| ۱ | PB5 | بازنشانی، GPIO (اگر فیوز تغییر کرده باشد) |
| ۲ | PB3 | GPIO، ADC |
| ۳ | PB4 | GPIO، ADC |
| ۴ | GND | زمین |
| ۵ | PB0 | GPIO، PWM، MOSI |
| ۶ | PB1 | GPIO، PWM، MISO |
| ۷ | PB2 | GPIO، ADC، SCK |
| ۸ | VCC | منبع تغذیه |
ATtiny85 در بسته های PDIP-8 و QFN/MLF-20 عرضه می شود. هر دو مدار داخلی یکسانی دارند، اما آرایش پین ها متفاوت است. بسته PDIP-8 فقط پین های پایه را در معرض دید قرار می دهد و استفاده از آن در مدارهای پایه آسان تر است، در حالی که بسته QFN/MLF-20 شامل پین های اضافی است که به عنوان متصل نشده علامت گذاری شده اند.
بیشتر پین ها از چندین عملکرد پشتیبانی می کنند. یک پین منفرد می تواند به عنوان ورودی یا خروجی دیجیتال عمل کند، سیگنال های آنالوگ را بخواند، خروجی PWM تولید کند یا از ارتباط سریال پشتیبانی کند. این طراحی چندمنظوره باعث می شود ATtiny85 کوچک باقی بماند و در عین حال انعطاف پذیری بیشتری ارائه دهد. پین RESET همچنین می تواند با تغییر تنظیمات فیوز به عنوان پین پیکربندی شود، هرچند این قابلیت بازنشانی خارجی را حذف می کند.
۴. نمودار بلوکی ATtiny85

ATtiny85 بر پایه یک هسته پردازشی AVR ساخته شده که دستورات ذخیره شده در حافظه فلش را اجرا می کند. SRAM برای داده های موقت در حین بهره برداری استفاده می شود، در حالی که EEPROM داده های غیر فرار را ذخیره می کند که باید هنگام قطع برق حفظ شوند. شمارنده برنامه، اشاره گر پشته و ثبات ها جریان دستورالعمل و پردازش داده ها را مدیریت می کنند.
عملکردهای زمان بندی توسط دو تایمر داخلی ۸ بیتی و یک تایمر واچ داگ انجام می شود. واچ داگ با ریست کردن دستگاه در صورت توقف اجرای عادی برنامه، قابلیت اطمینان را افزایش می دهد. یک نوسان ساز داخلی سیگنال کلاک را فراهم می کند و کنترل زمان بندی متمرکز همه ماژول های داخلی را همگام سازی می کند.
عملیات ورودی و خروجی از طریق ثبات های پورت که مستقیما به پایه های خارجی متصل هستند، مدیریت می شوند. این دستگاه همچنین مدارهای آنالوگ مانند ADC و مقایسه گر را یکپارچه می کند. تمام بلوک های داخلی از طریق مسیرهای داده مشترک به هم متصل می شوند که ارتباط کارآمد بین حافظه، منطق پردازش و ورودی/خروجی را ممکن می سازد.
۵. تنظیمات برق، کلاک و فیوز ATtiny85
• ATtiny85 دارای نوسان ساز RC داخلی است که امکان عملکرد بدون قطعات کلاک خارجی را فراهم می کند.
• منابع یا کریستال های کلاک خارجی ممکن است زمانی که دقت زمان بندی بالاتری مورد نیاز باشد، استفاده شوند.
• تنظیمات فیوز منبع ساعت، تأخیر راه اندازی، سطح تشخیص براون اوت و رفتار پین ریست را کنترل می کند.
• کار با سرعت کلاک پایین مصرف برق و نویز الکتریکی را کاهش می دهد.
• تشخیص براون اوت پایداری را در ولتاژهای تغذیه پایین بهبود می بخشد اما کمی مصرف جریان را افزایش می دهد.
۶. محدودیت های GPIO ATtiny85 و عملکرد ایمن
• پین های GPIO برای کنترل سیگنال طراحی شده اند و نباید به بارهای خارجی برق بدهند.
• LEDهایی که به پایه های GPIO متصل می شوند به مقاومت های محدودکننده جریان برای جلوگیری از آسیب نیاز دارند.
• موتورها، رله ها و سایر دستگاه های با جریان بالا باید با استفاده از ترانزیستورهای خارجی یا MOSFETها کنترل شوند.
• مقاومت های پول آپ داخلی می توانند برای ساده سازی اتصالات دکمه و کلید فعال شوند.
• تمام ولتاژهای GPIO باید در محدوده های مشخص باقی بمانند تا از آسیب دائمی جلوگیری شود.
۷. قابلیت های ADC و آنالوگ ATtiny85
| ویژگی | توضیحات |
|---|---|
| رزولوشن ADC | ۱۰ بیتی |
| کانال های ورودی | تا ۴ |
| گزینه های مرجع | VCC یا مرجع داخلی |
| حالت ویژه | خواب ADC با کاهش نویز |
ATtiny85 دارای مبدل آنالوگ به دیجیتال داخلی است که تغییرات سطح ولتاژ را اندازه گیری کرده و آن ها را به مقادیر دیجیتال تبدیل می کند. کیفیت اندازه گیری به ولتاژ مرجع پایدار، اتصالات برق تمیز و مسیر یابی صحیح سیگنال بستگی دارد. استفاده از حالت خواب ADC Noise Reduction به کاهش نویز داخلی در هنگام تبدیل کمک می کند که این امر ثبات خواندن و قابلیت اطمینان کلی را بهبود می بخشد.
۸. ارتباط سریال ATtiny85 با USI
ATtiny85 از ارتباط سریال از طریق رابط سریال جهانی (USI) پشتیبانی می کند. این رابط انعطاف پذیر می تواند از طریق فریمور پیکربندی شود تا در حالت SPI کار کند یا از ارتباطات سبک I²C پشتیبانی کند. با استفاده از یک بلوک سخت افزاری مشترک، دستگاه اندازه جمع وجور را حفظ می کند و در عین حال تبادل داده های پایه را ممکن می سازد.
از آنجا که USI به شدت به کنترل نرم افزاری وابسته است، مدیریت زمان بندی دقیق لازم است. این نرم افزار برای کارهای ارتباطی ساده و کم سرعت مناسب است اما ویژگی های اتوماسیون کمتری نسبت به تجهیزات اختصاصی SPI یا I²C که در میکروکنترلرهای بزرگ تر یافت می شوند، ارائه می دهد.
۹. برنامه نویسی ATtiny85 از طریق IDE آردوینو

• ATtiny85 پس از نصب هسته سازگار با ATtiny می تواند در محیط توسعه آردوینو برنامه ریزی شود.
• برنامه نویسی با استفاده از برنامه نویس USB یا آردوینو که به عنوان ISP تنظیم شده انجام می شود.
• تنظیمات برد در IDE آردوینو باید با سرعت کلاک انتخاب شده و ولتاژ عملیاتی ATtiny85 مطابقت داشته باشد.
• پین های استفاده شده در کد با طرح پین فیزیکی متفاوت هستند، بنابراین باید قبل از سیم کشی به دقت بررسی شوند.
۱۰. مدار ATtiny85 با حداقل قابل اعتماد

این مدار تنها از اجزای پایه مورد نیاز برای عملکرد پایدار استفاده می کند. پین های VCC و GND برق را تأمین می کنند و اجازه می دهند منطق داخلی به درستی کار کند. نوسان ساز داخلی زمان بندی را کنترل می کند، بنابراین نیازی به قطعات کلاک خارجی نیست.
یک LED که از طریق مقاومت ۴۷ Ω متصل است، کنترل خروجی را نشان می دهد و در عین حال هم LED و هم پین GPIO را محافظت می کند. پین RESET همچنان برای برنامه ریزی مجدد یا راه اندازی مجدد دستگاه قابل دسترسی است. با وجود قطعات خارجی بسیار محدود، این ساختار پایه ای ساده و قابل اعتماد برای کاربردهای پایه فراهم می کند.
۱۱. مشکلات رایج ATtiny85 و بررسی های سریع
| مشکل | چه چیزهایی را باید بررسی یا اصلاح کرد؟ |
|---|---|
| بارگذاری کد ناموفق است | سیم کشی ISP را بررسی کنید و تنظیم فیوز RESET را تأیید کنید |
| زمان بندی نادرست | منبع کلاک انتخاب شده و پیکربندی فیوز را تأیید کنید |
| خوانش های ناپایدار ADC | بهبود اتصال زمین و افزودن خازن های جداکننده مناسب |
| خطاهای ارتباطی | بررسی تنظیمات و تنظیمات زمان بندی USI |
| پین های بیش از حد گرم شده | کاهش جریان بار و استفاده از قطعات درایور خارجی |
۱۲. نتیجه گیری
ATtiny85 ویژگی های کنترل هسته ای را در قالبی بسیار جمع وجور ترکیب می کند. مشخصات، عملکرد پین، بلوک های داخلی و تنظیمات توان آن توضیح می دهد که چگونه در مدارهای واقعی کار می کند. با مدیریت صحیح GPIO، استفاده از ADC، تنظیمات سریال و مدار حداقلی، ATtiny85 را می توان به وضوح فهمید و در طراحی های پایدار و کم مصرف به کار برد.
۱۳. پرسش های متداول [پرسش های متداول]
۱۳.۱ ATtiny85 چقدر برق مصرف می کند؟
مصرف برق به ولتاژ تغذیه، سرعت کلاک و ویژگی های فعال بستگی دارد. کاهش سرعت کلاک و غیرفعال کردن تجهیزات جانبی استفاده نشده، مصرف جریان را کاهش می دهد.
۱۳.۲ آیا ATtiny85 به ساعت خارجی نیاز دارد؟
نه. ATtiny85 دارای نوسان ساز RC داخلی است و می تواند بدون قطعات کلاک خارجی کار کند. کلاک خارجی فقط برای دقت زمان بندی بالاتر لازم است.
۱۳.۳ آیا پین RESET می تواند به عنوان یک پین ورودی/خروجی معمولی استفاده شود؟
بله. پین RESET را می توان با تنظیمات فیوز به عنوان GPIO پیکربندی کرد. این کار برنامه نویسی استاندارد ISP را غیرفعال می کند و برای برنامه ریزی مجدد دستگاه نیاز به برنامه نویسی ولتاژ بالا دارد.
۱۳.۴ آیا ATtiny85 می تواند مستقیما موتور یا رله ها را هدایت کند؟
نه. پین های GPIO ATtiny85 فقط برای کنترل سیگنال هستند. موتورها و رله ها باید با استفاده از ترانزیستورهای خارجی یا MOSFETها راه اندازی شوند.
۱۳.۵ چرا خوانش های ADC ATtiny85 ناپایدار هستند؟
خوانش های ناپایدار ADC معمولا به دلیل نویز برق یا زمین ضعیف ایجاد می شوند. افزودن خازن های جداکننده مناسب و استفاده از حالت کاهش نویز ADC پایداری را افزایش می دهد.