پروگرامر برد توسعه ATmega64Pin یوبرد

توسط | 18 آذر, 1398 | میکروکنترلر | 8 دیدگاه ها

معرفی پروگرامر برد توسعه ATmega64Pin یوبرد، مزایای پروگرامر برد توسعۀ AVR یوبرد، چهار روش پروگرام کردن/شدن در پروگرامر برد توسعۀ AVR یوبرد، پروگرام کردن با برد توسعۀ ATmega64Pin، پروگرام شدن برد توسعۀ AVR یوبرد با پروگرامر خارجی، تنظیم منبع کلاک خارجی با پروگرامر USBasp
پروگرامر-برد-توسعه-avr-یوبرد

پروگرامر برد توسعه ATmega64Pin یوبرد، یک پروگرامر USBasp برای برنامه ریزی میکروکنترلر روی برد و همچنین میکروکنترلرهای AVR دیگر خارج از برد است. این پروگرامر دارای یک میکروکنترلر ATmega8A و تعدادی قطعۀ دیگر است که مجموعاً ابعاد حدود 2.5 * 3.5 سانتی متر از برد توسعه را اشغال کرده اند. همچنین این پروگرامر دارای یک سوکت مادگی نوع USB Micro B برای اتصال به کامپیوتر است. میکروکنترلر اصلی برد توسعۀ ATmega64Pin، میکروکنترلر ATmega64A یا ATmega128A است. روی این برد توسعه یک هدر مادگی 40*2 وجود دارد که امکان اتصال انواع ماژول ها را فراهم می کند. در جایی از این هدر مادگی پایه های پروگرامر USBasp قرار دارند. این امکان وجود دارد که با استفاده از این پروگرامر، میکروکنترلر AVR خارج از برد را نیز پروگرام کرد. پروگرام کردن میکروکنترلر ATmega8A پروگرامر USBasp نیز توسط یک پروگرامر خارجی امکان پذیر است. بنابراین به طور کلی چهار حالت به وجود می آید که عبارتند از:

  • پروگرامر کردن میکروکنترلر اصلی برد توسعه توسط پروگرامر روی برد؛
  • پروگرام کردن یک میکروکنترلر AVR خارج از برد توسط پروگرامر روی برد توسعه؛
  • پروگرام کردن میکروکنترلر اصلی برد توسعه توسط یک پروگرامر خارجی؛
  • پروگرام کردن میکروکنترلر ATmega8A پروگرامر USBaspتوسط یک پروگرامر خارجی.

در این نوشته ابتدا مزیت های پروگرامر برد توسعه ATmega64Pin یوبرد و پروگرامر USBasp گفته می شود. سپس چهار روش پروگرام کردن برد ATmega64Pin به همراه نکات کاربردی ارائه خواهد شد. در نهایت به روش پروگرام کردن میکروکنترلرهای AVR و تنظیم فیوزبیت های آن برای کلاک خارجی با USBasp می پردازیم.

نکته: منظور ما از “پروگرامر برد توسعه ATmega64Pin یوبرد” و “پروگرامر برد توسعۀ AVR یوبرد” در این نوشته، پروگرامر USBasp روی این برد توسعه است.

پروگرامر-usbasp-برد-توسعه-atmega64pin

تصویر 1 – پروگرامر USBasp یوبرد، روی برد توسعۀ AVR و به صورت مجزا

مزایای پروگرامر برد توسعه ATmega64Pin یوبرد

برخی مزایای این عبارتند از:

  • امکان پروگرام کردن میکروکنترلرهای خارجی؛
  • امکان پروگرام شدن میکروکنترلر ATmega8A پروگرامر توسط پروگرامر خارجی؛
  • ساده بودن نصب درایور پروگرامر USBasp در کامپیوتر؛
  • سازگاری با نرم افزار ProgISP و اتمل استودیو و BASCOM و …؛
  • وجود جامپر Speed؛
  • امکان تنظیم فیوزبیت های میکروکنترلر AVR برای کار با منابع کلاک خارجی؛
  • استفاده از کانکتور میکرو USB؛
  • تأمین تغذیۀ برد توسعه و ماژول های آن از طریق کانکتور Micro USB پروگرامر؛
  • وجود نمایشگر LED برای نمایش وضعیت پروگرام؛
  • وجود مدارات محافظ در برابر اتصال کوتاه، اضافه جریان و اضافه ولتاژ؛
  • وجود (یا قابلیت نصب) دیود TVS برای محافظت در برابر ولتاژ گذرا؛
  • عدم نیاز به منبع تغذیۀ جداگانه در پروگرام کردن میکروکنترلر خارجی.

اما مهمترین مزیت وجود پروگرامرهای روی برد، افزایش سرعت اجرا و انجام پروژه است. در سرعت اجرای پروژه پارامترهای زیادی دخیل هستند. به طوری که سهم زمان پروگرام کردن ممکن است خیلی کم باشد. ولی این زمان مخصوصاً هنگامی که می خواهیم عملکرد برنامۀ نوشته شده را در هر مرحله عملاً ببینیم، تأثیرگذار است. در صورتی که عملیات پروگرام کردن، نیازمند ادوات نرم افزاری و سخت افزاری متعدد باشد، پیاده سازی آن مشکل و زمانبر خواهد بود. هرچه تعداد ابزارهای مورد نیاز عملیات پروگرام کمتر باشد، زمان کمتری برای این عملیات صرف می شود. شاید وجود نرم افزارهای پروگرامر در IDEها نیز گامی برای سرعت بخشیدن به عملیات پروگرام باشد. اگر هم چنین نباشد، به هر حال وجود آنها در IDEها، زمان پروگرام را کوتاه می کنند. برای مثال با افزودن پروگرامر USBasp به اتمل استودیو، می توان تنها با دو کلیک، میکروکنترلر را پروگرام کرد. با استفاده از برد توسعۀ ATmega64Pin و به کارگیری نرم افزار اتمل استودیو، تنها یک کابل USB نیاز است که بتوان برنامۀ نوشته شده را در عمل اجرا و بررسی کرد.

پروگرامر-usbasp-atmega64pin-atmel-studio

تصویر 2 – پروگرام کردن برد توسعه AVR یوبرد با نرم افزار Atmel Studio

پروگرام کردن با برد توسعه ATmega64Pin

در این بخش به پروگرام کردن میکروکنترلر اصلی برد توسعۀ ATmega64Pin و یک میکروکنترلر خارجی می پردازیم. برای پروگرام میکروکنترلر اصلی برد توسعه باید پایه های 25 و 26 سلکتور روی برد، به یکدیگر متصل شوند. همچنین اگر منبع کلاک میکروکنترلر قبلاً کمتر از 2 مگاهرتز تنظیم شده باشد، باید جامپر Speed را نیز فعال کرد. برای این کار باید پایه های 12 و 13 سلکتور روی برد به یکدیگر متصل شوند. پس از اتصال پایه های مذکور، کافی است با یک کابل، برد توسعه را به کامپیوتر متصل کنیم. اکنون می توان با نرم افزار ProgISP، اتمل استودیو یا … به پروگرام کردن برد توسعه AVR یوبرد پرداخت.

نکته: برای استفاده از پروگرامر برد توسعه ATmega64Pin یوبرد، باید درایور پروگرامر USBasp در کامپیوتر نصب باشد. همچنین در صورت استفاده از نرم افزار اتمل استودیو، باید USBasp را به این نرم افزار اضافه کنیم.

پروگرام-میکروکنترلر-برد-توسعه-atmega64pin

تصویر 3 – نحوۀ اتصال پروگرامر برد توسعه AVR یوبرد به میکروکنترلر اصلی آن

برای پروگرام میکروکنترلر خارجی، باید پایۀ 10 سلکتور به پایۀ 11 آن و پایۀ 24 به پایۀ 25 متصل شود. پایه های ردیف 11 تا 14 هدر مادگی سمت راست نیز خروجی پروگرامر برد توسعه ATmega64Pin هستند. این پایه ها به پایه های متناظر میکروکنترلر تحت پروگرام وصل می شوند. نام و مکان قرارگیری این پایه ها در تصویر زیر آمده است. برای پروگرام کردن میکروکنترلر خارجی باید پایه های PDI (یا MOSI) و PDO (یا MISO) و SCK و RESET به پایه های هم نام آن متصل شوند. علاوه بر آن می توان VCC و GND میکروکنترلر تحت پروگرام را از همین پایه ها گرفت. همچنین در صورت نیاز باید جامپر Speed فعال شود. در تصویر زیر نحوۀ اتصال پروگرامر برد توسعۀ AVR یوبرد را به میکروکنترلر ATmega32A می بینیم.

نکته: در برخی میکروکنترلرهای AVR مانند ATmega64 و ATmega128، برای پروگرام از پایه های PDI و PDO استفاده می شود.

پروگرام-میکروکنترلر-خارجی-atmega64pin

تصویر 4 – برنامه ریزی میکروکنترلر خارجی با پروگرامر برد توسعه ATmega64Pin یوبرد

پروگرام شدن برد توسعه ATmega64Pin با پروگرامر خارجی

همان طور که گفتیم، میکروکنترلر اصلی برد توسعه و میکروکنترلر پروگرامر آن را می توان با پروگرامر خارجی پروگرام کرد. برای پروگرام میکروکنترلر اصلی باید پایۀ 10 سلکتور به پایۀ 11 و پایۀ 28 آن به پایۀ 29 متصل شود. همچنین پایه های پروگرامر خارجی باید به ردیف 11 تا 14 هدر مادگی سمت راست وصل شوند. اکنون با اتصال یک پروگرامر خارجی، می توان میکروکنترلر اصلی برد توسعه را پروگرام کرد. همچنین می توان تغذیۀ برد توسعه را توسط پایه های VCC و GND هدر مادگی، از پروگرامر خارجی گرفت. برای پروگرام کردن میکروکنترلرِ پروگرامر برد توسعه ATmega64Pin یوبرد نیز باید پایۀ 24 سلکتور به پایۀ 25 و پایۀ 9 آن به پایۀ 10 وصل می شود. اتصالات پایه های پروگرامر برای این حالت مشابه حالت پروگرام میکروکنترلر اصلی است. در تصویر زیر نحوۀ اتصال پروگرامر خارجی را به برد توسعۀ ATmega64Pin برای دو حالت مذکور می بینیم. نحوۀ اتصالات برای پروگرام کردن میکروکنترلر اصلی در سمت چپ تصویر زیر آمده است. در سمت راست نیز نحوۀ اتصالات برای پروگرام کردن میکروکنترلر ATmega8A پروگرامر ترسیم شده است. همچنین در میانۀ تصویر ترتیب پایه های باکس هدر پروگرامر USBasp یوبرد را مشاهده می کنید.

پروگرام-کردن-برد-توسعه-atmega64pin

تصویر 5 – پروگرام کردن برد توسعه AVR یوبرد با پروگرامر خارجی

تنظیم منبع کلاک خارجی با پروگرامر USBasp

پروگرامر برد توسعه ATmega64Pin یوبرد یک پروگرامر USBasp است. بنابراین اشکالات این پروگرامر را در خود دارد. یک ایراد پروگرام کردن با USBasp این است که اگر منبع کلاک میکروکنترلر تحت پروگرام، منابع خارجی باشد، توسط پروگرامر شناسایی نخواهد شد. یعنی اگر فیوزبیت های مربوط به کلاک میکروکنترلر قبلاً روی منابع خارجی تنظیم شده باشد، اتصال بین پروگرامر و میکروکنترلر برقرار نمی شود. در این صورت دیگر نمی توان میکروکنترلر را با این پروگرامر برنامه ریزی کرد. این موضوع بیانگر این نیست که USBasp نمی تواند میکروکنترلر را برای کار با منبع کلاک خارجی برنامه ریزی کند. تنظیم فیوزبیت ها در USBasp در حالات منبع کلاک خارجی انجام می شود. اما برای دفعۀ بعد، پروگرامر دیگر نمی تواند میکروکنترلر تحت پروگرام را شناسایی کند. یک راه این است که ابتدا حافظۀ Flash میکروکنترلر را برنامه ریزی و سپس فیوزبیت ها را تنظیم کنیم. بنابراین میکروکنترلر برنامه ریزی شده و فیوزبیت های آن روی منبع کلاک خارجی تنظیم می شوند. این روش تنها برای مواقعی است که قصد برنامه ریزی دوبارۀ میکروکنترلر را نداشته باشیم. وگرنه برای دفعات بعد، میکروکنترلر توسط پروگرامر شناسایی نمی شود. راه دوم این است که یک کلاک زیر 1 مگاهرتز (مثلاً 500 کیلوهرتز) به پایۀ XTAL1 میکروکنترلر تحت پروگرام بدهیم. پس از اتصال این کلاک خارجی، می توان با ProgISP تنظیمات فیوزبیت ها را به حالت پیشفرض تغییر داد. همچنین می توان منبع کلاک را در حالات مختلف داخلی و خارجی قرار داد و بارها میکروکنترلر را پروگرام کرد. توجه شود که برای منابع کلاک زیر 2 مگاهرتز باید جامپر Speed فعال شود.

نکته: می توان کلاکی را که به XTAL1 وصل می شود، توسط یک میکروکنترلر دیگر تأمین کرد. در این صورت بهتر است علاوه بر زمین های میکروکنترلرها و پروگرامر، VCC آنها نیز مشترک باشد.

پایه-xtal1-برد-توسعه-atmega64pin

تصویر 6 – پایۀ XTAL1 میکروکنترلر اصلی برد توسعۀ AVR یوبرد به منظور اعمال کلاک خارجی

نتایج پروگرامر برد توسعه ATmega64Pin یوبرد

  1. پروگرامر روی برد توسعۀ AVR یوبرد، یک پروگرامر USBasp با ابعادی در حدود 3.5 * 2.5 سانتی متر است.
  2. میکروکنترلر استفاده شده برای پروگرامر برد توسعۀ AVR یوبرد، ATmega8A است.
  3. پروگرامر برد توسعۀ AVRیوبرد توسط یک کابل USB (با کانکتور Micro USB) به کامپیوتر متصل می شود.
  4. روی هدر مادگی سمت راست برد توسعۀ AVR یوبرد، ورودی/خروجی برای پروگرام شدن/کردن وجود دارد.
  5. چهار روش پروگرام در برد توسعۀ AVR یوبرد وجود دارد که عبارتند از: پروگرام کردن میکروکنترلر اصلی برد توسعه توسط پروگرامر روی خودش، پروگرام کردن میکروکنترلر خارج از برد توسعه توسط پروگرامر روی برد توسعه، پروگرام شدن میکروکنترلر اصلی برد توسعه توسط یک پروگرامر خارجی و پروگرام شدن میکروکنترلر پروگرامر برد توسعه توسط یک پروگرامر خارجی.
  6. از مزایای پروگرامر برد توسعۀ AVR یوبرد می توان به «وجود جامپر Speed»، «امکان تنظیم فیوزبیت ها برای اتصال کلاک خارجی»، «استفاده از کانکتور Micro USB»، «وجود مدارات محافظ» و … اشاره کرد.
  7. یکی از مهمترین مزایای پروگرامرهای روی برد، کوتاه کردن زمان عملیات پروگرام و نتیجتاً افزایش سرعت اجرای پروژه است.
  8. پروگرامر USBasp را می توان به نرم افزار اتمل استودیو اضافه کرد.
  9. برای انجام هر یک از روش های پروگرام کردن/شدن در پروگرامر برد توسعه AVR یوبرد، باید سلکتورهای روی برد به طور صحیح تنظیم شوند.
  10. راه حل استفاده از پروگرامر USBasp برای میکروکنترلرهای AVRی که منبع کلاک خارجی برای آنها تنظیم شده، اعمال یک کلاک خارجی به پایۀ XTAL1 میکروکنترلر تحت پروگرام است.

 

مطالب مرتبط با این نوشته در وبلاگ یوبرد:

پروگرام کردن STM32 با JTAG و SWD و بوت لودر

نرم افزار ST-LINK Utility و برنامه ریزی STM32

پروگرامر J-Link و برنامه ریزی میکروکنترلرهای ARM

رضا اسدی

رضا اسدی

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

آموزش میکروکنترلرهای ARM سری STM32 یوبرد

آموزش میکروکنترلرهای AVR یوبرد

آموزش میکروکنترلرهایARM سری LPC یوبرد

آموزش Arduino یوبرد

خدمات برنامه نویسی میکروکنترلر یوبرد

راه-اندازی-dac-stm32

راه اندازی DAC در STM32

راه اندازی DAC در STM32، ویژگی های DAC در میکروکنترلرهای STM32F1، بلوک دیاگرام DAC در STM32، اتصالات راه اندازی DAC در میکروکنترلر STM32F107VC، نمونه کد رجیستری راه اندازی واحد DAC در میکروکنترلرهای STM32F1، ساخت موج سینوسی با STM32، راه اندازی مبدل دیجیتال به آنالوگ STM32 با توابع HAL

راه-اندازی-سون-سگمنت-با-آردوینو

راه اندازی سون سگمنت با آردوینو

راه اندازی سون سگمنت با آردوینو UNO، راه اندازی سون سگمنت 4 تایی آند مشترک با آردوینو، اتصال سون سگمنت به آردوینو، کتابخانۀ سون سگمنت برای آردوینو، نمونه کد راه اندازی سون سگمنت، نمایش اعداد در سون سگمنت 4 تایی، نکات راه اندازی سون سگمنت

راه-اندازی-adc-در-آردوینو

راه اندازی ADC در آردوینو

راه اندازی ADC در آردوینو، راه اندازی LCD گرافیکی KS0108 با کتابخانۀ U8g2، اتصالات لازم برای راه اندازی ADC و LCD گرافیکی KS0108، نمونه کد راه اندازی ADC آردوینو، فرمول محاسبۀ دما با TMP36، راه اندازی سنسور دما با آردوینو، راه اندازی فتوسل (LDR) با آردوینو

8 دیدگاه ها

  1. سلام مهندس با تشکر از مطالب مفیدتون رشته ام قدرته میتونم پروگرام کردن میکرو ای سی رو یاد بگیرم به الکترونیک علاقه دارم

    پاسخ
    •  سلام. خیلی ممنون از لطف شما. باعث افتخاره که بتونیم با مباحثی که در طول نوشته ها بیان میشه، راه رو برای شما هموار کنیم. توی وبلاگ دربارۀ پروگرم کردن میکروکنترلرهای AVR و میکروکنترلرهای STM32 نوشته هایی وجود داره. لینک های مربوط به اونا در طول نوشته اومدن.

      پاسخ
  2. سلام جناب مهندس. ابعاد این برد چند در چنده؟ ممنون

    پاسخ
    • سلام. حدود 11.5 در 6.5 سانتی متر. خواهش میکنم

      پاسخ
  3. سلام استاد. وقتتون بخیر. ساده ترین روش برای تامین کلاک برای پایه xtal1 چیه؟ که با usbasp بتونم هر منبع کلاکی رو که میخوام انتخاب کنم ممنون

    پاسخ
    • سلام. شاید ساده ترین روش استفاده از یه مولتی ویبراتور آستابل باشه. که اگه با گیت NOT هم بسازید تعداد قطعات کمی لازم داره. اگه با ترانزیستور بسازید جای کمتری اشغال میکنه. در صورتی که از ترانزیستورای smd کوچیک استفاده کنید. فقط تو این روش ممکنه نتونید فرکانس رو تا 500 کیلوهرتز برسونید. که مشکلی نداره. 

      پاسخ
  4. سلام. از مطالب مفید شما بسیار استفاده بردیم تشکر زیاد. موفق و پیروز باشید.

    پاسخ
    • سلام. خیلی ممنون. لطف دارید. خواهش میکنم. زنده باشید

      پاسخ

یک دیدگاه بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

ضبط پیام صوتی

زمان هر پیام صوتی 4 دقیقه است