Интернет-магазин

Просмотр корзины
В корзине:

товаров - 0 шт.



§ 23. WoodmanUSB. Введение

Дмитрий Иванов, 09 Декабря 2013

Что это такое WoodmanUSB? WoodmanUSB предназначен для простого и дешевого решения задачи передачи данных между переферийным устройством и компьютером через шину USB. WoodmanUSB прпредставляет из себя двунаправленный мост USB-FIFO с простым и доступным интерфейсом управления. С его помощью можно достичь скорости передачи данных по шине USB до 220 Мбит/с!

Конструктивно WoodmanUSB представляет собой миниатюрную двухстороннюю плату, вставляемую в колодку DIP28 и имеющую встроенный разъем USB-B. WoodmanUSB полностью "самодостаточен" и не требует установки дополнительных элементов для своей работы.

USB модуль WioodmanUSB


Каким образом работает WoodmanUSB?

WoodmanUSB работает в качестве "моста" между шиной USB и некоторым переферийным устройством. Он преобразует USB интерфейс данных в 8-ми битный парралельный интерфейс и обратно. Т.е. с помощью WoodmanUSB можно подключить к шине USB практически любую вашу схему на основе микроконтроллера, процессора, ПЛИС или др. для скоростой передачи данных по шине USB. От переферийного устройства требуется наличие 8-ми разрядной шины данных и 6-ти свободных линий для контроля и управления работой модуля WoodmanUSB.

USB модуль WioodmanUSB

Модуль содержит два 8-ми битных порта. Один из них используется для скоростой передачи данных по парралельному интерфейсу (PORTB). Другой же порт (PORTA) работает в режиме прямого ввода-вывода и не требует ни каких линий управления, что позволяет напрямую взаимодействовать с нагрузкой подключенной к этому порту.

USB модуль WioodmanUSB



Познакомимся с выводами WoodmanUSB. Они показаны на рисунке и в таблице ниже. Понимаю, что наверное не все из них понятны на данный момент времени. По ходу следования статей мы детально познакомимся со всеми ними.

Расположение и нумерация выводов модуля WoodmanUSB


Номер выводаОбозначение выводаНаправление Описание
1 GND Земля (общий провод схемы).
2 +5VВыход Шина питания +5 В от порта USB.
3 +3.3VВыход Шина питания +3.3 В от преобразователя напряжения, расположенного на плате модуля. Максимальная нагрузочная способность: не более 0.5 А.
4 RESETВход При подаче низкого уровня на этот вывод будет произведен сброс модуля.
5 PB_RDВход Линия чтения данных порта PORTB. При изменении входного уровня с высокого на низкий происходит установка на линии данных порта PORTB текущего байта из входного FIFO буфера модуля (данные из компьютера - IN_FIFO). Теперь возможно чтение этого байта. При переключении обратно на высокий уровень, линии данных возвращаются в исходное состояние, а во входном буфере становится готовым для чтения следующий байт (при его наличии).
6 PB_WRВход Линия записи данных порта PORTB. При изменении входного уровня с высокого на низкий происходит чтение модулем текущих состояний линий данных порта PORTB и запись полученного байта в выходной FIFO буфер модуля (OUT_FIFO).
7 PORTB0Вход/Выход Бит 0 двунаправленного порта ввода/вывода PORTB
8 PORTB1Вход/Выход Бит 1 двунаправленного порта ввода/вывода PORTB
9 PORTB2Вход/Выход Бит 2 двунаправленного порта ввода/вывода PORTB
10 PORTB3Вход/Выход Бит 3 двунаправленного порта ввода/вывода PORTB
11 PORTB4Вход/Выход Бит 4 двунаправленного порта ввода/вывода PORTB
12 PORTB5Вход/Выход Бит 5 двунаправленного порта ввода/вывода PORTB
13 PORTB6Вход/Выход Бит 6 двунаправленного порта ввода/вывода PORTB
14 PORTB7Вход/Выход Бит 7 двунаправленного порта ввода/вывода PORTB
15 PORTA0Вход/Выход Бит 0 двунаправленного порта ввода/вывода PORTA
16 PORTA1Вход/Выход Бит 1 двунаправленного порта ввода/вывода PORTA
17 PORTA2Вход/Выход Бит 2 двунаправленного порта ввода/вывода PORTA
18 PORTA3Вход/Выход Бит 3 двунаправленного порта ввода/вывода PORTA
19 PORTA4Вход/Выход Бит 4 двунаправленного порта ввода/вывода PORTA
20 PORTA5Вход/Выход Бит 5 двунаправленного порта ввода/вывода PORTA
21 PORTA6Вход/Выход Бит 6 двунаправленного порта ввода/вывода PORTA
22 PORTA7Вход/Выход Бит 7 двунаправленного порта ввода/вывода PORTA
23 PORTB_FFВыход (FIFO FULL) Если уровень на этом выводе становится низким, это означает что драйвер не успевает транспортировать данные из модуля при их передаче от внешнего устройства в компьютер через PORTB. Необходимо приостановить передачу данных, пока уровень не вернется в свое исходное состояние - высокий.
24 PORTB_FNEВыход (FIFO not EMPTY) Если уровень на этом выводе становится высоким, это означает что компьютер начинает передачу данных и в буфере модуля есть доступные данные для чтения через порт PORTB. Уровень сохраняется высоким, пока IN_FIFO буфер не будет прочтен полностью. При отсутсвии данных уровень низкий.
25 PKTENDВход Флаг завершения записи данных в порт PORTB. При подаче низкого уровня на этот вывод, драйвер модуля завершает операцию чтения данных не дожидаясь окончания чтения заказанного колличества байт данных.
26 CLKВход/Выход Линия тактового сигнала, используемая в синхронном режиме работы порта PORTB. В зависимости от того какой вид тактового сигнала используется (внешний или внутренний) линия является входной или выходной.
27 +5VВыход Шина питания +5 В от порта USB.
28 GND Земля (общий провод схемы).



Изготовление простого USB устройства на основе модуля WoodmanUSB (Часть 1)


Для начала сделаем самое простенькое USB устройство на основе модуля WoodmanUSB. Оно будет призвано решать следующую задачу:

"Хочу подключить к разъему USB компьютера устройство, у которго есть 8 светодиодов. Из моей программы на Си хочу управлять этими светодиодами - гисить или зажигать их по моему выбору."

Давайте приступим к реализации этой идеи. Но прежде, чем мы начнем собирать схему и писать программу надо сделать весьма важную операцию: установить драйвера, поставляемые KERNELCHIP для модуля WoodmanUSB. Для этого скачайте архив с драйвером на сранице модуля (пока доступны драйвера только для Windows XP).

Распакуйте архив. Там Вы найдете папку WUSB_Drivers, в которой находятся драйвер и библиотека для разработки собственных приложений. Теперь соедините WoodmanUSB с любым USB портом Вашего компьютера с помощью USB удлинителя. Если быть точным, такой удлинитель называется USB-AB.

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


Тут же появится окно мастера установки новго оборудования, который будет заниматься установкой драйверов. Он предложит поискать драйвера в интернете, но Вы ему такой возможности не давайте, смело выбирайте пункт "Нет, не в этот раз". Нажимайте кнопку "Далее".

Далее необходимо выбрать пункт "Установка из указанного места" и нажать на кнопку "Далее".

Появится окно выбора способа поиска драйверов. Установите радиокнопки и чекбоксы как на рисунке ниже.

Нажмите на кнопку "Обзор". Укажите путь к папке с драйверами для WoodmanUSB. Нажмите на кнопку "Ok".

Нажмите на кнопку "Далее".

Начнется процесс проверки драйверов операционной системой. Вдруг неожиданно появится такое вот сообщение. Обращаться ни к какому поставщику не нужно, смело нажимайте на кнопку "Все равно продолжить".

Теперь пойдет процесс копирования драйверов и регистрации их в системе.

Тут, я думаю, все понятно.

По окончании установки появится нижеследующее сообщение весьма приятного содержания.

Теперь отсоедините USB кабель от компьютера, подождите немного (5-10 сек.) и включите его снова. Вы должны услышать короткий звуковой сигнал и больше ни чего происходить не должно. Все. Драйвера установлены, устройство готово к работе. Драйвера надо было поставить один раз. При следующих подключениях устройства для него уже есть свой драйвер, который и подгружается операционной системой. (Следует сделать замечание, что если Вы затем подключите модуль к другому USB порту, то потребуется еще раз установить драйвер именно для этого порта.)

В удачности установки можно убедиться отдельно. Откройте диспетчер устройств через Пуск -> Настройка -> Панель управления -> Система -> Оборудование -> Диспетчер устройств. В ветке "Контроллеры универсальной последовательной шины USB" должна появится запись о новом устройстве - WoodmanUSB.



На этом все подготовительные операции мы закончили. Переходим к следующей статье, в которой мы соберем схему простого USB устройства для управления светодиодами и напишем программу для управления этим устройством.


© Дмитрий Иванов
09 Декабря 2013 года
http://www.kernelchip.ru



© KERNELCHIP 2006 - 2023