Съдържание:

ИЗПОЛЗВАНЕ НА EXtreme Burner за програмиране на микроконтролер AVR: 8 стъпки
ИЗПОЛЗВАНЕ НА EXtreme Burner за програмиране на микроконтролер AVR: 8 стъпки

Видео: ИЗПОЛЗВАНЕ НА EXtreme Burner за програмиране на микроконтролер AVR: 8 стъпки

Видео: ИЗПОЛЗВАНЕ НА EXtreme Burner за програмиране на микроконтролер AVR: 8 стъпки
Видео: Прошивка микроконтроллера ATmega8 в TQFP-32 (SMD) корпусе 2024, Юли
Anonim
ИЗПОЛЗВАНЕ НА Extreme Burner за програмиране на микроконтролер AVR
ИЗПОЛЗВАНЕ НА Extreme Burner за програмиране на микроконтролер AVR

Всички вие, потребителски братства на AVR, и тези, които току -що влизат в потока, Някои от вас започнаха с PIC микроконтролери, а други започнаха с ATMEL AVR, това е написано за вас!

Така че купихте USBASP, защото е евтино и ефективно да мигате ROM на вашето устройство Atmega или може би гамата ATTINY. Те могат да бъдат получени за под 5 $ като китайски клонинги на USB-ASP с отворен код! AVRdude е софтуерът за тяхното програмиране.

Несъмнено знаете как да генерирате шестнадесетичен файл с помощта на Atmel Studio (все още използвам AVR Studio v4.19 вместо най -новия v7, защото е по -бърз и бърз на моя лек едноядрен процесорен лаптоп)/ Netbook и WINAVR инсталиране, ако четете това. Всичко написано в DotNet работи бавно! и по -късните версии са предназначени да накарат вашия лаптоп да работи като костенурка! Можете да използвате Studio v4.19 най -добрата версия на Studio от ATMEL за микроконтролери AVR, като преминете към версия 7, когато наистина имате нужда от по -късните чипове, и да направите времето си на лаптопа по -продуктивно, работейки, вместо да чакате! Това препоръчвам.

Типичен AVR пич команден ред за програмиране на Atmega с шестнадесетичен файл, работи по следния начин:

ЗАПИСАЙТЕ ЗА ФЛЕШ: AVRdude -s -c avrisp -p t44 -P usb -U "флаш: w: D: / ARDUINO / pwmeg1.hex: a"

тук pwmeg1.hex е шестнадесетичния файл на Intel, който трябва да бъде "изгорен" или "прехвърлен" в "целевия MCU" в микроконтролера Lingo

Това е една запомняща се закуска! Можете да напишете партиден файл и да го стартирате в командния ред в Windows, като му дадете име write_flash.bat. По същия начин за четене на предпазителите, още една заповед от ред, която да запомните! Става досадно.

за четене на флаш + eeprom: AVRdude -s -c avrisp -p t44 -P usb -U "флаш: r: D: / ARDUINO / pwmeg1.hex: i" -U "eeprom: r:: i"

Решението е да се използва един от удобните за потребителя GUI предни инструменти за AVRdude като Bitburner, Khazama програмист, които са почти сходни по заслуги. eXtreme Burner. Използвал съм безплатния за използване инструмент: eXtreme Burner много, неговият универсален, надежден и този урок е за това. Той може не само да прехвърли вашия шестнадесетичен файл / програма в MPU, като използва команди, издадени на AVRdude във фонов режим, но също така може да ви помогне да зададете FUSES, който е сложна тема, която често обърква начинаещите в AVR програмирането. Ето линк към отличен урок по темата ЗА ПРЕДПАЗНИЦИ, който можете да прегледате или да прегледате. Една предупредителна дума: ATMEL използва състоянието „1“на бит FUSE, за да посочи състоянието му „по подразбиране“(не настроено или непрограмирано състояние) и „0“, за да посочи програмираното или зададеното или активираното му състояние! Това е точно обратното на това, което правите с FUSE битовете в PIC микроконтролер. Бъдете внимателни, когато променяте битовете на предпазителя на часовника, като например превръщането на вътрешния RC часовник в външен кристал, защото това ще създаде проблеми при свързването към чипа без настройка на външен кристал. По същия начин бъдете внимателни, когато променяте състоянието на критични предпазители като SPIEN и RESET DISABLE (те винаги трябва да бъдат настроени на SPIEN = 0 и RESET DISABLE = 1, ако искате да продължите да комуникирате с MCU с вашия USB-ASP в режим ISP / SPI Ако провалите това, ще ви е необходим програмист с високо напрежение, за да „разблокирате“вашия AVR.

Ако се чудите "какво, по дяволите, са предпазителите" и "какво правят"? Прочетете това отлично писане:

Друга свързана тема е как да настроите тактовата скорост на вашия AVR MPU, която може да работи със скорост от 1Mhz до 16 или 20Mhz. Има и специална опция за нискочестотни кристали със собствена мощност 31,25 kHz, която, ако е правилно проектирана, може да накара вашия AVR да изтощи батерии AA за 3 месеца!

И двата бита за предпазител на часовника (както честотата, така и типът на часовника, вътрешен RC/външен кристал и други битове на предпазителя) могат да бъдат зададени чрез раздела FUSES в eXtreme Burner. Първо ще ви покажем да прочетете ROM, а след това как да мигате шестнадесетичния файл с помощта на eXtreme Burner. Разбира се, можете да използвате и онлайн уебсайтовете с предпазители на AVR, но опцията, която обяснявам, може да се използва, когато сте офлайн, навсякъде.

Стъпка 1: Настройки, които трябва да бъдат направени:

Настройки, които трябва да бъдат направени
Настройки, които трябва да бъдат направени
Настройки, които трябва да бъдат направени
Настройки, които трябва да бъдат направени
Настройки, които трябва да бъдат направени
Настройки, които трябва да бъдат направени
Настройки, които трябва да бъдат направени
Настройки, които трябва да бъдат направени

Снимките показват НАСТРОЙКИТЕ, които трябва да направите, преди да започнете работата си. (само веднъж). Под елемента на подменюто „Хардуерни настройки“избираме 375Hz, тъй като повечето от MCU от фабриката на ATMEL са настроени на настройки по подразбиране на 1 Mhz CPU часовник на вътрешния RC осцилатор. Скоростта на ISP е една четвърт от F_cpu. Това ни дава най -близката скорост от 375 Khz, можете да отидете и на по -ниска скорост, няма да има голяма разлика. Можете да опитате да се свържете, оставяйки това по подразбиране, и да издадете „прочетете всичко“, ако не успее, можете да дойдете тук и да промените скоростта, като я намалите.

Защото ако не можете да се свържете (съобщението ще бъде дадено в прозореца на програмиста „не може да комуникира с чип, не може ли SCK“означава, че сигналът на часовника от вашия компютър не може да се синхронизира с вашия чип, който се опитвате да прочетете или програма)., няма да можете да промените тактовата честота на процесора или да промените скоростта и вида му! Така че свързването е в основата на всичко! Това е като „ПЪРВИ КОНТАКТ“, както виждате във филмите на Спилбърг. Ако успеете в това, винаги можете да увеличите тактовата честота на вашия MCU, като програмирате съответно предпазителите и по -късно да използвате по -висока скорост за свързване.

Така че преминете през предоставените тук снимки на хардуерните настройки, след това задайте и типа на устройството (чипът, който се опитвате да програмирате, номера на неговия модел).

Стъпка 2: Задаване на вашия тип устройство

Задаване на вашия тип устройство
Задаване на вашия тип устройство
Задаване на вашия тип устройство
Задаване на вашия тип устройство
Задаване на вашия тип устройство
Задаване на вашия тип устройство

вижте екранната снимка, снимка 1, зададохме „ATTINY44A“. Това е 14 -пинов микроконтролер без UART. Използвах това наскоро, версията на SSU. Ако сте инсталирали запасна версия на Extreme burner, няма да видите Attiny44A в падащия списък за избор на устройство, ще видите Attiny44, който за всички цели можем да използваме и за програмиране на Attiny44A, за да представим всяко устройство, което не е посочено в този падащ списък, прочетете другата ми инструкция "Hacking eXtreme Burner".

Използвах Atmega88PA-AU и с eXtreme Burner, но в тази инструкция споменаваме „Attiny44A“навсякъде. Сега как да направите макетна версия на малкия 7 мм квадратен SMD чип и да го тествате с вашите програми? (вижте снимките, които показват размера на чипа), За това вижте другите ми инструкции, където демонстрирам как да направя Breadboard подходящи Plug-in модули, използвайки Attiny44A-SSU и ATmega88PA-AU

След като научите тази техника, ще можете да проверите всеки чип, с който сте любопитни да се занимавате, независимо дали е неговият SMD или DIL пакет. Например, дори съм използвал SMD чип, идващ в 32-пинов 0.8 мм пин стъпка Quad пакет (Atmega88A) по подобен начин!

. Или можете просто да използвате 28 -пиновата DIL версия на Attiny44A за този Instructable или какъвто и да е 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 порта на вашия лаптоп, предполагам, че вече сте заредили правилните драйвери, които сте получили с вашия програмист и че той е правилно открит. Той трябва да се появи под „Устройства и принтери“в менюто за стартиране на Windows, ако беше, веднага след като е включен в USB порта! Свържете целевия си чип на дъската му с вашия USBasp (съответните SDI // ISP щифтове, използващи 6 -пинов или 10 -пинов кабел, трябва да бъдат свързани между двете, а именно пиновете: MOSI, RESET, MISO, SCK, Vcc, Ground).

Издайте ПРОЧЕТЕТЕ ВСИЧКО от МЕНЮТО на Xtreme Burner. Вижте снимки и съобщения, които получихме. Първоначално екранът ви показваше „FF“за ROM в Първия раздел на горелката, след като прочете всичко, той ще покаже действителното съдържание на ROM на чипа. Ако сте използвали фабрично свеж чип или изтрит чип, ще видите FF в съдържанието след „Прочетете всички“. Непрограмиран чип ще показва „FF“в паметта си, както и EEPROM (втори раздел в програмиста), последният раздел показва FUSES.

След ПРОЧЕТЕТЕ ВСИЧКИ трите раздела ще покажат правилната информация, съдържаща се в чипа. Преди това не би било така, затова първо издайте Прочети всичко веднага щом свържете всичко.

Стъпка 4: Пишете на Flash (вашият шестнадесетичен файл мига в ROM на чипа)

Пишете във Flash (вашият шестнадесетичен файл мига в ROM на чипа)
Пишете във Flash (вашият шестнадесетичен файл мига в ROM на чипа)
Пишете във Flash (вашият шестнадесетичен файл мига в ROM на чипа)
Пишете във Flash (вашият шестнадесетичен файл мига в ROM на чипа)
Пишете във Flash (вашият шестнадесетичен файл мига в ROM на чипа)
Пишете във Flash (вашият шестнадесетичен файл мига в ROM на чипа)

Изберете файл, като използвате диалоговия прозорец Преглед, който се отваря, когато щракнете върху първата икона в лентата MENU по -горе. Избрахме един файл, както виждате на снимката. След като изберете шестнадесетичния файл (intel шестнадесетичен формат), лентата с менюта, която показва „не е зареден файл“, се променя на името на файла, който сте заредили.

Сега издайте Write Flash от менюто на софтуера. Съобщенията ще ви покажат какво се случва. вижте снимките

След успешно записване ще видите „FF“, който маркира нова или изтрита ROM промяна на съдържанието на вашата програма или шестнадесетичен файл. Размерът или броят байтове, които вашият файл заема в ROM, също са ви известни, като погледнете този екран, който ви показва действителното съдържание на ROM на целевия ви чип, което мигате току -що.

Стъпката за проверка също се извършва чрез четене на чипа, съгласно НАСТРОЙКИТЕ, които направихме в първата стъпка. Това се вижда от съобщенията, че проверката също е била успешна.

Стъпка 5: Предпазители: Как да ги настроите в EXtreme Burner

Предпазители: Как да ги настроите в EXtreme Burner
Предпазители: Как да ги настроите в EXtreme Burner

Когато сте издали ПРОЧЕТЕТЕ ВСИЧКИ предпазителите бяха отчетени от чипа. Това е ПЪРВАТА снимка показана fuses.jpg.

Сега може би трябва да ги промените на нещо друго. Предпазителите се състоят от 4 кутии в последния раздел на вашия екран на eXtreme Burner. А именно LOW FUSE BYTE, HIGH FUSE BYTE, EXTENDED FUSE BYTE, LOCK FUSE BYTE и CALIBRATION BYTE. в този ред те са показани.

Можете просто да използвате ОНЛАЙН калкулатор на предпазители и да ги попълните като този в

eleccelerator.com/fusecalc/fusecalc.php?

Или можете да използвате горелката eXtreme, за да го направите вместо вас. офлайн по всяко време: Изберете от падащия списък, който се появява, когато щракнете върху бутона ПОДРОБНОСТИ, който е там под всеки вид байт на предпазителя. Просто щракнете двукратно върху който и да е ред в екрана ПОДРОБНОСТИ и гледайте как се променя от SET на CLEARED и превключете състоянието му с щракване на мишката върху всеки ред. Байтът на предпазителя в полето над него ще се промени съответно.

Ако се чудите "какво, по дяволите, са предпазителите" и "какво правят"? Прочетете това отлично писане:

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

Стъпка 6: Настройка на предпазители с помощта на калкулатор на предпазители на екстремни горелки

Настройка на предпазители с помощта на калкулатор на предпазители на екстремни горелки
Настройка на предпазители с помощта на калкулатор на предпазители на екстремни горелки
Настройка на предпазители с помощта на калкулатор на предпазители на екстремни горелки
Настройка на предпазители с помощта на калкулатор на предпазители на екстремни горелки
Настройка на предпазители с помощта на калкулатор на предпазители на екстремни горелки
Настройка на предпазители с помощта на калкулатор на предпазители на екстремни горелки

Можете да видите екрана с подробности, който се появява за всеки от байтовете на предпазителя (LOW, HIGH, EXTENDED, LOCK и Calibration). Калибриращият байт трябва да бъде оставен непроменен, тъй като показва байта на данните за калибриране в AVR, който се прилага към вътрешния RC осцилатор. Байтът LOCK обикновено е само FF (не е обсъдено на снимките по -горе), тъй като няма да заключвате Flash или EEPROM, докато сте на етап обучение. Ще променяте само НИСКИ, ВИСОКИ и УДЪЛЖЕНИ байтове. Бъди внимателен !

Ако промените бита SPIEN на 1 (непрограмираното състояние е 1 в AVR микроконтролерите), няма да можете да комуникирате с чипа си чрез USBASP или друг програмист! Състоянието по подразбиране също се показва на екрана за всеки бит на предпазителя. Това ви предупреждава, че по подразбиране SPIEN винаги е 0 (програмирано състояние), което ви позволява да използвате SPI режим за програмиране на ISP. Отстраняване на грешки или DW бит винаги остава 1 (непрограмиран), когато SPIEN е зададен на 0. Това е и неговото състояние по подразбиране. Също така, в битовете с разширен предпазител „Self Programming Enable“трябва да бъде „1“(непрограмирано), ако използвате вашия USB-ASP за програмиране на целевия си чип (не използвате ROM за зареждане като в ARDUINO).

Можете да промените битовете CLOCK (3 на брой), за да изберете вътрешен RC или външен кристал. Обикновено го оставям за вътрешен RC, който ви позволява да получите 2 допълнителни пина, които освобождаването на външния кристал води до използване като PORT щифтове за вашите AVR проекти. Обикновено външен кристал е необходим, когато имате нужда от висока точност на времето във вашия проект. За учащите е достатъчен вътрешен RC.

Обикновено, след като се спрете на някаква комбинация от предпазители, няма да я променяте. Щеше да е еднократно. Ще мигате само ROM или понякога EEPROM. За мигане на EEPROM отделен.eep файл се генерира от вашето студио WINAVR / ATMEL, ако изобщо вашата програма използва EEPROM за съхраняване на данни. В противен случай EEPROM остава неизползван, попълнен с данни „FF“, които показват „НЕТ ДАННИ““на EEPROM.

Стъпка 7: Крайна стойност на предпазителите

Крайна стойност на предпазителите
Крайна стойност на предпазителите

След като настроите всички битове на предпазителя и затворите полетата DETAILS, които сте използвали, можете да видите стойността на битовете на предпазителя, изчислена от програмата (вижте снимката). Остава само да издадете „Запиши предпазители“, като използвате менюто. И погледнете съобщенията, които съобщават за успешно записване. По -късно можете също да издадете ПРОЧЕТЕТЕ ВСИЧКО от менюто и да проверите дали предпазителите, прочетени в последния раздел на екрана на горелката, съвпадат с това, което искате да напишете в чипа. (Проверка на предпазителя).

Ще забележите, че в началото на този Instructable, когато направихме READ FUSES, екранът показва същите FUSE стойности, които виждаме тук! Това е така, защото това са предпазителите, които често използвам и рядко ги сменям, след като ги настроя в MCU, освен ако не променя честотата от 1 Mhz на 4Mhz за някои проекти. AVR може да бъде настроен на максимум 20 Mhz (някои чипове само до 16 Mhz). Честотата, която задавате за F_cpu, също зависи от напрежението, с което доставяте чипа! Например, ако вашият чип работи от 1,8 V от Vcc до 5,5 V от Vcc (вижте информационния лист), не бихте очаквали да работите с чипа си при 20 mhz, ако към него доставяте само 1,8 V! очаквате твърде много от него! Таблица в информационния лист ви казва при кое напрежение честотата достига до коя цифра. Колкото по -висока е вашата честота на работа с чип, толкова повече топлина и повече енергия консумира. Мислете за Честотата като сърдечния ритъм на животно. Колибри с висока честота на сърдечен ритъм би имал по -високо енергийно изгаряне в минута в сравнение с кит или слон с много по -нисък сърдечен ритъм! Но тогава може да направи много повече за по -кратко време. MCU е точно такъв.

Стъпка 8: Завършете

Сега сте завършили всички стъпки в eXtreme burner, прочетохте ROM на чип, отворихте HEX файл и го прехвърлихте към чипа и проверихте дали флашът е ОК, научихте също как да настроите предпазителите и да ги светнете към чипа.

Ако имате въпроси, ще се радвам да отговоря или да променя урока, за да стане по -ясен.

За някои чипове може да откриете, че неговият запис липсва в падащия списък за избор на чипове в менюто. Или може да се сблъскате с грешки при запис и да потвърдите грешки. В такива случаи, моля, прочетете другите ми инструкции „Hacking eXtreme Burner“, за да разрешите проблема.

Приятно програмиране.

Препоръчано: