AVR, توصیه شده, معرفی, مقاله های سیسوگ, میکروکنترلر

ابزار حرفه ای avrdude برای پروگرام کردن AVR

ابزار حرفه ای avrdude برای پروگرام کردن AVR

شاید تا به حال برای پروگرام کردن میکروکنترلر AVR بارها به مشکلات بسیار زیادی برخورد کرده باشید. برای مثال، در پیدا کردن درایور یا نرم افزار فلش پروگرامر، یا اتصال آن به محیط برنامه نویسی به مشکل برخورده باشید. در این آموزش قصد داریم تا شما را با ابزاری به نام AVRDUDE معرفی کنیم که تا حد بسیار زیادی مشکلات شما را در ارتباط با پروگرامر بر طرف می‌سازد.

 

از avrprog تا AVRDUDE

AVRDUDE ابزاری برای بارگیری، بارگذاری و ویرایش محتوای ROM و EEPROM میکروکنترلرهای AVR با استفاده از تکنیک برنامه نویسی درون سیستم (ISP) است. AVRDUDE اولین بار توسط Brian S. Dean جهت پروگرام کردن میکروکنترلر های AVR ساخته شد. اصل این نرم افزار برای سیستم عامل FreeBSD و با نام avrprog ساخته شد. با گسترش نرم افزار و پورت شدن آن برای سیستم عامل‌های مختلف، توجهات و استقبال از این نرم افزار بیشتر و بیشتر شد، تا جایی که برایان تصمیم گرفت پروژه خود را به‌صورت عمومی در savannah.nongnu.org منتشر کند.

همچنین برایان نام آن را از avrprog به AVRDUDE تغییر داد، زیرا می‌خواست با avrprog.EXE که در اتمل استودیو وجود داشت، اشتباه نشود.

 

برخی ویژگی های AVRDUDE

  • تمام عملیات‌های آپلود، دانلود و حتی تغییر فیوز بیت‌ها با ساده‌ترین دستورات در رابط کاربری محیط کامند لاین قابل اجرا هستند. این امر به برنامه نویس اجازه می‌دهد تا آن را به راحتی درون makefile اضافه کنید و عملیات کامپایل و پروگرام به‌صورت خودکار صورت پذیرد.
  •   در حالت ترمینال شما به ویژگی‌های بسیار زیادی برای عملیات‌های خود دسترسی دارید. همچنین پارامترهای عملیاتی پروگرام STK500 مثل target voltage, VAref, master clock frequency و… برای شما در دسترس هستند.
  •  پشتیبانی از گستره بسیار بزرگی از پروگرامرها، مثل: usbASP، STK500، پروگرامرهای پارالل و…
  •   پشتیبانی از سیستم عامل‌های مختلف! همین امر باعث می‌شود کاربر تفاوت چندانی در کار میان سیستم عامل‌های مختلف احساس نکند.
  •   پشتیبانی از فرمت‌های مختلف فایل برای آپلود و دانلود، مثل Intel Hex, Motorola S-Record, binary files. همچنین فرمت فایلی که به عنوان ورودی به AVRDUDE داده شود، به‌طور خودکار تشخیص داده می‌شود.
  •   در حالت ترمینال، شما می‌توانید به مناطق مختلف حافظه (در صورت اجازه داشتن) دسترسی داشته باشید، آن‌ها را بخوانید، بنویسید و دست‌کاری کنید. حتی فیوز بیت‌ها و خانه‌های EEPROM را نیز می‌توانید تغییر دهید.

 

دانلود AVRDUDE

این ابزار پس از دانلود نیازی به نصب نداشته و در محیط کامندلاین قابل اجرا می‌باشد، اما باید آن را در path ویندوز اضافه کنید. بنابراین بهتر است محتویات دانلودی را در درایو C مثلاَ در مسیر C:\AVRDUDE ذخیره کنید.

AVRDUDE در WINAVR، ATMEL STUDIO، آردوینو و بسیاری از بسته های نرم افزاری معروف AVR وجود دارد. شما میتوانید AVRDUDE را بدون دانلود کردن، از مسیر نصب این نرم افزار ها نیز پیدا کنید. برای مثال، اگر نرم افزار آردوینو را نصب دارید، ممکن است در مسیر زیر، AVRDUDE را پیدا کنید. (آدرس محل نصب، ممکن است با توجه به نسخه نصبی و نوع ویندوز شما (64 بیت یا 32 بیت) متفاوت باشد.)

پوشه ابزار ها آردوینو (شامل AVRDUDE)

همچنین می‌توانید از طریق این لینک بسته avrdude را دانلود کنید.

 

افزودن به path

بعد از دانلود AVRDUDE، برای این که محیط‌های برنامه نویسی مختلف بتوانند از آن استفاده کنند، لازم است تا محل فولدر آن را در path ویندوز اضافه کنید. برای این کار بر روی this PC کلیک راست کرده و properties را بزنید.

thisPC properties

 

سپس بر روی Advances Envirenment setting کلیک کنید.

Advanced system setting

ویندوزAdvanced system setting

 

از پنجره system properties و از تب Advanced، ‏Envirenment Variables را انتخاب کنید.

system properties

 

سپس متغیر PATH را ویرایش کنید:

ویرایش PATH

 

در پنجره‌ای که باز شد، گزینه NEW را بزنید تا بتوانید مسیر AVRDUDE را در path اضافه کنید:

Add AVRDUDE to path

 

پس از اضافه کردن مسیر، در تمام پنجره هایی که باز کردید، بر روی کلید OK کلیک کنید.

برای بررسی این که آیا به صورت صحیح PATH را وارد کردید، کامند لاین را باز کنید و درون آن دستور زیر را تایپ کنید: (اگر از قبل باز است، آن را بسته و مجدداَ باز کنید)

و اگر همه چیز درست باشد، خروجی زیر را دریافت خواهید کرد:

 

گزینه (آپشن) های AVRDUDE

همان طور که در خروجی دستور بالا هم می‌بینید، گزینه یا آپشن های بسیاری برای سفارشی سازی و کار با AVRDUDE وجود دارد.

 

برخی از آپشن های مهم:

-p: شما به وسیله این پارامتر می‌توانید نوع میکروکنترلر AVR خود را مشخص کنید. برای مثال، میروکنترلر ATmega32 با کد اختصاری m32 مشخص می‌شود. لیست کل میکروکنترلرها و علامت اختصاری آن را می‌توانید از اینجا ببینید. پس، این آپشن به‌صورت زیر به دستور ما اضافه می‌شود:

 

-P: دقت داشته باشید، AVRDUDE به حروف کوچک و بزرگ حساس است، بنابراین P بزرگ، برای تعیین پورت پروگرامر استفاده می‌شود. برای مثال، اگر پروگرامر خود را از طریق پورت usb متصل کرده باشید، به این صورت بکار می‌رود:

 

-c: (با حرف کوچک) نوع پروگرامر را مشخص می‌کند. برای مثال، اگر از پروگرامر usbasp استفاده می‌کنید، باید دستور زیر را وارد کنید:

 

برای دریافت لیست کامل پروگرامر هایی که توسط AVRDUDE پشتیبانی می‌شوند، می‌توانید از دستور زیر استفاده کنید:

 

-b: با حرف کوچک، در صورتی که از پورت سریال برای پروگرامر استفاده می‌کنید، سرعت buadRate را مشخص می‌کند.

 

شما به وسیله آپشن U می‌توانید عملیات حافظه را انجام دهید. برای مقدار دهی به این آپشن، اولین عبارت یا پارامتر، نوع حافظه (مثلاً flash) را وارد می‌کنید، دومین پارامتر نوع عملیات (Read, Write, Verify)، سومین عبارت آدرس فایل و چهارمین عبارت نوع فایل (هگز دسیمال، اینتل هگز، خام و…) می‌باشد.

برای مثال، فرض کنید می‌خواهید فایل diag.hex را که در کنار AVRDUDE قرار دارد را به وسیله پروگرامر stk500 بر روی حافظه فلش تراشه stk500 بنویسید!

گزاره بالا در حالت دستوری، به شکل زیر در می‌آید:

 

آپشن های دیگر AVRDUDE را می‌توانید از طریق help و یا مستندات آن مطالعه کنید. همچنین مثال‌های دیگر را می‌توانید اینجا مشاهده کنید.

آموزش نصب درایور USBASB را نیز در این آموزش می توانید ببینید.

 

رابط گرافیکی AVRDUDE GUI

اگر جزء افرادی هستید که از محیط ترمینال فراری هستید، خبر خوب اینکه رابط گرافیکی مختلفی نیز وجود دارد که شما با استفاده از چند کلیک، می‌توانید عملیات پروگرام کردن و تنظیم فیوزبیت های AVR را به راحتی انجام دهید. برای مثال، AVRDUDE GUI نیز متن باز بوده و می‌توانید آن را از اینجا دانلود کنید.

ADRDUDE GUI

همچنین کار با رابط گرافیکی BitBurner نیز بسیار راحت و ساده است.

 

نصب درایور پروگرامر USBASP

در این آموزش از پروگرامر USBASP استفاده شده است. برای شناخته شدن آن توسط AVRDUDE باید مطمئن شویم که درایور آن به درستی نصب شده است. برای این کار، ابتدا USBASP را به کامپیوتر متصل کرده و سپس نرم افزار Zadig را از این قسمت دانلود کنید. از طریق منوی Options بر روی List all devices کلیک کنید و از لیست USBASP را انتخاب کنید. سپس در کادر جلوی آن، گزینه libusbK(v3.0.7.0) driver را انتخاب کرده و بر روی دکمه install کلیک کنید تا درایور USBASP نصب شود.

Zadig driver installer

 

اتصال AVRDUDE به IDE

AVRDUDE را می‌توانید به سادگی به بسیاری از محیط‌های برنامه نویسی یکپارچه (IDE) متصل کنید. قبلاً در سیسوگ، مقالاتی در این زمینه منتشر شده است:

آماده سازی محیط Eclips برای برنامه نویسی میکروکنترلر های  AVR

آماده سازی محیط VSCODE برای برنامه نویسی AVR

برنامه‌نویسی میکروکنترلر AVR در محیط ویژوال استودیو

 

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

18 دیدگاه در “ابزار حرفه ای avrdude برای پروگرام کردن AVR

  1. Avatar for حسین حسین گفت:

    سلام
    من یه پروژه از اینترنت دانلود کرده بودم که داخلش فایل با پسوند هگز و eep داشت و توی سایتش با avrdude مراحل پروگرام کردن میکرو رو گذاشته بود.من با پروگرمر هاتل میتونم میکرو رو پروگرام کنم یا باید از avrdude استفاده کنم؟
    اینم لینک سایت :
    https://www.google.com/amp/s/www.instructables.com/Component-Tester-in-a-Keychain/%3famp_page=true

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      سلام دوست عزیز
      اون فایل eep در واقع مقادیری هست که باید داخل eeprom میکروکنترلر ذخیره کنید – اگر هاتل این قابلیت رو داره بدون نگرانی میتونید این کار رو انجام بدید اگر نه avrdude حتما میتونه

  2. Avatar for کاوه کاوه گفت:

    سلام
    این امکان وجود داره که مستقیما از طریق هاتل پروگرم بشه؟
    ممنون

    1. Avatar photo Digi Boy گفت:

      درود بر شما. بله، احتمالا باید بشه، باید از شرکت هاتل بپرسید.

  3. Avatar for میثاق میثاق گفت:

    یکی از ویژگیای جالبش اینه که میشه توی make اصافش کرد و بعد کامپایل شدن اتوماتیک روی میکرو آپلود میشه یادش بخیر

    1. Avatar photo Digi Boy گفت:

      بله، به خاطر اجرا در حالت کامندلاین، استفاده‌های زیادی می‌توان از آن کرد.

  4. Avatar for مشهدی مشهدی گفت:

    سلام.
    خیلی جالب بود، برای اتمگا ۳۲A میزنم m32A ولی کار نمیده چکار باید کرد؟

    1. Avatar photo Digi Boy گفت:

      درود بر شما، برای میکروکنترلر atmega32a از همان m32 استفاده کنید.

  5. Avatar for genus genus گفت:

    خوبی avrdude gui اینه که وقتی باهاش کار میکنی کامند هاش رو هم یاد میگیری. bitburner یکم راحت تره. مطلب خوبی بود متشکرم.

    1. Avatar photo Digi Boy گفت:

      درود بر شما.
      ممنون.

  6. Avatar for مهرداد مهرداد گفت:

    AVR BURN-O-MAT هم هست، اما برای کار کردن جاوا لازم داره. همین AVRDUDE GUI و BitBurner که دوستان معرفی کردند خیلی خوبه و خیلی بهتر از progisp مضخرفه که معمولا استفاده می شه. ممنون که برنامه های متن باز و خوب رو معرفی می کنید.

    1. Avatar photo Digi Boy گفت:

      درود بر شما.
      همین طور ممنون از شما بابت ارسال نظر و تجربیاتتون.

  7. Avatar for مهدی مهدی گفت:

    چه جالب من این avrdude.exe رو همش همه جا میدیم ولی نمیدونستم چیه. ممنون که توضیح دادید. خیلی جالب و کاربردی بود، مخصوصا اینکه توی لینوکس و ویندوز یکجور کار میکنه.

    1. Avatar photo Digi Boy گفت:

      درود بر شما.
      با سیسوگ همراه باشید، باز هم ابزار معرفی خواهیم کرد.

  8. Avatar for وحید وحید گفت:

    BitBurner AVR Programmer هم یک رابط گرافیکی خیلی خوب برای AVRDUDE هست.

    1. Avatar photo Digi Boy گفت:

      درود بر شما دوست عزیز!
      خیلی ممنون از اینکه معرفی کردید!

  9. Avatar for محمد محمد گفت:

    سلام.
    خیلی عالیه. زود تر معرفی میکردید که انقدر با این نرم افزارای کرکی کار نکنیم همش ارور میدن. این avrdude خیلی عالیه.

    1. Avatar photo Digi Boy گفت:

      درود بر شما.
      ممنون. امیدوارم موفق باشید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *