Это пример, демонстрирующий управление какими-либо устройствами через USB. Программа для PC написана на Delphi.
Особенности схемы
- Микроконтроллер PIC18F4550 с полноскоростным интерфейсом USB, работающим на частоте 48 МГц
- Совместимость с USB 2.0
- USB драйвер на кристалле
- Управление одним шаговым двигателем
- ПО микроконтроллера разработано под MPLAB C18
- Хост ПО для ПК написано на Delphi 6
Описание схемы
Иллюстрирующая пример принципиальная схема изображена на Рис. 1. Основная часть схемы – микроконтроллер PIC18F4550, ведущий обмен с ПК и управляющий шаговым двигателем. Питание +5 В для схемы берется с линии Vbus интерфейса USB. Исключение составляет шаговый двигатель, для питания которого нужен отдельный источник напряжения +Vmotor. Шина Vbus не может отдать в нагрузку ток, превышающий 250 мА. В связи с этим, если вы добавите в схему дополнительные элементы, и суммарный ток потребления превысит 250 мА, подключите к шине +5 В внешний источник, а Vbus не забудьте отсоединить.
Не соединяйте +Vmotor и Vbus.
В показанном примере шаговый двигатель управляется однофазным методом (A-C-B-D). При необходимости использовать другую схему управления, сделайте соответствующие изменения самостоятельно.
Рисунок 1. Пример схемы |
Надписи на схеме | |
Stepping Motor | Шаговый двигатель |
USB connector | Разъем USB |
Common[d] | Общий |
Прошивка микроконтроллера
ПО микроконтроллера разработано под MPLAB C18 с использованием USB драйвера фирмы Microchip. Если захотите добавить новые команды, или что-то изменить, посмотрите файлы user.c и use.h в папке user.
Программы для ПК
Программа для описываемого примера программа была написана на C++ программистами Microchip, и переписана автором на Delphi 6. По сравнению с оригиналом, изменены три команды:
- turn left (вращение влево),
- turn right (вращение вправо),
- Stop motor (остановить мотор).
Чтобы разобраться в деталях, смотрите PICDEM™ FS USB User’s Guide и соответствующие файлы.
Интерфейс ПК с устройством реализован с использованием драйвера Microchip General Purpose USB Windows driver, написанного на C/C++. Если вы захотите написать собственный драйвер, взгляните на страничку www.jungo.com. Вы найдете на ней много интересной информации о написании драйверов USB. Но учтите, что написать драйвер USB – задача непростая. Как минимум, вы должны хорошо представлять себе работу операционной системы.