Программирование BASCOM
Меню сайта
Категории каталога
Мои статьи [115]
Наш опрос
Оцените мой сайт
Всего ответов: 1292
Главная » Статьи » Мои статьи

USB - вопросы сопряжения с AVR
В этой статье рассмотрены Вопросы сопряжения неспециализированных контроллеров AVR с портом USB.
Статья является вольным переводом страницы http://vusb.wikidot.com/hardware


Проблемы логических уровней. 

Самодельные USB устройства на основе неспециализированных микроконтроллеров AVR без применения специальных мер не могут соответствовать электрическим характеристикам стандартного USB. Однако, можно получить очень близкие характеристики, чтобы заставить устройство работать достаточно надежно.
 
И хост, и устройство, требуют особого уровня напряжения для высокого или низкого логического сигнала. Каждая из сторон должна выдавать напряжение в этом диапазоне для надежной связи. Точные характеристики определены в спецификации USB.
 
Хост посылает 0V для низкого уровня и 3,3V для высокого уровня. Эти уровни являются довольно точными, даже если спецификация и позволяет некоторые допуски. Обычно это не проблема, независимо от напряжения питания AVR. Даже 5V конструкции очень надежно определяют 3,3V как высокий уровень.

Обратное направление является более проблематичным: хост ожидает от 0V до 0,8V для низкого уровня и от 2V до 3,6V для высокого уровня. Некоторые хосты позволяют работать и с 5V высоким уровнем, но скорее это исключение, чем правило. Для того, чтобы выполнить это требование, мы должны либо запитать AVR напряжением между 2V и 3,6V, либо внести какие-то преобразования уровней в линии передачи данных USB.

Решение А: Снижение напряжения питания для AVR

Один из вариантов решения проблемы преобразования уровня является обеспечение микроконтроллеров AVR пониженным напряжением, как правило, в диапазоне от 3,3V до 3,6V. Поскольку выходное питающее напряжение USB находится в диапазоне от 4,5V до 5,25V, нам нужен понижающий регулятор напряжения.



Преимущества этого решения:
Чистое решение, отличное согласование уровней на D+ и D-.
Хорошая помехоустойчивость для входного сигнала.
Недостатки:
     Регуляторы с низким падением напряжения зачастую дорогие и их труднее достать.
     Многие микроконтроллеры AVR не гарантируют стабильную работу на высокой частоте (12 и более MHz) при напряжении питания ниже 4,5 В.
     Пониженное напряжение питания затрудняет подключение к схеме других микросхем.
     Заметим, что использование регуляторов с низким падением напряжения типа LE33CZ, или что еще хуже, LM1117S33, увеличивает дополнительные ток (ток покоя), что нарушает предел для режима ожидания USB - 500 мкА. Потому что подтяжка к питанию 1,5 кОм потребляет 200 мкА, 299 мкА - для регулятора, и для AVR остаётся менее 1 мкА!
     Для соответствия стандарту USB, могут подойти регуляторы очень низкой мощности TPS71533DCK. Texas Instruments раньше высылал их в качестве образцов бесплатно.
 
Другой вариант этого подхода заключается в снижении напряжения питания двумя диодами в цепи питания. Это дает примерное падение напряжения от 1,2 до 1,4 V, и как правило, достаточно для стабильной работы. Отсутствие стабилизирования может быть проблемой для аналоговых схем или при использовании АЦП. Это зависит от потребляемой мощности устройства и стабильности напряжения со стороны ПК.
 


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

Решение B: Преобразование уровней D+ и D-

Вместо уменьшения питания контроллера, мы можем ограничить выходное напряжение на D+ и D- стабилитронами. Мы рекомендуем стабилитроны на 3,6V, которые выглядят как 1N4148 (обычно 500 мВт и менее). Стабилитроны более низкой мощности имеют меньшую емкость и, следовательно, вызывают меньшие искажения на линиях данных. Стабилитроны на 3,6V лучше, чем на 3,3V, поскольку на 3,3V дают в сочетании с 1,5 кОм резистором на линиях данных D+ и D- лишь около 2,7V. Со стабилитронами на 3,3V устройство не может быть достоверно определено!



Преимущества использования стабилитронов:
Низкая стоимость, легко достать.
Вся конструкция может быть запитана от 5V.
AVR может работать на высокой частотой.
Недостатки:
Не совсем правильное решение, должен быть найден компромисс между всеми параметрами.
Стабилитроны поставляются с широким диапазоном характеристик, поэтому возможна низкая повторяемость от устройства  к устройству.
Большой ток при передаче данных на высоком уровне.
 
 
P.S. Мои добавления.
 
Вопрос:
В одних схемных решениях D+ подтянут резистором 1М к питанию, в других - к общему проводу. Кто может объяснить как всё-таки правильно? p.s. У меня вообще ни в одной схеме не установлен
Ответ:
Я пробовал так и так - работает одинаково.
Но резистор всё таки лучше поставить, уменьшив его номинал до 100 К.
Как я понял, он требуется для установки фиксированного лог. уровня когда линию "слушают" МК и комп, другими словами - от помех.
 

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

1. Тщательно проверяем все компоненты на соответствие номиналам и их качество. Очень часто вместо 68Ом впаивают 68кОм, и т.д. и т.п. А потом пишут: "На монтаж носом не тыкать - проверил уже СтОпитСОт раззЗ!". Общая ёмкость электролитических блокировочных конденсаторов не должна превышать 22 мКФ! Это связано с тем, что на некоторых материнках срабатывает токовая защита во время подключения, когда заряжаются конденсаторы.
Стабилитроны нельзя выбрасывать из схемы или устанавливать неправильно! Нужно точечкой или полоской к портам USB!
2. Проверяем качество монтажа - КЗ, непропаи, не в те дырочки элементы впаяли...
3. После монтажа ТЩАТЕЛЬНО очищаем плату от флюса.
4. Проверяем питание на контроллере - оно должно быть в пределах 5 вольт или 3,6 вольт в зависимости от схемы включения.
5. Проверить, запустился ли кварцевый генератор МК. Это можно сделать с помощью осциллографа, подключив его к выводу 10 МК. Если нет осциллографа, то можно определить запуск генератора и с помощью обычного светодиода.
Для этого к выводу 10 МК через токоограничительный резистор номиналом 330 – 510 Ом подключается светодиод, анодом к МК, катодом на землю. При подаче питания светодиод должен слабо светиться.
6. Если устройство всё равно упорно не определяется - подбираем R1.
На работе перепробовал на очень многих машинах, и только на одном ноутбуке ASUS у меня устройство не определилось.
Промер напряжения в точке D- относительно массы показал 2,9 вольта. Подтягивающий резистор 2,2кОм я заменил на 1,3кОм. Напряжение поднялось до 3,1 вольта. Устройство определилось! При 1,5кОм работало не стабильно - определялось через раз. Связано это с тем, что уровни ЮСБ на разных машинах разные. После установки 1,3кОм стал пробовать на остальных машинах, всё работало стабильно! Конечно, это не панацея от всех возможных проблем. Но это цена за дешевизну, т.к. используя специализированные контроллеры мы значительно удорожаем устройство.

Вывод такой: мной протестировано более десятка машин, люди в сети протестировали десятки тысяч машин (а может сотни!?).
Если придерживаться вышеуказанных правил, можно устройство запустить практически на любом ЮСБ!

 
Категория: Мои статьи | Добавил: bascom (17.11.2010)
Просмотров: 10132
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright Radan Studio © 2024