MAXvaLL 0 28 ноября, 2008 Опубликовано 28 ноября, 2008 · Жалоба При реализации софтварного USB на AVR возникают вопросы. Как сделать правильно? Видел варианты: 1. МК питается 5В от шины. D+ и D- напрямую к МК через резисторы ~ 200 Ом. D- подтянута на +5В через резистор ~10кОм. Проблемы: по спецификации USB макс. допустимый уровень сигнала относительно земли 4.6В (или даже меньше) Смотрим USB2.0 Spec. Figure 7-2. Maximum Input Waveforms for USB Signaling Можно спалить порт. 2. То же что и 1. , но дополнительно на D+ и D- поставлены стабилитроны на 3.6В (на землю), а вместо резисторов на 200 Ом стоят по 68 Ом. Проблема: емкость стабилитронов - искажение формы сигнала. И всеравно будут выбросы. 3. МК питается от 3.3-3.6В от шины через стабилизатор или 2 диода. Подтяжка D- 1.5 кОм. На D+ и D- стоят резисторы по 68 Ом или вообще без резисторов. Проблема: Минимальная необходимая частота 12 Мгц, а при использовании внутреннего генератора 16.5 Мгц. Насколько корректно гонять МК на такихз частотах при таком питании? В даташите как-то туманно про это написано: на титульной странице одно, на графиках другое, и ничего конкретного я так и не нашел. Лично я использовал вариант 3. МК ATmega8 при кварце 12МГц. Работает. Интересует заведется ли Tiny25 на 16.5 Мгц при питании 3.5-3.6В ? Еще: атмел советует не гонять встроенный ацп быстрее 1 МГц (тактирование) Я запустил при 3х Мгц. Работает. Насколько это корректно? (Полученная точность устраивает) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimonira 0 28 ноября, 2008 Опубликовано 28 ноября, 2008 · Жалоба Имхо самое правильное, это использовать то, что специально предназначено для интерфейса USB. Всё остальное уже в той или иной степени "неправильно" априори. То же самое я бы сказал и про работу в нерекомендуемых режимах. Лучше сразу взять то, что сможет штатно обеспечить ваши требования. Неужели вам не хватает из чего выбрать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ukpyr 0 28 ноября, 2008 Опубликовано 28 ноября, 2008 · Жалоба Минимальная необходимая частота 12 Мгц, а при использовании внутреннего генератора 16.5 Мгц. 8 МГц гарантируеся при 2.7В. 3.6 выше на 1 вольт, так что 12 МГц должно работать без проблем. 16 МГц - сомневаюсь (разве что кристаллы произведенные по новой технологии). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MAXvaLL 0 28 ноября, 2008 Опубликовано 28 ноября, 2008 · Жалоба Имхо самое правильное, это использовать то, что специально предназначено для интерфейса USB. Всё остальное уже в той или иной степени "неправильно" априори. То же самое я бы сказал и про работу в нерекомендуемых режимах. Лучше сразу взять то, что сможет штатно обеспечить ваши требования. Неужели вам не хватает из чего выбрать? Это понятно. Но это излишества для данного случая. Но ведь делают ТАК, и работает. Вопрос в том что менее неправильно =) Вариант 3 например вообще ничем не плох для USB ИМХО. Кто уточнит, какой вольтаж жрет USB? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ukpyr 0 28 ноября, 2008 Опубликовано 28 ноября, 2008 · Жалоба Кто уточнит, какой вольтаж жрет USB? имхо лучше не превышать 3.6В, т.е. с двумя диодами - самая правильная схема. Ограничивать уровень стабилитронами - жестоко по отношению к ногам контроллера. Питать от 5В без ограничителей - поделка на соплях для конкретного компьютера, на другом с высокой вероятностью не заработает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MAXvaLL 0 28 ноября, 2008 Опубликовано 28 ноября, 2008 · Жалоба имхо лучше не превышать 3.6В, т.е. с двумя диодами - самая правильная схема. Ограничивать уровень стабилитронами - жестоко по отношению к ногам контроллера. Я согласен! Но, как я уже говорил, возникает проблема работы МК на высоких частотах при таком питании, а это необходимо! Это почему? По отношению к МК стабилитроны ставят ПОСЛЕ резисторов, а ЮСБ пофиг, оно всеравно не должно выдавать больше 3.6 В. ------------------------- Если верить графикам в ДШ на тини х5, при 3.3В гарантируют работу до 13МГц, а при 4В до 17МГц. Так что шанс что работать будет на 16.5МГц от 3.6В есть, но с некоторой натяжкой... Только вот где взять эти 3.6В? Диоды низя, т.к. если с юсб придет чуть меньше 5В, то питание МК упадет, а оно и так на пределе... Все же, чем плох вариант со стабилитронами??? (Если искажение формы не критично) Кстати, что-то я раньше не обращал внимания, но тут http://www.cesko.host.sk/IgorPlugUSB/IgorP...20(AVR)_eng.htm тоже разновидность варианта 1. Но резисторы по 68Ом, да еще и подтяжка 1.5кОм от 5В Удивительно, как это работает =) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jhohn 0 28 ноября, 2008 Опубликовано 28 ноября, 2008 (изменено) · Жалоба Все же, чем плох вариант со стабилитронами??? (Если искажение формы не критично) Стабилитрон не надежный, у него разброс будет напряжения стабилизации, и в серийном производстве не годится. :) + потребление большое. Кто уточнит, какой вольтаж жрет USB? ой, не помню, 0.2 А точно выдержит, максимум вроде 0.5 А что-то так, а точнее читай: " Павел Агуров - Интерфейс USB.djvu " там все есть :) Изменено 28 ноября, 2008 пользователем Jhohn Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Petka 0 28 ноября, 2008 Опубликовано 28 ноября, 2008 · Жалоба При реализации софтварного USB на AVR возникают вопросы. Как сделать правильно? Делаем AVR USB (softvare) правильно для начала надо выбрать: 1) профессиональное решение 2) любительское решение если (1), то проще и дешевле использовать МК к USB на борту. Или внешнюю микросхему с USB. если (2), то правильно так, как работает "на коленке". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jhohn 0 28 ноября, 2008 Опубликовано 28 ноября, 2008 · Жалоба для начала надо выбрать: 1) профессиональное решение если (1), то проще и дешевле использовать МК к USB на борту. Или внешнюю микросхему с USB. + надежность :smile3046: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acorn 0 28 ноября, 2008 Опубликовано 28 ноября, 2008 · Жалоба Кто уточнит, какой вольтаж жрет USB? Ты про ток? Вольтаж-то оно не жрет, а дает по питанию 5В, сигналы - 3х вольтовые. Брать по питанию можно до 500мА, но об этом нужно попросить хост. Чтобы попросить, нужно пройти enumeration потребляя при этом не более 20мА. По умолчанию 100мА дадут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MAXvaLL 0 29 ноября, 2008 Опубликовано 29 ноября, 2008 · Жалоба для начала надо выбрать: 1) профессиональное решение 2) любительское решение если (1), то проще и дешевле использовать МК к USB на борту. Или внешнюю микросхему с USB. если (2), то правильно так, как работает "на коленке". Я уже ответил на подобное предложение выше. Не надо читать морали, я попросил ответ на поставленный вопрос. Вы вообще в жизни все делаете ПРАВИЛЬНО? Может у вас была лицинзионная винда лет 10 назад? (не корпоративная) Мне надо сделать 2 устройства, но это не значит что абы-как. Ставить ФТДИ просто смешно для данного проекта и не оправданно. Конечно для серьезного проекта я поставлю сайпрес и не буду е. мозг, но повторю, это излишества. Между прочим, скажите, чем вариант 3 при правильной реализации хуже хардварного ЮСБ? Только не надо махать руками и говорить что это любительское решение. Мне пожалуйста факты изложите. Стабилитрон не надежный, у него разброс будет напряжения стабилизации, и в серийном производстве не годится. :) + потребление большое. ой, не помню, 0.2 А точно выдержит, максимум вроде 0.5 А что-то так, а точнее читай: " Павел Агуров - Интерфейс USB.djvu " там все есть :) А кому какое дело до этого разброса? По спецификации напряжение должно быть больше 2.8В и меньше 3.6В. Если ваши стабилитроны в это требование не укладываются, то думаю есть смысл сменить поставщика =))) Почему потребление больше? ток ограничивают резисторами, ну да, немного больше, но опять-таки кому до этого дело (10мА больше или меньше?) А про ток разговора не было... Именно, 500мА макс. Ты про ток? Вольтаж-то оно не жрет, а дает по питанию 5В, сигналы - 3х вольтовые. Брать по питанию можно до 500мА, но об этом нужно попросить хост. Чтобы попросить, нужно пройти enumeration потребляя при этом не более 20мА. По умолчанию 100мА дадут. Нет, я про допустимый уровень на линиях данных на входе хоста. Просто тут все говорят про 3.6В , а я в спецификации видел циыру 4.6В Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ukpyr 0 29 ноября, 2008 Опубликовано 29 ноября, 2008 (изменено) · Жалоба Это почему? По отношению к МК стабилитроны ставят ПОСЛЕ резисторов, а ЮСБ пофиг, оно всеравно не должно выдавать больше 3.6 В.емкость низковольтных стабилитронов достигает 500 пФ, для LS может сойдет, но все равно многовато. Между прочим, скажите, чем вариант 3 при правильной реализации хуже хардварного ЮСБ? не полностью реализован контроль ошибок и некоторые другие фишки Изменено 29 ноября, 2008 пользователем ukpyr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MAXvaLL 0 29 ноября, 2008 Опубликовано 29 ноября, 2008 · Жалоба не полностью реализован контроль ошибок и некоторые другие фишки Выходные данные контролируются полностью хостом. Входне не полностью? А откуда такая информация? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ukpyr 0 29 ноября, 2008 Опубликовано 29 ноября, 2008 · Жалоба вроде АВР выдает АСК независимо от правильности полученных данных (на проверку нет времени) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 29 ноября, 2008 Опубликовано 29 ноября, 2008 · Жалоба вроде АВР выдает АСК независимо от правильности полученных данных (на проверку нет времени) Именно так. Я дорабатывал драйвер от ObjDev и выкладывал его тут на форуме. При кварце 20МГц выполняется подсчет CRC на лету, так что неправильные пакеты NAK'аются. В железе я его, правда, не проверял, так что надо доводить до ума. Если интересно - поищите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться