انواع زبان  های برنامه نویسی  و کامپایلر های AVR

زبان های برنامه نویسی نظیر اسمبلی ، C  ،C++ ، بیسیک و . . .

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

از کامپایلرهای معروف میتوان به AVR Studio  ،CodeVision AVR  و Bascom AVR  اشاره کرد . ما از کامپایلر زبان C به نام CodeVision AVR استفاده می کنیم زیرا استفاده از آن به دلیل وجود ساختار CodeWizard  (جادوگر کد ) راحت تر است.

برنامه ریزی (پروگرام) کردن میکروکنترلرهایAVR

بعد از نوشتن برنامه درون میکروکنترلر نوبت به انتقال آن به میکرو می شود که به آن اصطلاحا پروگرام کردن یا برنامه ریزی می گویند. وسیله ای که به کامپیوتر متصل می شود و توسط آن میکروکنترلر پروگرام می شود را اصطلاحا پروگرامر (Programmer)گویند.

برنامه ریزی میکروکنترلرهای AVR  به سه روش صورت می گیرد : برنامه ریزی سریال ، موازی و JTAG

برنامه ریزی به روش موازی سریعتر انجام می گیرد اما نحوه انجام کار آن پیچیده تر است.  ضمنا تمامی میکروکنترلرهای AVR از برنامه نویسی موازی و برنامه ریزی JTAG پشتیبانی نمی کنند . بنابراین برنامه  ریزی سریال که از طریق رابط سریال spi صورت می گیرد و تمامی میکروکنترلرهای AVR  از آن پشتیبانی می کنند بهترین گزینه است .

در برنامه ریزی سریال حافظه فلش از طریق رابط spi پروگرام می شود و برنامه نوشته شد ه کاربر درون میکرو قرار می گیرد. برقراری ارتباط بین PC  و میکروکنترلر توسط سخت افزار  جانبی به نام پروگرامر صورت می گیرد. پروگرامرها انواع مختلفی دارند. پروگرامرها از طریق پورت USB  ، پورت سریال و پورت پرینتر می توانند به PC  وصل شده سپس  میکروکنترلر روی پروگرامر قرار میگیرد و اینگونه پروگرام می شود. ساده ترین پروگرامر stk300 نام دارد که به پو رت پرینتر  کامپیوترهای PC وصل می شود . بهترین نوع پروگرامرهای AVR  آن هایی است که از رابط USB  استفاده می کند. معروفترین پروگرامرهای موجود در بازار که به پورت USB متصل می شوند میتوان  پروگرامرهای  stk500،USBasp  و isp mk2 را نام برد.

ISP  چیست ؟

یکی از راههای پروگرام کردن میکروکنترلر های AVR روش ISP یا In System Programming   می باشد. در این روش میکروکنترلر درون سیستم (مدار) پروگرام می شود . بدین معنی که به جای خارج کردن میکروکنترلر از مدار و قرار دادن آن روی پروگرامر ، میکروکنترلر در درون مدار و توسط پورت استاندارد  ISP ، پروگرام می شود. در حقیقت در این روش از همان برنامه ریزی سریال با استفاده از پروتکل Spi  استفاده می شود که تحت اتصال استاندارد ISP به صورت شکل زیر درآمده است:

تهیه پروگرامر مناسب

ساده ترین نوع پروگرامر میکروکنترلرهای AVR ، Stk200 می باشد که تنها به یک پورت LPT  یا همان پورت پرینتر DB25  و چند مقاومت برای ساخت نیاز دارد. بنابراین  خودتان به راحتی می  توانید  قطعات آن را تهیه و این پروگرامر را درست کنید . در شکل زیر این پروگرامر و نحوه اتصال آن به میکروکنترلر نشان داده  شده است. در یک طرف آن پورت پرینتر قرار دارد که به کامپیوتر متصل می شود و در طرف دیگر  میکروکنترلر قرار دارد که باید پروگرامر مطابق شکل به پایه های مشخص شده از میکرو متصل گردد. در این شکل چون م یکروکنترلر از مدار خارج نمی شود ، روش پروگرام کردن ISP می باشد.

تذکر :
به دلیل اینکه دسترسی به پورت پرینتر سخت است و در هنگام کار با آن مشکلات ایجاد می گردد و ضمن اینکه لپتاپ ها و بسیاری از وسایل از پورت پرینتر پشتیبانی نمی کنند ، توصیه می شود یکی از پروگرامرهای USB  را از بازار تهیه نمایید.