вторник, 26 марта 2013 г.

Использование Atmel Studio 6.0

Для более эффективного программирования микроконтроллеров AVR, рекомендую использовать фирменную среду разработки Atmel Studio 6.0 (ссылка для загрузки).
По сути, Atmel Studio 6.0 - это та же самая Microsoft Visual Studio 2010, дополненная специальными библиотеками для работы с микроконтроллерами AVR.
Для записи полученной программы из Atmel Studio в микроконтроллер, нам потребуется программатор USBAsp и программка Khazama AVR Programmer (ссылка для загрузки). Но хочу сразу предупредить, Вы не сможете изменить fuses и биты блокировки на микроконтроллере ATmega328P с помощью Khazama AVR Programmer! Как альтернативу для записи готового кода программы, или же как дополнение, для программирования fuses и битов блокировки, можно использовать программу AVRDUDE_PROG (ссылка для загрузки).
А теперь обо всем подробнее:
  1. Открываем установленную Atmel Studio 6.0, жмем File->New->Project. в открывшемся окне выбираем "GCC Executable projects C/C++", вводим имя проекта и нажимаем "OK". Далее в появившемся окне выбираем наш микроконтроллер из списка и нажимаем "OK".
  2. Пишем программу.
  3. Нажимаем F7 (Build Solution), и убеждаемся что нет ошибок. Проект готов.
  4. Запускаем Khazama AVR Programmer, выбираем необходимый микроконтроллер из списка, жмем "Ctrl+L" или File->Load FLASH file to buffer. В открывшемся окне идем в папку, где был сохранен наш проект из Atmel Studio. Открываем папку "debug", в ней находится файл с именем проекта .hex, выбираем его и жмем "Открыть".
  5. Для того, чтобы прошить микроконтроллер, жмем "Ctrl+F" или Command->Write FLASH buffer to Chip. Выскакивает окно с предупреждением, что невозможно установить необходимую скорость соединения, не обращаем внимание на него и жмем "OK". По завершению программирования программа также выведет окно с сообщением о том, что запись в микроконтроллер успешно завершена.
Программирование fuses и битов блокировки:
  1. Запускаем AVRDUDEPROG, во вкладке "Program" выбираем микроконтроллер, а также используемый программатор.
  2. На той же вкладке "Program" обязательно выбираем использование прямых fuse битов!
  3. Переходим во вкладку "Fuses", и первым делом нажимаем "Чтение"!, иначе можно "убить" (не в прямом конечно смысле, но для приведения его в работоспособное состояние потребуется много сил, и времени!). После того, как Вы убедились в том, что fuse биты считаны без ошибок, можно изменять те, которые необходимо.
  4. И лишь после того, как проделаны все предыдущие пункты можно нажимать кнопку "Программирование".
Примечание к программированию fuse и битов блокировки:
  • Если после чтения ни одной галочки в fuse и битах блокировки не установлено, то возможно произошла ошибка, повторите чтение.
  • На сообщения об ошибках установления скорости программирования можно не обращать внимание.
  • Если Вы всетаки допустили ошибку при программировании fuse битов и микроконтроллер перестал отвечать, то можете написать мне в google+, или дождаться выхода соответствующего поста по восстановлению.