Создание и отладка программ
Разработка программ в AVR Studio начинается с создания проекта. После установки программы это легче всего сделать, через менеджер создания проектов во вкладке Project/Project Wizard.
Рис.1 Project Wizard AVR Studio
После нажатия экранной кнопки New Project появится окно на рис.1, в котором надо задать название и директорию размещения проекта, например FirstProject. В качестве типа проекта необходимо выбрать Atmel AVR Assembler (проекты AVR GCC используют Си-компилятор WinAVR). Сейчас и в дальнейшем очень важно размещать все файлы проекта в одной папке, что избавит от многих проблем при редактировании и переносе программ.
Рис.2 Project Wizard AVR Studio
На следующем этапе необходимо выбрать модель микроконтроллера и тип отладочного средства, как показано на рис.2 (в нашем случае это ATmega8 и AVR Simulator соответственно). После чего откроется окно текстового редактора, где и будет непосредственно происходить создание программы (см рис.3).
Рис.3 Текстовый редактор AVR Studio
В окне проекта Project можно видеть все компоненты программы: файл с исходным текстом FirstProject.asm, заголовочный файл m8def.inc, а также выходные файлы .lst, .map, .hex и .obj с одноименными названиями. В разделе Labels находятся символьные имена меток, встречающиеся в программе.
Компиляция проекта осуществляется после нажатия на иконку Assemble либо Assemble and Run. В последнем случае сразу же запускается и программа отладчика. Если в исходным тексте были допущены ошибки, то .hex, естественно, создан не будет, а в окне Build, появится описание всех ошибок и строки где они находятся. После внесения необходимых исправлений и успешной сборки, в окне Build отобразится статистика о проекте в виде диапазонов адресов и размеров секций FLASH, SRAM и EEPROM.
Рис.4 Работа в симуляторе AVR Studio
Проверить работоспособность программы можно в симуляторе, либо с помощью любого другого отладчика. Его запуск происходит после нажатия иконки Start Debagging. На рис.4 показана работа в симуляторе и вид основных отладочных окон, в которых можно наблюдать за состоянием содержимого различных областей памяти и символьными именами, объявленных в тексте программы. Все эти данные доступны для редактирования на ходу.
Отладку можно вести как в пошаговом (кнопки Step Into, Step Over, Step Out), так в автоматическом (Auto Step) или ускоренном (Run) режимах. Имеется возможность использовать также точки останова. Симулятор, встречая строку, в которой находится точка останова, принудительно останавливает свое выполнение, после чего можно детально изучить содержимое отладочных окон. Управление точками останова производится кнопками Toggle Brekpoint и Remove all Program Brekpoints. В окне Disassembler можно видеть соответствующие машинных кодов командам ассемблера AVR.
AVR Studio предоставляет программисту интуитивно-понятный пользовательский интерфейс и при ее освоении никаких проблем, как правило, не возникает. Управление свойствами встроенного текстового редактора и среды в целом ничем не отличается от подобных действий в различных офисных приложениях. Детальное описание всех компонентов AVR Studio можно найти во встроенной справочной системе.
Программирование микроконтроллеров в atmelstudio 6. часть 1. первые шаги
Если вы используете интерфейс JTAG, вам может потребоваться установка драйвера для USBASP если он не установился автоматически. Если вы не установите этот драйвер, то вы не сможете найти порт USBASP в программе Atmel Studio. Скачать драйвер USBASP можно по этой ссылке — http://www.mediafire.com/file/z576zrku371qyjs/windows-8-and-windows-10-usbasp-drivers-libusb_1.2.4.0-x86-and-x64-bit.zip/file.
После скачивания драйвера выполните следующую последовательность действий:
1. Распакуйте из архива скачанные файлы и поместите их на рабочий стол.
2. Подсоедините модуль USBASP v2.0 к своему компьютеру.
3. Откройте в Windows диспетчер устройств (Device Manager).
4. Теперь вы можете увидеть подсоединенный USBASP в списке устройств.
5. Кликните правой кнопкой мыши по “USBasp” и выберите “Обновить драйвер (Update Driver)”.
6. Select “Произвести поиск драйвера на своем компьютере (Browse my computer for driver software)”.
7. Найдите в открывшемся окне распакованную папку с драйвером для USBASP и щелкните «Открыть».
8. Если установка драйвера прошла успешно, то вы увидите сообщение примерно такое же как на нижеприведенном рисунке – в этом случае вам уже не нужно выполнять дальнейшие инструкции в этом разделе статьи.
9. Если вы увидите сообщение об ошибке как на приведенном рисунке, то вы в этом случае должны отключить цифровую подпись драйвера.
Чтобы сделать выполните следующие шаги:
— нажмите кнопку Shift и удерживая ее нажатой перезагрузите свой компьютер (кликните Restart в меню Windows пока держите ее нажатой);
— когда ваш компьютер перезагрузится не отпускайте кнопку Shift до тех пор пока не увидите “Advanced Options (Расширенные настройки)” на синем экране;
— отпустите кнопку Shift и кликните на “Startup Settings”;
— кликните на “Troubleshoot (Устранение проблем)”;
— выберите “Advanced Options (Расширенные настройки)”;
— после этого вы увидите на экране список расширенных опций и кнопку “Restart” в правом нижнем углу – кликните на ней;
— подождите пока компьютер снова перезагрузится. После этого вы увидите на экране ряд настроек;
— в открывшемся списке настроек выберите пункт “Disable Driver Signature Enforcement (Отключить цифровую подпись драйвера)”. Чтобы ее выбрать просто нажмите кнопку «7» на вашей клавиатуре (не путать с кнопкой «F7»);
— после нажатия этой кнопки компьютер перезагрузится и цифровая подпись драйвера будет отключена;
— после этого снова выполните шаги 1-8 из данного раздела статьи и драйвер для программатора USBASP будет успешно установлен.
Configuring AVR Studio 5
There are two things that you must configure in order to make your code run in your MCU in a better way.
- Setting up your clock frequency F_CPU
- Choosing Optimization Level
Setting up Clock Frequency F_CPU
This is a very essential step. This is because if you don’t set your clock frequency, the whole timing would go wrong. _delay_ms(500) will wait for 500ms, but it counts with respect to your clock frequency. If your F_CPU setting is wrong, it won’t wait for 500ms. It will either wait longer or for lesser time. By default, delay.h defines F_CPU=1000000UL (1MHz). UL stands for unsigned long. But this isn’t always the case. Check your development board if any crystal oscillator is present or not (across the XTAL pins). If it is present, note down the exact value of the frequency. If no, then choose either 1MHz, 2MHz, 4MHz or 8MHz depending upon the fuses set in your MCU (I expect that correct fuses must have been written. We will discuss about fuses later).
Note: You must set fuse bits for a new AVR microcontroller. These fuse bits will specify the correct clock frequency (whether to follow internal clock or external clock) and many other settings. They are set only once, and hence MUST be set correctly, or else you will render your MCU useless. To learn about fuses, view this.
Now, how to put? Well, the simplest way is to add the following code before including the header files.
You need to add it before every code you write. Or else, you can go to Project menu → MyFirstProject Properties (Alt+F7) → Toolchain → AVR/GNU C Compiler → Symbols → Add F_CPU=16000000UL to Defined Symbols.
Always check this out before compiling your code.
Optimizing your Code
You need to choose an appropriate optimization level for your code. Choosing the right optimization level will result in smaller hex file and faster compilation time. You can do it so by going to Project menu → MyFirstProject Properties (Alt+F7) → Toolchain → AVR/GNU C Compiler → Optimization → Choose -O2 as Optimization Level.
To know what optimization is, view this. For more details regarding optimization of code in AVR, visit this page. For details regarding the meanings of different optimization levels, view the .
Комплектующие
Микроконтроллеры AVR имеют некоторые преимущества по сравнению с другими аналогичными микросхемами, включая более высокую MIPS и более дружественную архитектуру. В этой статье мы узнаем, как использовать AVR IDE, как создать исполняемый проект, построить базовую схему AVR, а затем запрограммировать ее. Для этого нам понадобится набор компонентов, а также некоторое программное обеспечение.
- ATMEGA168 DIP IC x 1
- Кварцевые резонаторы, кристалл (4-20 МГц) x 1
- 20 пФ конденсатор x 2
- 680 резистор x 1
- 5.6K резистор x 1
- Светодиод LED x 1
- Источник 5 В (цепь 7805, плавное регулирование и т.д.) x 1
- Провода
- USBASP
- WINAVR (20100110)
- Atmel Studio 7
_____________________________________________________________________
Мы хотим, чтобы светодиод моргал с частотой видимой нашему глазу. Это единицы, десятки герц. Допустим, мы выбрали 1 Гц. Мой микроконтроллер работает на частоте 8 МГц, длительность одного такта =1/8000000 Гц = 125 нс. Сигнал частотой 1 Гц имеет период повторения 1 c. Светодиод будет гореть только половину периода — 0,5с. Делим 0,5 с на 125 нс и получаем искомое число тактов – 4000000. Это число укладывается в диапазон типа unsigned long int. Следующая строчка нашей программы – вызов функции:__delay_cycles(4000000);Далее – гасим светодиод и снова вызываем функцию задержки:PORTC = 255;__delay_cycles(4000000);5 шаг алгоритма – вернуться на шаг 2. По сути дела нам нужно повторить кусок программы, зациклить его. Для этих целей в Си существуют три типа циклов: for, while и do. Мы используем while.
Схема
Построение схемы довольно простое и может быть выполнено с использованием большинства методов построения схем, включая макет, картон, монтажную плату и печатную плату.
Схема в этом проекте показывает использование простой цепи регулятора мощности (с использованием 7805), которую обеспечивает устройство ATMEGA 5В, но оказывается, что программатор USBASP обеспечивает приблизительно 3,3 В. Несмотря на это, лучше обеспечить внешнее питание, чтобы USBASP не потреблял слишком много тока из любого USB-порта.
Программатор USBASP, который я купил, также шел с конвертером, который преобразует 10-контактный разъем в более удобный 6-контактный программный разъем. Тем не менее, header использует двухрядный шаг 2,54 мм, что означает, что он не может быть подключен к макету. Чтобы обойти это, я просто подключил разъем к проводам, которые соединяются с различными пинами на макете.
Первые версии
В первых версиях студии присутствовал ассемблер для AVR, вы можете его извлечь из первых сборок, однако позже этот проект был заброшен, а в качестве основного языка избран C AVR. Компилятором был платный и очень серьезный продукт IAR. Вы можете скачать бесплатный WINAVR, для этого после установки студии нужно проинсталлировать его.
Обратите внимание! Лучше это делать только после установки AVR studio 4 и других версий. Долгое время фигурировала AVR studio 4 (на фото выше)
Многие разработчики микроконтроллеров сталкивались с ней. Позже IDE модернизировали до AVR studio 5. Кроме интерфейса, особых изменений не было, а уже потом компания разработчик сделала ребрендинг продукта и изменила название на Atmel studio 6
Долгое время фигурировала AVR studio 4 (на фото выше). Многие разработчики микроконтроллеров сталкивались с ней. Позже IDE модернизировали до AVR studio 5. Кроме интерфейса, особых изменений не было, а уже потом компания разработчик сделала ребрендинг продукта и изменила название на Atmel studio 6.
Среда AVR studio 5 поддерживала следующие микроконтроллеры:
- AVR;
- AVR32;
- XMEGA.
Atmel studio 6 отличалась от AVR studio 5 значительно, самые заметные нововведения версии:
- Microsoft Visual Studio 2010 стал работать с семейством AVR.
- Улучшенная, по сравнению с AVR studio 5, подсветка синтаксиса.
- Добавлены подсказки и автозавершение набора команд, что ускоряет процесс разработки.
- В целом, вся работа среды стала надежнее.
- Добавлена поддержка ARM Cortex-M.
- WinAVR не нужно больше устанавливать отдельно, GCC теперь устанавливается в процессе инсталляции, в отличие от младших версий.
В Atmel studio 6 произошел скачек в лучшую сторону для пользователя программы, что сказалось на популярности семейств Атмела. Однако адекватной поддержки русских символов в путях к файлам добиться так и не удалось.
________________________________________________________
Для каждого типа микроконтроллера есть свой заголовочный файл. Для ATMega8535 этот файл называется iom8535.h, для ATMega16 – iom16.h. По идее мы должны в начале каждой программы подключать заголовочный файл того микроконтроллера, который мы используем. Умные люди немного облегчили нам жизнь и написали заголовочный файл ioavr.h. Препроцессор обрабатывает этот файл и в зависимости от настроек проекта включает в нашу программу нужный заголовочный файл. Итак, следущая строчка программы #include <ioavr.h> В нашей программе мы будем использовать задержку. Задержку можно реализовать программно и аппаратно. Сейчас нас интересует программная задержка. IAR содержит библиотеку, в которой уже есть готовая функция задержки. Нам нужно подключить к нашей программе эту библиотеку. Как это сделать? Каждая библиотека имеет свой заголовочный файл в котором описано какие фукции она содержит. Этот файл мы и должны включить в программу. Делается это, как вы догадались с помощью директивы #include.#include <intrinsics.h> Основу любой сишной программы составляют функции, и любая программа на Си имеет хотя бы одну функцию – main().Вообще-то на примере main() не хотелось бы объяснять синтаксис функций, потому что main() хоть и является функцией, но вызывается не как обычно, а автоматически. С этой функции микроконтроллер начинает выполнение написанной нами программы. Вызовы всех других функций, наших или библиотечных, должны быть записаны в коде. Как вызывается функция, мы увидим дальше.У функции есть заголовок – int main(void) и тело – оно ограниченно фигурными скобками <>. В тело функции мы и будем добавлять наш код.
Установка драйвера для USBASP в Windows 10
После скачивания драйвера выполните следующую последовательность действий:
1. Распакуйте из архива скачанные файлы и поместите их на рабочий стол.
2. Подсоедините модуль USBASP v2.0 к своему компьютеру.
3. Откройте в Windows диспетчер устройств (Device Manager).
4. Теперь вы можете увидеть подсоединенный USBASP в списке устройств.
5. Кликните правой кнопкой мыши по “USBasp” и выберите “Обновить драйвер (Update Driver)”.
6. Select “Произвести поиск драйвера на своем компьютере (Browse my computer for driver software)”.
7. Найдите в открывшемся окне распакованную папку с драйвером для USBASP и щелкните «Открыть».
8. Если установка драйвера прошла успешно, то вы увидите сообщение примерно такое же как на нижеприведенном рисунке – в этом случае вам уже не нужно выполнять дальнейшие инструкции в этом разделе статьи.
9. Если вы увидите сообщение об ошибке как на приведенном рисунке, то вы в этом случае должны отключить цифровую подпись драйвера.
Чтобы сделать выполните следующие шаги:
— нажмите кнопку Shift и удерживая ее нажатой перезагрузите свой компьютер (кликните Restart в меню Windows пока держите ее нажатой);
— когда ваш компьютер перезагрузится не отпускайте кнопку Shift до тех пор пока не увидите “Advanced Options (Расширенные настройки)” на синем экране;
— отпустите кнопку Shift и кликните на “Startup Settings”;
— кликните на “Troubleshoot (Устранение проблем)”;
— выберите “Advanced Options (Расширенные настройки)”;
— после этого вы увидите на экране список расширенных опций и кнопку “Restart” в правом нижнем углу – кликните на ней;
— подождите пока компьютер снова перезагрузится. После этого вы увидите на экране ряд настроек;
— в открывшемся списке настроек выберите пункт “Disable Driver Signature Enforcement (Отключить цифровую подпись драйвера)”. Чтобы ее выбрать просто нажмите кнопку «7» на вашей клавиатуре (не путать с кнопкой «F7»);
— после нажатия этой кнопки компьютер перезагрузится и цифровая подпись драйвера будет отключена;
— после этого снова выполните шаги 1-8 из данного раздела статьи и драйвер для программатора USBASP будет успешно установлен.
Русификация Atmel Studio
Вы можете скачать бесплатный WINAVR, для этого после установки студии нужно проинсталлировать его.
Обратите внимание! Лучше это делать только после установки AVR studio 4 и других версий. Долгое время фигурировала AVR studio 4 (на фото выше)
Многие разработчики микроконтроллеров сталкивались с ней. Позже IDE модернизировали до AVR studio 5. Кроме интерфейса, особых изменений не было, а уже потом компания разработчик сделала ребрендинг продукта и изменила название на Atmel studio 6
Долгое время фигурировала AVR studio 4 (на фото выше). Многие разработчики микроконтроллеров сталкивались с ней. Позже IDE модернизировали до AVR studio 5. Кроме интерфейса, особых изменений не было, а уже потом компания разработчик сделала ребрендинг продукта и изменила название на Atmel studio 6.
Среда AVR studio 5 поддерживала следующие микроконтроллеры:
Atmel studio 6 отличалась от AVR studio 5 значительно, самые заметные нововведения версии:
- Microsoft Visual Studio 2010 стал работать с семейством AVR.
- Улучшенная, по сравнению с AVR studio 5, подсветка синтаксиса.
- Добавлены подсказки и автозавершение набора команд, что ускоряет процесс разработки.
- В целом, вся работа среды стала надежнее.
- Добавлена поддержка ARM Cortex-M.
- WinAVR не нужно больше устанавливать отдельно, GCC теперь устанавливается в процессе инсталляции, в отличие от младших версий.
В Atmel studio 6 произошел скачек в лучшую сторону для пользователя программы, что сказалось на популярности семейств Атмела. Однако адекватной поддержки русских символов в путях к файлам добиться так и не удалось.
Установка драйвера для USBASP в Windows 10
Если вы используете интерфейс JTAG, вам может потребоваться установка драйвера для USBASP если он не установился автоматически. Если вы не установите этот драйвер, то вы не сможете найти порт USBASP в программе Atmel Studio. Скачать драйвер USBASP можно по этой ссылке — http://www.mediafire.com/file/z576zrku371qyjs/windows-8-and-windows-10-usbasp-drivers-libusb_1.2.4.0-x86-and-x64-bit.zip/file.
После скачивания драйвера выполните следующую последовательность действий:
1. Распакуйте из архива скачанные файлы и поместите их на рабочий стол.
2. Подсоедините модуль USBASP v2.0 к своему компьютеру.
3. Откройте в Windows диспетчер устройств (Device Manager).
4. Теперь вы можете увидеть подсоединенный USBASP в списке устройств.
5. Кликните правой кнопкой мыши по “USBasp” и выберите “Обновить драйвер (Update Driver)”.
6. Select “Произвести поиск драйвера на своем компьютере (Browse my computer for driver software)”.
7. Найдите в открывшемся окне распакованную папку с драйвером для USBASP и щелкните «Открыть».
8. Если установка драйвера прошла успешно, то вы увидите сообщение примерно такое же как на нижеприведенном рисунке – в этом случае вам уже не нужно выполнять дальнейшие инструкции в этом разделе статьи.
9. Если вы увидите сообщение об ошибке как на приведенном рисунке, то вы в этом случае должны отключить цифровую подпись драйвера.
Чтобы сделать выполните следующие шаги:
— нажмите кнопку Shift и удерживая ее нажатой перезагрузите свой компьютер (кликните Restart в меню Windows пока держите ее нажатой);
— когда ваш компьютер перезагрузится не отпускайте кнопку Shift до тех пор пока не увидите “Advanced Options (Расширенные настройки)” на синем экране;
— отпустите кнопку Shift и кликните на “Startup Settings”;
— кликните на “Troubleshoot (Устранение проблем)”;
— выберите “Advanced Options (Расширенные настройки)”;
— после этого вы увидите на экране список расширенных опций и кнопку “Restart” в правом нижнем углу – кликните на ней;
— подождите пока компьютер снова перезагрузится. После этого вы увидите на экране ряд настроек;
— в открывшемся списке настроек выберите пункт “Disable Driver Signature Enforcement (Отключить цифровую подпись драйвера)”. Чтобы ее выбрать просто нажмите кнопку «7» на вашей клавиатуре (не путать с кнопкой «F7»);
— после нажатия этой кнопки компьютер перезагрузится и цифровая подпись драйвера будет отключена;
— после этого снова выполните шаги 1-8 из данного раздела статьи и драйвер для программатора USBASP будет успешно установлен.
Как настроить Atmel Studio 7 и WinAVR
Atmel Studio 7 не будет изначально использовать WINAVR или AVRDUDE, поэтому мы должны настроить её для этого. Это может показаться пугающим, но не паникуйте; для программирования устройства AVRDUDE необходима только одна строка инструкций, и только один каталог требуется определить. Фактически, вы должны быть в состоянии скопировать и вставить код в этой статье для любого проекта на базе ATMEGA168.
Итак, первый шаг — сообщить Atmel Studio 7 какой компилятор она должна использовать. Для этого откройте Atmel Studio 7 (если она еще не открыта) и нажмите: Инструменты -> Параметры (англ.: Tools -> Options).
В открывшемся окне используйте список слева, чтобы перейти к: Набор инструментов -> Конфигурация пакета (англ.: Toolchain -> Package Configuration) и в опциях, которые теперь должны быть доступны справа, выберите Atmel AVR 8-bit (язык C) (Atmel AVR 8-bit (C language)) из раскрывающегося списка, а затем нажмите: Добавить особенность (англ.: Add Flavour).
Предполагая, что вы установили WINAVR в папку по умолчанию на диске C и что у вас та же версия, что и в WINAVR, как в этой статье, во всплывающем окне мы пишем так, как показано ниже. После заполнения полей нажмите «Добавить» (англ. add), а когда вы вернетесь в предыдущее окно, нажмите «ОК».
Atmel Studio 7 теперь может использовать WINAVR для компиляции программ AVR, но все равно не может программировать устройства. Для этого нам нужно добавить внешний инструмент в Atmel Studio 7 и настроить его для устройства ATMEGA168.
Первый шаг — перейти в: Инструменты -> Внешние инструменты (англ. Tools -> External tools). Открывшееся окно — единственное окно, необходимое для работы программатора USBASP. Скрин ниже показывает большинство деталей, которые вам нужно будет заполнить.
Поле «Аргументы» (англ. Arguments) не полностью отображает всю информацию, которая необходима, и поэтому приведу ниже то, что было заполнено:
avrdude -c usbasp -p atmega168 -U lfuse:w:0×26:m -U flash:w:$(ProjectDir)Debug$(TargetName).hex:i
Большая часть информации в этом не важна для нас, кроме двух фрагментов текста. Первый — это -p atmega168;, который говорит AVRDUDE, что мы программируем ATMEGA168. Если в вашем проекте используется другой чип, замените текст atmega168 на используемое вами устройство (например, atmega88).
Второй параметр -U lfuse:w:0×26:m, который специфичен для ATMEGA168. Эта инструкция указывает AVRDUDE настроить устройство на использование внешнего кристалла, и после программирования устройство будет работать только при подключении к схеме кристалла
Обратите внимание, что это также означает, что устройству требуется кристалл при программировании. Этот аргумент будет работать только для ATMEGA168
Заключение
Начало работы с устройствами AVR может показаться несколько сложным, если вы не используете официальный программатор, который может работать «из коробки» с Atmel Studio 7. Однако в инструментах программирования требуется определить только одну командную строку (тип устройства, биты и т.п.). И все будущие проекты могут использовать один и тот же инструмент/компилятор, который нужно настроить только один раз.
Т.е. следующий проект ATMEGA168, который вы будете делать, сможет использовать тот же компилятор и внешний инструмент, что и в этом проекте и не потребуется никаких дополнительных настроек. Конечно, в более сложных проектах может потребоваться замена бит (англ. fuse), например, но в данном материале я хотел просто помочь вам освоить работу с устройствами AVR.
Отладка Arduino через debugWire (Atmel Studio и AVR Dragon)
В этой статье поговорим о том, как отлаживать программы на плате Arduino UNO с помощью debugWire. Я частенько использую эту платку или Nano для отладки своих программ в Atmel Studio (использовать Arduino IDE у меня рука не поднимается). И так начнем.
Что можно сделать с помощью debugWire?
Прочитать память контроллера, выполнить пошаговую отладку кода, установить точки останова программы, прочитать регистры и значения на портах ввода/вывода и т.п.
Что для этого будет необходимо?
— Arduino Uno
— Atmel Studio 6
— AVR Dragon программатор-отладчик
Подготавливаем железо
В даташите на Atmega328 говорится:
«Конденсаторы, подключенные к пину RESET, должны отключены при использовании debugWire. Все внешние источники сброса должны быть отключены»
Если проверить схему Arduino Uno, можно увидеть, что к RESET подключен конденсатор 100нФ. В старых версиях Arduino необходимо было снять этот конденсатор для отключения RESET. На новых платах есть специальная перемычка, которая может быть разрезана и запаяна вновь, если потребуется.

Подготовка софта
Просто компилируем код в Atmel Studio, нет необходимости заливать программу отдельно через AVR DUDE, AVR Dragon сам сделает это через debugWire.
Подключаем железо
Подключаем ISP от AVR Dragon к ISP Arduino Uno. Обратите внимание, что контакт 1 подключается к PIN1 на другом устройстве, т.е. MISO подключается к MISO. AVR Dragon и Arduino запитываются каждый через свой USB разъем. В настройках выбираем использовать AVR Dragon в качестве отладчика.

Открываем меню программирования Tools > Device Programming

Внимание «шьем» фьюзы
Собственно устанавливаем фьюз-бит DWEN. В даташите также сказано что LOCK биты не должны быть запрограммированы.

Запускаем debugWire
1. После того как прошили фьюзы временно отключаем питание Arduino Uno.
2. Устанавливаем debugWire как интерфейс для программирования и отладки

3. Жмем «Start Debugging and Break» или Alt+F5. Можно просто нажать F5, а уже потом точки останова расставить. Отладка запускает прошивку тоже.
4. Отлаживаем программу, устанавливаем где надо точки останова, наблюдаем за регистрами и портами ввода-вывода.
5. Останавливаем отладку Ctrl+Shift+F5, изменяем код и возвращаемся к пункту 3.
6. Жмем меню «Debug > Disable debugWIRE» Это меню доступно только во время отладки, так что, если что жмем снова F5. После это DWEN сбрасывается и можно снова использовать ISP.
Вот и все.
Обсуждение статьи на форуме http://radiotech.kz/threads/otladka-arduino-cherez-debugwire-atmel-studio-i-avr-dragon.299/
Похожие публикации по теме:

Подключение устройства к сети Ethernet

Управление инкрементальным энкодером на AVR

Режим Power-down микроконтроллеров серии Tiny

Реализация протокола PELCO-D на Arduino
8 Ответов в “ Отладка Arduino через debugWire (Atmel Studio и AVR Dragon) ”
Если статья написана для ардуинщиков — то дебильная.
Что такое Arduino UNO и Arduino IDE я знаю и пользоваться умею.
Что такое Atmel Studio и debugWire я НЕ знаю. Сложно приложить фотку или скриншот?
«Просто компилируем код в Atmel Studio, нет необходимости заливать программу отдельно через AVR DUDE, AVR Dragon сам сделает это через debugWire.» Шедеврально!
1) Код ==скетч? или всю прогу пишем в Atmel Studio?
2)AVR DUDE — что это такое?
3)AVR Dragon — что это такое?
Это такой троллинг что ли? Если нет, то мне трудно даже представить зачем вам эта статья, вы уже все знаете, не стоит узнавать что-то больше, прошу вас!
Интернет — открытая система, не нравится тут — иди на другой ресурс.
Гуглом пользоваться не пробовал?
там много интересного можно узнать.
беда ардуино в том, что научившись что то делать в песочнице (не далее простеньких примеров и банальных задачек) «разработчик» считает, что все знает ( тут описано https://ru.wikipedia.org/wiki/Эффект_Даннинга_—_Крюгера ).
прокачивайтесь и вам будет стыдно за ваши комментарии.
У тебя оперативка только 2 слова тянет, дальше заголовок не читается. Далее получается ардуинщики это типа такая элита, и статьи для них в большинстве своем состоят из картинок, говори только за себя)
Уберите из названия статьи слово Arduino, а то бред какой-то получается
А что именно в слове Arduino вас смущает?
debugWire классная штука, когда нет в чипе JTAG контактов. Пользовался успешно.
Ардуино экзотика, потому как нет прямого способа глубокой отладки(только косвенно!).
Было бы здорово тут увидеть процесс перевода скетчей в пригодный текст для Studio(лучше IAR). И тогда далее было бы понятно как действовать.
arduino
Использование Arduino с Atmel Studio 7
Для Arduino Pro Mini используйте кабель mini squid, как показано на рисунке, снова подключив другую сторону к разъему AVR отладчика.
Отладочные соображения
Для отладки с помощью Uno вам нужно будет отключить трассировку сбрасывания (вы всегда можете припаять ее для использования с Arduino IDE):
Используя Pro Mini, если вы собираетесь подключать последовательный порт к компьютеру с помощью платы FTDI, не подключайте линию DTR, так как это будет мешать интерфейсу Serial Wire Debug (SWD) Atmel. Я просто подключаю мощность, землю, Tx и Rx, как показано ниже. Rx и Tx на Arduino идут на Tx и Rx, соответственно, на плату FTDI. Некоторые платы FTDI помечены по-разному, поэтому, если последовательный порт не работает, замените Rx и Tx.
Вы должны будете предоставить электроэнергию отдельно для Arduino, потому что отладчик не будет ее использовать. Это можно сделать на Pro Mini через плату FTDI, как показано выше, или с помощью USB-кабеля или адаптера переменного тока на Uno.
Настройка программного обеспечения
Подключите Atmel ICE к компьютеру, запустите Atmel Studio, и теперь вы можете импортировать существующий проект Arduino.
В Atmel Studio перейдите в меню Файл -> Создать -> Проект и выберите «Создать проект из эскиза Arduino». Заполните опции, включая меню выпадающего меню и устройства.
Перейдите в Project -> yourProjectName Properties, нажмите «Инструмент», выберите Atmel ICE под отладчиком / программистом и debugWire под интерфейсом. Перейдите в Debug -> Начните отладку и перерыв. Вы должны увидеть предупреждение и спросить, хотите ли вы установить предохранитель DWEN. Выберите «ОК», отключите питание от Arduino и снова подключите его. Вы можете остановить отладку, нажав кнопку красного квадрата и начать, нажав зеленую кнопку треугольника. Чтобы вернуть Arduino в состояние, в котором он может использоваться в среде Arduino, в то время как вы отлаживаете, выберите Debug -> disable debugWIRE и закройте.
Обратите внимание, что любые добавляемые вами функции должны включать прототип функции (цикл и настройка им не нужны). Вы можете увидеть те, которые Atmel Studio добавила в верхней части эскиза, если были какие-либо функции, когда вы импортировали свой проект в Atmel Studio (см. Пример кода, например).
Поддержка C ++ 11 по умолчанию включена в Arduino 1.6.6 и выше. Это дает больше возможностей языка C ++ и позволяет повысить совместимость с системой Arduinio. Чтобы включить C ++ 11 в Atmel Studio 7, щелкните правой кнопкой мыши на файле проекта, выберите свойства, нажмите «ToolChain» слева, нажмите «Разное» под компилятором AVR / GNU C ++ и поместите -std=c++11 в «Другие флаги» поле.
Чтобы включить библиотеки в ваш эскиз
Скопируйте файл библиотеки .cpp в папку C:\Users\YourUserName\Documents\Atmel Studio\7.0\YourSolutionName\YourProjectName\ArduinoCore\src\core , затем в Atmel Studio откройте окно Solution Explorer, щелкните правой кнопкой мыши по Arduino Core / src / основной папки, выберите add -> существующий элемент и выберите файл, который вы добавили. Сделайте то же самое с файлом библиотеки .h и папкой YourProjectName / Dependancies.
Чтобы добавить окно терминала
Вы всегда можете открыть Android IDE и использовать это окно Serial (просто выберите правильный последовательный порт), однако для добавления встроенного окна Serial в Atmel Studio перейдите в Инструменты -> Расширения и обновления, нажмите «Доступные загрузки» и выполните поиск Terminal Window или Terminal для Atmel Studio и установите его. После установки перейдите в View -> Terminal Window.
Выгоды
Программирование Arduino с помощью moder IDE, такого как Atmel Studio 7, дает вам множество преимуществ перед IDE Arduino, включая отладку, автозаполнение, переход к определению и декларации, перемотку вперед / назад, закладки и варианты рефакторинга, чтобы назвать несколько.
Вы можете настроить привязки клавиш, перейдя в Инструменты -> Параметры -> Среда -> Клавиатура. Некоторые из них действительно ускоряют развитие:
