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

ابزار حرفه ای avrdude برای پروگرام کردن 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 در محیط ویژوال استودیو (جلسه سوم)

 

حمایت از Digi Boy

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

Digi Boy
Digi Boy

به دانش فزای و به یزدان گرای، که او باد جان تو را رهنمای (فردوسی)

دیدگاه ها

18 دیدگاه

  • حسین
    ۲۶ بهمن ۱۴۰۰

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

    • Zeus ‌
      Zeus ‌
      ۲۷ بهمن ۱۴۰۰

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

  • کاوه
    ۷ خرداد ۱۴۰۰

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

    • Digi Boy
      Digi Boy
      ۱۱ خرداد ۱۴۰۰

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

  • میثاق
    ۲۹ فروردین ۱۴۰۰

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

    • Digi Boy
      Digi Boy
      ۴ اردیبهشت ۱۴۰۰

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

  • مشهدی
    ۲۵ فروردین ۱۴۰۰

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

    • Digi Boy
      Digi Boy
      ۴ اردیبهشت ۱۴۰۰

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

  • genus
    ۲۳ فروردین ۱۴۰۰

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

    • Digi Boy
      Digi Boy
      ۲۴ فروردین ۱۴۰۰

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

  • مهرداد
    ۲۳ فروردین ۱۴۰۰

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

    • Digi Boy
      Digi Boy
      ۲۴ فروردین ۱۴۰۰

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

  • مهدی
    ۲۳ فروردین ۱۴۰۰

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

    • Digi Boy
      Digi Boy
      ۲۴ فروردین ۱۴۰۰

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

  • وحید
    ۲۲ فروردین ۱۴۰۰

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

    • Digi Boy
      Digi Boy
      ۲۳ فروردین ۱۴۰۰

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

  • محمد
    ۲۲ فروردین ۱۴۰۰

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

    • Digi Boy
      Digi Boy
      ۲۳ فروردین ۱۴۰۰

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

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 11 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک