V - USBРазработка различных устройств на основе микроконтроллеров — занятие, достойное настоящего компьютерного гика. Несомненно, полезной фишкой любого гаджета будет USB — интерфейс для подключения к компьютеру. Но что делать, если в микросхеме AVR не предусмотрена аппаратная поддержка USB?

V — USB: РАЗМЕР ИМЕЕТ ЗНАЧЕНИЕ

При разработке собственного гаджета часто встает проблема его подключения к компьютеру. Надо сказать, что порты LPT и СОМ — теперь экзотика на материнских платах ПК, не говоря о ноутбуках, у которых эти интерфейсы исчезли давным-давно. Поэтому у современных компьютеров практически не осталось альтернатив интерфейсу USB.

Если ресурсы чипа используются на все сто процентов, то лучше сразу смотреть в сторону устройств с аппаратной поддержкой универсальной последовательной шины (такие микроконтроллеры присутствуют в линейке любого производителя). В остальных случаях можно использовать софтовый USB.

Для микроконтроллеров Atmel существует замечательный проект V — USB, который предлагает программную реализацию низкоскоростного устройства USB 1.1. Код V — USB будет работать на любом устройстве AVR, у которого есть хотя бы 2 Кб Flash — памяти и 128 байт ОЗУ, с тактовой частотой 12; 12,8; 15; 16; 16,8 или 20 МГц.

Использование продукта возможно как в рамках open source лицензии GPL, так и на коммерческой основе. Для того чтобы разрабатывать собственные USB — устройства, обычно также нужно покупать что-то вроде лицензии. Но ребята из V — USB позаботились и об этом, приобретя пару Vendor ID — Product ID и разрешив их использовать любому желающему.

Аппаратная обвязка для подключения USB — шины к микроконтроллеру очень простая. Если устройство потребляет не слишком много, то запитать его можно прямо от шины (считается, что линия питания USB компьютера способна отдавать ток до 500 мА). Так как информационные линии (D+ и D -) используют уровень сигнала 3,6 В, кроме токоограничивающих резисторов, необходимы стабилитроны для согласования с 5 — вольтовой логикой чипа. Чтобы обозначить тип подключения, нужно «подтянуть» напряжение питания через сопротивление 1,5 кОм к линии D -.

Альтернативный вариант сопряжения по USB — снизить напряжение питания контроллера посредством соответствующей

микросхемы стабилизации или просто парой диодов. Последнюю схему можно найти на сайте проекта V — USB.