سلام امروز قراره با هم سری به دنیای برنامه نویسی میکروکنترلرها بزنیم.توی این قسمت با نحوه پروگرام کردن (آپلود برنامه نوشته برروی سختافزار یا همون میکروکنترلر avr) میکروکنترلرهای avr آشنا خواهیم شد. پس با ما باشید با نحوه پروگرامر کردن avrها.
AVR خانواده ای از میکروکنترلرها است که از سال 1996 توسط Atmel توسعه یافته است. میکروکنترلرهای AVR کاربردهای زیادی به عنوان سیستم های تعبیه شده پیدا میکنند. آنها به ویژه در برنامههای تعبیهشده سرگرمی و آموزشی رایج هستند، که با گنجاندن آنها در بسیاری از بردهای توسعه سختافزار باز آردوینو رایج شدهاند.
خود خانواده ی AVR دارای سری های مختلفی میباشد از جمله ATtiny , ATmega, ATxmega,… میباشد که ATmega پرکاربردترین و مشهورترین آنها میباشد.
در این مقاله با پروگرمرها و یکی از روش های پروگرام کرن آشنا خواهیم شد. برای برنامه ریزی یک میکروکنترلر AVR به یک ابزار برنامه نویسی AVR نیاز دارید. نمونه هایی از برنامه نویس های AVR ساخته شده توسط Atmel عبارتند از STK500، STK600، AVR Dragon، AVRISP mkII، JTAGICE mkII، JTAGICE3 و Atmel-ICE. رابط های برنامه نویسی مختلفی برای برنامه ریزی میکروکنترلر AVR وجود دارد. رابط های برنامه نویسی وابسته به دستگاه هستند.
بطورکلی ابزارهای پروگرام کردن AVR بصورت زیر است:
· روش ISP: در این روش می توانید تراشه را بدون حذف آن از مدار برنامه ریزی کنید. در تصویر زیر پین های مربوطه را مشاهده میکنید
روش برنامه نویسی درون سیستم (ISP) به طور کاربردی از طریق SPI (SPI یک پروتکل ارتباطی است با پینهای مشخص در میکروکنترلر) انجام میشود، به علاوه مقداری چرخش خط Reset. تا زمانی که پین های SPI (MOSI,MISO,RST,SCK) به چیزی مخرب متصل نشده باشند، تراشه AVR می تواند در حین برنامه ریزی مجدد روی PCB لحیم بماند. تنها چیزی که نیاز است یک کانکتور 6 پین (علاوه بر پین های SPI پین های GND,VCC نیز لازم است) و آداپتور برنامه نویسی است. این رایج ترین راه برای برنامه ریزی AVR است. قطعه Atmel-ICE یا AVRISP mkII به پورت USB کامپیوتر متصل میشود و برنامه نویسی ISP را با استفاده از نرم افزار کدویژن Atmel انجام میدهد.
· JTAG (Joint Test Action Group)
در این روش نیز ما از یسری پایه های میکرو برای پروگرم کردن استفاده میکنیم. از این ابزار حتی میتوان میکروهای ARM را نیز برنامه ریزی کرد. این پایه ها را در شکل زیر مشاهده میکنید.
برای این روش شما نیاز به نصب دریوارهای این ابزار دارید تا نرم افزاری که با آن برنامه نویسی میکنید این ابزار را شناسایی کند.
· BootLoader
بوت لودر AVR امکان برنامه نویسی یا برنامه ریزی مجدد میکروکنترلر AVR هدف را با استفاده از پورت سریال PC (کامپیوتر شخصی) به جای پروگرمر سنتی میدهد. هنگامی که بوت لودر AVR ، در میکروکنترلر پروگرم میشود، تا زمانی که تراشه پاک شود باقی میماند. بوت لودر به یک برنامه ساده ویندوز اجازه میدهد تا از طریق UART میکروکنترلر، یک فایل هگز را از پورت سریال PC در میکروکنترلر دانلود کند.
بهترین مثال برای این قسمت بوت لودر بردهای آردوینو است که کلاً کارش اینه که از یکی کام ها (منظورم همون کابل آردوینو ست که به کامپیوتر وصل میشه و ازطریق COM شناخته میشود) به کامپیوتر شما متصل میشود و برنامه را دریافت میکند و روی حافظه فلش خود میگذارد. البته حجم کمی از خود حافظه فلش میکرو به بوت لودر اختصاص مییابد که چیز خاصی نیست. خلاصه این که از این طریق خیلی راحت پروگرام میکنید و یا حتی بعداً آپدیت میکنید.(توضیح کامل این قسمت بماند برای بعد)
· سوکت ZIF
سوکت ZIF مشهورترین و سادهترین روش پروگرام کردن میباشد که تصویر آن در زیر مشاهده میکنید.
اما خوشبختانه پروگرامرهای هاتل کار را راحتتر کرده است که نمونهای از این پروگرامرها را در تصویر زیر مشاهده میکنید.
و اما روش پروگرم کردن با این پروگرامر:
اول از همه باید میکرو رو در سوکت قرار بدهیم نکته ای که اینجا وجود داره اینه که میکرو از سمتی که شیار نیم دایره ای دارد باید سمت اهرم قرار بگیرد.برای کار با این پروگرامر باید نرم افزار هاتل را نصب کرد برای دانلود و نصب کافیست که در گوگل سرچ کنیم.
در نرم افزار هاتل از Buffer قسمت load Buffer را انتخاب میکنیم.
و سپس از پنجره باز شده فایل هگز برنامه نوشته شده را اپلود میکنیم. تنها نکته ی مهمی که وجود دارد تنظیم فیوز بیت هاست که حالت پیش فرض روی 1Mhz است. در تصویر بالا همانطور که مشاهده میکنید تیک گزینه های Verify,Program,Eraseزده شده است. که بترتیب نمایانگر پاک کردن حافظه میکرو ، برنامه نویسی و اجراکردن برنامه میباشد. اگر در برنامه تان از فرکانس کاری دیگری استفاده میکنید باید با توجه به دیتاشیت میکرو، بیت های رجیستر موردنظر را تغییر بدهیم.
این اموزش هم به پایان رسید. امیدوارم مفید باشه براتون.