AVR програмиране. Програмиране на AVR микроконтролери за начинаещи

Микроконтролерите са малки, но в същото време много удобни устройства за тези, които искат да създават различни удивителни роботизирани или автоматизирани неща в дома си. В рамките на тази статия ще бъдат разгледани AVR програмирането за начинаещи, различни аспекти и нюанси на този процес.

Обща информация

Микроконтролерите могат да бъдат намерени навсякъде. Те са в хладилници, перални машини, устройства, машинни инструменти в производството, интелигентни домове и дори в много различни технически устройства. Широко разпространената им употреба се дължи на възможността за замяна на по-сложни и големи аналогови устройства. Програмирането на MC AVR позволява автономно управление на електронни устройства. Тези микроконтролери могат да бъдат представени като най-лесният компютър, който може да взаимодейства с външен хардуер. Да, те могат да отварят /затварят транзистори, да получават данни от сензорите и да ги показват на екрани. Също така, микроконтролери могат да извършват различна обработка на входната информация, подобна на персонален компютър. Ако овладеете програмирането на AVR от нулата и достигнете нивото на професионалист, тогава ще има практически неограничени възможности за управление на различни устройства чрез I /O портове, както и промяна на кода.


Малко за AVR

В рамките на статията ще бъде разгледано семейство микроконтролери, произведено от Atmel. Те имат доста добри резултати, което им позволява да се използват от много хоралюбителски устройства. Широко използван в промишлеността. Можете да се срещнете в следните техники:
  • Вътрешен. Перални, хладилници, микровълнови печки и др.
  • Мобилни телефони. Работи, комуникационни съоръжения и т.н.
  • Изчислителни. Системи за управление на периферни устройства, дънни платки.
  • Забавно. Орнаменти и детски играчки.
  • Транспорт. Системи за безопасност и управление на двигателя на автомобила.
  • Промишлено оборудване. Системи за управление на машинни инструменти. Това, разбира се, не са всички сфери. Те се използват там, където е изгодно да не се използва набор от контролиращи чипове, а един микроконтролер. Това е възможно поради ниската консумация на енергия и опростеното производство. За писане на програми се използват езиците C и Assembler, донякъде модифицирани за семейството микроконтролери. Такива промени са необходими поради слабите изчислителни възможности, които обикновено се изчисляват в десетки килобайта. AVR програмирането без изучаване на тези езици не е възможно.


    Как да получите първия си микроконтролер?

    AVR програмирането изисква:
  • Наличие на необходимата среда за развитие.
  • Всъщност самите микроконтролери.
  • Втората точка е разгледана по-подробно. Има три възможности за придобиване на необходимото устройство:
  • Купете директно самият микроконтролер.
  • Да се ​​получи устройство в проектанта (например - Arduino).
  • Съберете микроконтролера сами.
  • В първия параграф няма нищо сложно, така че веднага отидете на второто и третото.

    Получетеустройство в конструктора

    Като пример ще бъде избран известният Arduino. Това е електронен дизайнер, комбинация от удобна платформа за бързо и качествено разработване на различни електронни устройства. Платката Arduino включва определен набор от компоненти за работа (има различни конфигурации). Трябва да има AVR контролер. Този подход ви позволява бързо да започнете разработката на устройството, не изискват специални умения, има значителни възможности по отношение на свързването на допълнителни табла, както и в интернет, можете да намерите много информация по въпроса. Но това не е без недостатъци. Чрез закупуването на Arduino човек се лишава от възможността за по-дълбоко потапяне в AVR програмирането, по-добре е да познава микроконтролера, спецификата на неговата работа. Също така, негативната и добавя сравнително тясна линия от модели, поради което често трябва да купуват борда за специфични задачи. Друга особеност е, че програмирането на "SI" тук се различава доста силно от стандартната форма. Въпреки всичките си недостатъци, Arduino е подходящ за начинаещи. Но не трябва да злоупотребявате.

    Независимо сглобяване

    Трябва да се отбележи, че микроконтролерите AVR са достатъчно приятелски настроени към новодошлите. Можете да ги събирате независимо от достъпни, прости и евтини компоненти. Ако говорим за предимствата, тогава този подход ви позволява да се запознаете с устройството, да изберете необходимите компоненти самостоятелно, приспособявайки крайния резултат към изискванията, използването на стандартни езици за програмиране и евтиност. От минусите, които можете да забележитесамо сложността на една независима колекция, когато тя се извършва за първи път и няма необходимите знания и умения.

    Как да работя?

    Така че нека приемем, че въпросът с микроконтролера е решил. След това се приема, че е закупен или закупен самостоятелно. Какво друго е необходимо за овладяване на AVR програмирането? За тази цел се нуждаете от среда за разработка (като база и обикновена тетрадка е подходяща, но аз препоръчвам да се замислите за Notepad ++). Въпреки че има и други приложения за програмиране на AVR, тази гаранция ще може да отговори на всички изисквания. Вие също се нуждаете от програмист. Тя може да бъде закупена в най-близкия магазин, поръчана онлайн или събрана от вас сами. Той не пречи на печатната платка. Не е задължително, но използването му ви позволява да запазите нервите и времето си. Също закупени /създадени от вас. А последният е източник на енергия. За AVR е необходимо да се осигури приток от 5V.

    Къде и как да учат?

    Създаване на шедьоври от нулата не излизат. Тя изисква знания, опит и практика. Но къде да ги вземем? Има няколко начина. Първо, можете самостоятелно да търсите необходимата информация в World Wide Web. Можете да пишете на курсове за програмиране (дистанция или око), за да получите основни умения. Всеки подход има своите предимства. Да, дистанционните курсове за програмиране ще бъдат по-евтини и може би безплатни. Но ако нещо не излезе, то на уроци по урок един опитен разработчик ще може бързо да открие причината за проблема. Също така не е излишно да се запознаете с литературата, която е в свободнотодостъп. Разбира се, една книга няма да напусне, но основни познания за устройството, програмиране "SI", "Assembler" и други моменти на работа могат да бъдат получени.

    Входни /изходни портове

    Това е изключително важна тема. Без да се разбере как работят I /O портовете, AVR програмирането не е възможно като цяло. В края на краищата взаимодействието на микроконтролера с външни устройства се осъществява именно чрез посредничеството им. На пръв поглед новакът може да изглежда, че пристанището е доста сложен механизъм. За да избегнем такова впечатление, няма да разгледаме подробно схемата на неговата работа, а само ще получим обща представа за него. Помислете за реализацията на програмата. Като пример за устройството бе избран микроконтролерът AtMega8, един от най-популярните в цялото семейство AVR. I /O портът представлява три регистъра, които отговарят за неговата работа. На физическо ниво те се изпълняват като крака. Всяка една от тях съответства на определен бит на контролен регистър. Всеки крак може да работи както за въвеждане на информация, така и за изход. Например, тя може да окачи функцията на запалване на светодиод или на допирната бутон. Между другото, споменатите три регистри са PORTx, PINx и DDRx. Всеки от тях е осем битов (не забравяйте, че обмисляме AtMega8). Това означава, че един бит се занимава с определен крак.

    Регистър на работата

    Мениджърът DDRx е най-важен по отношение на насочването. Също така е и осем бита. Стойностите за него могат да бъдат записани 0 или 1. Как се променя работата на контролера при използваненули и единици? Ако зададете 0 до определен бит, съответният крак ще бъде превключен на режим за вход. И от него ще бъде възможно да се четат данните, идващи от външни устройства. Ако зададете 1, тогава микроконтролерът ще може да контролира нещо (например да даде на транзистора поръчки да пропуснете напрежението и да светне светодиода). Вторият най-важен е PORTx. Той отговаря за състоянието на крака. Нека да разгледаме един пример. Да предположим, че имаме изходен порт. Ако зададем логическата единица на PORTx, сигналът от микроконтролера на контролера се изпраща, за да започнем. Например свети светодиод. Когато се определят нули, тя ще бъде погасена. Това означава, че не е необходимо да се работи с DDRx регистър мениджър по всяко време. И накрая нека поговорим за Пинкс. Този регистър е отговорен за показване на състоянието на крака на контролера, когато той е конфигуриран към състоянието на входа. Трябва да се отбележи, че PINx може да работи само в режим само за четене. За да запишете, няма да работи. Но от четенето на текущото състояние на краката - това не е проблем.

    Работа с аналози

    AVR не е единственият микроконтролер. Този пазар е разделен между няколко големи производители, както и множество китайски имитиращи устройства и изработка. В много отношения те са подобни. Например, програмирането на PIC /AVR не се различава много. И ако има разбиране за нещо едно, тогава всичко останало ще бъде лесно за разбиране. Въпреки това, ние все още препоръчваме да започнете с AVR поради своята компетентна структура, добра воля към разработчика и наличието на голям брой помощни материали, поради което процесът на разработване може да бъде значително ускорен.

    Технологии за сигурност

    Когато програмирате AVR микроконтролери на "SI" или "Assembler", е необходимо да работите много внимателно. Факт е, че чрез поставяне на определена комбинация от регистри и промяна на вътрешните настройки, можете спокойно да заключите микроконтролера. Това е особено вярно за fjuzes. Ако не сте сигурни в правилността на действията си, по-добре е да откажете използването им. Същото важи и за програмистите. Ако закупите фабрично оборудване, тогава ще се затворят микроконтролерите без проблеми. Когато сглобявате собствените си ръце, може да има тъжна ситуация, в която програмистът ще блокира устройството. Това може да се случи поради грешки в програмния код и поради проблеми в него. Между другото, за друг (този път положителен) момент, който беше споменат накратко, но не е напълно разкрит. Сега почти всички съвременни микроконтролери имат функцията за програмиране във вътрешността. Какво означава това? Да предположим, че устройството е запечатано на дъската. И за да смените фърмуера си, сега не е нужно да го пиете, защото такава намеса може да повреди самия микроконтролер. Достатъчно е да се свържете със съответните заключения и да ги препрограмирате с посредничеството им.

    Кой модел да изберем?

    В рамките на статията беше разгледан AtMega8. Това е доста посредствен микроконтролер, който обаче е достатъчен за повечето продукти. Ако има желание да създадете нещо голямо, вече можете да вземете някакви чудовища като Atmega128. Но те са предназначени за по-опитенразработчиците. Ето защо, ако няма достатъчно опит, по-добре е да започнете с малки и прости устройства. В допълнение, те са много по-евтини. Вие се съгласявате, едно нещо е случайно да блокирате микроконтролера за сто рубли, а съвсем друго - за половин хиляда. По-добре е да попълните ръката си и да разберете в различни аспекти на функционирането, така че в бъдеще да не губите значителни суми. Първо можете да започнете с AtMega8 и след това да се ориентирате към вашите нужди.

    Заключение

    И така, темата за AVR програмирането беше разгледана в най-общите термини. Разбира се, все още има какво да се говори. Така например, етикетирането на микроконтролери не бе взето под внимание. И може да има много какво да каже. Да, основно микроконтролери работят при напрежение от 5V. Докато присъствието на, например, буквата L може да се каже, че за устройството е достатъчно само 27 чл. Както виждате, понякога познаването на етикетирането може да играе много важна роля по отношение на правилното и трайно функциониране на устройствата. Времето на работа на микроконтролерите също е интересна тема. Всяко устройство е проектирано за определен период от време. Да, някои може да работят за хиляда часа. Други имат гаранция от 10,000!

    Свързани публикации