В настоящее время в среде самодеятельных конструкторов (или, как их традиционно у нас называют, радиолюбителей) набирает актуальность вопрос подключения своих самодельных конструкций к компьютеру посредством USBинтерфейса. И это понятно. Современные компьютеры просто не оставляют для конструкторов иного выхода. Почти умер такой простой удобный LPT порт. Доживает свои последние дни немного более сложный порт COM. На современных ноутбуках этих портов почти не увидишь. Да и на стационарных компьютерах производители все чаще их не ставят. Зато USB порт уверенно завоевывает освободившиеся позиции. К тому же USB имеет и очевидные преимущества: наличие питающего напряжения на шине, позволяющего питать подключаемые устройства, возможность горячего подключения и отключения, небольшие размеры, малое количество проводников и контактов (всего 4 контакта). Но не смотря на все это, USB порт до сих пор не получил распространения среди радиолюбителей. В чем же причина?
Причина в сложности программной части USB драйвера, а так же дороговизны микроконтроллеров со встроенным USB контроллером. Второй момент, затрудняющий использование USB – проблемы лицензирования. Для использования USB интерфейса в своей конструкции вам необходимо приобрести отдельную лицензию именно для вашего случая. Специально для того, что бы решить данные проблемы фирмой Objective development был разработан проект, который сначала назывался USB-AVR, а теперь из соображений лицензионной чистоты носит название V-USB. Проект разработан в Великобритании и предназначен для популяризации порта USB среди широких масс самодеятельных конструкций. Для этого проект имеет открытую лицензию, а так же включает в себя уже оплаченную лицензию на использование USB интерфейса. Дело в том, что каждое устройство USB должно содержать код поставщика и идентификатор продукта (VID и PID). Код VID каждый производитель может получить на usb.org. И стоит один такой код 1500 долларов США. Получив свой VID, вы уже самостоятельно имеете право присвоить PID каждому своему продукту по своему усмотрению. Разработчики V-USB предоставляют на правах открытой лицензии всем желающим одну пару VID/PID кодов бесплатно.
Но это не единственное преимущество проекта V-USB. Не менее важным является простота схемного решения. Так как микросхемы со встроенным USB интерфейсом еще очень дороги, в проекте реализована простая схема, где USB интерфейс реализован в большей части программным путем. Схемная же часть (см. ниже) предельно проста и занимает две линии любого из портов ввода/вывода AVR микроконтроллера. Недостатком такого решения является невозможность реализации USB в полной мере из за низкого быстродействия AVR. Из-за этого даже не все AVR микросхемы допускается применять. Предлагаемый квази USB интерфейс имеет ряд упрощений. В нем, в частности, не реализована проверка контрольной суммы и проверка симметричности сигнала, что ведет к меньшей помехозащищенности. По той же причине предлагаемый USB канал использует самый низкоскоростной из всех имеющихся режимов.
Изюминкой проекта является то, что он может работать даже от внутреннего RC генератора, правда лишь в том случае, если используемая микросхема имеет режим повышенной частоты генерации внутреннего генератора. Это такие микроконтроллеры как ATTiny45 или ATTiny26. В этом случае вам даже не потребуется внешний кварцевый резонатор.
Рис. 1. Типовая схема AVR-USB
На рисунке 1 показана типовая схема, реализующая канал AVR- USB. Как видно из схемы, микропроцессор получает питание от компьютера через USB разъем (контакт 1). Диоды VD1 и VD2 работают, как низковольтные стабилизаторы напряжения и позволяют снизить напряжение питания микроконтроллера до величины 3,3 В. Это необходимо для того, что бы снизить уровни сигналов до стандарта USB. Использование двух диодов позволяет удешевить схему, но сказывается на качестве ее работы. Если вы желаете повысить качество и стабильность работы схемы диоды можно заменить микросхемой стабилизатором напряжения на 3,3 В. Например таким, как LE33. Пониженное напряжение питания затрудняет подключение к схеме дополнительных микросхем. Если вы желаете питать микроконтроллер от 5В, вы можете поставить стабилитрон на 3,6В на каждую линию данных D+ и D-, как это показано на рисунке 2.
Рис.2. Схема с питанием от +5В
Преимущества предложенного решения
Загрузить полный пакет программ AVR- USB с частично русифицированными файлами комментариев вы можете здесь.