Чтение онлайн

на главную

Жанры

Программируем Arduino. Основы работы со скетчами
Шрифт:

3. Когда компилятор завершит свою работу, запускается открытый программный компонент с названием avrdude, который пересылает в плату выполняемый двоичный код в шестнадцатеричном формате через последовательный интерфейс USB.

Теперь мы в царстве Arduino. В плате Arduino имеется небольшая резидентная программа, устанавливаемая в каждый микроконтроллер. Эта программа называется загрузчиком (bootloader). Загрузчик выполняется каждый раз, когда происходит сброс платы Arduino. Именно поэтому, когда происходит передача данных по последовательному интерфейсу, аппаратура связи в Arduino Uno производит принудительный сброс платы, чтобы дать загрузчику возможность проверить входящие

скетчи.

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

Возникает естественный вопрос: почему компьютер не может запрограммировать микроконтроллер напрямую, минуя такую сложную процедуру? Причина в том, что для программирования микроконтроллера требуется специальная аппаратура, использующая другой способ связи с платой Arduino (кто-нибудь из вас спрашивал себя, зачем на плате колодка с шестью контактами?). Благодаря загрузчику, постоянно прослушивающему последовательный порт, мы можем программировать Arduino через USB без использования специальной аппаратуры.

Однако если у вас есть такой программатор, например AVRISPv2, AVRDragon или USBtinyISP, с его помощью вы сможете программировать Arduino напрямую, в обход загрузчика. Фактически, как будет показано далее в этой главе, в роли такого программатора можно использовать вторую плату Arduino.

AVR Studio

Тертые инженеры-электронщики могут выразить свое презрение к Arduino IDE, заявив, что она не имеет никаких преимуществ перед инструментами компании Atmel для программирования всего семейства микроконтроллеров AVR. С технической точки зрения это верно. Но при этом не учитывается, что Arduino помогает раскрыть все тайны процесса использования микроконтроллеров и выйти из-под контроля таких экспертов. Действительно, многое из того, что делает нас поклонниками Arduino, можно считать дилетантством, и в ответ на это я могу только сказать: «Ну и что!»

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

• Работа возможна только в окружении Windows.

• Программирование выполняется с использованием специального оборудования вместо USB.

• Среда разработки сложнее в использовании.

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

• Чтобы избавиться от загрузчика (в модели Uno он занимает 500 байт), например из-за нехватки флеш-памяти или желания обеспечить более быстрый запуск программы после сброса.

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

• Просто чтобы освоить что-то новое.

Все платы Arduino снабжаются колодкой с шестью контактами, которые можно использовать для непосредственного программирования Arduino с применением AVR Studio. Фактически некоторые модели имеют две такие колодки: одна связана с основным процессором, а другая — с интерфейсом USB, поэтому будьте внимательнее при выборе нужной.

На рис. 2.5 показано, как выглядит пользовательский интерфейс программы AVR Studio 4.

Изучение AVR Studio выходит за рамки этой книги. Однако, как можно видеть на рис. 2.5, скетч Blink не стал длиннее, но определенно выглядит намного сложнее! И

в результате его компиляции выполняемый код занимает намного меньше места во флеш-памяти в сравнении с его аналогом в Arduino.

На рис. 2.6 изображена плата Arduino, подключенная к программатору AVR Dragon. Это очень гибкое и мощное устройство, позволяющее в пошаговом режиме отлаживать программы, фактически выполняющиеся на микроконтроллере ATmega.

В главе 4 мы рассмотрим непосредственное взаимодействие с портами, реализацию которого можно видеть на рис. 2.5. Этот прием позволяет улучшить производительность ввода/вывода и продолжать пользоваться преимуществами Arduino IDE.

Рис. 2.5. AVR Studio

Рис. 2.6. Плата Arduino, подключенная к программатору AVR Dragon

Установка загрузчика

Установка загрузчика в плату Arduino может потребоваться по нескольким причинам. Например, вы могли по неосторожности повредить извлекаемый микроконтроллер ATmega328 на плате Arduino Uno и решили заменить его новым ATmega328, приобретенным без загрузчика. Или, занимаясь собственными разработками, вы решили взять микроконтроллер ATmega328 из платы Arduino и вставить его в плату собственной конструкции.

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

Установка загрузчика с помощью AVR Studio и программатора

В папке установки Arduino IDE имеются шестнадцатеричные файлы загрузчиков, которые можно записать в ATmega328 с помощью AVR Studio. Эти файлы находятся в папке hardware/arduino/bootloaders. Там вы найдете шестнадцатеричные файлы для всех видов микроконтроллеров. Если вам требуется установить загрузчик в модель Uno, используйте optiboot_atmega328.hex в папке optiboot (рис. 2.7).

Но имейте в виду следующее: при установке загрузчика есть вероятность того, что ваш микроконтроллер превратится в «кирпич». Микроконтроллеры имеют то, что называют битами защиты, которые можно неправильно запрограммировать без возможности восстановления. Они встраиваются для защиты коммерческих интересов, чтобы предотвратить возможность перепрограммирования. Прежде чем сделать решающий шаг, проверьте внимательно, что биты защиты установлены правильно для той платы Arduino, которую вы собираетесь запрограммировать, и подготовьтесь к худшему. На форуме Arduino (www.arduino.cc/forum)7 вы найдете множество обсуждений этой темы наряду с советами, как избежать неприятностей.

Чтобы записать загрузчик с помощью AVR Studio и программатора AVR Dragon, подключите программатор к колодке с контактами ICSP (рис. 2.6).

Рис. 2.7. Установка загрузчика в плату Uno в среде AVR Studio 4

Обратите внимание на то, что на плате Arduino Uno имеются две такие колодки (вторая используется для программирования интерфейса USB).

В меню Tools (Инструменты) выберите пункт Program AVR (Программировать AVR) и установите соединение с микроконтроллером ATmega328 в плате Arduino. Затем в разделе Flash (Флеш-память) выберите требующийся шестнадцатеричный файл и щелкните на кнопке Program (Программировать).

Поделиться:
Популярные книги

Последний Паладин. Том 3

Саваровский Роман
3. Путь Паладина
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 3

Последний попаданец 5

Зубов Константин
5. Последний попаданец
Фантастика:
юмористическая фантастика
рпг
5.00
рейтинг книги
Последний попаданец 5

Убивать чтобы жить 6

Бор Жорж
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 6

6 Секретов мисс Недотроги

Суббота Светлана
2. Мисс Недотрога
Любовные романы:
любовно-фантастические романы
эро литература
7.34
рейтинг книги
6 Секретов мисс Недотроги

Измена

Рей Полина
Любовные романы:
современные любовные романы
5.38
рейтинг книги
Измена

Курсант: Назад в СССР 13

Дамиров Рафаэль
13. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 13

Газлайтер. Том 6

Володин Григорий
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 6

Купидон с топором

Юнина Наталья
Любовные романы:
современные любовные романы
7.67
рейтинг книги
Купидон с топором

Виконт. Книга 3. Знамена Легиона

Юллем Евгений
3. Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Виконт. Книга 3. Знамена Легиона

Попаданка в деле, или Ваш любимый доктор - 2

Марей Соня
2. Попаданка в деле, или Ваш любимый доктор
Любовные романы:
любовно-фантастические романы
7.43
рейтинг книги
Попаданка в деле, или Ваш любимый доктор - 2

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

Титан империи 2

Артемов Александр Александрович
2. Титан Империи
Фантастика:
фэнтези
боевая фантастика
аниме
5.00
рейтинг книги
Титан империи 2

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Убивать чтобы жить 5

Бор Жорж
5. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 5