میکرو کنترلر در واقع یک کامپیوتر کوچک است که تمام قسمت های پردازنده، رم، هارد، بایوس، مبدل آنالوگ به دیجیتال و … را در خود جای داده است و می توان آن را به تنهایی در هر پروژه ای استفاده کرد.
میکروکنترلرها با توجه به قابلیت هایی که دارند به انواع و اقسام مختلفی تقسیم بندی می شوند.
هر کدام از این قسمت ها برای استفاده در یک پروژه خاصی کاربرد خواهد داشت. به همین دلیل نمیتوان گفت که برخی از میکروها خیلی ضعیف هستند و کاربردی ندارند بلکه شاید برای یک پروژه کوچک بسیار مناسب باشد.
جالب است بدانید که هارد و BIOS در میکروکنترلرها به اسم و شکل دیگری بیان می شود. در اصل به آنها EPROM یا EEPROM می گویند که این ها کار هر دو مورد یعنی هارد و بایوس را انجام می دهند.
امروزه انواع گوناگونی از میکروکنترلرها، توسط شرکت های مختلف تولید شده اند که تعداد بسیاری از آنها در یک تقسیم بندی کلی به سه گروه PIC ، میکرو AVR و ARM تقسیم میشوند.
معمولا بسیاری از ویژگی ها و قابلیت های این میکروها مشابه هم هستند. فقط در مواردی همچون سرعت کارکرد، خطای پردازنده، مصرف توان، قیمت و … با هم متفاوت هستند.
میکروکنترلرهای AVR در چهار گروه زیر تقسیم بندی میشوند.
TINY
AT90S
ATMEGA
ATXMEGA
این خانواده منحصر به میکروکنترلرهای با تعداد پایه محدود و کم بوده که جهت کاهش قیمت و ابعاد کوچک برای پروژه های کاربران، بهینه سازی شده اند.
برخی از خصوصیات خانواده TINY عبارتند از:
سایز بسیار کوچک نسبت به خانواده های دیگر
مصرف توان کم
قیمت مناسب
حافظه فلش کم (در حدود 0.5 تا 16 کیلو بایت)
مبدل آنالوگ به دیجیتال (محدود)
پورت سریال (نرم افزاری)
معمولا تعداد پایه های خانواده TINY بین 6 تا 14 پایه میباشد.
میکروکنترلر خانواده AT90S
خانواده AT90S قابلیت ها و امکانات بیشتری نسبت به خانواده قبلی دارد.
البته این خانواده معمولا کاربرد زیادی نداشته و چندان مورد استقبال مهندسان قرار نگرفته است.
علت آن هم این است که تفاوت قیمتی زیادی با سریهای ATMEGA ندارند و مهندسان ترجیح میدهند از خانواده ATMEGA استفاده کنند.
خانواده ATMEGA از انواع میکرو AVR دارای قابلیت های بالاتری نسبت به خانواده های قبلی بوده و امروزه به طور وسیع مورد استفاده قرار می گیرند.
این نوع از میکروها به جهت عرضه فراوان، از قیمت بسیار مناسبی برخوردار بوده و برای انجام پروژه های صنعتی کوچک نیز استفاده میشود.
برخی از خصوصیات خانواده ATMEGA عبارتند از:
مصرف توان کم
کارایی بالا
حافظه فلش در حدود 8 تا 128 کیلو بایت
مبدل آنالوگ به دیجیتال
دارای دستورالعمل های زیاد که اکثرا در یک پالس کلاک اجرا می شوند
سرعت کارکرد بالا
قابلیت ارتباط پورت JTAG
دارای تایمر
RTC داخلی
پورت سریال
پورت SPI
خانواده ATMEGA خود دارای مدل های معروفی است که مواردی مانند ATMEGA8 ، ATMEGA16 ، ATMEGA32 ، ATMEGA64 و ATMEGA128 را می توان نام برد.
از بین این مدل ها پرکاربردترین آنها ATMEGA8 و ATMEGA32 هستند.
مدل ATMEGA8 تعداد 28 پایه داشته که به غیر از چند پایهی مربوط به تغذیه، بقیه پایهها را میتوان برنامه ریزی و از آنها استفاده کرد. همچنین حافظه قابل برنامه ریزی آن 8 کیلو بایت است که برای یک پروژه متوسط کافی است.
مدل ATMEGA32 تعداد 40 پایه دارد.
اگر پایه های تغذیه میکروکنترلر را کم کنیم بقیه پایه ها را میتوان برنامه ریزی و از آنها استفاده کرد. همچنین حافظه قابل برنامه ریزی آن 32 کیلو بایت است که برای پروژه های نسبتا بزرگ مناسب است.
همانطور که دیدید اساس تفاوت در مدل های یک خانواده بر روی تعداد پایه های قابل استفاده، حافظه برنامه ریزی و یک سری امکانات مانند تعداد تایمر یا کانتر، تعداد پورتهای مبدل آنالوگ به دیجیتال و … می باشد.
خانواده ATXMEGA بیشترین امکانات را در بین خانواده های میکروکنترلرهای AVR دارد و از لحاظ قدرت پردازنده و کارایی بسیار بالا می باشد.
در بازار ایران این خانواده از میکروکنترلرهای AVR به دلیل قیمت تا حدودی بالا مورد استقبال مهندسین قرار نگرفت.
البته منظور از قیمت بالا، گران بودن آن نیست؛ بلکه میتوان با همان قیمت میکروکنترلرهای دیگری که توسط شرکت های دیگر تولید می شوند را تهیه کرد.
برای مثال، یک جایگزین مناسب میکروکنترلرهای ARM خواهند بود.
ولی باید توجه داشت که برنامه نوسی میکروکنترلرهای شرکت های سازنده مختلف با هم متفاوت است.
به طور مثال، اگر در پروژه ای از میکروکنترلرهای AVR خانواده ATMEGA استفاده کردید و بعداً نیاز به ارتقاع داشتید، بهتر است انتخاب شما از میکروکنترلرهای خانواده ATXMEGA باشد. استفاده از میکروکنترلرهای شرکت های دیگر نظیر میکرو ARM نیاز به برنامه نویسی مجدد با زبان وساختار جدید خواهد داشت.
با توجه به اینکه در بازار مدلها و سری های مختلفی از میکروکنترلرها وجود دارد برای ساخت و اجرای یک پروژه، ابتدا باید تمام موارد و امکاناتی که نیاز است را در نظر بگیریم و با توجه به آن میکروکنترلر را انتخاب کنیم.
خب حالا قصد داریم پروژه ای در نرم افزار PROTEUS طراحی کنیم
که کد نویسی اون در نرم افزار کد ویژن هم با همدیگه یاد میگیریم
اول از همه نرم افزار PROTEUS رو دانلود می کنیم ( لینک آخرین نسخه قرار داده شده)
بعد نرم افزار CODEVISION را دانلود می کنیم.
در لینک زیر مراحل انجام پروژه و چگونگی طراحی مدار توضیح داده شده است
با تشکر.
امیرحسین حجابی - دانشگاه صدرا