تو برنامه نویسی AVR ساختن یه فلاشر هشتایی عین Hello world میمونه و اکثر tutorial ها اولین پروژه شون همینه! منم در آینده نزدیک از همین پروژه شروع می کنم ولی برای شروع باید چنتا نرم افزار رو نصب و راه اندازی کرد. با ما همراه باشید که کلی کار داریم!

زبان مورد علاقه من برای کار با AVR زبان C هست و از محیط (IDE) Atmel Studio استفاده می کنم. پیدا کردن این نرم افزار تو سایت اصلیش یکم سخته چون تحریمه ولی از سایت های ایرانی به سادگی میشه آخرین نسخه رو دانلود کرد. در حال حاضر من از نسخه 7.0 استفاده می کنم. برای شبیه سازی هم از نرم افزار proteus و برای پروگرام کردن (اگر می خواهید نمونه واقعی رو تست کنید) از یک پروگرامر USBasp و نرم افزار avrdude-6.3 و در بعضی مواقع (مثلا برای تنظیم فیوز بیت ها که در آینده بهش میرسیم) از eXtreme Burner - AVR استفاده می کنم چون رابط گرافیکی داره که کار رو کمی راحت تر می کنه.

شاید براتون جالب باشه که در ساخت Atmel Studio از Visual Studio استفاده شده.

نصب Atmel Studio هیچ نکته خواصی نداره و به سادگی قابل انجامه، پس از توضیح اون خودداری می کنم.

مقدمات کار با Atmel Studio

برای ساخت یک پروژه جدید در Atmel Studio بعد از اجرا شدن نرم افزار (و شاید بعد از گذشتن از تنظیمات اولیه مثل تم و ... که من تم دارک رو دوست دارم) در صفحه Start Page که صفحه اولیه برنامه هست بر روی گزینه New Project... کلیک کنید تا پنجره ی زیر باز شود.

از آنجا که می خواهیم به زبان C برنامه نویسی کنیم پس گزینه GCC C Exacutable Project رو انتخاب کنید و در text-box اول از سه تا، یک نام برای پروژه خود انتخاب کنید (مثل 8-LED-flasher) (عموما نیازی به تغییر کادر های بعدی نیست).در مرحله بعد باید میکروکنترلر یا مدار آزمایشی مورد نظرتون رو انتخاب کنید. من معمولا از ATmega8 استفاده می کنم. ممکن هست در بازار به میکرو هایی با شماره ATmega8a یا ATmega8s بر بخورید. این مدل های مختلف از ATmega8 تفاوت چندان مهمی با هم ندارند و فرق های جزئی آن ها برای کار های مهم تر و بزرگ تر هست. در واقع در این مرحله و برای این پروژه و پروژه های بعدی من، می تونید هر کدوم از این مدل ها رو انتخاب کنید و با هم سازگار هست.

 

حال بعد از انتخاب device شما آماده کد زدن هستید. ادیتور باز خواهد شد و شما می توانید کد های برنامه را بنویسید. Atmel Studio برای راحتی شما بخش هایی عمومی که تقریبا تمام برنامه نویس ها قبل از هر چی می نویسن رو براتون می نویسه و کمی کمکتون می کنه:

* معمولا در بخش ابتدایی که بعد از روشن شدن هست رجیستر ها رو انجام میدیم که بعدا در موردش توضیح می دم.

بعد از کد زدن شما نیاز دارید تا برنامه را Build(Compile) کنید. برای اینکار در Atmel Studio می تونید از کلید F7 و یا از Build>Build Solution استفاده کنید. حال اگر به مسیر پروژه که در مرحله اول در Text-box دوم انتخاب شده مراجعه کنید در پوشه Debug یک فایل Hex. می بینیم که برای پروگرام کردن میکرو به آن نیاز داریم.

مقدمات کار با Proteus

این نرم افزار برای بسیاری از شبیه سازی ها مناسب است. ولی در مطالب من در این موضوع بیشتر به شبیه سازی مدار هایی با میکرو ها نیاز داریم. برای نصب نرم افزار می تونید اون رو از سایت های ایرانی به همراه لایسنس پکیج ها دانلود کنید. از اونجا که این نرم افزار در حد حرفه ای هست خود نرم افزار دارای اطلاعات نسبتا کاملی از قطعات الکتریکی هست تا علاوه بر شبیه سازی بتونه در زمینه ساخت و طراحی مدار های چاپی از دیاگرام آن ها نیز کمک کننده باشد. این نرم افزار نیاز به کرک و لایسنس دارد که می توانید از سایت های ایرانی به سادگی دانصب (دانلود+نصب) کنید! فقط توجه داشته باشید که در مراحل نصب نیاز به یک فایل با پسوند lxk. دارید. نسخه هایی که بدونن این فایل باشند توصیه نمی شوند.

بعد از نصب و کرک برای ساخت یک پروژه به اینصورت عمل می کنیم:

و بعد از آن Next, Next و...

صفحه اصلی طراحی مدارمون

در اینجا می تونید با اتخاب گزینده P در بالای لیست و با دبل کلیک تمام قطعات مورد نیازتون رو به لیست قطعات برای طراحی مدارمون اضافه کنید.

در کادر تیره رنگ می تونید شکل های مختلف قطعه تون رو ببینید که برای طراحی PCB یا همون مدار چاپی هست و به کار ما نمیاد.

مقدمات پروگرام کردن میکرو

همونطور که گفتم من از یک پروگرامر USBasp استفاده می کنم که از راحت ترین و بهترین پروگامر های AVR هست و به سادگی میشه درایورش ور پیدا کرد و اکثر برنامه ها اون رو میشناسند. البته Atmel Studio نمی تونه باهاش کار کنه (نمی دونم پروگرامر مد نظر Atmel چیه؟!) ولی میشه از نرم افزار AVRDude که هم برای ویندوز و هم برای لینوکس هست استفاده کرد. جالب بدونید از منبع این برنامه برای نوشتن برنامه ZFlasher برای اندروید استفاده شده تا بتونید از پروگرامر USBAsp تون توسط گوشی اندرویدی برای پروگرام کردن استفاده کیند. البته من هر چقدر گشتم کامپایلر سی مناسب برای کار رو اندورید و کامپایل برای AVR پیدا نکردم تا بشه کل کار Coding & Programing رو فقط از گوشی انجام داد. در ابتدا برای راه اندازی پروگرامر شما نیاز به نصب Driver مربوطه دارید ک با توجه به مدل پروگرامر متفاوت هست و می تونید طبق راهنمای سازنده پیش برید. معمولا برای ویندوز ها نیاز به غیر فعل کردن Driver signature هست که اون رو هم می تونید طبق راهنما یا با گشتن برای نسخه ویندوز خودتون پیداش کنید.(تو این مطلب دیگه جایی برای پرداختن به اون نیست شرمنده!) برای اضافه کردن AVRdude به Atmel Studio اول فایل اجرایی اون رو دانلود کنید:

 بعد از دانلود اون رو با تمام فایل های همراه به یجایی مثل C:\Program Files (x86)\Atmel\Studio منتقل کنید. بعد Ateml Studio رو باز کنید و از منوی tool گزینه external tools رو بزنید:

در قسمت Command آدرس فایل اجرایی AVRDude.exe را انتخاب کنید. در قسمت Arguments هم متن زیر را وارد کنید:

-c usbasp -p m8 -Uflash:w:"$(ProjectDir)Debug\$(TargetName).hex":i

نوجه کنید که m8 برای میکروی ATmega8 هست. شما می توانید این بخش را با میکروی مورد نظرتون طبق مستندات سازنده تغییر بدین.

می تونید برای راحتی کار به شیوه زیر یک کلید میانبر هم برای پروگرام کردن تعریف کیند:

برای مثال من از ترکیب Ctrl+p,1 استفاده می کنم و در نظر دارم تا میکرو های دیگه ای که در آینده ممکنه نیاز باشه رو با Ctrl+p,2 تا Ctrl+p,9 پروگرام کنم البته که این کاملا سلیقه ای هست.