USBASP یک In-Circuit programmer (با قابلیت پروگرام کنترلر بر روی برد) است که برای برنامهریزی میکروکنترلرهای AVR شرکت Atmel، مانند سریهای ATmega و ATtiny، طراحی شده است. این ابزار معمولاً در توسعه پروژههای مبتنی بر زبانهای C و ++C استفاده میشود و برای معماریهای دیگری مانند ARM یا تراشههای ESP کاربرد ندارد.
علاوه بر فریمور اصلی توسعهیافته توسط Thomas Fischl، نسخههای بهبودیافتهای نیز از USBASP منتشر شدهاند که سازگاری و استفاده از آن را در سیستمعاملهای جدید سادهتر میکنند.
مراحل نصب بسته به نسخه فریمور پروگرامر و سیستمعامل مورد استفاده متفاوت است.
اگر پروگرامر شما از فریمور استاندارد USBASP استفاده میکند، برای رفع مشکل احراز هویت یا Driver Signature باید از نرمافزار Zadig کمک بگیرید:
اگر پروگرامر شما از فریمور مبتنی بر WinUSB استفاده میکند، ویندوز آن را بهصورت خودکار شناسایی میکند و نیازی به انجام مراحل بالا نخواهد بود.
در بیشتر نسخه های لینوکس نیازی به نصب درایور جداگانه نیست. کافی است ابزار برنامهریزی AVRDUDE را از طریق ترمینال نصب کنید:
|
1 2 3 |
sudo apt-get update sudo apt-get install avrdude |
برای اطمینان از نصب صحیح درایور و برقراری ارتباط بین پروگرامر USBASP و میکروکنترلر، برای مثال ATmega32، دستور زیر را تایپ و اجرا کنید. در سیستمعامل لینوکس، برای دسترسی به پورت USB و جلوگیری از خطاهای مربوط به سطح دسترسی، باید دستور sudo را اجرا کنید:
|
1 |
sudo avrdude -c usbasp -p m32 |
برای تست نهایی فرآیند پروگرام کردن، در این بخش یک پروژه چشمکزن را اجرا میکنیم. ابتدا وارد پوشه پروژه شوید و فایل کد را ایجاد کنید: پس از وارد کردن کد، برای ذخیره فایل کلیدهای Ctrl+O و سپس Enter را فشار دهید. در پایان نیز با فشردن Ctrl+X از ویرایشگر خارج شوید.
پینهای استاندارد پروگرامر USBASP شامل VCC، GND، MOSI، MISO، SCK و RESET را مطابق شماتیک، به پایههای متناظر روی میکروکنترلر متصل کنید.اگر مدار شما منبع تغذیه جداگانه دارد، پین VCC پروگرامر را به میکروکنترلر متصل نکنید. این کار از تداخل ولتاژ و آسیب احتمالی به قطعات جلوگیری میکند.
در مرحله آخر، برای کامپایل کد C و پروگرام مستقیم فایل خروجی (HEX) روی میکروکنترلر از طریق USBASP، دستورات زیر را بهترتیب در ترمینال اجرا کنید:
|
1 2 3 |
avr-gcc -mmcu=atmega32 -Os -o blink.elf blink.c avr-objcopy -j .text -j .data -O ihex blink.elf blink.hex sudo avrdude -c usbasp -p m32 -U flash:w:blink.hex:i |
سئوکار ساده! 🔗 مهندس الکترونیک⚡
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.