ПредишенСледващото

Описан буутлоудъра технология. построен във всички микроконтролери Atmel AVR семейни ATmega. Материал за тази статия е взета от сайта на scienceprog.com.

Възможно е най-удобният и правилното метод за програмиране на микроконтролера - буутлоудъра да използвате програмата. Тъй като не е необходимо да използвате специален адаптер за програмиране или специални умения - просто трябва да се свърже стандартен кабел от компютъра към целевата борда и стартирате на компютъра специална програма, която се свързва с програмата за буутлоудъра съхранява в микроконтролера. Идеята е проста:

Товарачи (буутлоудъра) за AVR микроконтролер, AVR, програмиране

Безспорно най-лесен за употреба интерфейс за сваляне - USB. Този интерфейс е много популярен, той работи с всички операционни системи. Но USB протокол е доста сложна, така че интеграцията на буутлоудъра в микроконтролера не разполага с хардуерна поддръжка за USB, ще изисква значително количество код (до 2 килобайта). Най-често срещаният софтуер изпълнението на USB протокола от обективното развитие на фирмата - V-USB [6]. Има и друг софтуер изпълнение - USBtiny [7].

За AVR микроконтролери с хардуер USB интерфейс (например, AT90USB162) фирмата Atmel предлага патентовани обувка товарачи чрез USB. Някои устройства идват от фабриката с вече блеснаха в паметта на зареждане (например, една и съща AT90USB162). Технологиите, използвани за такъв буутлоудъра, наречени DFU и Flip. Вж. [5].

[Разнообразие bootloaders за AVR]

Много AVR буутлоудъра използва COM-порт за връзка с компютър. Това работи добре, ако използвате хардуерен мост USB-USART. Ако буутлоудъра е писано по своя собствена, а не на факта, че той веднага работа. Не забравяйте да се наложи фиксиране и внимателен прочит на документацията за микроконтролер. В списъка можете да видите готови популярен буутлоудъра, който може да се използва (списъкът може да бъде повече):
* Atmex сайт: ladyada.net. COM, 19200bps, Assembler; JAvrProg (Java), ATtiny2313 (8-16Mhz);
* AVR Bootloader програмист Петър Dannegger сайт: mikrocontroller.net. COM, Assembler; ATmega8 / 16/32/128;
* AVRProg-съвместим Bootloader Мартин Томас сайт: siwawi.arubi.uni-kl.de. МС, WINAVR (С); AVRProg; Различни AVRs и скорости;
* USBisp Bootloader Матиас Weisser сайт: matwei.de. USB, COM, AVR-ССЗ (C); AVRProg; STK-500; ATmega8, FT245BM; 6MHz;
* Bootloader ATmega8 AVR микропроцесор сайт: stratoserver.net. COM, 19200bps, ASM, AVRProg; ATmega8 7.3728MHz;
* Chip45boot сайт: chip45.com. COM, 11500bps, WINAVR; HyperTerminal; Разни AVR
* STK500-Bootloader Pascal Stang. COM, Hex; AVRProg; STK500; ATmega8-128; 7,3 - 22.1MHz
* AVR109 (AVR Butterfly) сайт: atmel.com. МС, IAR (С); ATmega серии; 12MHz;
* AVRUSBBoot - USB буутлоудъра за Atmel AVR контролери сайт: fischl.de. USB, AVR-ССЗ; ATmega8 (различни Мегас); 12MHz;
* Megaload сайт: microsyl.com. МС, 11500bps, ICCAVR (С); Megaload.NET; Различни AVR;
* BootloadHID сайт: obdev.at. USB, HID, WINAVR; ATmega8;
* Crypto-Boot сайт: wikidot.com. USB, IAR (С); Криптиран AES; ATmega32; 12MHz.

Най bootloaders предназначена за COM-порт, който е остарял и в съвременните компютри е рядкост. Най-лесният начин да се адаптират буутлоудъра на USB - използвайте хардуер USART мост <-> USB Type FT245BM. Но може би по-полезни, когато USB е свързан директно към микроконтролера, и част от комуникацията се извършва буутлоудъра шофьор USB фърмуера.

зареждането на ОС (буутлоудъра) - един от основните неща, които отличават Adruino от прости AVR микроконтролер компания Atmel. При събиране на такса, или когато случайно купих на иБей такса не зашити зареждане на ОС, ви е необходим външен програмист доставчика на интернет, за да флаш памет в буутлоудъра на микроконтролера.

Товарачи (буутлоудъра) за AVR микроконтролер, AVR, програмиране

Условия за начално зареждане. Има bootloaders, което веднага предава управлението на потребителската програма (без забавяне), ако условието не притежава натоварване. Това понякога се прави с цел да се ускори стартирането на програмата за употреба. условия на натоварване могат да варират, но най-често това е късо съединение към земя определен (известен по-рано за потребителя), на изхода на микроконтролера. Ако е инсталирана на скок, режимът на натоварване е изпълнено, и чака с мишката, без да се прехвърля управлението на потребителската програма.

[Какво трябва да се търси при програмиране товарач]

Изборът на товарач. Тъй като може да има различни изпълнения на целева система - може да се приложи различен модел микроконтролер (ATmega168, ATmega328, ATmega32U4 и др ...). Товарачи за различни модели на микроконтролери могат да бъдат несъвместими един с друг.

Честотата на кварцов резонатор. Уверете се, че Boot зашит точно съответства на работната честота на системата, различна честота на кварцов резонатор (обикновено 8 или 16 MHz, но може да бъде други варианти). Работната честота на микроконтролера е обикновено в зависимост от конфигурацията и Fyuz честота външен кристал или керамичен резонатор.

Fyuz. Правилното функциониране на товарача са важни 2 аспекти, които са конфигурирани Fyuz - Изберете размера на секцията за сваляне (Fyuz BOOTSZ1, BOOTSZ0), позволява зареждане на ОС (Fyuz BOOTRST), както и часовник конфигурация (Fyuz, осцилатори часовник и честотния делител - CKDIV8, SUT1, SUT0, CKSEL3..0).

Ако сте напълно ще шият заедно правилно Fyuz BOOTSZ1, BOOTSZ0, BOOTRST, кодът за буутлоудъра няма да се изпълняват, и товарача няма да работи. По същия начин, ако сте неправилно конфигуриран на Fyuz часовника и делител, микроконтролер може да се възползва от честотата, при която по време на зареждането не е предназначен, и експлоатация товарач също ще бъдат засегнати. За да се изчисли точната стойност Fyuz калкулатор ще ви помогне Fyuz [6].

В таблицата по-Донесох най-популярните товарачи и конфигурация за тях. Fyuz дадено в шестнадесетичен стойност, когато тя е най-висока байт HFUSE Fyuz, LFUSE ниски байт Fyuz, eFuse байтове удължен Fyuz.

Таблица 4. хранилки Arduino UART.

Ардуино фърмуер обувка товарачи могат да бъдат намерени в папката, където системата е инсталирана развитие Arduino обикновено е папка с пълния път като C: \ Program Files \ Arduino1.0.6 \ хардуер \ Ардуино \ bootloaders. Там можете да намерите изходния код Downloaders на. Също готов фърмуер и изходния код за всички програми за изтегляне може да бъде изтеглен тук [9], вижте. Arduino папка \ bootloaders \ HEX файл, както и за там имена изглежда фърмуер файлове, изброени в таблици 4, 5, 6 (в графата на фърмуера име фърмуер файл е в списъка) ,

Таблица 5. товарачи Atmel DFU.

Размерът на изтегляне секция, байт

Таблица 6. хранилки USBasp.

Размерът на изтегляне секция, байт

[Изходния код които изтеглят]

В някои случаи може да се наложи да компилирате товарача фърмуера - например, ако използвате специален кварцов честота, или ако трябва да се направят корекции в поведението на товарач.

Таблица I, описан най-популярни програми за, които се използват в Arduino-съвместими дъските. Downloaders изходния код с готов на фърмуера може да бъде изтеглен тук [9].

Таблица 7. Видове програми за изтегляне, които могат да бъдат използвани за платформа за разработка на Arduino.

ATmega8, ATmega168, ATmega328 и други

Използва се за повечето дъски Arduino, когато кодът е зареден чрез USB-UART мост.

ATmega32U4 и други

Той се използва в случаите, когато има AVR USB хардуерен интерфейс на борда. Товарачът се основава на протокол Atmel DFU флип и отворен LUFA библиотеката.

Използва се за metaboard дъски. Товарачът е базиран на отворена библиотека V-USB, емулира поведението на популярния програмиране USBasp.

Как да съставя. За съставянето на данните, което трябва tulcheyn AVR-GCC, достъпно за повечето операционни системи - Linux, Mac OS, Windows. На операционната система Windows tulcheyn може да получи, ако изтеглите и инсталирате пакет WINAVR развитие на околната среда или Atmel Studio.

Съставител зареждане команда полезност грим. Това обикновено трябва да отидете до директорията с оригиналния товарач код и изпълнява команди 2:

След това, в текущата директория ще подаде с HEX на - (! Не забравяйте да инсталирате правилно Fyuz микроконтролер) готов на фърмуера на ОС да се записват в паметта на микроконтролера се използва конвенционален ISP-програмист.

Инструкции за съставянето и възможностите за персонализация, обикновено могат да бъдат получени чрез изучаване на съдържанието на проекта за зареждане на Makefile и съпътстващата документация readme.txt.

[Пример конфигурация Arduino UART товарач]

Процесът на получаване на EEPROM товарач се състои от предварително конфигуриране Makefile. където са конфигурирани опциите (ако е необходимо) и след съставяне на командите чистите и правят. Разбира се, да се съберат, което трябва да имате инсталиран tulcheyn (AVR GCC компилатор и библиотеки). е достъпно на операционната система Windows tulcheyn на инсталиране, ако развитието на пакета WINAVR или Atmel Studio.

Когато трябва да се буутлоудъра на Arduino, то често (в зависимост от типа на картата, или си дизайн) е микроконтролер ATmega328, или по-малко ATmega168, ATmega8, ATmega32U4. Ето защо, първо трябва да изберете кои зареждане на ОС да се използва. Почти всички от хранилките могат да бъдат намерени в инсталацията папка Arduino C: \ Program Files \ Arduino1.0.6 \ хардуер \ Ардуино \ bootloaders, разпределени поддиректории ATmega8, ATMEGA и др.

Изборът на товарач. Ако имате нужда от зареждане на ОС за ATmega8, изходен код и Makefile е в ATmega8 папка. Ако имате нужда от зареждане на ОС за ATmega168 или ATmega328, а след това видя. Atmega папка. Ако искате по зареждане на ОС да ATmega32U4, тя може да се намери в библиотеката LUFA, вижте. Папка Bootloaders \ DFU.

Забележка: изходния код и зареждане фърмуера може да изтеглите оттук. [9]

• DEFS. При този вариант съдържа честотата на системния часовник със стойността на макро променлива F_CPU на. Например, ако е посочена възможността:

това означава, че фърмуера е съставена на базата на тактовата честота 8 MHz. 8 MHz обикновено се използва, когато се работи вътрешен RC-осцилатор AVR микроконтролер. Ако използвате различна тактова честота е дадена от външен кристал, а след това изберете до -DF_CPU = тактова честота в Hertz. Най-често използваната тактова честота от 16 MHz, т.е.. Е. Трябва зададени -DF_CPU = 16000000.

Забележка: Важно е да се уточни правилната тактова честота, тъй като тази стойност е свързано създаването сериен UART, чрез които буутлоудъра получава код от хоста (от системата за развитие Arduino IDE използване AVRDUDE инструмент за програмиране на разговор). Неправилна настройка ще накара UART, че ОС не може да получите код за потребителското програма и микроконтролера няма да reflash чрез буутлоудъра.

В тази конфигурация на зареждането на системата може да се смята за завършена. За зареждане на фърмуера се оставя да изпълни поредица от две команди:

След компилация ще ATmegaBOOT.hex файл, който можете да използвате ISP програмист да напише на паметта на ATmega8 на микроконтролер. Не забравяйте, след като програмата товарач да инсталирате правилно Fyuz микроконтролер (вж. Таблица 4).

Таблица 8. Избор на цели (целеви) в Makefile за ATmegaXX8.

Забележка: Насочете цел, посочена в таблицата се замества като опция грим команда, когато EEPROM компилация:

чистите
правя <тут надо указать Target>

Първото нещо, което трябва да направите е да изберете дестинация за съставянето (опция на Target колона на Таблица 6), в зависимост от картата, която сте използвали. Да предположим, че имате домашно приготвени микроконтролера картон ATmega328, за които вие ще направите своя буутлоудъра. След като целта е да се съберат, ще atmega328, фърмуер превръща извършване на две команди:

Ако използвате различна тактова честота, проверка на стойността на макро променлива AVR_FREQ (цели подразбиране atmega328 настроен тактова честота от 16 MHz: AVR_FREQ = 16000000L). След съставянето получавате ATmegaBOOT_168_atmega328.hex фърмуер, който може да се запише във вашата микроконтролер памет с помощта на ISP програмист. Внимание, не забравяйте да се инсталира правилно Fyuz микроконтролер (вж. Таблица 4).

За вашия списък мога да добавя буутлоудъра написани на интерфейса RS-485. Сайтът е изложена avr-assm.ru източник език товарач монтаж и компютърна програма.

Здравейте
И тъй като софтуера на компютъра страна, която ще консултира? avrdude?
За него GUI след това затворете.
Според сценария: клиента продукт, който стартира програмата обновяване на софтуера, като кликнете върху "OK" и устройство да попитам?

microsin: да, avrdude най-добре. Над него има черупки, avrdude-GUI. Ако използвате USBasp товарач, също така е подходящ GUI-полезност Khazama 1.6.2 и екстремни горелката.

Благодаря на всички, които споделят информация, специални благодарности на ентусиасти, които подкрепят работата сайт! Ако не за вашата помощ, аз ще изпрати на клиентите да дълъг еротичен начин и сега - подкопава тяхната ASM-източник и podsunu под Arduinkinu ​​черупка - добре, по желание на клиента, какво щеше да се случи с него е ясно къде настройката, и където основната линия на цикъла на програмата)

Цитат Kaseiiro: Отново, субективно - буутлоудъра за AVR не трябва да се напише като по-добра от вече беше написано (и много от тях, които не са razgrebete), никога не пиша.
Аз съм може би и повече от глупост от това, не са чували за. Аз пиша на чист ASM за AVR в продължение на 10 години (той пише и TCP-UDP), и винаги се опитвам да напиша всичко на собствената си - в този контролер и чар - за всички вас да си отговори. И как да намерите зареждане на фърмуера с криптиране, което ще предаде на своите клиенти най-новата версия, без възможност kopipasta вашето устройство, както и?

microsin: това е вашият избор - да харчат или не на собствените си усилия за изобретяването на велосипеда. В действителност, много от тях са програмирани да не за собствено удоволствие, колкото искате, и просто глупав, за да си свършат работата, това е. Д. Решете задачата възможно най-ефективно. И когато стаковете и TCP и ще и криптиране библиотеката, и много повече - вече е на сребърен поднос - никой нормален човек не би посмял да губите ценно работно време.

Отчаяно се нуждаят от буутлоудъра работи на ATmega16, но RS485 интерфейс. Т.е. буутлоудъра също трябва да се отмести някои крак и микроконтролер, за да превключите на max485 шофьор тогава до рецепцията, а след това с прехвърлянето. Има такова?

microsin: Аз мисля, че трябва да база буутлоудъра за COM-порт (RS232, USART) и го променят малко, за да превключите посоката на пренос на данни. RS232 буутлоудъра за AVR не намери проблем.

Аз имам един въпрос за началото на развалините. Възможно ли е да се направи нещо, за да може да се направи без скок? Е. Просто свързани към USB устройството и USB хост себе си му казал, че той трябва да бъде бързо бутилки започнем? Например в основния код, за да разбера как да го рестартира, но преди да рестартирате още EEPROM, например, знаме на някои комплект за рестартиране на него, без да излиза от чакъл до фърмуера не смуче? Е, или нещо подобно?

Има ли буутлоудъра за AVRprog полезност, който се намира в тази част на AVRStudio?

Compiler, тогава защо да знаете за "по-малко памет"? Ще забележите. А товарач се презапише и могат да бъдат забранени.
И все пак, субективно: товарач по-добре сами да си пишете.

microsin: за съставител - ти си прав, ако не мисля за това наистина исках да попитам. А останалото. Всичко в този свят от гледна точка на субективно. По-специално, от моя гледна точка - товарач е по-добре да не се забранят и да я направи възможно по-тъп и по-малки. Отново, субективно - буутлоудъра за AVR не е нужно да се пишат като по-добра от вече беше написано (и много от тях, които не са razgrebete), никога не пиша.

Моля, кажете ми, която искате да добавите, създадена в проект WINAVR IAR CVAVR, ако програмата е създадена по силата на butloder? Д. Как да се каже на компилатора, че наличната памет е по-малко от избраното камъче?

microsin: Посочили сте, толкова, колкото три системи за проектиране, така че отговорът на въпроса ще трябва да напиша цяла статия. Моля, да зададете конкретни въпроси, както и още по-добри - пише за него в в имейла. Капацитетът на паметта обикновено е посочено в heders описващи микроконтролер. или в настройките на проекта, или в опциите на свръзката.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!