Практическое использование интерфейса USB в контроллерах PIC производства Microchip. Подробности. Категория: Microchip. Интерфейс USB приобретает все большую популярность как интерфейс связи периферийных устройств с ПК и современные компьютеры зачастую не имеют привычного интерфейса RS- 2. Популярность USB обусловлена многими причинами, вот основные из них. USB без программирования Windows, виртуальный COM порт. Одна из задач, возникающих при разработке USB устройств, это переход с интерфейса RS- 2. USB, при этом, если производится модификация . Одним из решений данной задачи является использование интерфейса USB в качестве виртуального COM- порта. Применение данного метода исключает необходимость модификации ПО компьютера, т. Драйвер работает с устройствами, которые совместимы со стандартом Communication Device Class (CDC), подкласс Abstract Control Model (ACM). Однако драйвер поддерживает 3 различные типа протоколов USB, подробнее описанные ниже. Необходимость программирования драйверов для Windows . CDC Class host – поддержка устройств ACM ( abstract control model). USB соединение видится персональным компьютером как дополнительный COM- порт. Другое важное преимущество заключается в том, что используются стандартные драйвера Windows и не требуется создание какого- либо своего драйвера. Спецификация USB описывает класс коммуникационных устройств (Communication Device Class – CDC), который определяет множество режимов соединений для телекоммуникационных (модемы, терминалы, телефоны) и сетевых устройств (Ethernet адаптеры и хабы, ADSL модемы), включая эмуляцию последовательного порта. Возьмем в качестве примера устройство, которое через RS- 2. TC7. 7, а так же принимает команды для включения/выключения двух светодиодов (данный пример для простоты реализуем на плате PICDEM. На плате установлен контроллер PIC1. F4. 55. 0 в корпусе TQFP4. На плате установлены: . Итак, мы можем подключить устройство к RS- 2. COM- порт и установить скорость обмена с нашим устройством, число бит данных, количество стоповых бит, а так же параметры битов четности и управления потоком в соответствии с программой микроконтроллера (для этого мы должны знать параметры инициализации нашего контроллера)Приступим к подключению нашего устройства к USB. Компания Microchip Technology Inc.
Предлагает готовый пример применения AN9. USB CDC для микроконтроллера PIC1. F2. 55. 0, PIC1. 8F2. PIC1. 8F4. 45. 5, PIC1. F4. 55. 0. Программа построена по модульному принципу, что позволяет легкую модернизацию и интегрированию в готовые проекты. После начальной инициализации контроллера программа может общаться с ПК через интерфейс USB посредством нескольких готовых функций: Функция. Описаниеputrs. USBUSARTзапись стринга заканчивающегося на ноль из памяти программ в USBputs. USBUSARTзапись стринга заканчивающегося на ноль из памяти данных в USBm. USBUSARTTx. Romзапись стринга известной длины из памяти программ в USBm. USBUSARTTx. Ramзапись стринга известной длины из памяти данных в USBm. USBUSARTIs. Tx. Trf. Readyпроверка готовности драйвера принять данные для записи в USBgets. USBUSARTчтение стринга из USBm. CDCGet. Rx. Lengthчтение длинны последнего пакета принятого из USBМодифицируем нашу программу для передачи и приема данных через USB. Фрагмент программы подготовки и передачи данных: Read. POT(); // Чтение данных с АЦПoutput. После этого производится установка нового устройства в систему. Итак, новое устройство готово к работе. В системе появился новый виртуальный COM порт. Теперь в нашей программе мы можем выбрать появившийся виртуальный COM порт для общения с устройством . Программа PICDEM CDC + исходные коды для Delphi скачать. Компонент Delphi для работы с COM портом скачать 3. AN9. 56 + оригинальные исходные коды (3. Mb)4. Для запуска примера к урок #1, необходимо скопировать этот файл в каталог C: \MCHPFSUSB\fw\Cdc\user\, заменить в проекте файл user. Упрощенная схема USB устройства. Примечание: в оригинальной схеме платы PICDEM FS USB используется автоматическое определение источника питания платы (внешний источник или USB). Поэтому при использовании упрощенной схемы необходимо закоментарить строку #define USE. Создание USB 2. 0 совместимого HID- устройства типа джойстик. Наиболее распространенными USB устройствами являются устройства интерфейса с человеком (HID – Human Interface Devices). Типичными представителями этого класса являются USB- клавиатуры, мыши, джойстики, панели настройки мониторов, считыватели штрих- кодов, карт- ридеры и т. Преимуществами HID устройств является: - простота реализации; - компактный код; - поддержка Windows (не нужны дополнительные драйвера). На сайте компании Microchip есть пример реализации HID манипулятора мышь. Рассмотрим реализацию простейшего игрового манипулятора на основе этого примера. Для этого проекта будем использовать демонстрационную плату PICDEM FS- USB (DM1. Отладочная плата PICDEM FS- USB имеет один переменный резистор и 2 кнопки, поэтому разрабатываемый джойстик будет иметь минимум элементов управления (2 кнопки и, например, регулятор газа). В первую очередь нам нужно переписать дескриптор устройства под создаваемый джойстик. Для упрощения задачи можно воспользоваться программой HID Descriptor Tool, которую можно скачать с сайта www. В комплекте с программой предоставляются примеры конфигураций некоторых HID- устройств, которые можно корректировать под свою задачу или создавать собственное HID устройство. Итак, в нашем случае будут использоваться несколько типов данных – это симуляция органа управления – Simulation Controls, а конкретно это ручка (педаль) газа (Throttle) и кнопки управления (Button). Для того чтобы операционная система «знала» как обращаться с этими типами данных, необходимо описать максимальные и минимальные значения и размер данных. В нашем случае «газ» это одно 8- и битное значение (report. В примере используется только 2 кнопки, но необходимо выровнять поле до байтовой величины (report. Итого микроконтроллер при запросе данных от компьютера должен передать 2 байта – уровень газа и состояние кнопок в соответствии с сформированным дескриптором устройства (подробное описание возможных дескрипторов см. Созданное описание дескриптора устройства можно сохранить в разных форматах, в том числе и как заголовочный файл . Дополнительно нужно скорректировать в описании HID Class- Specific Descriptor размер полученного дескриптора устройства и в дескрипторе конечной точки изменить размер данных, передаваемых через конечную точку (в нашем случае передаем 2 байта, поэтому размер HID. Теперь можем скорректировать строковые данные, чтобы устройство имело то название, какое мы хотим (например «PIC1. F4. 55. 0 Joystick»). Для того чтобы присвоить устройству имя на русском языке необходимо прописывать строковый дескриптор в кодировке UNICODE. На этом описание джойстика заканчивается и нужно подготовить данные для передачи в PC. Read. POT(); // запуск измерения напряжения потенциометраbuffer. Плата определяется как HID игровое устройство, инсталлируется в систему и готово к работе. Через панель управления в Windows мы можем открыть доступные игровые устройства, выбрать наш джойстик, откалибровать его и проверить функциональность. При изменении конфигурации устройства – добавлении органов управления или кнопок, необходимо не только изменить описание дескриптора устройства, но и передавать данные строго в соответствии с созданным дескриптором. Так изменив в описании дескриптора устройства USAGE. Оригинальные исходные коды реализации HID- мыши. Исходные коды реализации HID- джойстика. Опыты с программатором PICkit. Компания Microchip Technology Inc. Отличительной особенностью этого программатора является доступность полной документации и исходных кодов прошивки для микроконтроллера, и программы оболочки для компьютера. PICkit. 2 получает питание от USB, формирует регулируемые напряжения программирования и питания, а так же имеет 3 линии входа- выхода для подключения к программируемому устройству. Для возможности обновления прошивки программатора в PICkit. Используя все эти особенности, на основе программатора PICkit. USB- устройства с возможностью в любой момент откатиться назад к его функциям программатора. С помощью бутлоадера, который прошит в программатор, в PICkit. COM- порта. Для этого берем пример CDC, переименовываем проект и делаем следующее. В файле user. c выводим в USB нужные нам данные. Таким образом, используя PICkit. COG ЖК- индикаторы, считыватели I2. C, SPI и 1- wire устройств, например датчиков температуры и др. Такое устройство может использоваться, например, для проведения презентаций – для перелистывания слайдов вдали от компьютера. Для реализации такого устройства нам понадобятся: - PICkit. PICkit. 2 (DV1. 64. RXD0. 42. 0) и радиопередатчик (rf. PIC1. 2F6. 75) из комплекта rf. PICkit. К демо- плате подключаем радиоприемник. Микроконтроллер на плате будет принимать данные с приемника, обрабатывать их и, при определении нажатия одной из двух кнопок на радиобрелке, выставлять уровень лог. PICkit. 2. PICkit. USB определяться как HID- клавиатура- формировать напряжение питания +5. В для демо- платы с приемником- опрашивать 2 внешних вывода контроллера приемника и при наличии лог. Page. Up или Page. Down. Два виртуальнык COM- порта (Эмуляция микросхемы FTDI2. PICKit. 2. Этот пример предназначен только для изучения работы USB. Изучите требование лицензии на драйвер FTDI перед использованием! Пример показывает как на базе микроконтроллера с USB портом сделать 2 виртуальных COM- порта. Для начало нужно установить драйвера для микросхемы FTDI2. Затем для загрузки в PICkit. PICkit. 2 выбрать пункт обновления прошивки и указать на файл Test. VCP2. hex из архива. После перепрограммирования PICkit. COM порта. Пример взят с сайта http: //forum. Для обратного восстановления PICkit. PICkit. 2 от USB и при нажатой кнопке снова подключить кабель USB, после чего выбрать загрузку штатной прошивки программатора. Все приведенные выше примеры основаны на MCHPFSUSB Framework v. С появлением контроллеров PIC2. PIC3. 2 с USB OTG, компания Microchip выпустила новую версию стека - USB stack v. В новой версии USB stack v. USB device, реализующего функциональность USB- клиента, USB Embedded host, реализующего функциональность хоста, также добывлен стек USB dual role, реализующий функции и хоста, и клиента; и USB OTG, поддерживающий протокол согласования роли хоста (HNP), протокол запроса сеанса (SRP), и полностью соответствующий спецификации USB OTG.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
November 2017
Categories |