فهرست مطالب:

استفاده از Extrreme Burner برای برنامه نویسی میکروکنترلر AVR: 8 مرحله
استفاده از Extrreme Burner برای برنامه نویسی میکروکنترلر AVR: 8 مرحله

تصویری: استفاده از Extrreme Burner برای برنامه نویسی میکروکنترلر AVR: 8 مرحله

تصویری: استفاده از Extrreme Burner برای برنامه نویسی میکروکنترلر AVR: 8 مرحله
تصویری: پروگرام کردن میکرو 2024, جولای
Anonim
استفاده از مشعل فوق العاده برای برنامه نویسی میکروکنترلر AVR
استفاده از مشعل فوق العاده برای برنامه نویسی میکروکنترلر AVR

همه شما برادری کاربران AVR ، و کسانی که تازه وارد جریان شده اند ، برخی از شما با میکروکنترلرهای PIC و برخی دیگر با ATR AVR شروع کرده اید ، این برای شما نوشته شده است!

بنابراین شما یک USBASP خریداری کردید زیرا فلش ROM در دستگاه Atmega شما یا شاید محدوده ATTINY ارزان و م effectiveثر است. اینها را می توان با قیمتی کمتر از 5 دلار به عنوان کلون چینی منبع باز USB-ASP به دست آورد! AVRdude نرم افزاری است که آنها را برنامه ریزی می کند.

شما بدون شک می دانید چگونه با استفاده از Atmel Studio یک فایل Hex ایجاد کنید (من هنوز از AVR Studio v4.19 به جای آخرین نسخه v7 استفاده می کنم زیرا در لپ تاپ CPU تک هسته ای سبک تر و سریعتر است)/ اگر این را می خوانید Netbook و WINAVR نصب کنید. هر چیزی که در DotNet نوشته شده است به آرامی اجرا می شود! و نسخه های بعدی طوری طراحی شده اند که لپ تاپ شما مانند یک لاک پشت کار می کند! می توانید از Studio v4.19 بهترین نسخه Studio از ATMEL برای میکروکنترلرهای AVR استفاده کنید و در صورت نیاز واقعاً برای تراشه های بعدی ، به نسخه 7 بروید و زمان خود را در لپ تاپ پربارتر کنید و به جای انتظار کار کنید! این چیزی است که من توصیه می کنم.

یک خط فرمان معمولی AVR برای برنامه ریزی Atmega با فایل Hex ، به این شکل اجرا می شود:

فلش بنویسید: AVRdude -s -c avrisp -p t44 -P usb -U "flash: w: D: / ARDUINO / pwmeg1.hex: a"

در اینجا pwmeg1.hex فایل hex اینتل است که باید "در MCU هدف" در میکروکنترلر Lingo "سوخته" یا "فلش" شود

این یک دهان است که باید به یاد داشته باشید! شما می توانید یک فایل دسته ای بنویسید و آن را در خط فرمان در ویندوز اجرا کنید و نام آن را بنویسید write_flash.bat. به طور مشابه برای خواندن فیوزها ، یک دهان دیگر از خط به یاد داشته باشید! خسته کننده می شود.

برای خواندن فلش + eeprom: AVRdude -s -c avrisp -p t44 -P usb -U "flash: r: D: / ARDUINO / pwmeg1.hex: i" -U "eeprom: r:: i"

راه حل این است که از یکی از ابزارهای GUI کاربرپسند کاربر پسند برای AVRdude مانند Bitburner ، برنامه نویس خزاما استفاده کنید که تقریباً از نظر شایستگی مشابه هستند. eXtreme Burner. من از ابزار رایگان استفاده می کنم: eXtreme Burner بسیار ، همه کاره ، قابل اعتماد ، و این آموزش در مورد آن است. این برنامه نه تنها می تواند فایل / برنامه شش ضلعی شما را به MPU فلش کند ، بلکه با استفاده از دستوراتی که در پس زمینه برای AVRdude صادر شده است ، همچنین می تواند به شما در تنظیم FUSES که یک موضوع پیچیده است و اغلب مبتدیان را با برنامه نویسی AVR گیج می کند ، کمک کند. در اینجا پیوندی به یک آموزش عالی در مورد FUSES وجود دارد که می توانید از طریق آن استفاده کنید یا در مورد آن صحبت کنید. یک کلمه احتیاط: ATMEL از حالت "1" یک بیت FUSE برای نشان دادن حالت "پیش فرض" (حالت تنظیم نشده یا برنامه ریزی نشده) و "0" برای نشان دادن حالت برنامه ریزی شده یا تنظیم شده یا فعال شده خود استفاده می کند! این درست برعکس کاری است که با بیت های FUSE در میکروکنترلر PIC انجام می دهید. هنگام تغییر بیت های فیوز ساعت مانند تغییر ساعت RC داخلی به کریستال خارجی ، مراقب باشید زیرا این امر در اتصال به تراشه بدون تنظیم کریستال خارجی مشکل ایجاد می کند. به همین ترتیب هنگام تغییر وضعیت فیوزهای حیاتی مانند SPIEN و RESET DISABLE (در صورت تمایل به برقراری ارتباط با MCU با USB-ASP خود در حالت ISP / SPI ، همیشه باید روی SPIEN = 0 و RESET DISABLE = 1 تنظیم شود) !

اگر از خود می پرسید "فیوزها چیست" و "آنها چه کار می کنند"؟ این نوشته عالی را بخوانید:

یکی دیگر از موضوعات مرتبط نحوه تنظیم سرعت ساعت MPR AVR است که می تواند از 1 مگاهرتز تا 16 یا 20 مگاهرتز سرعت داشته باشد. همچنین دارای یک کریستال فرکانس پایین با فرکانس پایین 31.25 کیلوهرتز است که در صورت طراحی مناسب می تواند باتری AA را به مدت 3 ماه خالی کند!

هر دوی اینها ، بیت های ساعت (فرکانس و نوع ساعت داخلی RC/کریستال خارجی و سایر بیت های فیوز) را می توان از طریق برگه FUSES در eXtreme Burner تنظیم کرد. ابتدا به شما نشان می دهیم که ROM را می خوانید ، و سپس نحوه فلش کردن فایل hex با استفاده از eXtreme Burner را به شما نشان می دهیم. البته ، شما می توانید از وب سایت های فیوز AVR آنلاین نیز استفاده کنید ، اما گزینه ای که توضیح می دهم می تواند هنگامی که آفلاین هستید ، در هر کجا استفاده شود.

مرحله 1: تنظیماتی که باید انجام شود:

تنظیماتی که باید انجام شود
تنظیماتی که باید انجام شود
تنظیماتی که باید انجام شود
تنظیماتی که باید انجام شود
تنظیماتی که باید انجام شود
تنظیماتی که باید انجام شود
تنظیماتی که باید انجام شود
تنظیماتی که باید انجام شود

تصاویر نشان می دهد تنظیماتی که باید قبل از شروع کار انجام شود. (فقط یکبار) در بخش زیر منوی "تنظیمات سخت افزار" ، 375 هرتز را انتخاب می کنیم زیرا اکثر MCU از کارخانه ATMEL روی تنظیمات پیش فرض ساعت CPU 1 مگاهرتز در نوسان ساز RC داخلی تنظیم شده است. سرعت ISP یک چهارم F_cpu است. این به ما 375 هرتز نزدیکترین سرعت را می دهد ، شما همچنین می توانید به سرعت کمتری بروید ، تفاوت چندانی نخواهد داشت. می توانید سعی کنید این را در حالت پیش فرض متصل کنید و "همه را بخوانید" را در صورت خرابی صادر کنید ، اگر می توانید بیایید اینجا و سرعت را تغییر دهید و آن را پایین بیاورید.

زیرا اگر قادر به اتصال نیستید (پیام در پنجره برنامه نویس "نمی توانید با تراشه ارتباط برقرار کنید ، SCK نمی تواند" داده می شود به این معنی است که سیگنال ساعت از رایانه شما نمی تواند با تراشه شما که سعی می کنید بخوانید هماهنگ شود یا برنامه) ، شما قادر به تغییر سرعت ساعت CPU یا تغییر سرعت و نوع آن نخواهید بود! بنابراین اتصال اساس همه چیز است! مانند "اولین تماس" مانند آنچه در فیلم های اسپیلبرگ می بینید. در صورت موفقیت در این امر ، همیشه می توانید با برنامه ریزی فیوزها سرعت کلاک MCU خود را افزایش دهید و بعداً از سرعت بیشتری برای اتصال استفاده کنید.

بنابراین عکس های فوری تنظیمات سخت افزاری که در اینجا ارائه شده است را مرور کنید ، سپس نوع دستگاه را نیز تعیین کنید (تراشه ای که قصد برنامه نویسی دارید ، شماره مدل آن).

مرحله 2: تنظیم نوع دستگاه

تنظیم نوع دستگاه شما
تنظیم نوع دستگاه شما
تنظیم نوع دستگاه شما
تنظیم نوع دستگاه شما
تنظیم نوع دستگاه شما
تنظیم نوع دستگاه شما

تصویر 1 را ببینید ، ما "ATTINY44A" را تنظیم کرده ایم. این میکروکنترلر 14 پین بدون UART است. من اخیراً از این نسخه SSU استفاده می کنم. اگر نسخه سهام Extreme burner را نصب کرده اید ، Attiny44A را در لیست کشویی انتخاب دستگاه مشاهده نمی کنید ، یک Attiny44 را مشاهده می کنید که برای همه منظور می توانیم از آن برای برنامه ریزی Attiny44A نیز استفاده کنیم ، تا هر دستگاهی را که در این لیست کشویی ذکر نشده است معرفی کنیم. ، "Hacking eXtreme Burner" آموزنده دیگر من را بخوانید.

من از Atmega88PA-AU همچنین با eXtreme Burner استفاده می کنم اما در این دستورالعمل ما همه جا "Attiny44A" را ذکر می کنیم. حالا چگونه می توانید یک ورقه ورق از تراشه کوچک SMD مربع 7 میلی متری بسازید و آن را با برنامه های خود آزمایش کنید؟ (به عکسهایی که اندازه تراشه را نشان می دهند مراجعه کنید) ، برای این منظور ، دستورالعمل های دیگر من را مشاهده کنید که در آن نحوه ایجاد ماژول های افزونه مناسب Breadboard با استفاده از Attiny44A-SSU و ATmega88PA-AU را نشان می دهم.

هنگامی که این تکنیک را یاد می گیرید ، می توانید هر تراشه ای را که علاقه دارید با آن کار کنید ، بررسی کنید ، چه بسته SMD آن یا بسته DIL آن. به عنوان مثال ، من حتی از یک تراشه SMD که در بسته Quad 0.2 میلیمتری 32 پین 0.8 میلی متری (Atmega88A) به صورت مشابه استفاده می شود استفاده کرده ام!

به یا فقط می توانید از نسخه 28 پین DIL Attiny44A برای این دستورالعمل یا AVR دیگری که در حال حاضر استفاده می کنید استفاده کنید تا eXtreme Burner را برای برنامه نویسی AVR امتحان کنید.

مرحله 3: یک READ ALL یا READ FLASH صادر کنید

یک READ ALL یا READ FLASH صادر کنید
یک READ ALL یا READ FLASH صادر کنید
یک READ ALL یا READ FLASH صادر کنید
یک READ ALL یا READ FLASH صادر کنید

USBasp خود را به پورت USB لپ تاپ خود وصل کنید ، فرض کنید شما قبلاً درایورهای صحیح برنامه نویس خود را بارگیری کرده اید و به درستی شناسایی شده است. در صورت وجود آن ، باید به عنوان "دستگاه ها و چاپگرها" در منوی شروع ویندوز ظاهر شود ، به محض اینکه به پورت USB متصل شد! تراشه مورد نظر خود را با USBasp خود روی برد خود متصل کنید (پین های مربوط به SDI // ISP با استفاده از کابل 6 پین یا 10 پین باید بین هر دو وصل شود ، یعنی پین ها: MOSI ، RESET ، MISO ، SCK ، Vcc ، Ground).

همه را از منوی Xtreme Burner بخوانید. عکسها و پیامهایی را که به دست آوردیم مشاهده کنید. ابتدا صفحه شما FF را برای ROM در First TAB مشعل نشان می داد ، پس از خواندن همه مطالب محتویات ROM واقعی روی تراشه را نشان می دهد. اگر از تراشه تازه کارخانه یا تراشه پاک شده استفاده می کنید ، پس از "خواندن همه" FF را در محتویات مشاهده می کنید. یک تراشه برنامه نویسی شده FF را در حافظه خود نشان می دهد ، همچنین EEPROM (برگه دوم در برنامه نویس) ، برگه آخر FUSES را نشان می دهد.

بعد از خواندن همه 3 زبانه اطلاعات صحیح موجود در تراشه را نشان می دهد. قبل از آن چنین نخواهد بود ، بنابراین به محض اینکه همه چیز را به هم وصل کردید ، ابتدا "خواندن همه" را صادر کنید.

مرحله 4: روی Flash بنویسید (فایل Hex شما روی ROM روی تراشه قرار گرفت

روی فلش بنویسید (فایل Hex شما روی ROM روی تراشه قرار گرفت
روی فلش بنویسید (فایل Hex شما روی ROM روی تراشه قرار گرفت
روی فلش بنویسید (فایل Hex شما روی ROM روی تراشه قرار گرفت
روی فلش بنویسید (فایل Hex شما روی ROM روی تراشه قرار گرفت
روی فلش بنویسید (فایل Hex شما روی ROM روی تراشه قرار گرفت
روی فلش بنویسید (فایل Hex شما روی ROM روی تراشه قرار گرفت

با کلیک بر روی اولین نماد در نوار MENU در بالا ، یک فایل را با استفاده از محاوره مرور انتخاب کنید. ما یک فایل را همانطور که در عکس می بینید انتخاب کردیم. پس از انتخاب فایل hex (قالب hex intel) نوار منو که نشان می داد "هیچ فایلی بارگیری نشده است" به نام فایلی که بارگذاری کرده اید تغییر می کند.

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

پس از نوشتن موفق ، FF را مشاهده می کنید که نشان دهنده تغییر ROM جدید یا پاک شده در برنامه یا فایل شش ضلعی شما است. اندازه یا تعداد بایت هایی که فایل شما در ROM اشغال می کند نیز با مشاهده این صفحه برای شما مشخص است ، که محتویات ROM واقعی تراشه مورد نظر شما را نشان می دهد.

مطابق تنظیماتی که در مرحله اول انجام دادیم ، مرحله تأیید نیز با خواندن تراشه انجام می شود. این در پیامها مشاهده می شود که تأیید نیز موفقیت آمیز بوده است.

مرحله 5: فیوزها: چگونه آنها را در Extrreme Burner تنظیم کنیم

فیوزها: چگونه آنها را در سوزاندن شدید بسازیم
فیوزها: چگونه آنها را در سوزاندن شدید بسازیم

وقتی یک READ ALL صادر کردید فیوزها از تراشه خوانده شدند. این اولین عکس نشان داده شده در fuses-j.webp

حالا شاید شما باید آنها را به چیز دیگری تغییر دهید. فیوزها از 4 جعبه در آخرین TAB روی صفحه eXtreme Burner شما تشکیل شده است. به عبارت دیگر LOW FUSE BYTE ، HIGH FUSE BYTE ، EXTENDED FUSE BYTE ، LOCK FUSE BYTE و CALIBRATION BYTE. به این ترتیب نشان داده می شوند

شما به سادگی می توانید از یک ماشین حساب فیوز آنلاین استفاده کنید و آنها را مانند آنچه در آن است پر کنید

eleccelerator.com/fusecalc/fusecalc.php؟

یا می توانید از رایتر eXtreme برای این کار برای خود استفاده کنید. آفلاین خودش در هر زمان: از لیست کشویی که هنگام کلیک روی دکمه DETAILS که در زیر هر نوع بایت فیوز وجود دارد ، ظاهر می شود را انتخاب کنید. فقط روی هر خطی در صفحه DETAILS دوبار کلیک کنید و مشاهده کنید که از SET به CLEARED تغییر می کند و با کلیک ماوس بر روی هر خط وضعیت آن را تغییر دهید. بایت فیوز در کادر بالا بر این اساس تغییر می کند.

اگر از خود می پرسید "فیوزها چیست" و "آنها چه کار می کنند"؟ این نوشته عالی را بخوانید:

www.instructables.com/id/Avr-fuse-basics-Running-an-avr-with-an-external-cl/

مرحله 6: تنظیم فیوزها با استفاده از ماشین حساب فیوز EXTreme Burner

تنظیم فیوزها با استفاده از ماشین حساب فیوز مشعل فوق العاده
تنظیم فیوزها با استفاده از ماشین حساب فیوز مشعل فوق العاده
تنظیم فیوزها با استفاده از ماشین حساب فیوز مشعل فوق العاده
تنظیم فیوزها با استفاده از ماشین حساب فیوز مشعل فوق العاده
تنظیم فیوزها با استفاده از ماشین حساب فیوز مشعل فوق العاده
تنظیم فیوزها با استفاده از ماشین حساب فیوز مشعل فوق العاده

می توانید صفحه جزئیات را که برای هر یک از بایت های فیوز (LOW ، HIGH ، EXTENDED ، LOCK و Calibration) ظاهر می شود ، مشاهده کنید. بایت کالیبراسیون باید بدون تغییر باقی بماند زیرا بایت داده های کالیبراسیون را در AVR نشان می دهد که برای نوسان ساز RC داخلی اعمال می شود. بایت LOCK معمولاً فقط FF است (در عکسهای بالا مورد بحث قرار نگرفته است) زیرا در مرحله یادگیری فلش یا EEPROM را قفل نمی کنید. شما فقط بایت های LOW ، HIGH و EXTENDED را تغییر می دهید. مراقب باش !

اگر بیت SPIEN را به 1 تغییر دهید (حالت برنامه ریزی نشده 1 در میکروکنترلرهای AVR است) نمی توانید با تراشه خود با استفاده از USBASP یا هر برنامه نویس ارتباط برقرار کنید! وضعیت پیش فرض نیز برای هر بیت فیوز در صفحه نمایش داده می شود. این به شما هشدار می دهد که SPIEN پیش فرض همیشه 0 (حالت برنامه ریزی شده) است تا به شما اجازه دهد از حالت SPI برای برنامه نویسی ISP استفاده کنید. هنگامی که SPIEN روی 0 تنظیم شود ، سیم اشکال زدایی یا بیت DW همیشه 1 (بدون برنامه) باقی می ماند. این نیز حالت پیش فرض آن است. همچنین ، اگر در USB-ASP خود برای برنامه ریزی تراشه موردنظر خود (بدون استفاده از ROM بوت لودر مانند ARDUINO) ، در برنامه های Extended Fuse 'Self Programming Enable' باید '1' (بدون برنامه) باشد.

برای انتخاب RC داخلی یا کریستال خارجی ، می توانید بیت های ساعت (3 عدد) را تغییر دهید. من معمولاً آن را برای RC داخلی می گذارم که به شما امکان می دهد 2 پین اضافی بگیرید که آزاد کردن کریستال خارجی مستلزم استفاده از آنها به عنوان پین های PORT برای پروژه های AVR شما است. معمولاً کریستال خارجی هنگامی مورد نیاز است که در پروژه خود به زمان بندی دقیق دقت کنید. برای یادگیرندگان RC داخلی کافی است.

معمولاً هنگامی که از ترکیب فیوز استفاده می کنید ، دیگر آن را تغییر نمی دهید. یکبار خواهد بود. شما فقط ROM یا گاهی EEPROM را چشمک می زنید. برای فلش کردن EEPROM فایل.eep جداگانه توسط استودیوی WINAVR / ATMEL شما ایجاد می شود اگر برنامه شما از EEPROM برای ذخیره داده ها استفاده می کند. در غیر این صورت EEPROM بدون استفاده باقی می ماند ، پر از داده های "FF" که "حالت DATAA" EEPROM را نشان می دهد ، پر شده است.

مرحله 7: مقدار نهایی بیت فیوز

ارزش نهایی فیوز بیت ها
ارزش نهایی فیوز بیت ها

پس از تنظیم تمام بیت های فیوز و بستن جعبه های DETAILS که استفاده کرده اید ، می توانید مقدار بیت های فیوز را که توسط برنامه محاسبه شده است مشاهده کنید (عکس را ببینید). تنها چیزی که باقی می ماند این است که یک "نوشتن فیوز" با استفاده از منو منتشر کنید. و به پیامهایی که یک نوشتار موفق را گزارش می دهند نگاه کنید. بعداً ، می توانید از منو READ ALL را صادر کنید و بررسی کنید آیا فیوزهای خوانده شده در آخرین TAB صفحه مشعل با آنچه می خواهید روی تراشه بنویسید مطابقت دارد. (تأیید فیوز).

متوجه خواهید شد که در ابتدای این دستورالعمل وقتی یک READ FUSES انجام دادیم ، صفحه همان مقادیر FUSE را که در اینجا می بینیم نشان می دهد! دلیل این امر فیوزهایی است که من اغلب از آنها استفاده می کنم و به ندرت آنها را هنگامی که آنها را در MCU خود قرار می دهم عوض می کنم ، مگر اینکه فرکانس را از 1 مگاهرتز به 4 مگاهرتز برای برخی پروژه ها تغییر دهم. AVR را می توان روی حداکثر 20 مگاهرتز تنظیم کرد (برخی تراشه ها فقط تا 16 مگاهرتز). فرکانسی که برای F_cpu تنظیم می کنید بستگی به ولتاژی دارد که تراشه را تامین می کنید! به عنوان مثال اگر تراشه شما از 1.8 ولت Vcc تا 5.5 ولت Vcc کار می کند (به برگه اطلاعات مراجعه کنید) اگر فقط 1.8 ولت به آن عرضه کنید ، انتظار ندارید تراشه خود را در 20 مگاهرتز اجرا کنید! شما انتظار زیادی از آن دارید! جدول موجود در برگه اطلاعات به شما می گوید که فرکانس در چه رقمی در چه ولتاژی بالا می رود. هرچه فرکانس عملکرد تراشه شما بیشتر باشد ، گرما و توان بیشتری مصرف می کند. به فرکانس مانند ضربان قلب حیوان فکر کنید. یک مرغ مگس خوار با میزان صدای زیاد در مقایسه با یک نهنگ یا فیل با ضربان قلب بسیار کمتر ، در دقیقه انرژی بیشتری می سوزاند! اما پس از آن می تواند خیلی بیشتر در زمان کوتاه تری انجام دهد. MCU دقیقاً همینطور است.

مرحله 8: کار را تمام کنید

اکنون شما تمام مراحل را در eXtreme burner انجام داده اید ، ROM یک تراشه را خوانده اید ، یک فایل HEX را باز کرده اید و آن را روی تراشه فلش کرده اید و تأیید کرده اید که فلش خوب است ، همچنین نحوه تنظیم فیوزها و فلش آنها روی تراشه را آموخته اید. به

اگر سوالی دارید ، خوشحال می شوم که به آموزش پاسخ دهم یا آن را اصلاح کنم تا واضح تر شود.

برای برخی از تراشه ها ممکن است متوجه شوید که ورودی آن در لیست کشویی انتخاب تراشه در منو وجود ندارد. یا ممکن است با خطاهای نوشتاری و تأیید خطاها روبرو شوید. در چنین مواردی لطفاً "Hacking eXtreme Burner" دستورالعمل دیگر من را بخوانید تا مشکل حل شود.

برنامه نویسی شاد

توصیه شده: