Site Loader

Содержание

Программы для радиолюбителей.

1) Atmel Studio
Производитель Atmel, приложение служит в качестве среды разработки приложений для устройств ARM, AVR и контроллеров Cortex-M. Программа распространяется бесплатно.

 

 

 

 

 

 

 Скачать программу вы можете с официального сайта Atmel Studio.

2) AVRDUDE

Интерфейс программы консольный, предназначена, чтобы изменять и записывать данные в памяти устройств c AVR архитектурой. В программе применяется технология программирования непосредственно в самой схеме. Приложение на английском, но существуют русификаторы. Распространение свободное.

 

 

 

 

 

Скачат программу AVRDUDE.

 

3)WinAVR
Исходный код программы открыт и свободен для редактирования – это позволяет подправить ее под свои потребности.

Служит для прошивки Atmel контроллеров серии AVR. Распространяется свободно и бесплатно.

 

 

 

 

  

Скачат программу WinAVR.

4)BascomAVR

Выполняет роль среды написания кода к Atmel устройствам AVR серии. Язык написания кодов программы, похож на Бэйсик. Доступ к ней ограничен, но есть и свободная версия, без ряда функций и максимальным кодом в 4 килобайта.

 

 

 

 

 

 Скачат программу BascomAVR.

 

5)CodeVisionAVR
Программа проста в освоении и способна работать со всеми контроллерами AVR от IDE. В результате получается короткий и емкий код, но не слишком изящный, зато работает. Доступ к ней платный, есть свободная пробная версия, с максимальным кодом в 4 килобайта.

 

 

 

 

 

  

Скачать программу CodeVisionAVR.

6)VM LAB

Комплекс утилит для создания и настройки кода программы, на ряду с этим создает модель работы устройства с контроллерами AVR серии. Софт распространяется свободно.

 

 

 

 

 

   

Скачать программу VM LAB.

7)MPLAB
Работает с продукцией компании Microchip как среда для интеграции кода непосредственно в чип. Бесплатная в распространении.

 

 

 

 

 

 

Скачать программу MPLAB.

 

8)WinPic800
Служит для перепрошивания контролирующих компонентов из серии контроллеров PIC. Комплект в свободном онлайн доступе. Есть русификаторы.

 

 

 

 

 

 

Скачать программу WinPic800.

9) PICPgm
Очень качественный продукт с высоким качеством работы и скоростью написания кода, стабильно работающий. Служит для перепрошивки PIC-микроконтроллеров. Свободно распространяется.

 

 

 

 

 

  

Скачать программу PICPgm.

10) CooCoxCoIDE
Работает с устройствами в чью архитектуру заложен ARM, как программная среда с высокой степенью интеграции.

 

 

 

 

 

 

Скачать программу CooCoxCoIDE.

11) Keil uVision
Целый комплект программ утилит для прохождения всех по написанию управляющего софта для микроконтроллеров всех производителей. Этот комплект не бесплатный, но, чтобы ознакомиться есть демо-версия, в которой код ограничен 32 килобайтами и еще несколькими параметрами.

 

 

 

 

 

 

Скачать программу Keil uVision.

 

12) IAREmbedded
Программирование происходит на популярных языках программирования C, а также C++, и на ассемблере. Работает с разными производителями и семействами контроллеров. Распространение продукта платное, также доступна и версия свободного доступа, но с урезанным размером кода.

 

 

 

 

 

 

Скачать программу I AR Embedded.

 

13) Flow Сode
Один из самых известных графически оформленных инструментов для создания ПО к микроконтроллерам. Возможно приобретение русской версии. Распространяется за деньги, но доступна и свободная версия, ограничивающая серию PIC.

 

 

 

 

 

 

 

Скачать программу Flow Сode.

 

15) AlgorithmBuilder
Имеет оформленную визуальную оболочку и работает с AVR устройствами от отечественного производителя. Распространяется бесплатно.

 

 

 

 

 

 

 

 

Скачать программу AlgorithmBuilder.

 

16) MikroC
Пакет инструментов с редакторами кода, библиотеками с готовыми функциями, отладчиками и компилллирующими пакетами. Распространяется за деньги, но есть и бесплатная версия, только ограниченная.

 

 

 

 

 

 

Скачать программу MikroC.

17) ICProgramm
Один из популярнейших механизмов с оболочкой для создания к микроконтроллерам программного обеспечения всех видов и производителей. Русифицированная версия. Распространяется без ограничений.

 

 

 

 

 

 

 

Скачать программу ICProgramm.

18)PonyProgramm 2000
Программатор для работы с устройствами памяти и микроконтроллерами многих фирм через последовательный доступ. Много встроенных функций и простота в использовании. Распространяется бесплатно.

 

 

 

 

 

 

Скачать программу PonyProgramm 2000.

19) Sina Programm
Это графическая рубашка для консольного проекта AVRdude, со встроенным и удобным fust счетчиком переключателей. Распространяется бесплатно.

 

 

 

 

 

 

 

Скачать программу Sina Programm.

  20) UniProf
Очень прост в использовании, распространяется абсолютно свободно и работает со всеми устройствами серии AVR.

 

 

 

 

 

 

Скачать программу UniProf.

21) Code Composer Studio
Это мощная комплекс программного обеспечения для программирования и прошивки от производителя TexInstInc. Для использования нужно купить. Есть пробная версия с ограничениями со свободным доступом.

 

 

 

 

 

 

 

Скачать программу Code Composer Studio.

22) Tiva Ware
Очень хорошие и удобные специально под TIVA написанные библиотеки для контроллеров от техасского производителя. Пакет бесплатный.

 

 

 

 

 

Скачать программу Tiva Ware.

 

23) FastAVR
Работает на воьмибитных контроллерах серии AVR. Удобен, так как компилируется язык, похожий на Бэйсик.

 

 

 

 

 

 

 

 Скачать программу FastAVR.

24)Sourcery CodeBench
Служит чтобы создавать приложения под ARM, Cold Fire и целый ряд других. Работает на C, а также C++. Стоимость составляет четыреста долларов (есть пробная версия на месяц).

 

 

 

 

 

 

Скачать программу Sourcery CodeBench.

 

25) Code System
Целый комплект программ и инструментов для через который удобно работать с промышленным оборудованием, ориентированным на рутинную работу. Есть полностью русская версия. Распространяется свободно и без ограничений.

 

 

 

 

 

 

 

Скачать программу Code System

26) FlashMagic
Распространение этого продукта свободное, утилита направлена на программирование продукта именно от NXP – S.

 

 

 

 

 

 

 

Скачать программу FlashMagic.

 

27) STEPSEVEN-Micro/WIN
Создан специально чтобы работать с устройствами SIMATIC, производимыми Siemens. Бесплатной версии нет.

 

 

 

 

 

 

 

Скачать программу STEPSEVEN-Micro/WIN.

 

28) 4DWorkshopIDE
Работает с ориентированными на графику контроллерами и с дисплейными модулями от 4D Systems. Абсолютно бесплатная.

 

 

 

 

 

 

 

Скачать программу 4DWorkshopIDE. 

Comments are now closed for this entry

Устройство и программирование микроконтроллеров AVR. Микроконтроллер и как его победить.

Доброго дня уважаемые радиолюбители!
Приветствую вас на сайте “Радиолюбитель“

Что такое микроконтроллер, и для чего он нужен. Давайте обратимся к его определению:

Микроконтроллер – микросхема, предназначенная для управления электронными устройствами, или по другому – простенький компьютер (микро-ЭВМ), способный выполнять несложные задачи.

То есть, по сути, микроконтроллер – это устройство, позволяющее воплотить в жизнь наши идеи (даже бредовые), но, естественно, в пределах своих возможностей. И самое главное, воплощение идеи в жизнь достигается не созданием навороченных электронных конструкций, а лишь только, в основном, силой нашей мысли (желаете стать волшебником?).
Наибольшей популярностью у радиолюбителей пользуются два вида микроконтроллеров:
PIC  – фирмы Microchip Technology
AVR – фирмы Atmel

Сразу хочу сделать небольшое отступление и пояснить одну свою позицию. Я не собираюсь ни сейчас, ни потом, рассуждать о достоинствах того или иного вида микроконтроллеров, того или иного программного обеспечения, и вообще всего, что связано с микроконтроллерами, что-то советовать, но а тем более – навязывать читателям. Все это дело вкуса, личных предпочтений и поставленных конечных целей в изучении микроконтроллеров. Ну а так как “необъятное – не объять”, все свое дальнейшее повествование я буду вести применительно к микроконтроллерам AVR и, не очень распространенной, но мной любимой, программы “Algorithm Builder”. У разных типов микроконтроллеров, программ, есть, конечно, различия, но многое у них и общее. А познавать мир микроконтроллеров мы будем так, чтобы потом, полученные знания можно было бы без проблем применить и к PICам, и к любому программному обеспечению. И еще раз напомню, данная серия статей – моя попытка помочь тем, кто впервые услышал о существовании микроконтроллеров и желает постичь работу с ними.

Что нужно для того, чтобы научиться работать с микроконтроллерами? Я бы выделил несколько, на мой взгляд, главных условий:
1. Желание и настойчивость.
Тут все очень просто: есть желание – все получится. А желание с настойчивостью – вообще, вещь суперская.
2. Знание устройства микроконтроллера.
Здесь не важны глубокие знания (да может и вообще не нужны), но знать, что имеется “на борту” микроконтроллера необходимо. Только зная из чего состоит микроконтроллер, какие устройства в нем есть, их возможности, как они работают – только тогда мы сможем использовать возможности микроконтроллера на полную катушку.
3. Знание языка программирования и команд управления микроконтроллером.
Как будет работать микроконтроллер, какие задачи вы на него возлагаете и как он будет их выполнять, определяется заложенной в него программой – программой которую для микроконтроллера составляете вы сами. И на этом пункте мы остановимся несколько подробней, чтобы рассмотреть вопросы, которые могут появиться в будущем.

Программа (в переводе это слово означает – “предписание”) – предварительное описание предстоящих событий или действий.

К примеру, мы хотим, чтобы микроконтроллер мигал светодиодом. Простенькая задача, но тем не менее, для того, чтобы микроконтроллер выполнил эту задачу, мы предварительно должны, шаг за шагом, описать все действия микроконтроллера, написать программу, которую он должен выполнить для получения нужного нам результата – мигающий светодиод. Нечто, вроде такого:
♦ Зажечь светодиод:
— настроить вывод к которому подключен светодиод для работы на вывод информации
— подать на этот вывод логический уровень, который позволит зажечь светодиод
♦ Подождать некоторое время:
— перейти к подпрограмме формирующей паузу (которую тоже нужно “разжевать”)
— по выполнению подпрограммы паузы вернуться в основную программу
♦ Погасить светодиод:
— подать на вывод логический уровень, гасящий светодиод
и так далее.
С термином Программа неразрывно связан другой термин – Алгоритм  (как Волк и Заяц, Том и Джерри).

Алгоритм – набор инструкций, описывающих порядок действия для достижения нужного результата.

Если в программе мы подробнейшим образом прописываем действия микроконтроллера, то в алгоритме мы определяем порядок действий микроконтроллера, на основе которых мы потом создадим программу. По аналогии с вышеприведенном примером:
♦ Зажечь светодиод
♦ Подождать некоторое время
♦ Погасить светодиод
и так далее.
Таким образом, алгоритм – это предшественник программы. И чем тщательно и продумано будет создан алгоритм, тем проще будет создавать программу.

Итого, программа для микроконтроллера – это последовательность действий микроконтроллера в виде набора команд и инструкций, которые он должен выполнить для достижения поставленных нами целей.

Команды для микроконтроллера имеют вид набора единичек и нулей:
00110101 011000100
так называемые – коды команд, а коды команд – это язык который понимает микроконтроллер.  А для того, чтобы перевести наш алгоритм с русского языка на язык микроконтроллера – в эти самые наборы нулей и единичек, существуют специальные программы.
Эти программы позволяют описать порядок работы для микроконтроллера на более-менее понятном для нас языке, а затем перевести этот порядок на язык понятный микроконтроллеру, в результате чего получается так называемый машинный код – последовательность команд и инструкций (те самые нули и единички) которые только и понимает микроконтроллер. Текст программы, написанный программистом, называется исходным кодом. Перевод программы с языка программирования (исходного кода) на язык микроконтроллера (машинный код) производится  трансляторами. Транслятор превращает текст программы в машинные коды, которые потом записываются в память микроконтроллера.
В таких программах порядок работы микроконтроллера описывается специальным языком – языком программирования. Язык программирования отличается от нашего, человеческого языка. Если наш язык общения служит в основном для того, чтобы обмениваться информацией, то:

Язык программирования – это способ передачи команд, инструкций, чёткого руководства к действию для микроконтроллера.

Существует множество языков программирования и их можно разделить на два типа:
языки программирования низкого уровня
языки программирования высокого уровня
Чем они отличаются. А отличаются они своей близостью к микроконтроллеру.
На заре зарождения микропроцессорной техники, программы писали в машинных кодах, то есть весь алгоритм работы последовательно прописывали в виде нулей и единичек. Вот так, примерно, выглядела программа:

01000110
10010011
01010010

Вряд-ли кто сможет разобраться в таком наборе комбинаций из двух цифр, а труд первых программистов был очень трудоемкий. Для облегчения своей жизни, программисты и стали создавать первые языки программирования. Так вот, чем ближе язык программирования к такому набору нулей и единиц тем больше он “низкого уровня”, а чем дальше от них – тем больше “высокого уровня”.
Самые распространенные языки программирования для микроконтроллеров:
— язык низкого уровня – Ассемблер
– язык высокого уровня – С (Си)
Давайте посмотрим на примере их различия (эти примеры абстрактные).
Допустим нам надо сложить два числа: 25 и 35.
В машинных кодах эта команда может выглядеть так:
00000101 1101001
На языке низкого уровня:
ADD Rd, Rr
На языке высокого уровня:
25+35
Различие языков низкого и высокого уровня видны невооруженным глазом, комментарии, как говорится, излишни.
Но давайте копнемся в этих примерах поглубже. Пример машинного кода разбирать не будем, так как он идентичен примеру на Ассемблере. По своей сути, Ассемблерные команды это те же машинные коды (команды) которым просто, чтобы не заблудиться в нулях и единицах, присвоены буквенные аббревиатуры. Ассемблерной командой ADD Rd, Rr мы ставим микроконтроллеру задачу сложить два числа, которые находятся (а для этого мы должны их туда предварительно записать) – первое в Rd, второе в Rr, а результат сложения поместить в Rd. Как видите мы ставим очень конкретную задачу микроконтроллеру: где взять, что с этим сделать и куда поместить результат. В этом случае мы работаем напрямую с микроконтроллером.
Команда на языке высокого уровня: 25+35, привычная для нас математическая запись, радующая наш глаз. Но в этом случае мы не работаем напрямую с микроконтроллером, мы просто ставим ему задачу сложить два числа. Результат и последовательность действий в данном случае будет тот-же, что и при выполнении ассемблерной команды: сначала эти два числа будут куда-то записаны, затем сложены а результат куда-то помещен.
И вот тут кроется главное отличие языков высокого уровня и низкого уровня. Если в Ассемблере мы контролируем весь процесс (хотим мы того, или нет): мы знаем где записаны эти два числа, и мы знаем где будет находиться результат, то в языке высокого уровня мы процесс не контролируем. Программа сама решает куда предварительно записать числа и куда поместить результат. В большинстве случаев нам это и не надо знать, ведь для нас главное итог – число 60 на выходе. Как результат, программы на языках высокого уровня более читаемы, приятны для глаза и меньше по размеру – ведь нам не приходится “лезть во все дыры” и расписывать каждый шаг микроконтроллера, программа это делает потом за нас, когда компилирует ее – переводит в машинные коды. Но тут есть и минус. Два одинаковых алгоритма написанных на Ассемблере и на Си, после преобразования их в машинные коды будут иметь разный размер: программа написанная на Ассемблере будет на 20-40% короче программы написанной на Си – черт его знает, каким путем идет Си для достижения нужного нам результата. И бывают случаи, когда нет доверия к языку высокого уровня и в программе на Си делают вставки кода, написанные на Ассемблере.
Профессиональные программисты, как правило, знают несколько языков программирования (или работают в команде, в которой есть специалисты по разным языкам), творчески соединяя их возможности и преимущества в одной программе. Ну а нам, любителям, надо знать хотя бы один язык (для начала), и начинать надо (а я в этом твердо уверен, и никто меня не переубедит) с языка низкого уровня – Ассемблера.

Ну что, я думаю и тут нам все понятно, – язык программирования изучать надо, по-другому – никак.

Команды и инструкции для управления микроконтроллером.
У микроконтроллеров AVR более 130 различных команд, которые позволяют ему реализовать все заложенные в нем возможности. Но сразу скажу – мало кто из любителей знает их все и тем более пользуется всеми. Обычно, в любительской практике хватает знания и половины команд, а то и меньше. Но изучать команды надо. Чем больше команд вы будете знать, тем изощреннее (в хорошем смысле слова) и элегантнее программы будут получаться.

Итого, будем считать, что желание у нас есть, настойчивость проявим, язык изучим, команды освоим, и, как итог, – одержим победу!

В следующей статье мы побеседуем, о том, что часто вгоняет начинающих в ступор – о системах счисления и их связи с микроконтроллером.


Следующие статьи:
♦ Микроконтроллер и системы счисления
♦ Микроконтроллер и логические операции
♦ Общее устройство микроконтроллера
♦ Арифметико-логическое устройство и организация памяти – память программ, память данных, энергонезависимая память
♦ Регистры общего назначения, регистры ввода/вывода, стек, счетчик команд
♦ Регистр состояния SREG
♦ Порты ввода/вывода микроконтроллера



Дистанционный курс «Микроконтроллеры семейства AVR»

АктуальностьПриостановлено
СтоимостьПо запросу
Начало занятийПо мере формирования группы