سلام، امیدوارم حالتون خوب باشه در این آموزش قصد داریم تا اطلاعاتمون رو در مورد، جزئیات میکروکنترلر ATtiny85 به اشتراک بگذاریم. این یک میکروکنترلر AVR 8بیتی است که توسط Microchip معرفی شده است و CPU بر اساس معماری RISC ساخته شده است. این تراشه دارای رابط 8 پین (PDIP) است و در زمره میکروکنترلرهای کم مصرف قرار می گیرد. تایمر نگهبان قابل برنامه ریزی و مبدل ADC 10بیتی به میکرو اضافه شده است که آن را برای رابط سنسور و بازنشانی مجدد برنامه در صورت گیرکردن در یک حلقه بی نهایت مناسب می کند. میکروچیپ با ارائه ماژول های میکروکنترلر بی عیب و نقص که مستقیماً یا از راه دور به اتوماسیون و سیستم های یکپارچه متصل هستند، می تواند نیازهای کوچک را برآورده کند. با اختراع این ماژول های کوچک داخلی، توسعه پروژه های الکترونیکی بیش از هر زمان دیگری آسان و بدون دردسر شده است. در این آموزش، تمام موارد مربوط به ATtiny85، پایه بندی، توضیحات پین، ویژگیهای اصلی، بلوک دیاگرام و برنامههای کاربردی را پوشش خواهیم داد.
مقدمه ای بر ATtiny85
ATtiny85 یک میکروکنترلر AVR 8بیتی است که دارای رابط بسته بندی 8 پایه است و عمدتاً در پروژه های اتوماسیون و آردوینو استفاده می شود.
CPU مبتنی بر معماری RISC است و به طور عمده کنترل کننده کم توان نامیده می شود که برای برنامه های بلادرنگ که می توانند با حداقل توان کار کنند مناسب است.
حافظه برنامه 8 کیلوبایت است در حالی که EEPROM و RAM هر دو دارای فضای حافظه حدود 512 بایت هستند. این فضاهای حافظه برای ذخیره تعداد دستورات در قالب کد بسیار مفید هستند.
این تراشه تنها دارای یک پورت به نام پورت B می باشد که یک پورت دو جهته است و شامل 6 پین ورودی/خروجی با مقاومت های بالاکش (پول آپ) داخلی می باشد. بافرهای خروجی در PORTB با ویژگیهای درایو متقارن طراحی شدهاند که هم قابلیت سینک و هم سورس بالایی دارند. توجه به این نکته مهم است که پین های پورت B به صورت خارجی پایین کش (pull-down) می شوند و در حالت عادی در حالت سوم (Tri-state) هستند که در صورت فعال شدن مقاومت های بالاکش، جریان را سورس می کنند.
تراشه دارای وقفه های خارجی و داخلی است، در حالی که 32 رجیستر با هدف عمومی در دستگاه گنجانده شده است که عمدتاً به آنها فضاهای نگهداری داده می گویند.
دو تایمر 8 بیتی به تراشه اضافه شده است که در آن یک تایمر با حالتهای مقایسه ارائه میشود و میتوان از آن به دو صورت استفاده کرد، یعنی تایمر و همچنین شمارنده، در حالی که دیگری تایمر / شمارنده پرسرعت است.
این تراشه دارای حالت های ذخیره انرژی انتخابی نرم افزاری است که برای کاربردهایی که با حداقل توان کار می کنند بسیار مفید است.
مانند سایر کنترلرهای معرفی شده توسط Microchip، این ماژول دارای مبدل ADC 10بیتی است که 4 کانال آنالوگ را در خود جای داده است که به رابط سنسور و تبدیل سیگنال های آنالوگ به دیجیتال کمک می کند.
این تراشه کوچک در چهار بسته به نامهای PDIP، SOIC، TSSOP و QFN موجود است که سه عدد اول دارای بسته بندی 8 پایه هستند و آخرین دارای 20 پایه است.
ارتباطات دیجیتال مانند I2C و SPI را می توان به راحتی با استفاده از این ماژول استفاده کرد که به توسعه ارتباط با دستگاه های بیرونی و جانبی کمک می کند.
1. ویژگی های ATtiny85
جدول زیر ویژگی های کامل ATtiny85 را نشان می دهد.
ATtiny85 ویژگی های | |
No. of Pins | 8 |
CPU | RISC 8-Bit AVR |
Operating Voltage | 1.8 to 5.5 V |
Program Memory | 8K |
Program Memory Type | Flash |
RAM | 512 Bytes |
EEPROM | 512 بایت |
ADC Number of ADC Channels | 4 تا 10 بیتی |
Comparator | 1 |
Packages | PDIP (8-Pin) SOIC (8-Pin) TSSOP (8-Pin) QFN/MLF (20-Pin) |
Oscillator | حداکثر 20 MHz |
Timer (2) | 8-Bit تایمرهای |
Enhanced Power on Reset | بلی |
Power Up Timer | بلی |
I/O Pins | 6 |
Manufacturer | میکروچیپ |
SPI | بلی |
I2C | بلی |
Watchdog Timer | بلی |
Brown out detect (BOD) | بلی |
Reset | بلی |
USI (Universal Serial Interface) | بلی |
Minimum Operating Temperature | -40 C |
Maximum Operating Temperature | 125 C |
2. پایه بندی ATtiny85 و توضیحات
پایه ها
شکل زیر پایه های ATtiny85 را نشان می دهد.
پد پایین موجود روی برد باید به زمین لحیم شود.
DNC علامت گذاری شده روی پایه ها مخفف don't connect است. یعنی نیازی نیست به جایی متصل شود.
توضیحات پایه ها
جدول زیر شرح پایه ها را نشان می دهد که به شما در درک عملکردهای اصلی مرتبط با هر پین کمک می کند.
شماره پایه | نام پایه | توصیف پایه |
1 | PB5 PCINT5 RESET ADC0 dW | I/O Bidirectional pin Interrupt Reset Analog Channel 0 Define Word |
2 | PB3 PCINT3 XTAL1 CLKI OC1B ADC3 | I/O Bidirectional pin Interrupt Crystal Oscillator Pin 1 Clock Analog Channel 3 |
3 | PB4 PCINT4 XTAL2 CLKO OC1B ADC2 | I/O Bidirectional pin Interrupt Crystal Oscillator Pin 2 Clock Analog Channel 2 |
5 | PB0 MOSI DI SDA AIN0 OC0A OC1A AREF PCINT0 | I/O Bidirectional pin SPI Serial Data (I2C) Analog Input Compare Register Voltage Reference Interrupt |
6 | PB1 MISO DO AIN1 OC0B OC1A PCINT1 | I/O Bidirectional pin SPI Serial Data (I2C) Analog Input Compare Register Interrupt |
7 | PB2 SCK USCK SCL ADC1 T0 PCINT2 | I/O Bidirectional pin Serial Clock Line (I2C) Analog Channel 1 Timer 0 Interrupt |
4 | GND | Ground Pin |
8 | Vcc | Voltage Supply Pin |
3. عملکرد اصلی ATtiny85
ATtiny85 می تواند تعدادی عملکرد را روی یک تراشه انجام دهد. برخی از پین ها دارای توانایی به کارگیری بیش از یک عملکرد هستند. در ادامه به کارکردهای اصلی این ماژول می پردازیم.
تایمرها
دو تایمر روی تراشه وجود دارد که به ایجاد تأخیر در روند اجرای عملکرد خاصی هنگام کار در حالت تایمر کمک می کند. در حالت شمارنده، از این تایمرها برای شمارش تعداد بازه در یک تابع خاص در داخل کنترلر استفاده می شود. حالت تایمر سیکل دستورالعمل را افزایش می دهد در حالی که حالت شمارنده با افزایش تعداد لبه بالا و پایین پایه استفاده می شود.
ارتباطات SPI
ATtiny85 دارای یک رابط جانبی سریال (SPI) است که عمدتاً برای ارتباط بین میکروکنترلر و سایر دستگاههای جانبی مانند کارتهای SD، سنسورها و شیفت رجیستر استفاده میشود.
این رابط شامل کلاک پالس و خطوط داده جداگانه با افزودن یک خط انتخابی برای انتخاب دستگاه مورد نیاز برای ارتباط است. این ارتباط به هر دو دستگاه متصل اجازه می دهد تا مسیر ارتباطی یکسانی را تحت یک پروتکل ارتباطی تعیین کنند.
ارتباط I2C
پروتکل I2C به تراشه اضافه شده است که عمدتاً پروتکل دو سیمه است که برای اتصال دستگاه های کم سرعت مانند مبدل های ADC و DAC، رابط های I/O و میکروکنترلرها استفاده می شود. دو سیم که با نامهای ساعت سریال (SCL) و دادههای سریال (SDA) شناخته میشوند، بخش اصلی این پروتکل ارتباطی هستند. خط SCL مانند یک سیگنال ساعت عمل می کند که توسط دستگاه اصلی تولید می شود و انتقال داده بین دستگاه ها را همگام می کند. در حالی که خط SDA برای حمل داده های مورد نیاز استفاده می شود.
آشکارسازی کاهش سطح ولتاژ (BOD)
BOD یک عملکرد بسیار مفید است که به تنظیم مجدد کنترلر هنگامی که Vdd (تغذیه ولتاژ) به زیر ولتاژ آستانه افت می کند، کمک می کند. محدوده های ولتاژ چندگانه برای ایمن سازی ماژول پس از کاهش ولتاژ تغذیه ارائه شده است.
اینتراپت (وقفه)
وقفه نقش حیاتی در مواقع اضطراری ایفا می کند که عملکرد اصلی را در حالت تعلیق قرار می دهد و دستورالعمل های مورد نیاز را که در آن زمان لازم است اجرا می کند. پس از اجرای وقفه، کد در حال اجرا، کنترلر را به برنامه اصلی برمی گرداند.
مبدل ADC
ماژول ADC یک امکان ارزشمند در تراشه است که آن را با سنسورها سازگار می کند. این یک ماژول 10 بیتی است که شامل 4 کانال است که کمی کمتر از تعداد کانال های موجود در ماژول های معرفی شده توسط Microchip است که کم و بیش دارای 7 یا 12 کانال هستند.
4. رابط حافظه ATtiny85
حافظه این تراشه کوچک بر اساس فناوری با چگالی بالا Atmel طراحی شده است که اساساً ماهیتی غیرفرار دارد. حافظه برنامه را می توان از طریق رابط سریال SPI با دو روش برنامه ریزی مجدد کرد، یعنی کد بوت روی تراشه یا برنامه نویس حافظه غیر فرار. اجرای برنامه اصلی عمدتاً در داخل CPU انجام می شود که نقشی حیاتی برای دسترسی به حافظه ها و انجام محاسبات بر اساس تعداد دستورالعمل های گنجانده شده در کنترلر ایفا می کند. این ماژول در دسته کنترلرهای AVR قرار می گیرد که بر اساس معماری هاروارد ساخته شده اند و دارای مکان های جداگانه ای هستند که هم برای حافظه برنامه و هم برای حافظه داده در نظر گرفته شده است.
حافظه برنامه (ROM)
حافظه برنامه، که اساساً یک حافظه فلش قابل برنامه ریزی مجدد است، به روشی ساده کار می کند، جایی که دستور بعدی پس از فراخوانی و اجرا در صف قرار می گیرد. این به اجرای دستورالعمل ها با فواصل منظم در هر سیکل ساعت کمک می کند. حافظه فلش با فضای حافظه 8K ارائه می شود و دارای توانایی در حدود 10000 بار نوشتن/پاک کردن است (یعنی می توانید دستورالعمل ها را 10000 بار روی این برد پاک کرده و بنویسید). شمارنده برنامه موجود در فلش مموری 12 بیتی است که می تواند 4096 مکان حافظه برنامه را آدرس دهی کند.
حافظه داده (RAM)
حافظه داده با فضای حافظه 512 بایت عرضه می شود و مکان های حافظه را از سه طریق ذخیره می کند، یعنی 32 مکان اول به رجیسترهای عمومی اختصاص دارند، 64 مکان بعدی برای حافظه استاندارد I/O رزرو شده و بقیه برای SRAM داده های داخلی استفاده می شود. حافظه داده به پنج حالت آدرس دهی به نام های زیر طبقه بندی می شود
مستقیم،
غیر مستقیم
غیر مستقیم با جابجایی
غیر مستقیم با پیش کاهش
غیر مستقیم با پس از افزایش
در Register عمومی، ثبات های از R26 تا R31 به ثبات های اشاره گر با آدرس دهی غیر مستقیم اشاره می کنند. در حالی که آدرس دهی مستقیم کل فضای داده را پوشش می دهد. به طور مشابه، حالت غیرمستقیم با جابجایی، 63 مکان آدرس را با استفاده از آدرس پایه که توسط رجیستر Y- یا Z قابل دسترسی است، پوشش می دهد.
رجیسترهای آدرس دهی X، Y و Z را با فواصل منظم زمانی وقتیکه حالتهای آدرسدهی غیرمستقیم با افزایش و پیش کاهش لایهبندی میشوند، افزایش یا کاهش می یابند.
حافظه داده EEPROM
این حافظه دارای 512 بایت فضای حافظه است که به عنوان یک فضای داده جداگانه طراحی و چیده شده است که می توان به تک بایت ها دسترسی داشت. این تراشه دارای استقامت حافظه در حدود 100000 چرخه نوشتن/پاک کردن است که ده برابر بیشتر از حافظه برنامه است.
5. کامپایلرهای ATtiny85
کامپایلرهای زیادی برای کامپایل کردن کد در میکروکنترلر AVR وجود دارد. بعضی ها بهتر از بقیه هستند. قبل از اینکه کامپایلری برای کنترلر خود انتخاب کنید، مطمئن شوید که استفاده از آن آسان است و برای نیازها و نیازهای شما مناسب است.
اگر در مرحله یادگیری هستید، IAR بهترین کامپایلر برای AVR است. این بسیار حرفه ای است، اگرچه گران قیمت است، اما با ارائه کیفیت بی عیب و نقص است و از همه، خانواده های MCU پشتیبانی می کند.
یکی دیگر از کامپایلرهای AVR، GCC برای AVR است که برای ویندوز و لینوکس به صورت رایگان در دسترس است. میتواند دستورالعملها را با سرعت مناسبی جمعآوری کند، با این حال، اگر تازهکار هستید و برای اولین بار با کنترلر دست به کار میشوید، ممکن است یادگیری آن سخت باشد.
ImageCraft گزینه خوبی برای شروع است که جایگاه مناسبی در بازار پیدا کرده است، اما فقدان ویژگی های رابط کاربری گرافیکی، کار با این کامپایلر را در جایی که ویرایشگر و مدیریت پروژه بسیار دلهره آور است و می تواند شما را در شروع کار در رکود کامل قرار دهد، دشوار می کند.
CodeVision ساده ترین کامپایلر دیگری است که همراه با CodeWizard ارائه می شود و به شروع زودتر یک پروژه جدید کمک می کند. همچنین از نظر اقتصادی نیز بسیار مقرون به صرفه است.
6. بلوک دیاگرام ATtiny85
بلوک دیاگرام برای تجسم عملکرد اصلی موجود در داخل کنترلرها و نحوه ارتباط هر ویژگی و جزء با یکدیگر بسیار مفید است. شکل زیر بلوک دیاگرام ATtiny85 را نشان می دهد.
32 رجیستر مستقیماً با ALU (واحد منطق حسابی) مرتبط هستند که به دسترسی به دو ثبات مستقل با استفاده از دستورالعمل واحد کمک می کند.
7. رابط ATtiny85 با آردوینو
هر دو ATtiny85 و Arduino در صورت اتصال، می توانند به راحتی اتوماسیون پروژه شما را هدایت کنند و به اجرای تعدادی دستورالعمل کمک کنند. می توانید ATtiny85 را با آردوینو به روش زیر متصل کنید.
پین آردوینو 10 ...................... پین 1 ATtiny85
پین آردوینو 11 ...................... پین 5 ATtiny85
پین 12 آردوینو ..................... پین 6 ATtiny85
پین 13 آردوینو ...................... پین 7 ATtiny85
آردوینو +5 ولت..................... ATtiny85 پین 8
Arduino Ground ..................... ATtiny85 Pin 4
8. کاربردها
این عمدتا در برنامه های بلادرنگ مرتبط با اتوماسیون صنعتی استفاده می شود.
پروژه های سیستم های یکپارچه از این ماژول برای درایو اتوماسیون استفاده می کنند.
می توان آن را در رباتیک به کار گرفت و گنجاند.
فناوری هوانوردی طیف گسترده ای از کنترلرهای AVR را در خود جای داده است که هواپیماهای کواد کوپتر و فضایی را پوشش می دهد.
سیستم های مانیتورینگ و مدیریت توان از این ماژول استفاده می کنند.
دیدگاه خود را بنویسید