Site Loader

Содержание

Использование программатора 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 файл для записи в контроллер. Файл должен располагаться либо в каталоге программы, либо необходимо указать полный путь к файлу;
  • -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.

AVR: программирование в среде AVR Studio — Компоненты и технологии

Для программирования AVR-микроконтроллеров существует немало средств разработки, однако, наиболее популярным, несомненно, следует признать пакет AVR Studio. Есть ряд причин такой популярности – это бесплатный пакет, разработанный фирмой ATMEL

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

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

Пакет AVR Studio имеет солидную историю развития, что отражается в количестве существующих версий. В конце 2003 г. выпущена версия 4.08, которая имеет ряд полезных дополнений, а в начале 2004 г. вышло обновление (Service Pack 1), добавляющее поддержку AVR-контроллеров третьего поколения семейства ATmega48. Производство микросхем этого семейства намечено на вторую половину 2004 г.

Дистрибутив пакета и Service Pack можно загрузить с сайта www.atmel.com или получить компакт-диск с этим дистрибутивом у российского дистрибьютора фирмы ATMEL.

Работу пакета AVR Studio удобно рассматривать на какой-либо конкретной программе. В качестве илюстрации мы рассмотрим создание проекта для простейшей программы, которая будет по очереди зажигать два светодиода. Для определенности возьмем микросхему Atmega128 и подключим два светодиода в выводам 31 и 32 (это биты 6 и 7 порта D микросхемы ATmega128). AVR-контроллеры имеют мощные выходные каскады, типовой ток каждого вывода составляет 20 мА, максимальный ток вывода – 40 мА, причем это относится как к втекающему, так и к вытекающему току. В нашем примере светодиоды подключены анодами к выводам контроллера, а катоды через гасящие резисторы соединены с землей. Это означает, что светодиод зажигается подачей «1» на соответствующий вывод порта. Принципиальная схема приведена на рисунке. На схеме также показаны две кнопки, которые будут использованы в одной из программ.

Здесь уместно сделать небольшое отступление о выборе типа микросхемы для простейшего примера. Действительно, с первого взгляда может показаться странным, зачем нужен такой мощный кристалл в 64-выводном корпусе там, где хватит и 8-выводной микросхемы

ATtiny12? Однако, в таком подходе есть логика. Известно, что в основе практически любого AVR-контроллера лежит одинаковое ядро. По большому счету, контроллеры различаются объемом памяти, количеством портов ввода/вывода и набором периферийных модулей. Особенности каждого конкретного контроллера – привязка логических имен регистров ввода/вывода к физическим адресам, адреса векторов прерываний, определения битов портов и т.д. описаны в файлах с расширением .inc, которые входят в состав пакета AVR Studio. Следовательно, используя конкретный тип кристалла, можно отлаживать программу как собственно для него, так и для любого младшего кристалла. Далее, если использовать в качестве отладочного самый старший кристалл, на сегодня это ATmega128, можно отлаживать программу практически для любого AVR-контроллера, надо просто не использовать аппаратные ресурсы, которые отсутствуют у целевого микроконтроллера. Таким образом, например, можно отлаживать на ATmega128 программу, которая будет выполняться на
ATtiny13
. При этом исходный код останется практически тем же, изменится лишь имя подключаемого файла с 128def.inc на tn13def.inc. У такого подхода также есть свои преимущества. Например, «лишние» порты ввода/вывода можно использовать для подключения ЖК-индикатора, на который можно выводить отладочную информацию. Или, воспользоваться внутрисхемным эмулятором, который подключается к JTAG-порту микросхемы ATmega128 (контроллер ATtiny13 такой порт не имеет). Таким образом, можно использовать единственную отладочную плату, на которой установлен «старший» AVR-контроллер, для отладки любых вновь разрабатываемых систем, естественно, базирующихся также на AVR-микроконтроллерах. Одна из таких плат называется AS-megaM. Именно она использовалась для создания примеров программ, приводимых в статье. Это универсальный одноплатный контроллер на базе микросхемы ATmega128, который содержит внешнее ОЗУ, два порта
RS-232
, порт для подключения ЖК-индикатора, внутрисхемного программатора и эмулятора AT JTAG ICE. На плате также есть место для распайки микросхемы FLASH-ПЗУ серии АТ45 в корпусах TSOP32/40/48 и двухканального ЦАП серии AD5302/ AD5312/ AD5322. Теперь, после объяснения причин использования AVR-монстра для зажигания пары сватодиодов, можно идти дальше.

При программировании в среде AVR Studio надо выполнить стандартную последовательность действий:

  • создание проекта
  • загрузка файла
  • компиляция
  • симуляция
  • загрузка hex-кода в микроконтроллер

Создание проекта начинается с выбора строки меню ProjectNew Project. В открывшемся окне “Create new Project” надо указать имя проекта, (в нашем случае – sample1) и имя файла инициализации. После нажатия кнопки “Next” открывается окно “Select debug platform and device”, где выбирается отладочная платформа (симулятор или эмулятор) и тип микроконтроллера.

Можно выбрать один из предлагаемых внутрисхемных эмуляторов, заметим, что у каждого эмулятора свой список поддерживаемых микросхем . Для рассматриваемого примера мы выбираем в качестве отладочной платформы AVR Simulator и микросхему ATmega128. После нажатия кнопки “Finish” нашему взору предстают собственно рабочие окна пакета AVR Studio, пока пустые. Следует в правое окно поместить исходный текст программы. Это можно сделать двумя способами, либо набрать весь текст непосредственно в окне редактора, либо загрузить уже существующий файл. Ниже приведен полный текст простейшей программы с комментариями.

; Пример «Управление светодиодами»
; написан для отладочной платы AS-MegaM
; Частота задающего генератора 7,37 МГц
; светодиоды подключены к выводам PD6 и PD7 и через резисторы - на общий провод.
; подключение файла описания ввода-вывода микросхемы ATmega128
.include "m128def.inc"
; начало программы
begin:
; первая операция - инициализация стека
; если этого не сделать, то вызов подпрограммы или прерывания
; не вернет управление обратно
; указатель на конец стека устанавливается на последний адрес внутреннего ОЗУ - RAMEND
ldi r16,low(RAMEND)
out spl,r16
ldi r16,high(RAMEND)
out sph,r16
; для того, чтобы управлять светодиодами, подключенными к выводам PD6 и PD7,
; необходимо объявить эти выводы выходными.
; для этого нужно записать "1" в соответствующие биты регистра DDRD (DataDiRection)
ldi r16,(1<<6) | (1<<7)
out DDRD,r16
; основной цикл программы
loop:
ldi r16,(1<<6) ; светится один светодиод
out PORTD,r16
rcall delay ; задержка
ldi r16,(1<<7) ; светится второй светодиод
out PORTD,r16
rcall delay ; задержка
rjmp loop ; повторение цикла
; процедура задержки
; примерно полсекунды при частоте 7,37 МГц
; три пустых вложенных цикла соответственно
delay:
ldi r16,30 ; 30
delay1:
ldi r17,200 ; 200
delay2:
ldi r18,200 ; и еще 200 итераций
delay3:
dec r18
brne delay3
dec r17
brne delay2
dec r16
brne delay1
ret ; возврат в главную программу
	

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

Компиляция проекта производится командой ProjectBuild или нажатием кнопки F7. Процесс компиляции отображается в окне “Output”. Это окно можно «вытащить» командой ViewOutput.

В принципе, мы уже получили выходной файл в формате .hex, который уже можно загружать в микросхему и наблюдать перемигивание светодиодов. Однако, цель статьи – показать полный цикл работы в среде AVR Studio, поэтому мы переходим к стадии отладки. Это делается командой DebugStart Debugging.

Теперь устанавливаем в окне “Simulator Options” частоту кварца 7,3728 МГц для точного измерения времени выполнения программы.

Остальные опции следует оставить без изменения. Теперь можно выполнять программу в пошаговом режиме при помощи мыши или кнопки F11.

Пакет AVR Studio содержит мощные средства для просмотра и редактирования состояния внутренних регистров и портов ввода/вывода отлаживаемого микроконтроллера, а также время, выполнения программы . Доступ к ним осуществляется через окно “I/O”.

На самом деле, количество информации, доступное через окна просмотра пакета AVR Studio настолько велико, что для получения максимального комфорта нужно использовать компьютер в двухмониторной конфигурации.

Для отладки нашего примера, чтобы получить доступ к битам порта D, надо раскрыть строку I/O ATMEGA128 и затем строку PORTD. Теперь видны все три регистра этого порта, PORTD, DDRD и PIND. Чтобы увидеть поля Value, Bits и Address, придется расширить правую границу окна, потеснив при этом окно с исходным текстом программы.

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

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

; Пример «Управление светодиодами от кнопок»
; написан для отладочной платы AS-MegaM
; светодиоды подключены к выводам PD6 и PD7 и через резисторы - на общий провод.
; кнопки - на PE4 и PE5
.include "m128def.inc"
; основная программа
begin:
; инициализация стека
ldi r16,low(RAMEND)
out spl,r16
ldi r16,high(RAMEND)
out sph,r16
; инициализация светодиодов
ldi r16,(1<<6) | (1<<7)
out DDRD,r16
; инициализация выводов, к которым подключены кнопки (на вход)
; внутренние подтягивающие резисторы подключены
; для этого в PORTE нужно установить соответствующие биты в единицы
ldi r16,(1<<4) | (1<<5)
out PORTE,r16
; а в DDRE - в нули
ldi r16,0
out DDRE,r16
; бесконечный цикл
forever:
in r16,PINE ; теперь в r16 находится текущее "состояние" кнопок
com r16 ; кнопка "нажимается" нулем, поэтому инвертируем регистр
lsl r16 ; переносим биты 4,5 в позиции 6,7
lsl r16 ; и обновляем "показания" светодиодов
andi r16,(1<<6) | (1<<7)
out PORTD,r16
rjmp forever ; цикл выполняется бесконечно	
	

Таким образом, на примере простейших программ показаны некоторые возможности пакета AVR Studio. Надо понимать, что это лишь первое знакомство, позволяющее быстрее освоиться с базовыми командами пакета. Между тем, возможности рассматриваемого пакета намного шире. Например, здесь можно отлаживать программы написанные на языках высокого уровня. В частности, Си-компилятор фирмы ImageCraft пользуется отладчиком AVR Studio «как родным». Для этого при компиляции исходного кода надо установить опцию генерации выходного файла в формате, совместимом с AVR Studio. При этом появляется возможность производить отладку в исходных кодах.

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

В меню Tools главного окна AVR Studio надо выбрать пункт Customize;

В окне Customize выбрать пункт Tools;

Двойным нажатием кнопки мыши или нажав Insert на клавиатуре, добавить новую команду в список и назвать ее «Программатор AS2»;

Указать путь к исполняемому файлу программатора, введя его непосредственно в поле для ввода «Command», или нажав на кнопку «…» справа от этого поля;

Теперь в меню Tools появился пункт «Программатор AS2».

Средства пакета AVR Studio 4.08 позволяют подключать вспомогательные программы – plugins. Первый plugin для AVR Studio – это программа графического редактора, упрощающая процесс инициализации ЖК-индикатора, которым может непосредственно управлять AVR-контроллер ATmega169. Максимальный логический размер ЖК-индикатора составляет 100 сегментов, каждому элементу индикатора ставится в соответствие бит в специальном регистре контроллера. Чтобы упростить рутинную процедуру привязки определенных битов к каждому сегменту, можно использовать вышеупомянутую программу.

Во время посещения «родины AVR» — норвежского офиса фирмы ATMEL, один из авторов статьи беседовал с Ларсом Квенилдом, руководителем группы программистов, которая создала и поддерживает пакет AVR Studio. Этот человек, классический программист, с бородой, в свитере и обутый в сандали на носки, рассказал о перспективах развития пакета. В следующую версию (4.09) — будет включен интерфейс для нового внутрисхемного эмулятора – JTAGICE mkII (он называется также AT JTAGICE2), который во второй половине года придет на смену AT JTAGICE. У этого эмулятора есть два существенных отличия. С одной стороны, добавлена поддержка нового однопроводного отладочного интерфейса для младших AVR-контроллеров, debugWIRE. Этот интерфейс интересен тем, что он не занимает для своей работы дополнительные выводы микроконтроллера, так как использует для обмена вывод Reset микроконтроллера! С другой стороны (можно понимать это выражение буквально), у эмулятора AT JTAGICE2 появится, наконец, интерфейс USB для связи с компьютером.

Литература
  1. Материалы технического семинара AVR Technical Training. Atmel. Norway. December 2003.
  2. Николай Королев, Дмитрий Королев AVR-микроконтроллеры второго поколения: средcтва разработчика. // Компоненты и технологии, 2003 № 7
  3. Николай Королев, Дмитрий Королев. AVR-микроконтроллеры второго поколения: новые аппаратные возможности // Компоненты и технологии. 2003. № 4.
  4. Николай Королев, Дмитрий Королев. AVR-микроконтроллеры: большое в малом. //Схемотехника», 2001, №5
  5. Николай Королев, Дмитрий Королев. AVR-микроконтроллеры: программные средства // Компоненты и технологии, 2000. № 4.
  6. Николай Королев. AVR: аппаратные средства разработчика // Компоненты и технологии, 1999 № 1
  7. Николай Королев. RISC- микроконтроллеры фирмы ATMEL //Chip-News 1998, №2
  8. Николай Королев, Дмитрий Королев AVR: новые 8-разрядные RISC-микроконтроллеры фирмы ATMEL
    //Микропроцессор Ревю, 1998, №1

AVR Studio — это… Что такое AVR Studio?

AVR Studio — интегрированная среда разработки (IDE) для разработки 8-ми и 32-х битных AVR приложений от компании Atmel, работающая в операционных системах Windows NT/2000/XP/Vista/7. AVR Studio содержит ассемблер и симулятор, позволяющий отследить выполнение программы. Текущая версия поддерживает все выпускаемые на сегодняшний день контроллеры AVR и средства разработки. AVR Studio содержит в себе менеджер проектов, редактор исходного кода, инструменты виртуальной симуляции и внутрисхемной отладки, позволяет писать программы на ассемблере или на C/C++.

История

Ранее существовал и фирменный ассемблер под Windows (wavrasm.exe) от Atmel, который совмещал ассемблер и редактор, подобно тому, как это делается в «больших» языках программирования. Его можно извлечь из первых версий AVR Studio, но он довольно примитивный и неудобный. Затем, видимо, в корпорации решили его не развивать, ограничившись AVR Studio. Скачать AVR Studio можно совершенно бесплатно с сайта Atmel. Там же доступны и старые версии (к сожалению, последние версии пакета стали довольно объемными — более 70 Мбайт), но чем старее версия, тем меньше ассортимент поддерживаемых контроллеров (версия 3 поддерживает только Classic).

Характеристики

Характеристики AVR Studio:

  • Интегрированный Ассемблер;
  • Интегрированный симулятор;
  • При помощи плагина возможна поддержка компилятора GCC в виде сборки WinAVR;
  • Поддержка инструментов Atmel, совместимых с 8-разрядной AVR архитектурой, в том числе AVR ONE!, JTAGICE mkI, JTAGICE mkII, AVR Dragon, AVRISP, AVR ISPmkII, AVR Butterfly, STK500 и STK600;
  • Поддержка плагина AVR RTOS;
  • Поддержка AT90PWM1 и ATtiny40;
  • Интерфейс командной строки с поддержкой TPI.

Литература

  • AVR RISC microcontrollers handbook By Claus Kühnel, ISBN 0-7506-9996-9, глава «4.2 ATMEL AVR Studio AVR Studio», стр 144—146 [1]

Ссылки

Atmel Studio — Обо всём

Atmel® Studio 6 (кликнув на ссылку, можно перейти на страницу для скачивания) – это интегрированная платформа разработки (IDP), предназначенная для проектирования и отладки приложений для микроконтроллеров Atmel на базе процессоров ARM® Cortex™-M, а также микроконтроллеров AVR® . Она представляет собой единую, простую в использовании среду разработки, компоновки и отладки приложений, написанных на языке C/C++ либо ассемблере.
Платформа Atmel Studio 6 абсолютно бесплатна. В нее интегрирована обширная библиотека бесплатного исходного кода Atmel Software Framework (ASF), содержащая свыше 1600 примеров ARM- и AVR-проектов. Эта библиотека усиливает преимущества платформы Atmel Studio 6, предоставляя доступ к готовому коду в той же среде, что сводит к минимуму необходимость низкоуровневого программирования в проектах. Платформу можно использовать для программирования широкого спектра микроконтроллеров AVR и устройств на базе процессоров ARM Cortex-M, включая расширенный ассортимент флеш-микроконтроллеров Atmel SAM3 на ядрах ARM Cortex-M3 и M4.
С появлением решений Atmel Gallery и Atmel Spaces проектирование встраиваемых микроконтроллеров на платформе Atmel Studio 6 становится еще проще, а время разработки и затраты снижаются. Atmel Gallery представляет собой сетевой магазин приложений, где можно найти инструменты разработки и встраиваемое программное обеспечение. Atmel Spaces – это облачное пространство для совместной разработки, позволяющее хранить проекты программного и аппаратного обеспечения для микроконтроллеров Atmel.
В заключение можно отметить, что в отличие от стандартных интегрированных сред разработки (IDE) платформа Atmel Studio 6 не только позволяет создавать новое программное обеспечение для микроконтроллеров, но и:
— упрощает повторное использование уже существующего программного обеспечения, способствуя дифференциации проектирования;
-поддерживает процесс разработки продукции, обеспечивая легкий доступ к встроенным инструментам и расширениям программного обеспечения через магазин Atmel Gallery.

Системные требования:
● Windows XP (SP3), Vista (SP1), Server 2003 (SP2), Server 2008 (SP2), 7, 8
● Computer that has a 1.6GHz or faster processor
● RAM
— 1 GB RAM for x86
— 2 GB RAM for x64
● An additional 512 MB RAM if running in a Virtual Machine
● 4 GB of available hard disk space
● A minimum display resolution of 1024 x 768 or higher is recommended

Так выглядит редактор кода в Atmel Studio. Что мы тут видим?

Плюсы

  • Подсветка синтаксиса
  • CodeGuard (при начальном написании переменной, функции, регистра, предлагает выбор, что облегчает написание кода)
  • Легко подключать внешние дополнительные библиотеки
  • Быстрая заливка скомпилированного кода в микроконтроллер (режим отладки)
  • Генерация выходных hex, cof, eep файлов, для возможности заливки через внешний программатор
  • Поддержка среды разработки для arduino
  • Поддерживает все контроллеры компании Atmel
  • Куча всяких дополнений для разработок
  • Поддержка внешних программаторов для режима отладки
Минусы
  • Нет большого разнообразия встроенных функций
  • Направление портов настраивается непосредственно регистрами микроконтроллеров
  • Ужасный симулятор выполнения кода 
Подведём резюме:

    На мой взгляд atmel studio самая удобная для написания кода среда разработки, поддерживает кучу разных плюшек для удобства написания кода, отладки программы. При компелировании проекта генерируется hex, cof, eep- файлы, что позволяет залить программу через внешний программатор в микроконтроллер.

Atmel Studio: настройка программирования Flip DFU | avr

В среде программирования Atmel Studio есть удобное меню для вызова внешних программ и утилит: Tools. В это меню с помощью редактора меню External Tools… можно добавить запуск сервисных программ. Например, это может быть запуск AVRDUDE для программирования микроконтроллера. В этой статье на примере описывается настройка программирования AVR ATmega34U4 через его штатный USB-загрузчик FlipDFU (в среде Atmel Studio 7.0, Windows 10 Pro 64 бита, версия 1809).

Микросхемы AVR с интерфейсом USB можно программировать с помощью утилит командной строки. Для этого существует фирменная утилита Atmel batchisp.exe (примеры её использования см. по ссылкам [2,3,4]) и GNU-утилита dfu-programmer [1] (пример её использования см. в [5]).

[Программирование с помощью dfu-programmer.exe]

dfu-programmer.exe это бесплатная утилита командной строки, которая заменяет утилиту программирования batchisp.exe от Atmel. Подразумевается, что Вы скачали исполняемый файл dfu-programmer.exe, и записали его в произвольную папку на диске (в этом примере используется каталог C:\Program Files (x86)\dfu-programmer\).

Процесс по шагам в среде Atmel Studio:

1. Зайдите в меню Tools, выберите пункт меню External Tools…, откроется диалог настройки дополнительных пользовательских инструментов External Tools.

2. В поле ввода Title: введите произвольный текст, обозначающий Вашу запускаемую утилиту / действие. Этот текст появится как дополнительный пункт в меню Tools. Например, введите текст DFU-ATmega32U4.

3. Создайте командный файл program-DFU.bat следующего содержания:

"%ProgramFiles%\dfu-programmer\dfu-programmer.exe" atmega32u4 erase --force
"%ProgramFiles%\dfu-programmer\dfu-programmer.exe" atmega32u4 flash %1
"%ProgramFiles%\dfu-programmer\dfu-programmer.exe" atmega32u4 launch --no-reset

В первой строке утилита dfu-programmer.exe сотрет память FLASH микроконтроллера ATmega32U4, вторая запишет в него программу. Записываемый двоичный файл программы представлен опцией командной строки %1, это параметр, который будет передан в файл program-DFU.bat. Третья строка задает прямой запуск записанной программы без использования сторожевого таймера.

Командный файл program-DFU.bat запишите в корневой каталог проекта (там, где находится файл проекта Atmel Studio с расширением *.atsln), или можете сохранить его в любое доступное место. В этом примере для удобства я создал подкаталог util в папке проекта, и записал туда файл program-DFU.bat.

4. В диалоге External Tools заполните в поле ввода Command: путь до файла program-DFU.bat. Если он находится в текущем каталоге проекта, то просто укажите program-DFU.bat, а если он находится в подкаталоге util, то введите путь util\program-DFU.bat.

5. В поле Arguments: введите путь до файла прошивки, которая должна быть записана в память FLASH микроконтроллера:

$(BinDir)\$(TargetName).hex

Здесь имена, начинающиеся на $, это макросы, которые система Atmel Studio заменит на известные ей текстовые значения. $(BinDir) будет заменен на каталог, где находится конечный скомпилированный файл, и $(TargetName) будет замен на цель компиляции (по умолчанию это имя проекта без расширения). В результате в командный файл вместо %1 будет подставлен полный путь до файла прошивки.

6. Галочка «Use Output window» перенаправит весь вывод командного файла program-DFU.bat в окно Output среды разработки Atmel Studio. Если эту галочку снять, то будет запускаться черное окно консоли cmd.exe, и станет доступной опция галочки «Close on exit» (закрывать окно консоли по окончании работы утилиты).

Если поставить галочку «Prompt for arguments», то будет выводиться запрос на ввод аргументов для запуска, которые будут использоваться вместо поля Arguments:.

Галочка «Treat output as Unicode» иногда может помочь с правильным отображением русского текста в выводе консоли Output.

Нажмите в диалоге External Tools кнопку OK, на этом настройка завершена. В меню Tools появится дополнительный пункт DFU-ATmega32U4, который был введен в поле Title на шаге 2:

Подключите через USB программируемый микроконтроллер, и выберите в меню пункт Tools -> DFU-ATmega32U4. Запустится командный файл program-DFU.bat, и в окно Output будет выведен примерно такой текст:

C:\MyProj\FM-RRD-102>"C:\Program Files (x86)\dfu-programmer\dfu-programmer.exe"
 atmega32u4 erase --force 
Erasing flash...  Success
Checking memory from 0x0 to 0x6FFF...  Empty.
 
C:\MyProj\FM-RRD-102>"C:\Program Files (x86)\dfu-programmer\dfu-programmer.exe"
 atmega32u4 flash "C:\MyProj\FM-RRD-102\Release\FM-RRD-102.hex" 
Checking memory from 0x0 to 0x227F... Empty. 0% 100% Programming 0x2280 bytes... [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success 0% 100% Reading 0x7000 bytes... [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success Validating... Success 0x2280 bytes written into 0x7000 bytes memory (30.80%).

Можно создать на панели инструментов кнопку для запуска нового созданного пункта меню. Для этого перейдите в меню Tools -> Customize…, откроется окно диалога настройки панелей управления. Перейдите на закладку Commands, выберите выпадающий список Toolbar:, в выпадающем списке выберите Device and Debugger, нажмите кнопку Add Command…, в списке Categories: выберите Tools, в списке Commands: выберите External Command 1. Нажмите OK и Close. На панели Atmel Studio появится новая кнопка DFU-ATmega32U4.

[Ссылки]

1. dfu-programmer site:github.io.
2. Макетная плата AVR-USB162.
3. Макетная плата AVR-USB162MU.
4. Использование MS Visual Studio IDE для программирования AVR/Arduino.
5. Альтернативы для Atmel DFU Flip.

Как работать с программатором USBasp в AVR Studio или Atmel Studio

Не секрет, что  китайский USBasp – это один из самых дешевых AVR программаторов. И к тому же очень простой в использовании! Впрочем стоит заметить, что многие радиолюбители не могут подключить USBasp к AVR Studio / Atmel Studio!
Это легко исправить, если «перепрошить» USBasp в AVR Doper, совместимый с интерфейсом STK500!

Для «перепрошивки» китайского USBasp в AVR Doper потребуется загрузить в него (точнее во FLASH память его микроконтроллера) файл «usbasp-mega8-12mhz.hex», расположенный в папке «Firmware» из этого архива.

Подробнее о том, как «перепрошить» USBasp.

Чтобы установить драйвер для AVR Doper, подключив программатор, откажитесь от автоматического поиска драйвера и укажите на папку, которую вы скачали и разархивировали!

После успешной установки драйвера для AVR Doper в диспетчере задач должен появиться новый порт! Запомните назначенный ему номер –  его понадобится указать в настройках программы!

Дальше рассмотрено два варианта подключения USBasp с «прошивкой» AVR Doper!

Вариант первый: настраиваем «перепрошитый» USBasp в AVR Studio

Для добавления нового программатора в AVR Studio кликните по кнопке «Connect» (см. рис.)

В появившемся окошке выберите тип программатора «STK500» и правильно укажите порт, который был ему назначен!

Когда появится окошко с напоминанием об устаревшей прошивке, нажмите «Отмена» или просто закройте его.

В настройках программатора обязательно выберите режим ISP Mode!

Вариант второй:  настраиваем «перепрошитый» USBasp в Atmel Studio

Для добавления нового программатора в Atmel Studio выберите в меню «Tools» пункт «Add target». Дальше настройка производится аналогично AVR Studio.

Как видите, «перепрошить» USBasp для работы в AVR Studio/Atmel Studio совсем несложно, и настройка программатора в этих программах очень проста даже для новичков.

 

Программирование МК AVR на языке assembler в среде Linux / Хабр

Ни для кого не секрет, что микроконтроллеры семейства AVR прочно вошли в практику домашних поделок. Кроме того, уже несколько лет наблюдается массовое (

на грани эпидемии)

увлечение отладочными платами типа Arduino, построенными на базе все тех же AVR. Не буду судить, хорошо это или плохо, ибо статей на эту тему на ресурсе более чем достаточно. Хочу уберечь и моего читателя от споров на тему «что такое Arduino и хорошо это или плохо». Статья не об этом.

Рано или поздно для любого «ардуиньщика» (при условии что он хочет выйти на более высокий профессиональный уровень) наступает момент когда в рамках платформы Arduino ему становится тесно и он начинает задумываться о том а что же в действительности происходит под капотом. И ответы на все его вопросы уже есть, например в виде замечательного курса «AVR. Учебный курс» от глубокоуважаемого DIHALT. Если вы пользователь OS Windows, то и недостатка в инструментах разработки у вас не будет, достаточно бесплатной Atmel Studio, закрывающей все вопросы разработки ПО для МК AVR.

Хоть я и тимлид в коллективе разработчиков ПО прикладного уровня, вопросы «железа» которое в нашей конторе делается на базе AVR с недавних пор стали интересовать меня очень остро. Возникло желание хорошо разобраться во всех аспектах разработки ПО для МК. И так как я являюсь убежденным приверженцем использования в разработке OS на базе ядра Linux, меня заинтересовал вопрос, а как там в линуксах: можно/нельзя ли писать и отлаживать ПО, зашивать его в кристалл с тем же (или примерно тем же) уровнем удобства, который нам доступен в Windows. Тех кого тоже интересует этот вопрос, и в особенности тех, кому тема поста кажется надуманной, приглашаю под кат.

Что касается разработки на C/C++, в среде линукс с этим особых проблем и нет, в виду общей ориентированности этой системы на использование данного языка и наличия достойного набора инструментария. Однако, тот же DIHALT, например, утверждает что программирование для МК неотделимо от знания ассемблера, в чем я с ним соглашусь, в виду логичности его тезисов, изложенных в «Учебном курсе» и собственного (пусть небольшого) опыта системной разработки под x86.

Руководствуясь тезисом, что от асма AVR нам никуда не уйти и сидим мы под линуксом, попробуем посмотреть на то, как можно писать и отлаживать программы. Я использую дистрибутив Arch Linux, поэтому в своем повествовании буду опираться на его экосистему.

Сразу скажу, что связку Atmel Studio + wine я предлагать не буду. Не люблю я wine (хоть и пользуюсь по необходимости). Остановимся на нативных средствах, прежде всего компиляторов, обзор которых в сети и личные ковырялки дали выход на триумвират

gavrasm

,

avra

и

avr-as

. Выбор произошел по двум противоречивым критериям: поддержка синтаксиса предлагаемого Atmel и возможность отладки прошивки по шагам в эмуляторе. Последнее для меня более важно, а в плоскости курса @DIHAL так прям вообще необходимо для понимания процесса работы микроконтроллера. Общность синтаксиса с компиляторами от Atmel дает, опять таки с моей точки зрения, лишь возможность без труда адаптировать проекты Atmel Studio к работе в линуксах, что весьма сомнительное преимущество, ибо тот же avr-as существует и под Windows. Предлагаю читателю обзор перечисленной троицы.

gavrasm и avra

Поддерживают синтаксис Atmel. Первый

нашелся в AUR

и устанавливается командой

$ yaourt -S gavrasm

Второй так же

доступен в AUR
$ yaourt -S avra

Программа вида

test.S

;---- Определяем целевое устройство
        .device atmega16
;---- Сегмент данных
        .dseg
;---- Сегмент кода
        .cseg
        .org 0x0000

        ldi r16, 10
M1:
        inc r16
        rjmp M1

;---- Сегмент EEPROM
        .eseg

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

Выхлоп gavrasm
$ gavrasm test.S
+------------------------------------------------------------+
| gavrasm gerd's AVR assembler Version 3.5 (C)2015 by DG4FAC |
+------------------------------------------------------------+
Compiling Source file: test.S
-------
Pass:        1
14 lines done.

Pass 1 ok.
-------
Pass:        2
14 lines done.


3 words code, 0 words constants, total=3 =  0.0%

No warnings!
Compilation completed, no errors. Bye, bye ...

$ ls -l
итого 12
-rw-rw----+ 1 maisvendoo users  52 июл 29 15:46 test.hex
-rw-rw----+ 1 maisvendoo users 741 июл 29 15:46 test.lst
-rw-rw----+ 1 maisvendoo users  92 июл 29 15:46 test.S

Содержимое hex-файла прошивки
:020000020000FC
:060000000AE00395FECFAB
:00000001FF

Содержимое файла листинга

gavrasm Gerd's AVR assembler version 3.5 (C)2015 by DG4FAC
----------------------------------------------------------
Source file: test.S
Hex file: test.hex
Eeprom file: test.eep
Compiled: 29.07.2017, 15:46:38
Pass: 2
1: .device atmega16
2:
3: .dseg
4:
5: .cseg
6: .org 0x0000
7:
8: 000000 E00A ldi r16, 10
9: M1:
10: 000001 9503 inc r16
11: 000002 CFFE rjmp M1
12:
13: .eseg
14:

Program : 3 words.
Constants : 0 words.
Total program memory: 3 words.
Eeprom space : 0 bytes.
Data segment : 0 bytes.
Compilation completed, no errors.
Compilation endet 29.07.2017, 15:46:38


Выхлоп avra
$ avra -l test.lst test.S 
AVRA: advanced AVR macro assembler Version 1.3.0 Build 1 (8 May 2010)
Copyright (C) 1998-2010. Check out README file for more info

   AVRA is an open source assembler for Atmel AVR microcontroller family
   It can be used as a replacement of 'AVRASM32.EXE' the original assembler
   shipped with AVR Studio. We do not guarantee full compatibility for avra.

   AVRA comes with NO WARRANTY, to the extent permitted by law.
   You may redistribute copies of avra under the terms
   of the GNU General Public License.
   For more information about these matters, see the files named COPYING.

Pass 1...
Pass 2...
done

Used memory blocks:
   Code      :  Start = 0x0000, End = 0x0002, Length = 0x0003

Assembly complete with no errors.
Segment usage:
   Code      :         3 words (6 bytes)
   Data      :         0 bytes
   EEPROM    :         0 bytes
$ ls -l
итого 16
-rw-rw----+ 1 maisvendoo users 92 июл 29 15:46 test.S
-rw-rw----+ 1 maisvendoo users  0 июл 29 15:55 test.S.cof
-rw-rw----+ 1 maisvendoo users 13 июл 29 15:55 test.S.eep.hex
-rw-rw----+ 1 maisvendoo users 55 июл 29 15:55 test.S.hex
-rw-rw----+ 1 maisvendoo users 61 июл 29 15:55 test.S.obj

Содержимое hex-файла


:020000020000FC
:060000000AE00395FECFAB
:00000001FF

Листинг генерируется дополнительным ключем -l при сборке


$ cat test.lst

AVRA Ver. 1.3.0 test.S Sat Jul 29 16:02:05 2017

.device atmega16

.dseg

.cseg
.org 0x0000

C:000000 e00a ldi r16, 10
M1:
C:000001 9503 inc r16
C:000002 cffe rjmp M1

.eseg

Segment usage:
Code : 3 words (6 bytes)
Data : 0 bytes
EEPROM : 0 bytes

Assembly completed with no errors.


Анализируя результаты можно сказать, что:

  1. Генерируется файл в формате Intel HEX, пригодный сразу для прошивки в МК
  2. Синтаксис совместим с Atmel

Определенно в синтаксисе avra есть отличия, например

        .device atmel16

дает указание на МК, скрывая от программиста явное указание ссылок на *.inc файл макроопределений. Существует и ряд других нюансов, о которых проще прочесть в

документации

или в

хорошей обзорной статье Valber’а

на русском языке. Об особенностях gavrasm можно

почитать тут

.

Оба рассмотренных компилятора имеют существенный фатальный недостаток — они не генерируют отладочной информации. Хотя в документации по avra такая возможность заявлена

Debugging support AVRA creates a coff file everytime the assembly was sucessful. This file allows AVR Studio or any coff compatible debugger to simulate or emulate the program.

но *.cof файл в выхлопе неизменно оказывается пустым. Отсутствие отладочной информации исключает адекватную отладку по шагам, остро необходимую начинающим. Так что от этих (к слову довольно старых альтернатив) переходим к другому, более могучему компилятору из семейства GNU

avr-as

Установка этого инструментария доступна из официальных репозиториев любого достаточно популярного дистрибутива. В случае с Arch Linux

$ sudo pacman -S avr-gcc avr-libc avr-binutils

GNU assembler (gas) является бэкэндом к компилятору gcc и обычно явно не вызывается. Связано это с идеологией *nix систем, ориентированных на разработку на C/C++, в которой ассемблеру отводится роль младшего нелюбимого сына. Вместе с тем это обеспечивает глубокую интеграцию ассемблерного кода в программы на C/C++ что, редко, но бывает необходимо. К тому же, если говорить об архитектурах x86/x86_64 синтаксис «гнутого» ассемблера (AT&T) разительно отличается от принятой Intel-нотации (хотя на gas можно использовать и интел-синтаксис, компилятор дает такую возможность). Чего стоит обратный по отношению к интел-нотации порядок операндов в командах, например

Применительно к AVR gas не отходит от нотации Atmel в части оформления команд — порядок операнд здесь привычный, например команда:

ldi r16, 10

в gas для AVR выглядит привычно. Другое дело макросы и директивы компилятора, они отличаются от Atmel. Приведенная выше тестовая программа будет выглядеть так:

test.S

#include	"/usr/avr/include/avr/io.h"	

/* Секция данных */
	.data

/* Секция кода */
	.section .text

	.org 0x0000

/* Точка входа, обязательная при вызове avr-gcc вместо avr-as */
	.global main

main:

	ldi r16, 10
M1:
	inc r16
	rjmp M1

Как видно из исходника секция кода определяется директивой предпроцессора .section .text (аналог .cseg). Аналогом .dseg служит .data. Единственное, чего я пока не понял и не узрел в документации, как определяется содержимое EEPROM (аналог .eseg). Надеюсь среди читателей найдется добрый гуру, который натолкнет меня на ответ. Новичкам же, подобным мне, советую покурить документацию

тут

и

вот здесь

для уяснения специфики использования gas для AVR.

Мы же теперь соберем hex-файл, пригодный для прошивки МК. Команда:

$ avr-as -mmcu=atmega16 -o test.o test.S

генерирует объектный файл для соответствующего контроллера (в нашем случае ATMega 16). Далее данный объектный файл преобразуется в hex

$ avr-objcopy -O ihex test.o test.hex

Получая на выходе hex-файл вида

test.hex
:060000000AE00395FECFAB
:00000001FF

Тем не менее, мы не ответили на главный вопрос и не обозначили преимущество gas по возможности организации пошаговой отладки. Для этого прежде всего

В линуксах нет достойной альтернативы GDB. Для его использования применительно к МК AVR ставим фронтэнд

$ sudo pacman -S avr-gdb

Данный отладчик обладает всем комплексом противоречий, пугающих новичков: при справедливо заявленной термоядерной мощи порог вхождения его довольно высок. Чтобы разучиться боятся gdb и начать в нем работать очень рекомендую статью величайшего и могучего и, к сожалению, ныне покойного (земля тебе пухом, Мыщъх!) Николая Лихачева aka Крис Касперски

«Погружение в технику и философию GDB»

.

Первое, что нужно для использования gdb — собрать код соответствующим образом, сгенерировав ELF-образ, содержащий отладочные символы

$ avr-as -mmcu=atmega16 -g --gstabs -o test.o test.S

Ключи -g и —gstabs генерируют соответственно отладочные символы и добавляют возможность использовать образ для удаленной отладки в gdb. Компонуем полученный объектный файл в ELF

$ avr-ld -m avr4 -o test.elf test.o

Полученный образ мы используем для отладки нашего теста. Из него же можно сгенерировать и hex-файл

$ avr-objcopy -j .text -j .data -O ihex test.elf test.hex

явно указывая ключем -j включаемые в прошивку секции, ключем -O ihex формат вывода (intel HEX). Получаем тот же файл, что и в предыдущем случае:

test.hex
:060000000AE00395FECFAB
:00000001FF

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

Этот вопрос сложнее прочих. Мною было найдено два достойных кандидата:

simavr

, имеющийся

в официальных репозиториях арча

и устанавливаемый простым:

$ sudo pacman -S simavr

и более популярный симулятор

simulavr

, который не был найден даже в AUR, при том что основная масса полезной инфы в сети именно о нем. Собрать из исходников с целью создания PKGBUILD для AUR у меня не вышло, хотя я перебрал все адекватные ветки в

официальном репозитории

. Пришлось прибить зверский костыль, скачав

DEB-пакет для Debian

, превратив его в пакет для арча с помощью

утилиты debtap

.

 $ debtap simulavr_0.1.2.2-7+b2_amd64.deb

и далее полученный арч-пакет без проблем ставиться в систему.

Версия эта довольно древняя, а текущий релиз (судя по дате последнего коммита в репозитории) ушел довольно далеко.

Что же касается simavr, то он ставится без проблем, поддерживает большее число МК, но на попытки подключения к нему отладчиком выдает в консоль сообщения о крэше эмулятора и разобраться с этим мне пока не удалось. Тут я снова апеллирую к сведующему в вопросе читателю и рассчитываю на подсказку.

Пока же мы используем для отладки костыльно поставленный simulavr

Итак, сначала отладим программу хардкорно — из консоли запустим эмулятор

$ simulavr -d atmega16 -c 8000000 -g -P simulavr-disp

запускаем эмулятор ATMega 16 (ключ -d) на частоте 8 МГц (ключ -с) с опцией удаленной отладки и возможность красивого просмотра регистров контроллера (опция -P, которая по данным из сети в свежайшей версии эмулятора убрана). Видим окошко терминала с содержимым регистров и памяти

наблюдаем в консоли запуска сообщение

Waiting on port 1212 for gdb client to connect...

сообщающее нам о том, что эмулятор ждет подключения отладчика на порту 1212 (порт можно указать при запуске ключем -p). В другой консоли стартуем отладчик:

$ avr-gdb -q -tui

первый ключ уберет пафосный выхлоп gdb при запуске, вторая группа ключей активирует просмотр исходников в процессе отладки в применена мной для наглядности (на деле эта опция неудобна по ряду причин). В консоли мы увидим следующее:

Подлючаемся к эмулятору

(gdb) target remote:1212

Загружаем ELF-образ в эмулятор (да, именно его а не hex, на чем я обжегся в самом начале) d ‘vekznjh

(gdb) load test.elf

Загружаем отладочные символы:

(gdb) file test.elf

ответив «yes» на заданный вопрос, получая следующую картину:

Что же, мы видим наш исходник и отладчик, готовый к приему команд. Даем команду next

(gdb) n

и видим как отладчик бодро переместился по коду.

можем посмотреть изменившееся состояние регистров контроллера как в консоли эмулятора

так и в окне отладчика:

(gdb) info registers
.
.
.
r16            0xa      10
.
.
.
SREG           0x0      0
SP             0x0      0x0 <main>
PC2            0x2      2
pc             0x2      0x2 <M1>

С этого момента нам доступен весь богатейший инструментарий, предоставляемый отладчиком gdb. Однако,

что линуксоиду хорошо то виндузятнику смерть

меня упрекнут мол «чувак, в Atmel Studio есть нормальная отладка с отображением исходников, перемещением по коду хоткеями и просмотром значений вразумительным графическим способом» и будут правы, поэтому попытаемся хотя бы частично решить проблему дружественности отладки, совместив её с разработкой

IDE Eclipse известна давно. За время своего существования она прочно утвердилась в разных областях разработки ПО и может «тупо всё», благодаря обширному набору плагинов, расширяющих её функциональность. В свое время я восторгался ей, но время это прошло, так как в обыденной работе у неё есть масса мелких нюансов, раздувающихся в недостатки (на работе в продакшене я предпочел для того же C/C++ QtCreator в силу специфики деятельности, о чем не жалею).

Тем не менее, с точки зрения решаемой нами задачи она вполне удовлетворяет её требованиям. Для работы с AVR в Eclipse потребуется установка следующих плагинов

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

Eclipse по своей сути ориентирован на C/C++ разработку, поэтому для создания ассемблерного проекта воспользуемся генерацией проекта через имеющийся Makefile, который и напишем для нашего теста. Вот он

Makefile

# Декларируем необходимые переменные
DEVICE = atmega16
TARGET = test
OBJECTS = $(TARGET).o
ELF = $(TARGET).elf
HEX = $(TARGET).hex

# Задаем правила компиляции
COMPILE = avr-as -mmcu=$(DEVICE) -g --gstabs

# Главная цель - HEX-файл прошивки
all:	hex

# Правило сборки объекрных молулей: беруться все исходники 
# с расширением *.S и компилятся в объектные модули *.o
.S.o:
           $(COMPILE) -c $< -o $@
	
# Правило очитски - удаляем все продукты сборки
clean:
           rm -f $(HEX) $(ELF) $(OBJECTS)
	
# Компоновка всех объектных модулей в ELF
elf:   $(OBJECTS)
        avr-ld -m avr4 -o $(ELF) $(OBJECTS)

# Преобразование ELF в HEX
hex: elf
        avr-objcopy -j .text -j .data -O ihex $(ELF) $(HEX)

Написав этот опус открываем Eclipse и создаем новый проект File -> New -> Project, выбирая сишный проект на основе Makefile

жмем Next, в следующем окне выбирая расположение каталога с исходниками и Makefile

Шлепаем Finish и видим наш проект во всей красе

Идем в меню Project -> Build all и получаем все необходимые нам бинарники:

19:34:51 **** Build of configuration Default for project test ****
make all 
avr-as -mmcu=atmega16 -g --gstabs -c test.S -o test.o
avr-ld -m avr4 -o test.elf test.o
avr-objcopy -j .text -j .data -O ihex test.elf test.hex

19:34:51 Build Finished (took 128ms)

Теперь настроим запуск эмулятора, как внешнего инструмента проекта зайдя в Run -> External Tools, создав новую конфигурацию с настройками соответствующими приведенным скринам

Тут мы сообщаем среде, что хотим запускать эмулятор с нужными нам параметрами командной строки, поместив пункт запуска в меню Run → External Tools.

Применяем настройки, идем в меню Run → External Tools → atmega16 и наблюдаем запуск эмулятора:

Хорошо, теперь настроим конфигурацию отладки нашего проекта. Идем в меню Run → Debug Configuratuions и настраиваем аппаратную отладку через GDB.

не забывая указать тип соединения с сервером симуляции:

и указав, какие действия следует выполнить при запуске отладки:

Обязательно ставим галки на Load image и Load Symbols — это позволяет отладчику загрузить прошивку в эмулятор и прочесть отладочные символы. Ставим точку останова на метку M1.

Жмем кнопки Apply и Debug и… вуаля!

Отладчик послушно стал на указанной точке останова. Доступен просмотр дампа памяти и содержимого регистров. Жмем F5 (или F6) и трассируем наш код по шагам.

Теперь можно хоть до посинения трассировать код, смотреть значения регистров и переменных, править код, снова трассировать, в общем заниматься привычным процессом разработки.

Что хочу сказать в финале? Я уже тысячу раз говорил о том, что все мои статьи на ресурсах хабр и гиктаймс — отражение личного опыта и рупор субъективного мнения. Решена задача — организация разработки ПО для контроллеров AVR в среде Linux. Эта статья — продукт долгого гугления и сбора информации из разрозненных сетевых источников. Цель её — натолкнуть новичка на поиск в нужном направлении. Статья не претендует на академичность, она лишь продукт моих собственных копаний и попытка поделится собранной информацией, а так же привлечь заинтересованных людей к интересной мне теме.

Тут много о чем не сказано, например о прошивке через avrdude, который (sic!) есть кроссплатформенная утилита прошивки для семейства AVR. Если у читателей будет желание, а у меня возможность, мы рассмотрим и её, помигаем светодиодами, пошлем слово «жопа» «счастье» через USART и так далее. Тема неисчерпаема и достойна продолжения. Время покажет.

А пока, благодарю моего читателя за внимание и надеюсь на новую встречу!

3.c. Программирование AVR с помощью AVR Studio 4

В этом руководстве рассматривается более старая версия AVR Studio 4 , которая больше не поддерживается Atmel. Учебное пособие по новой версии Atmel Studio см. В Разделе 3.b. Учебное пособие по AVR Studio 4 для пользователей Orangutan и 3pi-роботов см. В руководстве Programming Orangutans и 3pi Robot из AVR Studio 4 .

В следующем руководстве описаны шаги, необходимые для программирования AVR в Windows с использованием AVR Studio 4 и программатора Pololu USB AVR.В частности, мы напишем простую программу для мигания светодиода, подключенного к выводу PD1 AVR. Если вы хотите запрограммировать AVR, у которого нет светодиода, подключенного к контакту PD1, возможно, потребуется изменить код в этом руководстве.

Вам потребуется загрузить и установить несколько программ:

  1. Драйверы программатора Pololu USB AVR (см. Раздел 3.a).
  2. WinAVR: WinAVR — это бесплатный набор средств разработки с открытым исходным кодом для семейства микроконтроллеров AVR, включая компилятор GNU C / C ++ для AVR (avr-gcc).
  3. AVR Studio 4: AVR Studio 4 — это бесплатная интегрированная среда разработки (IDE) для программирования AVR, предлагаемая Atmel. AVR Studio 4 работает с компилятором WinAVR avr-gcc и содержит встроенную поддержку программирования AVR ISP.

Если у вас есть Orangutan или 3pi и вы хотите сразу перейти к использованию USB-программатора AVR, вы можете пропустить шаги 1–3, загрузив проект AVR Studio, который будет создан этими шагами. Определите микроконтроллер на вашем устройстве, загрузите соответствующий файл ниже, извлеките все файлы в каталог, откройте файл проекта AVR Studio (BlinkLED.aps) и переходите к шагу 4.

  1. Откройте AVR Studio и щелкните New Project . Выберите AVR GCC в качестве типа проекта. Введите имя проекта и исходное имя файла. На скриншоте ниже мы назвали наш проект «BlinkLED» и решили создать папку с именем «C: \ BlinkLED», содержащую пустой файл «BlinkLED.c». Щелкните Далее >> . НЕ нажимайте «Готово». Если вы случайно нажмете «Готово», вы не сможете выполнить шаг 2, и вместо этого вам придется настроить устройство, перейдя в меню «Проект» и выбрав «Параметры конфигурации».

    Создание нового проекта AVR Studio 4, шаг 1


  2. Выберите AVR Simulator в качестве платформы отладки, а затем выберите соответствующее устройство для целевого AVR. Для робота Orangutan или 3pi это будет ATmega48, ATmega168, ATmega328P, ATmega324PA, ATmega644P или ATmega1284P в зависимости от того, какой чип установлен у вашего Orangutan или робота 3pi. Щелкните Finish .

    Создание нового проекта AVR Studio 4, шаг 2


  3. Напишите вашу программу в BlinkLED.c, как показано на снимке экрана ниже, и нажмите кнопку Build на панели инструментов (или нажмите F7 ).

    Создание проекта с помощью AVR Studio

    Примечание: Вы, вероятно, захотите немного настроить эту программу, если тактовая частота вашего AVR не 20 МГц. F_CPU следует определять как тактовую частоту вашего AVR в Гц. Если вы не сделаете это изменение, отсчет времени delayms () будет отключен, но светодиод будет по-прежнему мигать.

  4. Убедитесь, что программатор USB AVR подключен к компьютеру через кабель USB A — mini-B, а затем нажмите кнопку Display the «Connect» Dialog на панели инструментов. Вы также можете сделать это, перейдя в меню «Инструменты» и выбрав Program AVR> Connect… .

    Подключение к программатору с помощью AVR Studio


  5. Появится диалоговое окно выбора программиста.Выберите AVRISP в качестве платформы. Программатор USB AVR использует AVR ISP версии 2, который записывается как AVRISPv2. Обратите внимание, что это не то же самое, что AVR ISP mkII. Выберите имя порта вашего программатора, если вы знаете, что это такое, или выберите Auto , и AVR Studio будет пробовать все порты, пока не обнаружит программатор. Вы можете определить имя порта вашего программатора, посмотрев в списке «Порты (COM и LPT)» в диспетчере устройств «Порт программирования Pololu USB AVR Programmer Programmer».Нажмите «Подключиться…», чтобы открыть окно ISP.

    Диалоговое окно выбора программиста AVR Studio 4

    Если окно ISP не появляется, когда вы нажимаете «Подключить…», ваш компьютер не может обнаружить программатора. См. Раздел «Устранение неполадок» (раздел 8) для получения помощи в выявлении и устранении проблемы.

    Если AVR Studio отображает диалоговое окно с вопросом, хотите ли вы обновить (или понизить) прошивку программатора, нажмите Отмена , чтобы проигнорировать сообщение и использовать свой программатор.Чтобы это диалоговое окно не появлялось в будущем, используйте Утилиту настройки (Раздел 3.e), чтобы изменить номера версий аппаратного и программного обеспечения программатора.

  6. Выберите вкладку Main . В раскрывающемся списке со списком моделей AVR выберите то же устройство, которое вы выбрали при создании проекта. Для робота Orangutan или 3pi это будет ATmega48 , ATmega168 или ATmega328P .

    Выбор устройства для программирования ISP в AVR Studio

  7. Если вы еще этого не сделали, подключите программатор к целевому устройству с помощью 6-контактного кабеля ISP.Убедитесь, что кабель ориентирован так, что контакт 1 на разъеме совпадает с контактом 1 на вашем целевом устройстве! Вы можете проверить соединение, перейдя на вкладку Main и нажав кнопку Read Signature . Это отправляет команду целевому AVR с запросом подписи его устройства. Если все работает правильно, вы должны увидеть «Подпись соответствует выбранному устройству». Если подпись не соответствует выбранному устройству, вероятно, вы выбрали неправильное устройство (или, возможно, ваше целевое устройство выключено).Если прочитать подпись полностью не удается, обратитесь к разделу «Устранение неполадок» (раздел 8), чтобы узнать, как заставить ваше соединение работать.

    Чтение подписи устройства на вкладке «Главный интернет-провайдер» AVR Studio


  8. Теперь пора запрограммировать целевое устройство. Выберите вкладку Программа . Ваш входной HEX-файл в разделе Flash должен быть шестнадцатеричным файлом, который был сгенерирован при сборке вашей программы.Вы можете просмотреть это с помощью кнопки «…» справа от текстового поля входного файла. Если вы перейдете в папку своего проекта, вы увидите, что он выглядит как «default \ <имя проекта> .hex» . Щелкните кнопку Program (убедитесь, что вы щелкнули по кнопке в разделе Flash , а не по разделу «EEPROM» или «Формат производственного файла ELF»!).

    Вкладка ISP программы AVR Studio

    Когда ваш USB-программатор AVR программирует AVR, вы должны увидеть, как мигают все три светодиода, и вы должны увидеть следующий текст внизу окна:

      Чтение входного файла FLASH.. хорошо
    Настройка режима и параметров устройства .. ОК!
    Вход в режим программирования .. ОК!
    Стирающее устройство .. ОК!
    Программирование FLASH .. ОК!
    Чтение FLASH .. ОК!
    Содержимое FLASH равно файлу .. ОК
    Выход из режима программирования .. ОК!
      

    Если проблем не было, светодиод, подключенный к PD1 вашего AVR, теперь должен мигать! Обратите внимание, что если вы пробуете это на роботе 3pi и еще не припаивали дополнительные светодиоды в сквозные отверстия, мигающий светодиод будет в нижней части робота. Если возникла проблема, обратитесь к разделу «Устранение неполадок» (раздел 8), чтобы узнать, как ее определить и устранить.

Загрузка Atmel Studio (последняя версия 2021) для Windows 10, 8, 7

Каждое программное обеспечение выпускается в соответствии с типом лицензии, который можно найти на страницах программ, а также на страницах поиска или категорий. Вот наиболее распространенные типы лицензий:

Freeware

Freeware можно загрузить, использовать бесплатно и без каких-либо ограничений по времени . Бесплатные продукты можно использовать бесплатно как в личных, так и в профессиональных (коммерческих) целях.

Открытый исходный код

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

Бесплатная игра

Эта лицензия обычно используется для видеоигр и позволяет пользователям загружать и играть в игру бесплатно . По сути, продукт предлагается Free to Play (Freemium), и пользователь может решить, хочет ли он платить деньги (Premium) за дополнительные функции, услуги, виртуальные или физические товары, которые расширяют функциональность игры.В некоторых случаях пользователям может быть показана реклама.

Demo

Demo программы имеют ограниченную функциональность бесплатно, но взимают плату за расширенный набор функций или за удаление рекламы из интерфейсов программы. В некоторых случаях все функции отключены до покупки лицензии. Демоверсии обычно не ограничены по времени (например, пробное программное обеспечение), но функциональность ограничена.

Пробная версия

Пробная программа позволяет пользователю оценить программу в течение ограниченного периода времени .После этого пробного периода (обычно от 15 до 90 дней) пользователь может решить, покупать программное обеспечение или нет. Несмотря на то, что большинство пробных программных продуктов ограничены по времени, некоторые также имеют ограничения по функциям.

Платный

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

Atmel Studio 6 с платами Arduino — Часть 1

Терминальное окно теперь можно найти в View -> Terminal Window

Шаг 5A: Настройте инструменты программирования Arduino (Используйте этот метод для программирования Arduino с помощью загрузчика с преобразователем USB в последовательный порт )

Для этого требуется, чтобы у вас уже была установлена ​​Arduino IDE.

Перейдите в Инструменты -> Внешние инструменты…

Создайте новый инструмент со следующими настройками:

( Измените его, чтобы он соответствовал вашей папке установки arduino и найдите avrdude.exe )

Измените эти параметры в зависимости от используемой платы:

Arduino Pro Mini:

  -patmega328p -carduino -P.COM3 -b57600  

Arduino Uno:

  -patmega328p -carduino -P.COM3 -b115200  

Arduino Duemilan2: .COM3 -b57600

Arduino Mega2560:

  -patmega2560 -cwiring -P.COM3 -b115200  

Примечание : Если пути к вашим каталогам содержат пробелы (например, в «Program Files (x86)»), вам может потребоваться для ввода полных путей в кавычках. Пример: -C «C: \ Program Files (x86) \ Arduino \ hardware \ tools \ avr \ etc \ avrdude.conf»

Обновлено 10 июня благодаря отзывам пользователей. Обновленная командная строка Mega2560 15 сентября благодаря отзывам пользователей. Обновлено примечание о путях к каталогам 28 ноября 2013 г. благодаря отзывам пользователей.

-p Имя платы

-c Имя программиста

-b Скорость передачи программатора

Не забудьте изменить имя COM вашего последовательного порта.

Исходя из Arduino, вы должны все это знать, иначе найдите свой последовательный порт, а остальное — Google!

Шаг 5B: Настройте инструменты программирования Arduino (используйте этот метод с внешним программатором, например: USBTiny AVR Programmer )

Для этого необходимо, чтобы у вас уже был установлен AVRdude.Вы можете скачать его, нажав здесь . Загрузите и распакуйте его в рабочий каталог AtmelStudio.

Начальная настройка, установка предохранителей ( вам потребуется создать новый внешний инструмент и прошить чип).

Чтобы начать программирование Arduino, вам нужно будет выполнить начальную вспышку предохранителей на AVR. Это нужно сделать только один раз, если вам не нравится настраивать параметры и вы хотите получить максимальную отдачу от своего оборудования.

Предупреждение. Неправильная установка предохранителей МОЖЕТ БЫТЬ ЗАБЛОКИРОВАНО ВАС НАВСЕГДА ОТ ВАШЕГО АРН! Прежде чем даже подумать об изменении настроек предохранителя, вы должны знать, каковы ваши текущие настройки и что они означают. Это означает, что нужно обратиться к таблице данных микросхемы и найти калькулятор предохранителей, который поможет (я использую это: http: //www.engbedded.com/cgi-bin/fcx.cgi? P_PREV = & P = ATmega328P).

Перейдите в Инструменты -> Внешние инструменты …

Создайте новый инструмент со следующими настройками:

  • Заголовок: Fuse Flash

  • Команда: C: \ Users \ \ Documents \ Atmel Студия \ avrdude-5.11-Patch7610-win32 \ avrdude.exe (изменить для соответствия вашим собственным каталогам)

  • аргументы: -c usbtiny -p atmega328p -F -i 25 -s -U lfuse: w: 0xFF: m -U hfuse: w : 0xD9: m -U efuse: w: 0xFD: m (скопировать и вставить)

Выберите «Использовать окно вывода». Это позволяет вам видеть, что делает AVRdude и возникают ли какие-либо ошибки. Если при загрузке настроек предохранителя все же возникает ошибка, вероятность того, что вы превратили Arduino в пресс-папье, высока.

Подключение к AVR / Arduino

Вы будете подключать программатор к AVR через контакты SPI.В отличие от RS232, нет необходимости согласовывать TX с RX и наоборот. MOSI переходит в MOSI, CLK переходит в CLK и т. Д. И т. Д. Если вы смотрите на своего программатора и не знаете, какой из контактов какой, переверните его. В этом уроке мы будем использовать Arduino Mini. Если вы используете USBTiny, распиновка для программатора должна быть на задней стороне платы. Обратите внимание, что на программаторе 10 контактов, но для программирования требуется только 6. В качестве контакта заземления вы можете использовать любой из четырех обозначенных GND.

Какая версия AVRStudio лучше? AVRStudio 6 по сравнению с AVRStudio 4

AVRStudio — это программное обеспечение для разработки микроконтроллеров AVR, поставляемое Atmel, чтобы пользователи могли легко разрабатывать код для своих устройств. Он включает в себя управление проектами, редакторы кода, компиляторы ассемблера и C, симулятор, а также поддержку программистов и эмуляторов. Он разрабатывался годами и достиг AtmelStudio v7.2, но доступны более старые версии, так какая версия лучше для вас?

AVRStudio с самого начала была довольно глючной, но с AVRStudio 4 решилась.Это было стандартное программное обеспечение в течение многих лет и постепенно улучшалось до AVRStudio 4.19, который является последним выпуском. Затем Atmel отказалась от этой платформы и присоединилась к революции раздутого программного обеспечения с совершенно новым AtmelStudio 5. Его быстро заменили на AtmelStudio 6, поскольку 5 был полон ошибок. Последним предложением является AtmelStudio 7, аналогичная версии 6.

. Все

AtmelStudio 5, 6 и 7 используют сетевую платформу Microsoft и другие платформы Microsoft, в результате чего они ОГРОМНЫ — от 500 до 750 МБ и требуют времени для загрузки и установки.Среда очень приятная, с множеством (и множеством) функций, помогающих организовать код, включая «решения» вместо рабочих областей, ссылки на социальные сети и многое другое.

Последние версии AtmelStudio также поддерживают устройства SAM (Atmel ARM), что является еще одной причиной их сложности.

Однако все эти удивительные возможности имеют свою цену! Вам нужен очень быстрый ПК, желательно четырехъядерный, с несколькими гигабайтами оперативной памяти, иначе он будет работать как свинья. На более медленных компьютерах, таких как старые ноутбуки и двухъядерные процессоры, простая установка может привести к остановке всего ПК, поэтому это не лучшее решение, если у вас старый компьютер.

Для пользователей MAC Studio может быть запущена на виртуальной машине, такой как Parallels. Studio 6 и 7 будут работать, но производительность слишком низкая, чтобы вы могли нормально работать. В Studio 4 производительность достаточно высока даже в виртуальной ОС.

Одна вещь, которую Atmel сделала правильно, — это разрешила вам импортировать старые проекты AVRStudio 4, поскольку есть много старых проектов, доступных в учебных наборах и в Интернете. Просто используйте File-> Import-> AVR Studio 4 Project…

А как насчет AVRStudio 4? Это по-прежнему лучшее решение, если у вас нет сверхбыстрого ПК, но Atmel вызвала серьезную проблему, когда закончила версию 4.Они взяли последнюю выпущенную стабильную версию v4.18 и последний пакет обновления SP3 и объединили их в окончательный выпуск, AVRStudio 4.19. К сожалению, им удалось создать ошибку в процессе, которая так и не была исправлена.

Эта ошибка означает, что в новых проектах не настраивается инструментальная цепочка WinAVR C — существующие или образцы проектов подойдут, но новые выдают ошибку компиляции, например vr-objcopy: ‘Filename.elf’: такого файла нет.

Решение состоит в том, чтобы добавить инструментальную цепочку вручную следующим образом:

Перейдите в Проект -> Параметры конфигурации -> Пользовательские параметры.
Снимите флажок « Use AVR toolchain » и установите пути:

avr-gcc: C: \ WinAVR-20100110 \ bin \ avr-gcc.exe
make: C: \ WinAVR-20100110 \ utils \ bin \ make.exe

Это настройка на основе проекта, поэтому вам нужно делать это каждый раз, когда вы создаете новый проект! Если вы создаете много проектов, возможно, вам лучше вернуться к AVR Studio 4.18 (сборка 684) и AVR Studio 4.18 SP3 (build716). Они доступны на этой странице вместе со многими другими версиями AVRStudio,

.

Архив AVRStudio и Atmel Studio

Удалите AVRStudio 4.19, установите v4.18, а затем SP3.

А как насчет поддержки инструментов в разных версиях? Большинство инструментов, включая программаторы Kanda AVRISP, программатор AVRISP mkII, программатор и эмуляторы AVRDragon и JTAGICE mkII, будут работать во всех версиях AVRStudio. Но самый дешевый эмулятор JTAGICE не поддерживается в версиях 5, 6 или 7, поэтому вам понадобится AVRStudio 4, чтобы воспользоваться преимуществами этого недорогого устройства.

AVR Dragon также устарел (по состоянию на октябрь 2018 г.). Рекомендуемая замена — ATMEL ICE, который поддерживает микроконтроллеры AVR и SAM.К сожалению, у него есть 10-контактные выходы 1,27 мм (0,05 дюйма), а в самых дешевых версиях адаптеров нет. Чтобы получить переходник на 6- или 10-контактные разъемы 2,54 мм (0,1 ″), вам необходимо купить дорогую версию. Это в 3 раза дороже самой дешевой версии с платой! Kanda создаст решение для этого в ближайшее время, как только мы заменим AVR Dragon в наших тренировочных комплектах.

Atmel не одиноки в этом стремлении к средам разработки, которым для правильной работы требуются огромные ресурсы. Microchip представила MPLAB X для PIC, чтобы заменить MPLAB 8, и он также использует платформы Microsoft для создания программы-монстра.Вы задаетесь вопросом, не забыли ли разработчики этих сред о студентах со старыми ноутбуками, людях с плохим подключением к Интернету или инженерах из развивающихся стран, которые не могут позволить себе новейшие ПК.

В заключение, AVRStudio 5 — мусор, и его следует избегать, AtmelStudio 7 отлично подходит, если у вас очень новый компьютер с большим количеством ресурсов, а AVRStudio 4 по-прежнему является очень хорошей программой и идеально подходит для разработки проектов AVR на C или ассемблере, особенно AVRStudio 4.18, SP3. Многим пользователям было бы проще, если бы Atmel позаботился о исправлении v4.19, чтобы устранить ошибку цепи инструмента.

Дополнительная информация

Программатор AVRISP-MKII для AVRStudio

AVR DRAGON ICE для AVRStudio

Atmel avr-studio 4 — Итальянский перевод — Linguee

Наша запатентованная емкостная сенсорная технология и

[…]

алгоритмов в сочетании с оптимизированным и

[…] сенсорный ena bl e d Atmel AVR ® mi crocontroller, provide […]

неограниченное количество касаний,

[…]

быстрое время отклика, поддержка стилуса и низкое энергопотребление.

digikey.com.mx

La nostra tecnologia di cattura tattile capacity brevettata

[…]

e i nostri algoritmi, unitamente

[…] a un mi cr ocon trol lo re Atmel AVR® ot timi zzat o e abilitato […]

per il rilevamento tattile, forniscono

[…]

un Number Illimitato di tocchi, pronta risposta, support pennino e ridotto consumo energetico.

digikey.ch

Паоло Пининфарина из Pininfarina Extra и другие всемирно известные архитекторы

продемонстрировали на практике свое сочувствие жертвам 11 сентября. […]

и дизайнеры (Маттео и Ренцо

[…] Фортепиано Фортепиано De si g n Studio , a s а также Антонио Читтерио […]

и Терри Дван) охотно предложили

[…]

— их сотрудничество с проектом Riva 1920, помогающее разработать четыре стола, каждый из которых уникален, которые будут переданы пожарной бригаде Нью-Йорка, чтобы их могла продать крупная американская фирма аукционистов, а выручка к пожарным.

pininfarina.it

Per dimostrare anche con i fatti la solidarietà ver verso le vittime dell’11 settembre, Paolo Pininfarina della Pininfarina Extra e altri

[…]

дизайнеров / архитекторов семьи мондиале (Matteo

[…] Piano e Re nz o Pia no del lo Studio Pi ano De sign, A ntonio […]

Citterio e Terry Dwan) совместно с

[…]

con entusiasmo con la Riva 1920 alla progettazione e al design di quattro tavoli, diversi tra loro, realizzati in un uniced esclusivo esemplare, che saranno donati al Comando dei Vigili del Fuoco di New York per poterli vendere, con l’aiuto di una nota casa d’aste americana, e devolverne il ricavato.

pininfarina.it

С узкой группой выкройщиков в

[…] их технический де si g n studio a n d непрерывный рост, […]

Ариэла-Альфа постоянно нуждается в

[…]

для эффективности в разработке шаблонов без ущерба для трех основных преимуществ: соответствие, качество и креативный дизайн.

lectra.com

Con pochi

[…] modellisti ub icat i ne ll o studio p er il desi gn tecnico […]

e una crescita molto forte, Ariela-Alpha ha un bisognocontino

[…]

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

lectra.com

Это высокоскоростной программатор разработки / разработки / производства, поддерживающий множество внутрисистемных программируемых (ISP)

[…] микроконтроллеры fr o m Atmel , N XP , ST и Zensys.

digikey.kr

Si tratta di un programmatore di

[…]

sviluppo / campo / produzione ad alta velocità che supporta molti microcontroller programmabili in

[…] sistema ( IS P) f orni ti da Atmel, NX P, ST e Ze ns ys.

digikey.it

Стрелка была

[…] недавно авторизовать d b y Atmel C o rp oration в качестве поставщика […]

— единственный дистрибьютор для программирования устройства ATSHA204 Crypto.

arroweurope.com

Стрелка и статистика

[…] рецензия au tori zzat a da Atmel Co rp orrat ion co me distributore […]

бесплатно для программы для устройства ATSHA204 Crypto.

arroweurope.com

Таким образом, Комиссия просит Нидерланды проверить фактические затраты и при необходимости скорректировать уровень помощи в

. […]

, чтобы избежать ситуации, когда

[…] компенсация будет ll o w AVR N u ts для получения прибыли […]

маржа по своей деятельности выше

[…]

является нормальным показателем для данного вида деятельности в данном секторе.

eur-lex.europa.eu

Per questo motivo, la Commissione esige che i Paesi Bassi controllino i costi effettivi e adattino, se needario, il livello degli

[…]

Aiuti Onde Evitare Che la

[…] sovracompensazione c onsen ta all ’AVR Nu ts di otten er e sulle […]

sue attività un margine di utile superiore

[…]

al margine abituale per il tipo di attività in questo settore.

eur-lex.europa.eu

Разработано для профессионального использования,

[…]

защиту от перебоев в подаче электроэнергии и перенапряжения обеспечивает Line Interactive

. […] Технология с автоматическим регулятором напряжения io n ( AVR ) .

socomec.nl

Progettato for ambienti professionali, la protezione dai black-out e dalle sovratensioni è

[…]

assicurata dalla tecnologia Line Interactive con regolazione

[…] automati ca di tens io ne (AVR — A ut omat ic V ol tage Regulation).

socomec.nl

PC-ISP-FLASH — Программирование ISP FLASH на базе ПК

[…]

Адаптер с поддержкой внутрисистемного программирования и программирования внутри приложения

[…] Микроконтроллеры от Phil ip s , Atmel , S ST и др.

digikey.kr

PC-ISP-FLASH — Adattatore di

[…]

программирования FLASH ISP для каждого ПК с поддержкой программирования через ISP и IAP на

[…] микроконтроллер или i для Ph il ips, Atmel, SST , ecc .

digikey.it

Эта функция очень важна для всех, кто хочет запрограммировать смарт-карту на основе PIC

. […] микроконтроллер r o r Atmel m i cr ocontroller.

сатшоп.телевизор

Этот качественный результат важен для всех цветов, которые требуются для программирования смарт-карт sia essa

[…] basata si micro pr ocess ori P IC o Atmel .

satshop.tv

Это предварительно собранная схема, которая содержит все необходимое для тестирования и

[…]

соберу свои протопи фокус на

[…] микропроцессоры, такие как t h e Atmel A T 89 C51 AT89S52 STC89C52 […]

и Intel MCS51, реплицирующая полоса

[…]

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

plexishop.it

È Предварительная сборка схемы, которая содержит все необходимое для выполнения проверки

[…]

сборка и собственная собственность в центрах на

[…] micropro ce ssori co me gli Atmel AT89 C5 1 A T89S5 2 STC89C52 […]

и Intel MCS51, реплика на полосу

[…]

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

plexishop.it

th e ATMEL e l ec tronic схемы […] Фабрика

», предусмотренный в СПД для региона Прованс-Альпы-Лазурный берег, за

[…]

, вклад которого был установлен в размере 6,10 миллиона евро, что составляет 1,88% от общей приемлемой стоимости проекта (324,72 миллиона евро).

eur-lex.europa.eu

I l fondo F ESR part ec iperà […]

al progetto con un contributo fissato in 6,10 milioni di euro, importo che corrisponde al 1,88%

[…]

от стоимости общего недействительного релятивного проекта (324,72 миллиона евро).

eur-lex.europa.eu

Atmel AVR ® 8--битные микроконтроллеры имеют RISC-ядро, работающее на одном […]

команд цикла и четко определенная структура ввода-вывода

[…]

, что ограничивает потребность во внешних компонентах.

digikey.com.mx

I micro co ntrol lor i AVR ® a 8 -bi td i Atmel h ann ou n cor …]

esegue le istruzioni a ciclo una struttura I / Oben

[…]

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

digikey.ch

Радиомодули deRFmega128 — съемные компактные радиомодули dresden elektronik deRFmega128-22A00, deRFmega128-22A02 и паяемые радиомодули

[…]

deRFmega128-22C00 и

[…] deRFmega128-22C02 inc lu d e Atmel S i ng le-Chip ATmega128RFA4 -3 9045 9045 9045 9045 9045 9045 9045 9045 9045 9045 9045 9045 9045 9045 9045 9045 9045 9045 9045 9045 AVR m i cr ocontroller […]

с трансивером 2,4 ГГц.

digikey.com.mx

Радиомодули deRFmega128 — модули радио, совместимые с электронным дрезденом deRFmega128-22A00, deRFmega128-22A02, и модули радио салдабили deRFmega128-22C00 e

[…]

deRFmega128-22C02 включая

[…] ATmega128RFA1 a c hip s ing olo Atmel, ch ec ombin a un mi cr ocont 9045 8 bi t con r icetrasmettitore […]

да 2,4 ГГц.

digikey.ch

Непрерывные инновации Leroy-Somer постоянно внедряет инновации, как в отношении конструкции генераторов переменного тока, так и в отношении их регулирования

[…]

систем. самая последняя инновация на сегодняшний день

[…] это копать это a l aVr , w hi ch beats […]

без труда с легкостью в использовании

[…] Настройка параметров

и выдающаяся производительность.

leroy-somer.com

Innovazione costante leroy-somer innova costantemente sia la struttura degli alternatori che i loro sistemi di regolazione. объявление

[…]

года, последняя новинка от

[…] regolatore digit al e che, gr azie alla […]

Facility and all alte prestazioni,

[…]

Surclassa все и prodotti della concorrenza.

leroy-somer.com

Интегр на e d AVR f u nc tion (Автоматическое напряжение […]

) стабилизирует выходное напряжение и предотвращает переключение на аккумулятор

. […] Работа в режиме

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

socomec.nl

Il si st ema i nte gra to AVR (A uto mat ic Vo lt возраст Регулирование) […]

Стабилизатор напряжения в сети

[…]

из батареи, в состоянии сохранить карик из батареи для защиты от затемнения.

socomec.nl

T h e AVR m o ni торс и корректирует выходное напряжение генератора, регулируя ток возбуждения.

leroy-somer.com

I l regolatore c ontro ll a e corregge la stretch de uscita dell’alternatore tramite la regolazione della […]

corrente d’eccitazione.

leroy-somer.com

Комплект разработчика для быстрого

[…] прототипирование wi t h Atmel m i cr операторы […]

и Intel.

plexishop.it

Комплект для создания прототипа Rapid и

[…] кон м ic ro proc esso ri Atmel e Inte l .

plexishop.it

Министерство складов: склад] Министерство финансов: упорядочить информацию о клиентах, входной файл] -? Отдел отгрузки: проверка продуктов и качества упаковки, экспресс-выдача] Микроконтроллер PICmicro (MCU), широкий спектр аналоговых / интерфейсных продуктов, серийный EEPROM повышенной прочности, RFID-метки microID, устройства безопасности KEELOQ,

[…]

и последняя серия dsPIC

[…] управление цифровым сигналом ll e r Atmel p r ov ides полная система […]

решений для производителей электронных систем.

imendit.com

Ministero delle Finanze: организация информации для клиентов, входной файл] — dipartimento di spedizione: controllare i prodotti e gli imballaggi bene, espressa rilasciato] PICmicro microcontrollore (MCU), una обширная гамма аналоговых продуктов серийный, RFID-метка microID, KEELOQ dispositivi di sicurezza,

[…]

и последняя серия контроллера

[…] segnali d igita li dsP IC Atmel fo rni sce solu zi oni di […]

sistema complete per i produttori di sistemi elettronici.

it.imendit.com

Теперь после исчерпывающей оценки имеющегося тачскрина

[…]

технологий на рынке,

[…] TouchSensor имеет выбор ct e d Atmel s maXTouch technology […]

в качестве платформы для следующего поколения

[…]

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

Methode.com

Ora, dopo una valutazione esaustiva delle tecnologie touchscreen disponibili sul

[…]

mercato, TouchSensor имеет вид

[…] tecnolog ia maXT ouc h d i Atmel c ome pi attaf or ma per […]

le soluzioni di prossima generazione

[…]

di schermi tattili per il mercato medicale, commerciale, automobilistico, industrial e degli elettrodomestici.

it.methode.com

Его можно легко и напрямую подключить к MCU

[…] такие как Arduino, PI C , ATMEL , A RM и т. д … Полностью совместим […]

для вставки макета для быстрого прототипирования.

plexishop.it

Поднять коллегию по возрасту и по направлению к

[…] MCU com e Ardu ino , P IC, ATMEL, AR M e tc… P ie namente […]

совместимо для вставки на макетной плате для прототипов Rapide.

plexishop.it

Метод startRTC () также устанавливает

[…]

Таймер HW в соответствии с тактовой частотой

[…] ваш Ard ui n o / Atmel m i cr ocontroller, […]

синхронизирует предварительный делитель таймера для соответствия правильному времени.

leonardomiliani.com

Метод startRTC () установить аппаратное обеспечение таймера на базовой частоте

[…] часы dell ’ A rdui no o de l mi cr ocontrollore, […]

синхронизирует предварительное масштабирование таймера для

[…]

ottenre le giuste temporizzazioni.

leonardomiliani.com

T h e Atmel P 6 Микросхема MU — это управление питанием […] Набор микросхем

для набора микросхем P6.

expansys.ae

I l ch ip Atmel P6 MU è un c hi pset di […]

управления питанием для чипсета P6.

expansys.it

Максимальный объем помощи it y : Atmel i s b ased in North Tyneside, […]

район, которому оказывается помощь при получении региональной помощи — Статья 87 (3) (Уровень

[…]

2). Это крупная компания, получившая региональную избирательную помощь на общую сумму 27,8 млн фунтов стерлингов (прибл.47 миллионов евро).

eur-lex.europa.eu

Интенсивная масса

[…] dell’aiu до : La soc ie tà Atmel ha se de nel N or th Tyneside, […]

una regione di livello 2 che può beneficiare

[…]

degli aiuti a finalità regionale в virtù dell’articolo 87, paragrafo 3. Si tratta di una grande impresa beneficiaria di un aiuto regionale selettivo за 27,8 миллионов фунтов стерлингов (около 47 миллионов евро).

eur-lex.europa.eu

Бренды не покупать, цена минимальная высота 100 юаней 5, это хороший Taobao, не доставляющий больше товаров, хороший продукт, Huijing каждый день получают кредит кисти. 6, лучше потратить немного денег на покупку набора запасных частей, DIY сварку и действительно изучить аппаратное и программное обеспечение микроконтроллера, конечно, нужно только изучить готовый продукт

[…]

можно приобрести напрямую писать программы на

[…] писать программы . 7 , AVR m i cr ocontroller должен […]

скачать линию раздачи.

imendit.com

Marchi non comprare, il prezzo di un altezza minima di 100 yuan 5, una buona Taobao non spedire più beni, un buon prodotto, Huijing ogni giorno drawing il credito pennello. 6, meglio spendere un po ‘di soldi per l’acquisto di una serie di pezzi di ricambio, saldatura fai da te, e davvero imparare microcontrollore hardware e software, naturalmente, solo bisogno di imparare un prodotto finito può essere acquistato

[…]

прямых написанных программ для написания программ.

[…] 7, микрофон ro contr oll ore AVR nec ess ario sc aricare […]

la linea di distribuzione.

it.imendit.com

Нижний F или c e AVR t o L Работа в рабочем режиме Время включения / выключения импульса / фиксации фиксировано […]

зависит от оборудования.

reinhausen.com

Импульсный импульс / защелка ВКЛ. / ВЫКЛ., И отключаются от аппаратного обеспечения.

reinhausen.com

Следовательно, они не включаются в арендную плату. N u ts ; эта арендная плата будет включать a l l AVR o t he r расходы, за исключением дополнений к положению C2 (поскольку это относится к […]

прошлое), включая 5% надбавку для налоговых целей.

eur-lex.europa.eu

Sono quindi comprese nell’indennità

[…] di affitto c he l ’AVR Ch emie i mputa a ll ’ AVR Nu ts ; questa indennità include все другие costi d el l’AVR Che mi e, ad eccezione delle contribuzioni alla riserva C2 ​​ ( in qu ant gon 9045 a d una situazione […]

перед), e tiene

[…]

conto di un aumento del 5% a fini fiscali.

eur-lex.europa.eu

Настройка Atmel AVR Studio 4 для связи с STK500

Мы приобрели, установили и настроили плату STK500 для программирования микросхемы Atmel AVR ATtiny. Теперь мы запустим приложение и убедимся, что у нас хорошее соединение.

Подключение к AVR Studio 4

Запустите AVR Studio из меню Atmel AVR Tools в меню Пуск ОС Windows.

Меню запуска приложения Atmel AVR Studio.

Включите STK500, сдвинув выключатель питания. Красный светодиод рядом с выключателем питания должен загореться. Зеленый светодиод (обозначенный STATUS) рядом с ленточным кабелем должен несколько раз мигнуть и загореться зеленым. Если нет, выключите питание и проверьте кабели.

На панели инструментов щелкните значок Подключить. Эту же функцию также можно найти в меню Инструменты-> Программа AVR-> Подключить.

Панель инструментов подключения к AVR Studio.

Появится окно с выбором плат программирования и портов компьютера. Выберите STK500 и любой последовательный порт, к которому вы его подключили. Затем нажмите кнопку «Подключить».

Варианты подключения программатора AVR Studio.

На вкладке Main в раскрывающемся меню «Device and Signature Bytes» выберите ATtiny45 или любой другой установленный вами чип. Нажмите кнопку «Прочитать подпись».

Проверка хорошей связи чипа в AVR Studio.

Если связь работает нормально, вы увидите сообщение «ОК!» сообщения о состоянии внизу окна. Что еще более важно, вы увидите сообщение вверху с надписью «Подпись соответствует выбранному устройству». Это подтверждает, что у вас правильная проводка, правильные настройки связи и правильное устройство.

Если вы НЕ получаете это сообщение, существует шесть распространенных ошибок:

  • STK500 выключен.
  • Чип установлен в перевернутом виде. Ой.
  • Неправильные перемычки или провода STK500.
  • В раскрывающемся меню было выбрано неправильное устройство.
  • Частота интернет-провайдера слишком высокая. (Подробности ниже)
  • Поставляемое напряжение слишком низкое. (Подробности ниже)

Я предполагаю, что есть и другие возможные причины, например, микросхема вышла из строя или ее можно запрограммировать только в режиме высокого напряжения. Но это менее распространено.

Целевая частота

На заводе большинство микросхем имеют встроенный генератор с тактовой частотой 8 МГц, деленной на 8, что дает эффективную частоту 1 МГц. Скорость передачи данных STK500 должна быть 1/4 или ниже, чем скорость передачи микросхем для связи.

Нажмите кнопку «Настройки» на вкладке «Главное», если у вас возникли проблемы с обменом данными с чипом. Установите в меню 115,2 кГц и нажмите кнопку «Запись», чтобы сохранить это значение на плате STK500.Это настройка доски; не настройка микросхемы.

STK500 Частота связи ISP.

К сожалению, 115,2 кГц — это достаточно медленно, чтобы беспокоить программирование микроконтроллеров с большей флэш-памятью. Таким образом, вы часто отключаете предохранитель CKDIV8 или подключаете эти микросхемы к внешнему генератору. Это позволяет поднять частоту ISP до 460,8 кГц или 1,845 МГц для более быстрого программирования.

Спустя несколько недель вы решаете запрограммировать новый заводской ATtiny45, а он отказывается общаться.Ошибка: «ВНИМАНИЕ: подпись не соответствует выбранному устройству!» обычно появляется при попытке прочитать подпись. Вы забыли установить низкую частоту!

Целевое напряжение

Вы можете подключить кабель ISP от платы STK500 к плате вашего проекта. Это позволяет вам программировать и отлаживать чип, пока он установлен в самом проекте.

Большинство микросхем AVR работают до 5 В.Однако плата вашего проекта может работать при напряжении 3,3 В или другом напряжении. В этом случае вы можете настроить STK500 на подачу более низкого напряжения, щелкнув вкладку HW Setting.

Настройки напряжения STK500 в AVR Studio.

Подобно настройке частоты ISP, настройки напряжения для мощности и аналогового задания сохраняются в инструменте STK500, а не в микросхеме. Итак, если вы выберете более низкое напряжение и нажмете кнопку записи, но затем попытаетесь запрограммировать микросхему с битом предохранителя, установленным на более высокое напряжение, STK500 не сможет связаться с этим чипом, потому что ЦП остается в спящем режиме при этом напряжении.

В этом примере микросхема представляет собой DIP-микросхему ATtiny45. Его можно вынуть из розетки на моем проекте и установить в STK500. Таким образом, я могу безопасно установить напряжение VTarget STK500 на 5 В, чтобы быть уверенным, что оно будет обеспечивать достаточно высокое напряжение, чтобы вывести ATtiny45 из спящего режима, независимо от настройки предохранителя.


Переход от Arduino IDE к Atmel Studio

Переход вверх

Иногда платы Arduino недостаточно.Они часто скрывают большую часть функций микроконтроллера, а IDE Arduino не обеспечивает быстрый доступ к базовым модулям. Это может расстраивать, поскольку некоторые проекты не могут иметь дополнительных накладных расходов, связанных с использованием стандартной функции, такой как digitalWrite. Здесь в игру вступает Atmel Studio. Это IDE, используемая профессионалами, которая позволяет писать программы на C, C ++ и даже на ассемблере почти для всех микроконтроллеров Atmel. Atmel Studio также позволяет импортировать эскизы Arduino, но этого следует избегать в дальнейшем, чтобы избежать продолжения вредных привычек.Поскольку он основан на Visual Studio, любой, кто его использовал, должен также быстро научиться использовать Atmel Studio.

Установка

Atmel Studio 7 — это последняя версия среды IDE, которую производители могут бесплатно загрузить и использовать. Просто найдите его здесь и выберите веб-установщик. Во время установки лучше всего просто выбрать каждую архитектуру, так как это избавит вас от необходимости возвращаться и загружать новые определения MCU позже.

Страница загрузки Atmel Studio

Определения микроконтроллеров и аппаратное обеспечение

Чтобы прошить ИС, вы не можете просто подключить к ним USB-кабель и нажать кнопку «Загрузить».Во-первых, несколько 8-битных микроконтроллеров не имеют интерфейса UART, например, некоторые из семейства ATtiny. Во-вторых, загрузчик Arduino — это то, что позволяет программировать через интерфейс UART, но он занимает место, а пространство дорого. Скорее, микроконтроллеры прошиваются программистами, и они отправляют данные через ICSP, а некоторые имеют возможности отладки через JTAG или DebugWire. Этот метод также освобождает два контакта для других целей. Ниже представлен программатор AVRISP mkii (не отладчик):

Языки программирования

Как указывалось ранее, Atmel Studio поддерживает C, C ++ и сборку для программирования ваших микроконтроллеров.Сборка обычно используется для максимального приближения к аппаратному уровню, поскольку она дает вам доступ ко всей памяти и регистрам. Это полезно для создания программ, использующих очень мало оперативной памяти, или для создания сверхоптимизированных программ. Однако обычно вы будете использовать C, который является оболочкой для сборки. Он ограничивает ваш доступ к стеку, но наличие переменных, простых математических операторов и простых способов использования указателей является основным преимуществом. Языки более высокого уровня также обрабатывают стек и передачу аргументов, что еще больше упрощает процесс программирования.

Пример ассемблерной программы и программы C, которые записывают в EEPROM

Совершенно другая парадигма

При использовании C ++ в стиле Arduino вы привыкли иметь такие функции, как digitalWrite, analogRead, delay и Serial.print. Отказ от Arduino IDE также заставляет вас потерять эти функции.

Поначалу это может расстраивать и сбивать с толку, но все к лучшему. Чтобы создать практически любую программу, вы должны сконфигурировать и использовать сами регистры, и это дает дополнительное преимущество, заставляя вас знакомиться с оборудованием на низком уровне.Например, вы обычно используете pinMode (pin, mode), чтобы установить, является ли вывод входом или выходом на ATtiny85. Но используя C или сборку, вам нужно будет установить бит в регистре DDRB и, возможно, установить бит в PORTB на высокий уровень для внутреннего подтягивания.

Некоторые регистры ввода-вывода для ATtiny85

Использование таблицы данных

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

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

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *