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 |
سئوکار ساده! 🔗 مهندس الکترونیک⚡
درود و سلام
به تازگی یک USBasp با چیپ atmega8L تهیه کردم. اما مطابق رویه شما بعد از نصب درایور هیچکدام از برنامه های AVRDUDE، KHAZAMA، ProgISP و SInaProg قادر به شناسایی پروگرامر نشدند.
در دیوایس منیجر هم به درستی شناخته شده و اطلاعات آن هم صحیح شناسایی میشه!!
آیا ویندوز 11 جدیدآ سخت گیری بیشتری برای اینگونه پروگرامرهای غیر اصلی یا کلون ترتیب داده!؟
آیا پروگرامر فریمور خیلی قدیمی دارد؟
لطفا راه حلی پیشنهاد میدید؟
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.