ЭФО предлагает со своего склада новую серию преобразователей интерфейсов USB UART компании FTDI FT232RNL-REEL

USB Generic HID Framework с открытым исходным кодом для Atmel AVR и Windows. Часть 2 - ПО микроконтроллера, приложения для Windows

Часть 1 – Аппаратная часть

Программное обеспечение нашего проекта, как для микроконтроллера, так и для ПК с ОС Windows, условно разделяется на два типа:

  • базовое ПО, с помощью которого пользователь может протестировать все функции и проверить работу программы
  • демонстрационное ПО, показывающее, как использовать основные команды USB и функции для работы с периферией, подключенной к микроконтроллеру AVR.

Помните, что предоставляемое ПО (прошивка) не оптимизировано с целью сокращения объема кода, т.к. помимо всех команд, которые используются интерфейсом USB, присутствует еще некоторые определения и отладочная информация. Поэтому рекомендуется, при дальнейшем применении данной USB HID структуры и разработке пользовательских приложений, ненужный для пользовательского приложения код удалить. Это, в свою очередь, позволит применить как стек LUFA, так, если потребуется, и нашу библиотеку функций для микроконтроллеров AVR ATmega8.

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Програмное обеспечение для микроконтроллера разработано в среде AVR Studio 5.

Базовое ПО микроконтроллера

Базовое программное обеспечение для микроконтроллера обрабатывает ивыполняет 6 основных USB команд. Пять из них действуют одновременно, и как для демонстрации работы программной структуры, и как средство регрессивного тестирования, чтобы убедиться, что USB HID структура функционирует корректно. Они выполняют пять основных операций:

  • получение 1 пакета данных от Host, проверка содержимого пакета;
  • получение 1 пакета данных от Host, проверка содержимого пакета и ответ Host-устройству 1 пакетом данных;
  • получение 1 пакета данных от Host, проверка содержимого пакета и ответ Host-устройству 128 пакетами данных;
  • получение 128 пакетов данных от Host, проверка содержимого пакета и ответ Host-устройству 1 пакетом данных;
  • получение 128 пакетов данных от Host, проверка содержимого пакета и ответ Host-устройству 128 пакетами данных.

USB Generic HID стек настроен на работу с 64-байтными пакетами данных. Это означает, что в самом экстремальном тесте мы получаем 8 КБайт данных от Host-устройства (128 пакетов) и затем отвечаем Host-устройству – передаем 8 КБайт данных. Протокол USB HID очень прост и представляет собой механизм для получения 64-байтных пакетов данных от Host-устройства и отправки 64-байтных пакетов данных к Host-устройству.

Шестая USB команда предназначена для реализации операции «живой» отладки по USB интерфейсу. В программе микроконтроллера имеется функция, которая позволяет отправить строку с отладочной информацией. Эта строка имеет фиксированную длину и хранится в кольцевом буфере. Отладочная информация передается Host-устройству при получении специальной команды отладки.

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

Так как функции отладки занимают определенный объем оперативной памяти микроконтроллера, пользователю предоставляется возможность включения и выключения отладки во время компиляции проекта при помощи директивы «USB_DEBUG».

Демонстрационное ПО микроконтроллера

Демонстрационная программа микроконтроллера намного проще, она реализует выполнение двух USB команд и отладку. Первая команда предназначена для чтения текущего статуса кнопок, светодиодов и потенциометра, и передчи этой информации к Host-устройству. Вторая команда позволяет управлять состоянием светодиодов. Для кнопок и светодиодов программа опирается на готовые функции программного стека LUFA. Кроме того, имеется уже готовый код для считывания значений АЦП, к которому подключен потенциометр.

Хотя в базовую программу заложено намного больше возможностей, демонстрационная программа реализует часто применяющиеся на практике функции.

Приложение для ОС Windows

Программные приложения для компьютера разработаны на Си в среде Visual Studio 2010.

Базовое ПО для компьютера предоставляет пользователю Windows-интерфейс, с помощью которого можно вызвать все 5 доступных команд USB и отслеживать отладочную информацию, поступающую от микроконтроллера. Приложение также обеспечивает автоматическую обработку подключения и отключения устройства по USB. Когда пользователь выбирает тест, приложение отсылает шаблон данных по интерфейсу USB к микроконтроллеру и проверяет ответные данные от него.

Вид окна программыWindows для проверки работы микроконтроллера по USB интерфейсу

Демонстрационное приложение позволяет пользователю взаимодействовать с аппаратной частью в режиме реального времени. Можно включать/выключать светодиоды, отслеживать состояние кнопок и наблюдать в графическом представлении положение потенциометра.

Вид окна программы Windows для проверки работы микроконтроллера по USB интерфейсу

Демонстрационное видео

Загрузки

Файлы проектов (Visual Studio 2010, AVR Studio 5.0) – скачать

Часть 3 – USB Generic HID библиотека коммуникационных функций и ее использование

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: USB Generic HID Open Source Framework for Atmel AVR and Windows. Part 2 - ATmega32U4 Firmware, Demonstration Firmware, Windows Applications

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя