میکرو کنترلر
تعریف میکرو کنترلر
میکروکنترلر ها را می توان یک کامپیوتر کوچک در نظر گرفته که از آن برای مواردی که به قدرت پردازش زیاد نیازی ندارند ، استفاده می شود. از جمله این موارد می توان به وسایل نقلیه ، ربات ها ، دستگاه های اداری ، دستگاه های پیچیده پزشکی ، دستگاه های گیرنده و فرستنده رادیویی ، لوازم خانگی و بسیاری از لوازم دیگر نام برد
برای اطلاع از نحوه ی خرید و فروش فلزیاب روی لینک کلیک کنید.
ساده ترین نوع میکروکنترلر ها می توانند در عملکرد بسیاری از سیستم های الکترو مکانیکی روزمره نقش به سزایی داشته باشند. این وسایل قالبا در روز توسط ما استفاده می شوند و ممکن است ندانیم که تمام کنترل سیستم های آن ها را یک میکروکنترلر ساده و کوچک انجام می دهد. وسایلی مانند یخچال ، تلویزیون ، خودرو ، رادیو ، پرینتر ، فکس و غیره ، از جمله دستگاه هایی هستند که به وسیله یک میکروکنترلر، کنترل می شوند. اگر بخواهیم به طور ساده بگوییم، یک میکرو کنترلر از سه بخش کلی تشکیل شده است : پردازنده ، حافظه و دستگاه های جانبی.
رشد و توسعه
امروزه میکروکنترلر ها بسیار متفاوت تر از آنچه هستند که در مراحل اولیه وجود داشتند و تعداد سازندگان آنها نیز از دو دهه قبل تا به حال رشد بسیاری داشته است. هم اکنون از تولید کنندگان اعظم میکروکنترلر ها میتوان به شرکت های Microchip ، Hitachi ، philips ، maxim ، NXP ، Intel و غیره اشاره نمود.
میکرو کنترلر ATMEGA 32
در زمان حال پیشرفت های بسیاری در زمینه الکترونیک و بسیاری از تکنولوژی های نوین دیگر صورت گرفته و همچنان در حال توسعه می باشند. با وجود وارد شدن نسل های جدید میکروکنترلر های ۱۶-۳۲ و ۶۴ بیتی که میکروکنترلر های قدرتمندی با قابلیت های بالاتری از نظر پردازش هستند ، همچنان میکروکنترلر های ۸ بیتی نقش خودشان را در زمینه بازار الکترونیک دیجیتال ایفا می کنند. از علل آن هم میتوان به فهم ساده کارکرد آن، محبوبیت بسیار بالا، توانایی ساده ترکردن مدارات دیجیتال، قیمت کم در برابر مزیت های ارائه شده و بسیاری از مزیت های دیگر در غالب یک مدار مجتمع، اشاره نمود.
از جمله میکروکنترلر های ۸ بیتی می توان به میکروکنترلرATmega32 اشاره نمود. عدد ۳۲ در نام آن نشانگر مقدار حافظه ۳۲ کیلو بایتی آن برای ذخیره داده ها می باشد. در اینجا میخواهیم به طور خاص در مورد میکرو کنترلر ATmega32 از سری خانواده AVR شرکت Atmel صحبت کنیم. بنابر این شما را با بعضی از مهمترین قسمت های این میکرو کنترلر آشنا می کنیم:
۱. تعداد پایه ها:
Atmega32 دارای ۴۰ پایه می باشد. دو عدد برای تغذیه (پایه شماره ۱۰ برابر ۵+ ولت و پایه ۱۱ برابر زمین)، دو عدد برای اسیلاتور (پایه ۱۲ و ۱۳) ، یکی برای ریست (پایه ۹)، سه عدد برای تامین برق ضروری و ولتاژ مرجع برای قسمت ADC و ۳۲ پایه ورودی/خروجی (۴×۸ I/O pins) می باشد.
۲. پایه های ورودی/خروجی آنالوگ:
ATmega32 دارای این قابلیت است که ورودی های انالوگ را نیز دریافت کند. این دریافت توسط پورت A (PA) صورت میگیرد. پورت A میتواند یا به عنوان ورودی/خروجی دیجیتال خطی قرار گیرد و یا هر پایه از آن به تنهایی میتواند به عنوان ورودی تک کانال به زیرمجموعه ADC مورد استفاده قرار بگیرد. به علاوه پایه های AREF و AVCC و GNDبا هم میتوانند تشکیل یک کانال ADC بدهند.
هیچ یک از پایه های نمیتواند همزمان در خدمت دو هدف متفاوت گرفته شود (به عنوان مثال پورت A در زمانی که ADC داخلی فعال است نمیتوان به عنوان پورت دیجیتال استفاده شود). وظیفه حل ناسازگاری ها و مشکلات مدار به عهده برنامه نویس میباشد. توصیه میشود که برنامه نویسان نگاهی ابتدا به جداول اولیه و تنظیمات داخلی موجود در دیتاشیت ATmega32 بیاندازند.
۳. پایه های ورودی/خروجی دیجیتال:
ATmega32 دارای ۳۲ پایه دیجیتال (۴×۸ I/O pins) قابل تنظیم میباشد.
۴. تایمر/شمارشگر ها:
ATmega32 دارای ۳ تایمر/شمارشگر شامل دو عدد تایمر ۸ بیتی (timer0, timer2) و یک ۱۶ بیتی (timer1) میباشد.
۵. ADC:
در داخل میکروکنترلر ATmega32 یک مبدل آنالوگ به دیجیتال وجود دارد که به روش تقریب پیاپی داده های آنالوگ را به دیجیتال تبدیل میکند. این مبدل دارای هشت تک کانال میباشد. همچنین به صورت ۷ (برای بسته TQFP ) ویا ۲(برای بسته DIP) کانال تفاضلی مورد استفاده قرار میگیرند. منبع نیز میتواند متفاوت باشد. چه به به صورت منبع خارجی یا به صورت منبع داخلی ۲٫۵۶Vمورد استفاده قرار بگیرد. منبع خارجی به پایه AREF متصل می گردد.
یک واحد ADC
۶. گزینه های ارتباطی:
ATmega32 دارای سه واحد ارسال و دریافت اطلاعات می باشد که در خود میکروکنترلر جای گرفته است.
الف) واسط ارتباطی دو سیم (Two Wire Interface)
ب) USART
ج) واسط خارجی سریال (SPI)
۷. مقایسه کننده آنالوگ:
در داخل خود میکرو کنترلر یک مقایسه کننده انالوگ وجود دارد. یک وقفه برای نتیجه مقایسه های مختلف به دست آمده از ورودی های میکرو کنترلر در نظر گرفته شده است.
۸. وقفه خارجی:
۳ وقفه خارجی برای میکرو کنترلر در نظر گرفته شده است که از لحاظ نحوه دریافت قابل تنظیم هستند.
پایه های وقفه خارجی
۹. حافظه:
در داخل میکرو کنترلر حافظه ۳۲ کیلو بایت حافظه قابل برنامه ریزی از نوع فلش وجود دارد، ۱۰۲۴ بایت از نوع EEPROM و ۲ کیلو بایت از نوع SRAM داخلی می باشد. این حافظه ها چرخه مصرفی دارند که پس از گذشت آن امکان خطا در حفظ اطلاعات آن وجود دارد. چرخه نوشتن و پاک شدن حافظه ها برای نوع فلش برابر ۱۰۰۰۰ و برای نوع EEPROM برابر ۱۰۰۰۰۰ می باشد.
۱۰. سیگنال کلاک:
کلاک در میکرو کنترلر از ۱ تا ۱۶ مگا هرتز قابل اجرا است. فرکانس نیز می تواند از منبع خارجی، کریستال سرامیک و یا شبکه R-C باشد. اسیلاتور کالیبره شده RC داخلی نیز می تواند مورد استفاده قرار گیرد.
۱۱. خصوصیات بیشتر:
قابلیت اجرای یک میلیون دستور در ثانیه در سرعت ۱۶ مگا هرتز. اکثر دستورات در یک چرخه زمانی انجام میشود. دو چرخه برای واحد ضرب وجود دارد. ۳۲ × ۸ عدد رجیستر برای اهداف کلی کار در نظر گرفته شده است.
۱۲.عیب یابی:
واسط JTAG برای سرعت دادن به اسکن مرزی در داخل چیپ وجود دارد.
۱۳. برنامه نویسی:
Atmega32 قابلیت برنامه ریزی را چه به صورت برنامه نویسی داخلی توسط واسط سریال و چه با واسط موازی را دارد. برنامه ریزی توسط JTAG نیز قابل انجام است. فقط بایستی دقت کرد که در هنگام برنامه نویسی با JTAG یا SPI بایستی حتما تنظیمات فیوز بیت ها مطابق آن باشد.
نمای کلی از قسمت های یک میکرو کنترلر
تعریف پایه ها:
در جدول زیر می توانید وظایف هر پایه از میکرو کنترلر را به همراه شماره آن مشاهده نمایید.
شماره پایه | نام پایه | توضیحات | توابع پایه |
۱ | (XCK/T0) PB0 | I/O PORTB, Pin 0 | T0: شمارنده خارجی تایمر صفر XCK: ورودی/خروجی کلاک خارجی USART |
۲ | (T1) PB1 | I/O PORTB, Pin 1 | T1: شمارنده خارجی تایمر یک |
۳ | (INT2/AIN0) PB2 | I/O PORTB, Pin 2 | AIN0: ورودی مثبت مقایسه کننده آنالوگ INT2: ورودی وقفه خارجی دو |
۴ | (OC0/AIN1) PB3 | I/O PORTB, Pin 3 | AIN1: ورودی منفی مقایسه کننده آنالوگ OC0 : خروجی مقایسه کننده تایمر ۰ |
۵ | (SS) PB4 | I/O PORTB, Pin 4 | پروگرمر سیستمی ISP پایه های پروتکل SPI |
۶ | (MOSI) PB5 | I/O PORTB, Pin 5 | |
۷ | (MISO) PB6 | I/O PORTB, Pin 6 | |
۸ | (SCK) PB7 | I/O PORTB, Pin 7 | |
۹ | RESET | Reset Pin, Active Low Reset | |
۱۰ | Vcc | Vcc = +5V | |
۱۱ | GND | اتصال به زمین | |
۱۲ | XTAL2 | خروجی تقویت کننده اسیلاتور معکوس | |
۱۳ | XTAL1 | ورودی تقویت کننده اسیلاتور معکوس | |
۱۴ | (RXD) PD0 | I/O PORTD, Pin 0 | پایه های پروتکلUSART |
۱۵ | (TXD) PD1 | I/O PORTD, Pin 1 | |
۱۶ | (INT0) PD2 | I/O PORTD, Pin 2 | وقفه خارجی INT0 |
۱۷ | (INT1) PD3 | I/O PORTD, Pin 3 | وقفه خارجی INT1 |
۱۸ | (OC1B) PD4 | I/O PORTD, Pin 4 | کانال های خروجی PWM |
۱۹ | (OC1A) PD5 | I/O PORTD, Pin 5 | |
۲۰ | (ICP) PD6 | I/O PORTD, Pin 6 | Timer/Counter1 Input Capture Pin ورودی تایمر/شمارنده ۱ |
۲۱ | PD7 (OC2) | I/O PORTD, Pin 7 | Timer/Counter2 Output Compare Match Output خروجی مقایسه کننده تایمر/شمارنده ۲ |
۲۲ | PC0 (SCL) | I/O PORTC, Pin 0 | پایه های پروتکلTWI |
۲۳ | PC1 (SDA) | I/O PORTC, Pin 1 | |
۲۴ | PC2 (TCK) | I/O PORTC, Pin 2 | پایه های پروتکلJTAG |
۲۵ | PC3 (TMS) | I/O PORTC, Pin 3 | |
۲۶ | PC4 (TDO) | I/O PORTC, Pin 4 | |
۲۷ | PC5 (TDI) | I/O PORTC, Pin 5 | |
۲۸ | PC6 (TOSC1) | I/O PORTC, Pin 6 | پایه شماره ۱اسیلاتور تایمر |
۲۹ | PC7 (TOSC2) | I/O PORTC, Pin 7 | پایه شماره ۲اسیلاتور تایمر |
۳۰ | AVcc | منبع تغذیه مبدل دیجیتال ADC | |
۳۱ | GND | اتصال به زمین | |
۳۲ | AREF | پایه مرجع آنالوگ برای مبدل دیجیتال ADC | |
۳۳ | PA7 (ADC7) | I/O PORTA, Pin 7 | پایه شماره ۷ ADC |
۳۴ | PA6 (ADC6) | I/O PORTA, Pin 6 | پایه شماره ۶ ADC |
۳۵ | PA5 (ADC5) | I/O PORTA, Pin 5 | پایه شماره ۵ ADC |
۳۶ | PA4 (ADC4) | I/O PORTA, Pin 4 | پایه شماره ۴ ADC |
۳۷ | PA3 (ADC3) | I/O PORTA, Pin 3 | پایه شماره ۳ ADC |
۳۸ | PA2 (ADC2) | I/O PORTA, Pin 2 | پایه شماره ۲ ADC |
۳۹ | PA1 (ADC1) | I/O PORTA, Pin 1 | پایه شماره ۱ ADC |
۴۰ | PA0 (ADC0) | I/O PORTA, Pin 0 | پایه شماره ۰ ADC |