آموزش مقدماتی AVR – بخش سوم | امکانات میکروکنترلر atmega16

امکانات و ویژگی‌های ATmega16

سلام! با بخش سوم آموزش مقدماتی AVR با شما همراه هستیم. در این مطلب قراره در مورد امکانات میکروکنترلر atmega16 به صورت کاملا کاربردی و خلاصه صحبت کنیم. از جمله مباحث مطرح شده توی این قسمت، کلاکینگ، پین های ورودی و خروجی I/O، حافظه EEPROM، تایمر کانتر ها (Timer Counter)، مقایسه کننده آنالوگ و … هست. با بررسی و شرح کامل این موارد همراه ما باشید.

امکانات میکروکنترلر atmega16

کلاکینگ

مبحث کلاکینگ که دقیقا مطلب بعدی ما خواهد بود، همیشه قسمت مهمی از آموزش‌های میکروکنترلرها بوده است. این میکروکنترلر حداکثر می‌تواند تا 16 مگاهرتز کلاک داشته باشد. از طرفی انتخاب یک کلاک مشخص، مزیت‌ها، معایب و همچنین پارامترهایی دارد که در جلسات آینده بیشتر در مورد آن بحث می‌کنیم.

کلاکینگ CPU

پین های ورودی و خروجی IO

یکی از خوبی‌های AVR آزاد بودن کاربر در کنترل پایه‌های ورودی و خروجی است؛ به طوری که هر وقت شما بخواهید، با سرعت بسیار زیادی می‌توانید یک پایه را از ورودی به خروجی تغییر دهید. همچنین یکی از خصوصیات بارز آن، داشتن مقاومت pullup بر روی هر پایه است. توضیح اینکه مقاومت pullup چیست را به جلسات آینده موکول میکنیم.

پایه های ATmega16

حافظه EEPROM

این حافظه برخلاف حافظه RAM برای نگهداری اطلاعات مهمی استفاده می‌شود که در طول اجرا برنامه توسط میکروکنترلر ایجاد شده است. لذا برخلاف رم، موقت نبوده و می‌تواند تا موقعی که بصورت مستقیم دستور پاک شدن اطلاعات را نداده‌ایم، آن‌ها را در خود نگه دارد. کار کردن با EEPROM همانند کار کردن با RAM است اما باید به نکات مربوط به آن توجه کرد.

تایمر کانتر ها (Timer Counter)

هرکجا که به آموزش‌های AVR سر بزنید، یکی از اصلی‌ترین موضوع‌ها، بحث زیبا و شیرین تایمر و کانتر است. همانطور که از اسم آن‌ها پیداست، برای زمان‌گیری و یا شمارش استفاده می‌شوند. در میکروکنترلر atmega16 سه تایمر با شماره‌های 0 و 1 و 2 وجود دارد. هر کدام از این تایمرها ویژگی، دقت و مزیت خود را دارند. به عنوان مثال، ویژگی ممتاز تایمر 2، قابلیت تنظیم بصورت RTC است که می‌تواند بصورت دقیق زمان را اندازه گیری کند. یا اینکه تایمر 1 دقت به مراتب بالاتری نسبت به دو تایمر دیگر دارد. در مورد هر یک از این تایمر کانترها بصورت جداگانه بحث خواهد شد.

تایمر زیبا

رابط سریال USART

در تمام میکروکنترلرها رابطی به نام USART وجود دارد که همه آن را به اسم رابط سریال می‌شناسند. این اشتباه است. چون به غیر از USART رابط‌های دیگری هم هستند که سریال بوده و اطلاعات را پشت سر هم دریافت یا ارسال می‌کنند. بهتر است وقتی اسم ارتباط سریال می‌آید، نوع آن هم گفته شود. رابط USART یکی از درگاه‌های ارتباطی میکروکنترلر atmega16 است که می‌توان با آن به ماژول‌ها و سنسورهای گوناگون متصل شد و به وسیله‌ی آن‌ها تبادلِ داده انجام داد.

پروتکل ارتباطی USART

رابط سریال SPI و I2C

این دو پروتکل هم سریال هستند و هرکدام نسبت به دیگری مزیت‌هایی دارد. رابط SPI بیشتر در مواردی استفاده می‌شود که احتیاج به سرعت بالایی برای جابجایی اطلاعات داشته باشیم؛ به طوری که حتی می‌توان دیتاها را با سرعت 8Mbps جابجا کرد. رابط I2C در مواردی کابرد دارد که تنها بخواهیم با دو رشته سیم به تبادل بپردازیم. یکی از خصوصیات بارز I2C امکان شبکه شدن چندین ماژول یا میکرو با یکدیگر است.

مقایسه کننده آنالوگ

همانطور که مشخص است نام آن مقایسه کردن است. اما چه چیزی را مقایسه می‌کند؟ واضح است: ولتاژ. با مقایسه سطح ولتاژ دو نقطه، خروجی‌های متفاوتی به ما می‌دهد که می‌توان مطابق هر کدام تصمیمی را اتخاذ کرد. این بخش بیشتر در مداراتی که سنسورهای آن خروجی آنالوگ می‌دهد، برای مقایسه استفاده می‌شود.

مقایسه کننده آنالوگ در ATmega16

واحد آنالوگ به دیجیتال یا ADC

در مداراتی که احتیاج باشد بازه‌ای از ولتاژ توسط میکروکنترلر قابل فهم باشد، اول باید آن بازه تبدیل به ارقام دیجیتالی گردد و سپس مورد تحلیل و پردازش قرار گیرد. به همین منظور میکروهایی در اندازه‌ی میکروکنترلر atmega16 ، یک واحد و در بعضی دیگر دو واحد ADC وجود دارد که کار آنها فقط تبدیل ولتاژ آنالوگ به یک عدد دیجیتال است.

فرایند تبدیل آنالوگ به دیجیتال و برعکس

در شکل بالا در اولین مرحله سیگنال آنالوگ به دیجیتال تبدیل شده است. در میکروکنترلرهای سری xmega علاوه بر واحد ADC یک واحد دیگر به نام DAC وجود دارد که کار آن دقیقا برعکس ADC است. بنابراین در مرحله دوم این واحد دیجیتال را به آنالوگ تبدیل می‌کند. در نهایت هم اگر با مدارات مخابراتی آشنایی داشته باشید با گذاشتن یک فیلتر می‌توان موج اولیه را بازسازی کرد. این پروسه، تشریح یک فرستنده و گیرنده‌ی دیجیتال است.

دوستان تمام موارد بالا از مهمترین قسمت‌های میکروکنترلر atmega16 بودند و علاوه‌بر آنها مواردی چون تایمر نگهبان و وقفه ها نیز در جلسات پیش رو گفته می‌شوند.جلسه بعدی مبحث منابع کلاک خواخد بود از اینکه همراه ما بودید، متشکریم.

برای آموزش‌های بیشتر با رزدینو همراه باشید.

محمد نصر

محمد نصر

محمد نصر هستم. 9 سال سابقه کار در حوزه الکترونیک و همینطور برنامه‌نویسی میکروکنترلر به صورت پیشرفته دارم. سعی میکنم هر روز چیزهای جدید یاد بگیرم و خوشحال میشم با شما به اشتراک بگذارم.

2 پاسخ

  1. سلام من خیلی به الکترونیک علاقه هستم و برای پروژه ای که دارم از شما راهنمایی و کمک میخواهم لطف کنید با بنده در صورت امکان تماس بگیرید 09124146359

  2. سلام،خیلی مفیدبوداطلاعات خوبی بدست آوردم،سپاسگذارم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  مزایای عضویت در رزدینو :

✔️ دسترسی به فایل های دانلودی

✔️ دریافت پشتیبانی برای محصولات

✔️ مشاهده تمام مطالب کاملا رایگان

✔️ دسترسی آسان به آپدیت محصولات

✔️ بهره مندی از تخفیف های ویژه کاربران