معماری
خانه / آموزش مجازی / میکروکنترلر / دوره آشنایی و تحلیل میکروکنترلر AVR / جلسه AVR,1.2 : معرفی و بررسی امکانات میکروکنترلر AVR

جلسه AVR,1.2 : معرفی و بررسی امکانات میکروکنترلر AVR

دوره آموزشی برنامه نویسی میکروکنترلر AVR ، فصل ۱ : آشنایی و برنامه نویسی با میکروکنترلر ، جلسه ۲ : بررسی سخت افزار و امکانات میکروکنترلر AVR

معماری و تکنولوژی ساخت

میکروکنترلر های AVR از سری محصولات شرکت ATMEL است.

معماری ساخت میکروکنترلر AVR ، کاهش مجموعه دستورالعمل های کامپیوتر است که به اختصار RISC گفته می شود.

تکنولوژی ساخت تراشه ها CMOS است که خود باعث کاهش مصرف توان شده است.

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

بررسی سخت افزار و امکانات میکروکنترلر AVR

برای آشنایی با امکانات میکروکنترلر AVR ، باید اول سخت افزار این تراشه را بشناسید.

شکل زیر نمایی کلی از یک تراشه AVR را به تصویر کشیده است که در مورد قسمت های پرکاربرد آن بحث خواهیم کرد.

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

سرعت پردازش

سرعت پردازش اطلاعات یا فرکانس کار سیستم در واحد MIPS و MHZ (مگا هرتز) بین ۰ تا ۲۰MHZ متغیر است.

ولتاژ کاری

مقدار ولتاژ تغذیه که نسبت نوع تراشه بین ۱٫۵ تا ۵٫۵ و یا ۲٫۷ تا ۵٫۵ و ۴ تا ۵٫۵ ولت متغییر است.

هرچه ولتاژ کاری کمتر باشد به همان نسبت فرکانس کاری میکرو محدود می شود.

شماره تراشه هایی که در آخر آن ها حرف L قرار گرته است، ولتاژ و فرکانس کاری پایینی دارند، مانند ATmega8L .

رجیستر

تمامی میکروکنترلر ها دارای ۳۲ رجیستر ۸ بیتی (R0 تا R31) هستند که همگی با CPU به طور مستقیم در ارتباط اند.

معمولا اکثر تنظیمات میکروکنترلر در رجیستر ها ذخیره می شوند.

هر رجیستر منبع ذخیره سازی ۸ بیتی اطلاعات می باشد.

حافظه FLASH

تراشه های AVR دارای حافظه ای برای نوشتن برنامه با نام Flash است. حافظه Flash تراشه AVR دارای قابلیت ۱۰,۰۰۰ بار نوشتن و پاک کردن می باشد. برای دسترسی به این حافظه از پروگرامر استفاده می شود. این حافظه قابلیت قفل شدن دارد.

حافظه EEPROM

حافظه ای که می توان برای نگه داری بانک اطلاعاتی از آن استفاده کرد و قابل برنامه ریزی داخلی است. این حافظه در تراشه AVR دارای قابلیت ۱۰۰,۰۰۰ مرتبه نوشتن و پاک کردن می باشد. برای دسترسی به این حافظه هم از پروگرامر استفاده می شود و هم در برنامه می توان اطلاعات را به آن وارد کرد. قابلیت حفاظت در مواقعی که برنامه ای جدید در FLASH پروگرام می کنید را داراست.

حافظه SRAM

حافظه SRAM یک RAM استاتیک بوده و بر خلافه رجیستر ها به صورت مستقیم از طریق CPU قابل دسترسی نیستند. بیشترین استفاده SRAM در پشته Stack است.

اطلاعات بیشتر در این باره خارج از سطح این آموزش بوده و فعلا نیاز نیست. می توانید با جستجوی SRAM و Stack مطالب مرتبط بیشتری را فرا بگیرید.

پورت های I/O

برای تبادل اطلاعات با وسایل جانبی تراشه های AVR دارای پورت هایی هستند، که به صورت دو طرفه (ورودی و خروجی) که قابل انتخاب توسط برنامه نویس بوده و اکثرا ۸ بیتی هستند (هر پورت دارای ۸ پایه است) .

ممکن است هر کدام از این پایه ها قابلیت های دیگری نیز داشته باشند که در ادامه توضیح خواهیم داد.

کلمه I/O مخفف Input/Output یا ورودی/خروجی می باشد.

همانطور که در تصویر زیر می بینید میکروکنترلر ATmega32 دارای ۴ پورت I/O با نام های A و B و C و D می باشد.

پورت A از پایه ۳۳ تا پایه ۴۰ به صورت PA0 الی PA7 نامگذاری شده که دارای ۸ پایه است.

پروتکل ارتباطی SPI یا سریال

ارتباطی با پروتکل سریال (پر سرعت) سه سیمه که  برای عملیات هایی همچون پروگرام کردن و برنامه ریزی کردن حافظه های FLASH و EEPROM و یا ارتباط با یک میکروکنترلر دیگر به صورت MASTER-SLAVE مورد استفاده قرار می گیرد. پین های مورد استفاده برای این ارتباط به صورت زیر است:

MISO : ورودی داده MASTER و خروجی داده SLAVE

MOSI : ورودی داده SLAVE و خروجی داده MASTER

SCK : کلاک ورودی و خروجی

SS : انتخاب MASTER یا SLAVE بودن در ارتباط دو میکرو

RESET : استفاده در پروگرام کردن تراشه برای ری استارت کردن میکروکنترلر

پروتکل ارتباطی UART با پایه های RXD/TXD

ارتباطی سریال و قابل برنامه ریزی که پین های مورد استفاده آن در دو حالت نرم افزاری و سخت افزاری قابل تغییر است.

این ارتباط بیشتر برای ارتباط با کامپیوتر طراحی شده اما منطق کار این ارتباط TTL است، در صورتی که ورودی سریال کامپیوتر از استاندارد RS-232 استفاده می کند. برای این ارتباط باید از تراشه های مبدل سطح ولتاژ استفاده شود.

سطح ولتاژ در منطق TTL بین ۰ تا ۵V بوده و در پروتکل RS-232 بین -۱۵V و +۱۵V می باشد.

پایه های مورد استفاده در این ارتباط TXD و RXD می باشد.

پروتکل ارتباطی I2C با پایه های SDA/SCL

پروتکل ارتباطی سریال I2C ساخته شده توسط شرکت PHILIPS که در آن تنها از دو سیم برای ارتباط میان میکرو با وسایل جانبی استفاده شده است.

پین های مورد استفاده این گروتکل در AVR به نام SCL و SDA است.

I2C

پروتکل ارتباطی ۱WIRE

یکی از جدید ترین پروتکل های استفاده شده در میکروکنترلر های AVR، که توسط شرکت Dallas طراحی شده است.

برعکس بقیه پروتکل ها، محدودیت کابل استفاده شده آن تا متر افزایش یافته است.

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

پروتکل ارتباطی استاندارد IEEE که در ایران کمتر استفاده می شود و قابلیت برنامه ریزی حافظه ها و فیوزبیت ها را دارد. یکی از مشخصه های قابل توجه این ارتباط این است که در زمان حالت کار میکروکنترلر هم می توان از آن استفاده کرده و حافظه ها و فیوزبیت ها را تغییر داد.

 تامیر – کانتر

زمان سنجی و شمارش با سرعت های قابل تنظیم و مد های مختلف از جمله COMPARE و CAPTURE و PWM، که به دو نوع ۸ بیتی و ۱۶ بیتی در تراشه قرار گرفته است.

PWM

مخفف مدولاسیون پهنای پالس (PULSE WIDTH MODULATOR) که در این نوع مدولاسیون میزان دامنه سیگنال ثابت بوده و پهنای پالس ها تغییر می کند. PWM یکی از حالت های کاری تایمر – کانتر بوده و پرکاربرد ترین موارد استفاده آن در کنترل سرعت موتور های DC می باشد.

مبدل آنالوگ به دیجیتال ۱۰ بیتی (ADC)

تراشه های AVR دارای مبدل داخلی با وضوح ۱۰ بیت و به صورت مالتی پلکس شده تا ۸ و در نمونه های جدید تا ۱۶ ورودی (مانند پورت A) بوده و با سرعت تبدیل بالای بین ۶۰ تا ۲۶۰us می تواند ولتاژ بین ۰ تا Vcc را به مقدار عددی ۰ تا ۱۰۲۳ تبدیل کند.

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

دو پین از پایه های تراشه AVR به نام های AIN0 و AIN1 از نظر میزان ولتاژ (نسبت به زمین) روی آن ها مقایسه شده و در صورتی که برابر بودن پایه ای به نام ACO (خروجی مقایسه کننده) صفر می شود.

ولتاژ های ورودی این پایه تا VCC مجاز خواهد بود.

 

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

 

Real-Time Clock (RTC)

در صورتی که به یک ساعت دقیق و اتوماتیک در یک پروژه نیاز باشد از RTC ستفاده می شود. RTC یکی از حالت های Timer2 بوده که تنها در بعضی از میکروکنترلر ها نظیر ATmega32 و ATmega128 قابل اجراست. RTC نیازمند اتصال جداگانه کریستال ساعت (کریستال ۳۲,۷۶۸HZ) به میکروکنترلر دارد.

WATCHDOG

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

از WATCHDOG برای ریست شدن اتوماتیک میکرو هنگام هنگ کردن یا اجرا نشدن به موقع کد ها (Time Out) استفاده می شود.

 حالت های SLEEP

انواع حالت های SLEEP که هر نوع میکروکنترلر  تعدادی از آن را دارا بوده و مشخص کننده حالت های کار یک میکرو در زمان های بیکاری و یا خاموشی و یا گوش به زنگ (Stand By) است.

وقفه های داخلی و خارجی

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

برای این منظور از وقفه استفاده شده و عمل شمارش پایه کانتر انجام شده و بعد از آن CPU به ادامه نوشتن عدد در حافظه می پردازد.

میکروکنترلر های AVR دارای انواع وقفه های داخلی و خارجی می باشند. وقفه های خارجی که با نام های INT0 و INT1 و در بعضی میکرو ها تا INT7 وجود دارد. اما تقریبا تمام امکانات داخلی میکرو دارای وقفه می باشد. مانند تایمر – کانتر ها و پروتکل های ارتباطی و مقایسه کننده ها و مبدل آنالوگ به دیجیتال و …

تنظیمات وقفه های داخلی بصورت یک رجیستر ذخیره می شود.

فیوزبیت ها

هر سیستمی برای شروع به کار نیاز به تنظیمات اولیه دارد. برای مثال یک مادربرد کامپیوتر برای تنظیم شدن خود با سرعت CPU کلید هایی را روی خود دارد که می توان سرعت BUS مادربرد را با CPU یکی کرد و بسیاری موارد دیگر.

در تراشه های AVR برای تنظیمات اولیه بخشی به نام فیوزبیت وجود دارد که برخی از تنظیمات این بخش عبارتند از:

FSTRT-SUT : تنظیم مدت زمان تاخیر در روشن شدن میکرو

RSTDISBL : انتخاب پایه RESET به جای I/O ، در بعضی از میکروکنترلر هایی که تعداد پین ها کمتر است.

SPIEN : انتخاب قطع یا وصل ارتباط سریال SPI

BODLEVEL : تنظیم ریست شدن در هنگام افت ولتاژ تغذیه

EESAVE : انتخاب پاک شدن حافظه EEPROM در زمان برنامه ریزی و پروگرام کردن میکرو

JTAGEN : فعال و غیر فعال سازی ارتباط JTAG

BOOTRST : انتخاب مقدار حافظه BOOT

WDTON : فعال و غیر فعال سازی WATCHDOG

M103 : تطبیق دادن بعضی میکرو ها با یکدیگر

CKSEL : تنظیم کلاک سیستم (سرعت کار CPU و انتخاب کریستال داخلی یا خارجی)

3 دیدگاه

  1. معرفی تون عالی بود واقعا برای یه نفر که تازه وارد بود عالیه

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

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

قالب وردپرس