Мой первый проект на LESO6

Борисов Александр Васильевич

Для начала изучения программирования микроконтроллеров AVR можно порекомендовать среду CodeVisionAVR.

CodeVisionAVR представляет собой интегрированную среду разработки с кросс-компилятором С, реализующим все элементы ANSI C для архитектуры AVR с некоторыми особенностями и дополнительными функциями. Для новичков особый интерес представляет автоматический генератор кода CodeWizardAVR, который в интерактивном графическом режиме позволит настроить периферию микроконтроллера и сгенерировать код инициализации.

Среда предназначена для работы под различными версиями 32-битных и 64-битных операционных систем MS Windows (XP, Vista, Windows 7 и Windows 8).

Несмотря на то, что среда CodeVisionAVR коммерческая, существует бесплатная Evaluation версия, имеющая некоторые ограничения. Наиболее существенное – это максимальный объем программы (не может превышать 4 кбайт). Для большинства демонстрационных и обучающих программ этого вполне достаточно. Скачать последнюю Evaluation версию программы можно с официального сайта. Тамже можно уточнить ограничения free версии.

Рассмотрим простые шаги для создания программы. Цель: заставить мигать светодиод LED0 (HL1) (см. схему стенда).

1. Запускаем CodeVisionAVR и создаем новый проект: меню File, пункт New Project. При этом появляется окно:

 

Create new Project

Соглашаемся использовать генератор кода (нажимаем Yes).

 

CodeWizardAVR

2. В окне CodeVisionAVR выбираем чип ATmega128RFA1 и тактовую частоту генератора 16 MHz. Все остальное оставляем без изменений.

 

CodeWizardAVR

3. Переходим на вкладку порты Ports. Смотрим на схему стенда LESO6 и видим, что светодиод LED0 подключен к нулевому биту порта Port F. Настраиваем этот бит на вывод (Bit Out).

 

CodeWizardAVR

4. Генерируем программу. Для этого в меню Program выбираем пункт Generate, Save and Exit. В результате появится программа на языке С.

5. Редактируем полученную программу следующим образом. После строки:

#include <io.h>

добавим строку для подключения библиотеки функций задержки:

#include  <delay.h>

Вместо текста:

while (1)
      {
      // Place your code here
      }

записываем текст:

while (1)
      {
        PORTF.0 = 0x01;
        delay_ms(500);
        PORTF.0 = 0x00;
        delay_ms(500);
      }

6. Компилируем проект: Project -> Build All. В результате, если нет ошибок, будет создан hex-файл.

7. Для загрузки hex-файла в микроконтроллер можно использовать консольный загрузчик avrdude. Добавим avrdude в инструмены CodeVisionAVR.

В меню Tools выбираем пункт Configure. Появится окно Configure Tools, добавляем новый инструмен, нажимаем кнопку Add. В строке Tool Directory and FileName указываем путь к файлу avrdude.exe. В строке Command Line Parameters указываем параметры программатору:

 -patmega128rfa1 -cavr911 -PCOM6 -b115200 -Uflash:w:first.hex:a 

Параметр PCOM6 указывает номер последовательного порта (COM-PORT). В диспетчере устройств можно посмотреть номер порта, соответствующего преобразователю FTDI учебного стенда. В данном примере это COM6. first.hex – имя hex-файла, укажите свое.

В строке Working Directory укажите путь к hex-файлу.

 

Tool Settings

8. После настройки инструмента в меню Tools появится пункт avrdude.exe, позволяющий загрузить прошивку. Предварительно стенд должен быть переведен в режим программирования, для этого следует нажать на стенде кнопку reset, удерживая зажатой кнопку 1 на клавиатуре.

Светодиод на стенде начнёт мигать.

Сопутствующее программное обеспечение

Страничка для скачивания CodeVisionAVR.
avrdude

avrdude

avrdude – это утилита для загрузки/выгрузки/изменения содержимого памяти программ (Flash) и памяти данных (EEPROM) AVR микроконтроллеров с использованием различных аппаратных программаторов.

 


21 апреля 2015
Орфографическая ошибка в тексте:
Чтобы сообщить об ошибке автору, нажмите кнопку "Отправить сообщение об ошибке". Вы также можете отправить свой комментарий.