admin / 24.06.2018

Atmel studio 7 русская версия

  • Windows 8, 8 64-bit, 7, 7 64-bit, Vista, Vista 64-bit, XP, XP 64-bit

На данный момент многие люди используют разнообразный софт. Теперь с уверенностью можно сказать о том, что практически каждый человек использовал Atmel Studio. Эта программа в своей сфере считается достаточно уникальной. Она позволяет выполнять разнообразные прошивки. Если вам интересно, что представляет собою программа, тогда необходимо изучить эту статью.

Первым, что вы сможете увидеть после перехода в систему это дизайн программы. Он считается достаточно интересным и не вызывает дискомфорта. Теперь для создания новый прошивки вам необходимо пройти уже привычную процедуру File-New project. После выполнения этого процесса вы сможете выбрать необходимый тип файла.

Теперь благодаря определенным дополнениям достаточно легко можно понять, сколько оперативной памяти имеет определенный микроконтроллер.

Если вы начали создавать новый проект, тогда у многих людей могут возникнуть определенные вопросы. Обычно они связаны с тем, что вы не можете посмотреть частоту камня. Вам не следует волноваться, так как эта процедура указана в коде проекта, который вы создаете. Также к еще одной достаточно интересной и удобной функции можно отнести то, что вы легко можете использовать программу для написания кода. Теперь он будет дополняться автоматически.

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

.

IDE – это интегрированная среда разработки, в состав которой включены разные шаблоны, библиотеки и функции отладчика. Если говорить о микроконтроллерах фирмы ATMEL, с 2004 для них разрабатывался мощный программный пакет AVR studio.

Содержание

Первые версии

В первых версиях студии присутствовал ассемблер для AVR, вы можете его извлечь из первых сборок, однако позже этот проект был заброшен, а в качестве основного языка избран C AVR. Компилятором был платный и очень серьезный продукт IAR.

Русификация Atmel Studio

Вы можете скачать бесплатный WINAVR, для этого после установки студии нужно проинсталлировать его.

Обратите внимание! Лучше это делать только после установки AVR studio 4 и других версий.

Долгое время фигурировала AVR studio 4 (на фото выше). Многие разработчики микроконтроллеров сталкивались с ней. Позже IDE модернизировали до AVR studio 5. Кроме интерфейса, особых изменений не было, а уже потом компания разработчик сделала ребрендинг продукта и изменила название на Atmel studio 6.

Среда AVR studio 5 поддерживала следующие микроконтроллеры:

Atmel studio 6 отличалась от AVR studio 5 значительно, самые заметные нововведения версии:

  1. Microsoft Visual Studio 2010 стал работать с семейством AVR.
  2. Улучшенная, по сравнению с AVR studio 5, подсветка синтаксиса.
  3. Добавлены подсказки и автозавершение набора команд, что ускоряет процесс разработки.
  4. В целом, вся работа среды стала надежнее.
  5. Добавлена поддержка ARM Cortex-M.
  6. WinAVR не нужно больше устанавливать отдельно, GCC теперь устанавливается в процессе инсталляции, в отличие от младших версий.

В Atmel studio 6 произошел скачек в лучшую сторону для пользователя программы, что сказалось на популярности семейств Атмела. Однако адекватной поддержки русских символов в путях к файлам добиться так и не удалось.

Актуальная версия – Atmel studio 7

Среду разработки кардинально использовал Visual Studio Isolated Shell 2015; с одной стороны, это решение не поддерживается на Windows XP, с другой – эти меры были предприняты для улучшения как внешнего вида программы, так и функционального.

Пожалуй, самым знаменательным стало добавление поддержки Arduino в Atmel studio 7. Это значит, что вы можете перейти от набора простейших скетчей к использованию всех функций C, отладки, симулятора МК и прочим функциям. Совмещение Arduino и Atmel studio 7 дало новый виток в развитии этой простой обучающей платформы.

Изучение Atmel studio с Arduino даст возможность перейти к полному и продуктивному освоению и более глубокому знакомству с сердцем ардуины – микроконтроллером Atmega.

Дополнительно с сайта Atmel можно скачать пакет для работы и подключения LCD. В качестве примера для освоения можно использовать LCD 1602, в интернете по нему много уроков, а разработчику на дисплее доступно 16 символов и 2 строки.

С чего начать освоение?

Начинать стоит, конечно же, с покупки программатора; самый бюджетный – это – USBASP. Программатор USBASP не поддерживается в Atmel Studio 7.

Скачивайте драйвера на программатор и программу AVRdude, а чтобы заставить это все работать вместе, можно через командную строку воспользоваться командой:

«avrdude -c usbasp -p atmega32 -U flash:w:название файла с прошивкой.hex -U lfuse:w:0x6a:m -U hfuse:w:0xff:m»

и подключить его поддержку, создав профиль в atmel studio 7 (title – external tools), а в пункт Arguments ввести «-c usbasp -p atmega32 -U flash:w:$(TargetName).hex» и так для каждого типа используемых вами микроконтроллеров.

Только таким образом можно связать студио и программатор USBASP. Будьте внимательны при перепрошивке – вы можете повредить сигнатуру микроконтроллера, а восстановить её можно будет только 12 В (высоковольтным) программатором.

Какую литературу использовать для обучения?

В первую очередь скачивайте руководства с официального сайта к каждому из микроконтроллеров. Посоветовать конкретный учебник сложно, однако есть «DI Halt – AVR. Учебный курс» им можно пользоваться – создатель этого материала практик, автор многих статей на различных интернет ресурсах и просто уважаемый в кругах специалистов человек.

Atmel Studio 7.0

Магазин / аукцион / FPR / donate / услуги / RSS / распечатать / вход 

Facebook

Мой мир

Вконтакте

Одноклассники

Google+

[11 мая 2016 | 18 мая 2016 | 20 мая 2016]

Не устанавливается Atmel Studio 7

Поражает криворукость программистов в Atmel. Напортачить в установщике крайне сложно, я бы сказал, нужно приложить парадоксальное количество ума, чтобы так облажаться. В моём случае, при попытке установить Atmel Studio произошло следующее. Я скачал установщик, запустил, выбрал практически всё, что было выбрано по умолчанию (по умолчанию нет только галочки согласия установить это кривое убожество). Он установил Visual Studio и всё, что к нему прилагалось, кроме своего комплекта ПО. Даже папку не создал в том месте куда предложил установиться. При попытке удалить стандартными методами запускается установка, которая выводит следующее:

По факту удалить нельзя. Запуск в режиме repair приводит к тому же эффекту, меня оповещают о том, что версия и так новая.

В общем, складывается ощущение, что с либерализацией отношений к ЛГБТ сообществу в Atmel экстренно наняли партию людей именно данной направленности. После Studio пятого релиза разработкой этого программного продукта занимаются исключительно ЛГБТ сообщество.

• Перейти в архив


Комментарии


Сообщайте нам о замеченных ошибках на: web@orcinus.ru. Все пожелания и советы будут учтены при дальнейшем проектировании сайта… Мы готовы сотрудничать со всеми желающими. Мнение авторов может не совпадать с точкой зрения редакции сайта www.orcinus.ru. В некоторых случаях, мнение автора может не совпадать с мнением автора! Phone:+7-902-924-70-49.

Таймеры

0 = BOTTOM <= TOP <= MAX = 0xFF/0xFFFF/...

TCNTn (Timer/Counter) — регистр собственно таймера
OCRn (Output Compare Register) — с чем сравнивать, то есть там лежит TOP. Флаг взводится на следующем тике таймера после того, как TCNTn равен OCRn.
TIFR (Timer Interrupt Flag Register), TIMSK (Timer Interrupt Mask Register) — общие для всех таймеров
TCCRn (Timer/Counter Control Register)

Clear Timer on Compare Match (CTC) Mode

Задача: вызывать прерывание с определённой частотой. Тут всё просто: прерывание срабатывает каждые OCRn + 1 тиков таймера. Единственная проблема — изменение OCRn без выключения таймера: если новое значение близко к BOTTOM, то можно его перескочить, и тогда придётся ждать переполнения.

Предделитель

У некоторых таймеров собственные предделители, у некоторых один общий. В последнем случае каждый таймер может иметь свой коэффициент деления. Общность предделителя выражается в том, что его сброс повлияет на всех, кто его использует. Ну, и источник частоты, естественно, один на всех.

Ошибки в документации

ATmega32U4: в одном месте написано, что микросхемы поставляются с выключенным JTAG, в другом — что с включенным. Оказалось, с включенным (2010 год).

ATmega1284P. Stack pointer после reset: 0x10FF согласно надписи, но 0x20FF согласно картинке в Atmel-42719C-ATmega1284P_Datasheet_Complete-10/2016; 0x10FF согласно картинке в 8059D—AVR—11/09; 0x40FF в симуляторе Atmel Studio 7 (и этому же равна константа RAMEND), что соответствует размеру памяти.

——

SPI-программирование (МК — ведомый)
in = MOSI (Master Out Slave In) = PDI (Programming Data Input)
out = MISO (Master In Slave Out) = PDO (Programming Data Output)

Atmel Studio 7

Если проект Си++, то и файлы пусть будут cpp, даже если просто скопированы из проекта Си (вручную переименовать). Иначе отладчик не работает. И делать clean после включения новых файлов. А вот включение оптимизации на отладчик не влияет (косвенно влияет: из ассемблерного кода вообще может исчезнуть то место, на котором была точка останова в Си-коде).

И всё же я не понимаю, почему строчка while ( !(UCSR0A & 0x80) ) {}; (C++, O1), совершенно логично преобразующаяся в 2 ассемблерных команды SBIS 0x0B,7; RJMP PC-0x0001, не проходится в отладчики при ручной установке этого самого бита 7 (0x80, RXC0) в этом самом регистре 0x0B (UCSR0A). И в Си, и в ассемблере на каждой строчке тыкал бит мышкой — ставится, но после шага сбрасывается и не влияет на ход исполнения. Есть костыль: ввести volatile-переменную, и сначала в неё копировать регистр, а потом её тестировать в условии цикла. Вот значение переменной отладчик позволяет изменить. Но это костыль. Кажется, в более старых версиях «Студии» такого (сбрасывания флага RXC) не было.

Назначение адреса ОЗУ

Задача: раположить статическую переменную по заданному до момента компиляции адресу в ОЗУ (internal data SRAM) микроконтроллера ATmega128A.

Из документации на микроконтроллер, раздел AVR Memories: ОЗУ начинается с адреса 0x100 и содержит 4 КБ. На ассемблере работа с ОЗУ происходит с помощью команд LD, ST, LDS, STS, LDD, STD, а также PUSH и POP. В принципе, это всё, что нужно знать, если программировать на чистом ассемблере.

А что насчёт Си и Си++, встроенных в «Атмель Студию 7»? Из документации avr-libc 2.0.0: в связи с тем, что архитектура AVR гарвардская, а компоновщик разрабатывался под фоннеймановскую, для SRAM добавляется смещение 0x800000.

Уже есть что проверить? Так и проверим! Заводим статическую переменную volatile unsigned short test = 0xabcd, каким-либо образом (просто в порт, в USART… Да хотя бы отладчиком в симуляторе!) выводим её адрес:

Хотя известно, что указатели 16-битные (а long — 32, и компилятор выдаёт предупреждение), я намеренно использовал именно long, чтобы туда могло бы влезть смещение 0x00800000. А теперь отыщем переменную test в файле *.map.

Результат: адрес, выданный непосредственно микроконтроллером, — 0x100; адрес в файле *.map — ровно на 0x800000 больше. Всё как и предполагалось.

Дело за малым: указать компоновщику, что именно эта переменная должна всегда располагаться именно по адресу 0x00800100, даже если в дальнейшем в код программы добавят другие переменные до неё.

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

404 Not Found

Тогда в свойствах компоновщика в SRAM segment добавляем: «.MySram=0x100», «.data=0x10a» (смещение 0x800000 тут добавлять не надо). И у всех своих переменных прописываем

.

И получается такая непонятность: во-первых, внутри секций порядок неочевидный. Во-вторых, секции могут перекрываться, но ошибки компиляции не возникает. В-третьих, я ещё не читал про malloc. В-четвёртых, надо ещё разобраться, что с секцией .bss.

Можно заводить свою секцию на каждую переменную. А можно завести структуру. Внутри структуры всё понятно. Но за размером всё равно придётся следить руками.

Выводы: получать адрес статической переменной из *.map-файла научились. А вот задавать свой адрес сложнее.

Atmel ICE

Сам не питает микроконтроллер, но вход VTG должен быть подключен к VCC для мониторинга напряжения.

Даже в максимальной комплектации нет разъёма ISP 10 pin 100 mil. Ниже картинка для подключения отдельных проводов (на всякий случай также для 6 pin, хотя такой разъём есть).

Имеющийся разъём 10 pin 100 mil предназначен только для JTAG, причём ключа на самом разъёме нет (есть только метка на плате).

Прерывания

При входе в прерывание аппаратно сбрасывается флаг разрешения прерываний (cli), при выходе (reti) — устанавливается (sei). Таким образом, вложенных прерываний самих по себе нет.

Если же они нужны (и есть уверенность, что это безопасно), можно вызвать sei(). А в компиляторе avr-gcc проще прописать атрибут ISR_NOBLOCK (если это безопасно с самого начала, без дополнительных действий программиста).

Для атомарной работы с многобайтовыми переменными (в том числе некоторыми регистрами) можно использовать cli/sei, если оптимизация отключена. А с оптимизацией в avr-gcc для этого есть util/atomic.h. Дополнительно переменная должна быть volatile, а the standard level of the
compiler (option —std=) is set to either c99 or gnu99.

Использование программатора USBASP в Atmel Studio

Программатор USBASP является на сегодняшний день самым дешевым программатором микроконтроллеров AVR компании ATMEL и позволяет программировать большое множество микроконтроллеров серий AVR ATTiny, AVR ATMega и других. В данной статье я расскажу вам об основных особенностях использования этого программатора из под ОС Windows 7 и как настроить его работу совместно со средой разработки программ Atmel Studio на примере версии 6.1. К сожалению, по умолчанию, Atmel Studio не поддерживает этот программатор.

Установка драйвера программатора

В первую очередь необходимо установить драйвер для программатора. Мы не будем подробно описывать процедуру установки драйвера, так как тут не должно возникнуть каких либо трудностей. После установки драйвера подключенный программатор отображается в диспетчере устройств Windows как устройство USBasp.

Драйвер можно скачать по ссылке с нашего Google диска.

Установка Avrdude

Для программирования микроконтроллеров AVR будем использовать программу Avrdude. Эта программа поддерживает большое количество программаторов, в том числе и USBASP. Этой программе посвящена отдельная страница в википедии.

Скачать Avrdude по ссылке с нашего Google диска

Программа avrdude является консольной и запускается из командной строки. Для выполнения программирования ей передается набор параметров, определяющий настройки. Ниже приведен пример командной строки для программирования контроллера при помощи программатора USBASP:

avrdude -c usbasp -p atmega32 -U flash:w:myhexfile.hex -U lfuse:w:0x6a:m -U hfuse:w:0xff:m

Поясним основные параметры:

  • -c usbasp параметр определяет тип программатора, в нашем случае это usbasp;
  • -p atmega32 параметр определяет тип микроконтроллера, для примера использован ATmega32;
  • -U flash:w:myhexfile.hex параметр определяет hex файл для записи в контроллер.

    Atmel Studio 7

    Файл должен располагаться либо в каталоге программы, либо необходимо указать полный путь к файлу;

  • -U lfuse:w:0x6a:m параметр определяет младший байт регистра Fuse;
  • -U hfuse:w:0xff:m параметр определяет старший байт регистра Fuse;

Регистры Fuse используются для настройки режима работы микроконтроллера и для их определения обратитесь к документации соответствующего контроллера. Хочу предупредить, что некорректная установка режима контроллера через регистры Fuse может привести к невозможности дальнейшего программирования контроллера, по этому, внимательно изучите документацию. Если вы не хотите изменять регистр Fuse, вы можете не передавать эти параметры при программировании, в этом случае регистр Fuse останется в том же состоянии, что и до программирования.

Avrdude имеет много разных функций, но в рамках данной статьи нам важен один режим ее работы, а именно заливка программы в микроконтроллер. Остальные функции вы сможете изучить в документации.

Настройка программирования из Atmel Studio

Как уже было упомянуто, Atmel Studio не поддерживает программатор USBASP.

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

В Atmel Studio открываем пункт меню Tools и выбираем пункт External tools…

В открывшемся окне настройки инструментов нажимаем кнопку Add для добавления нового инструмента. Заполняем следующие поля:

  • Title: произвольное имя инструмента, мы указали USBASP atmega32.
  • Command: файл запуска программы avrdude. Мы указали C:AVRDUDEavrdude.exe, так как у нас она размещена в каталогеAVRDUDE на диске С.
  • Arguments: параметры запуска для avrdude, которые мы рассмотрели выше. Мы задали строку -c usbasp -p atmega32 -U flash:w:$(TargetName).hex, в которой указали имя программатора, имя контроллера, и путь к файлу прошивки. Путь к файлу указан через специальные макросы и Atmel Studio подставит их сама. Мы не указали регистр Fuse в этом примере, но при необходимости вы можете добавить их самостоятельно.
  • Initial directory: указан макрос для подстановки каталога, в котором находится файл прошивки.
  • Use Output window: установите эту галочку для того, что бы результат работы программы показывался в окне Atmel Studio. Послу установки всех настроек нажмите кнопку OK для сохранения настроек и выхода.

Теперь, для программирования микроконтроллера достаточно зайти в меню Tools и нажать команду USBASP atmega32, которая там должна появиться после проделанных настроек. Программирование необходимо запускать после компиляции проекта, так как файл прошивки создается в процессе компиляции проекта.

Подключение программатора к микроконтроллеру

Программатор USBASP подключается к микроконтроллеру по стандартному интерфейсу ISP. Физически на программаторе интерфейс имеет 10 контактов. Большинство контактов объединены общим проводом. Назначение используемых контактов следующее:

  • MISO, MOSI, SCK, RESET — подключается к соответствующему выводу микроконтроллера;
  • GND – земля, подключается к мину или GND микроконтроллера;
  • VCC – используется для подачи питания на микроконтроллер.

На печатных платах модулей, где используются контроллеры AVR, разработчики очень часто располагают интерфейс SPI 6 контактов, позволяющий произвести внутрисхемное программирование контроллера. Такой интерфейс можно видеть даже на платах Arduino. Для подключения программатора к такому 6-и контактному интерфейсу можно использовать соединительные провода мама-мама или специальный переходник ISP10 в ISP6 для программатора AVR USBASP.

Товары, используемые в проекте

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*