Программирование Arduino С Помощью Программатора Isp.

Программировать Arduino Uno на чистом C или ассемблере не намного сложнее, чем использовать стандартный язык программирования Arduino. Сделав это, вы сможете значительно повысить производительность и уменьшить размер вашей программы.

Далее мы поговорим о том, как перепрошить Arduino Uno R3 с помощью программатора ISP и AVR Studio 6.2. Итак, нам понадобится Ардуино Уно Р3 , любой Интернет-провайдер программатор, совместимый с Атмел Студия 6 , один светодиод и резистор, например, 250 Ом.

Для программирования Arduino я использую универсальный программатор.

Атмел ICE .

Как я уже говорил, вы можете использовать любой программатор ISP для программирования Arduino. Вы можете просмотреть список поддерживаемых программистов прямо в Atmel Studio. Всем известно, что в Arduino Uno R3 используется микроконтроллер ATmega328P-PU. Это мы и будем программировать.

Фактически после записи нашей программы у нас будет уже не Ардуино, а просто микроконтроллер с обвязкой.

Так как мы сотрем загрузчик Arduino. К сожалению, микроконтроллер ATmega328P-ПУ не поддерживает «расширенную» отладку через JTAG. Можно, конечно, отлаживать свою Arduino в Arduino Micro с помощью точек останова и выходных значений (нужно явно спрашивать, что вы хотите получить), но такой подход не всегда удобен, а в Atmel Studio есть гораздо более продвинутые инструменты отладки ( просмотр состояний регистров, мониторинг памяти и т. д.).

Поэтому ограничимся простой прошивкой нашего контроллера через ISP. Откройте Atmel Studio и выберите проект. Исполняемый проект GCC C , как показано на рисунке.



Программирование Arduino с помощью программатора ISP.

Отлично, проект создан.

Теперь нам нужно подключить наш программатор.

Я использую Atmel ICE. Это универсальный программатор, который подходит к большинству микроконтроллеров AVR и ARM от Atmel. Подключаем программатор к компьютеру, затем в Atmel Studio выбираем пункт Инструменты -> Программирование устройства .

Важный! Если у вас русская винда, то не создавайте проект в моих документах и вообще в папках с русским названием.

Лучше создать на диске отдельную папку с названием без кириллицы, например D:\myprog. Также не забудьте запустить студию с правами администратора.



Программирование Arduino с помощью программатора ISP.

В открывшемся окне выбираем следующие опции: Инструмент - устройство для программирования/отладки, в данном случае Atmel ICE, Устройство - микроконтроллер, который мы собираемся программировать, Интерфейс - интерфейс, через который наш программатор будет прошивать/отлаживать микроконтроллер, в в этом случае доступен только ISP. Нажмите кнопку «Читать», чтобы получить идентификатор устройства и его рабочее напряжение.

Если Arduino подключена правильно, то у вас должен получиться номер устройства, например 0x1E950F и напряжение 4,9В.

Нажмите Применить.

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



Программирование Arduino с помощью программатора ISP.

Далее выполняем следующие действия.

Измените ISP Clock на 250. Затем перейдите в раздел «Воспоминания» и нажмите кнопку Удалить сейчас .

Важный! После этого шага вы не сможете использовать Arduino с Arduino IDE, поскольку загрузчик будет удален.



Программирование Arduino с помощью программатора ISP.

Теперь мы все готовы к программированию.

Давайте напишем небольшую программу, которая будет мигать светодиодом.

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

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

Для этого нам понадобится техническая спецификация .



Программирование Arduino с помощью программатора ISP.

Поскольку мы хотим управлять светодиодом с помощью 6-го контакта Arduino, мы будем использовать регистр PORTD и 5-й бит, который будет подавать напряжение на 11-й контакт нашего микроконтроллера.

Поместите следующий код в файл кода вашего проекта.

   

#include <avr/io.h> #define F_CPU 16000000UL //16MHz #include <util/delay.h> int main(void) {

Теги: #arduino #Atmel Studio #C++ #Разработка на Arduino
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.