реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Делаем AVR USB (software) правильно, уровень схемы
MAXvaLL
сообщение Nov 28 2008, 13:26
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



При реализации софтварного 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х Мгц. Работает. Насколько это корректно? (Полученная точность устраивает)
Go to the top of the page
 
+Quote Post
Dimonira
сообщение Nov 28 2008, 13:38
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 405
Регистрация: 4-10-04
Пользователь №: 777



Имхо самое правильное, это использовать то, что специально предназначено для интерфейса USB. Всё остальное уже в той или иной степени "неправильно" априори.
То же самое я бы сказал и про работу в нерекомендуемых режимах.
Лучше сразу взять то, что сможет штатно обеспечить ваши требования. Неужели вам не хватает из чего выбрать?
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Nov 28 2008, 13:47
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



Цитата
Минимальная необходимая частота 12 Мгц, а при использовании внутреннего генератора 16.5 Мгц.

8 МГц гарантируеся при 2.7В. 3.6 выше на 1 вольт, так что 12 МГц должно работать без проблем. 16 МГц - сомневаюсь (разве что кристаллы произведенные по новой технологии).
Go to the top of the page
 
+Quote Post
MAXvaLL
сообщение Nov 28 2008, 13:56
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



Цитата(Dimonira @ Nov 28 2008, 16:38) *
Имхо самое правильное, это использовать то, что специально предназначено для интерфейса USB. Всё остальное уже в той или иной степени "неправильно" априори.
То же самое я бы сказал и про работу в нерекомендуемых режимах.
Лучше сразу взять то, что сможет штатно обеспечить ваши требования. Неужели вам не хватает из чего выбрать?


Это понятно. Но это излишества для данного случая. Но ведь делают ТАК, и работает. Вопрос в том что менее неправильно =)

Вариант 3 например вообще ничем не плох для USB ИМХО.

Кто уточнит, какой вольтаж жрет USB?
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Nov 28 2008, 14:54
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



Цитата
Кто уточнит, какой вольтаж жрет USB?

имхо лучше не превышать 3.6В, т.е. с двумя диодами - самая правильная схема. Ограничивать уровень стабилитронами - жестоко по отношению к ногам контроллера. Питать от 5В без ограничителей - поделка на соплях для конкретного компьютера, на другом с высокой вероятностью не заработает.
Go to the top of the page
 
+Quote Post
MAXvaLL
сообщение Nov 28 2008, 16:03
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



Цитата(ukpyr @ Nov 28 2008, 17:54) *
имхо лучше не превышать 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В
Удивительно, как это работает =)
Go to the top of the page
 
+Quote Post
Jhohn
сообщение Nov 28 2008, 20:27
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 12-11-08
Пользователь №: 41 579



Цитата(MAXvaLL @ Nov 28 2008, 19:03) *
Все же, чем плох вариант со стабилитронами??? (Если искажение формы не критично)


Стабилитрон не надежный, у него разброс будет напряжения стабилизации, и в серийном производстве не годится. smile.gif + потребление большое.


Цитата(MAXvaLL @ Nov 28 2008, 19:03) *
Кто уточнит, какой вольтаж жрет USB?


ой, не помню, 0.2 А точно выдержит, максимум вроде 0.5 А что-то так, а точнее читай: " Павел Агуров - Интерфейс USB.djvu " там все есть smile.gif

Сообщение отредактировал Jhohn - Nov 28 2008, 20:28
Go to the top of the page
 
+Quote Post
Petka
сообщение Nov 28 2008, 20:38
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(MAXvaLL @ Nov 28 2008, 16:26) *
При реализации софтварного USB на AVR возникают вопросы. Как сделать правильно?


Цитата
Делаем AVR USB (softvare) правильно

для начала надо выбрать:
1) профессиональное решение
2) любительское решение
если (1), то проще и дешевле использовать МК к USB на борту. Или внешнюю микросхему с USB.
если (2), то правильно так, как работает "на коленке".
Go to the top of the page
 
+Quote Post
Jhohn
сообщение Nov 28 2008, 20:44
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 12-11-08
Пользователь №: 41 579



Цитата(Petka @ Nov 28 2008, 23:38) *
для начала надо выбрать:
1) профессиональное решение
если (1), то проще и дешевле использовать МК к USB на борту. Или внешнюю микросхему с USB.


+ надежность smile3046.gif
Go to the top of the page
 
+Quote Post
acorn
сообщение Nov 28 2008, 21:19
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 58
Регистрация: 28-11-05
Пользователь №: 11 495



Цитата(MAXvaLL @ Nov 28 2008, 15:56) *
Кто уточнит, какой вольтаж жрет USB?

Ты про ток? Вольтаж-то оно не жрет, а дает по питанию 5В, сигналы - 3х вольтовые. Брать по питанию можно до 500мА, но об этом нужно попросить хост. Чтобы попросить, нужно пройти enumeration потребляя при этом не более 20мА. По умолчанию 100мА дадут.
Go to the top of the page
 
+Quote Post
MAXvaLL
сообщение Nov 29 2008, 07:25
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



Цитата(Petka @ Nov 28 2008, 23:38) *
для начала надо выбрать:
1) профессиональное решение
2) любительское решение
если (1), то проще и дешевле использовать МК к USB на борту. Или внешнюю микросхему с USB.
если (2), то правильно так, как работает "на коленке".


Я уже ответил на подобное предложение выше. Не надо читать морали, я попросил ответ на поставленный вопрос. Вы вообще в жизни все делаете ПРАВИЛЬНО? Может у вас была лицинзионная винда лет 10 назад? (не корпоративная) biggrin.gif

Мне надо сделать 2 устройства, но это не значит что абы-как.

Ставить ФТДИ просто смешно для данного проекта и не оправданно.

Конечно для серьезного проекта я поставлю сайпрес и не буду е. мозг, но повторю, это излишества.

Между прочим, скажите, чем вариант 3 при правильной реализации хуже хардварного ЮСБ? Только не надо махать руками и говорить что это любительское решение. Мне пожалуйста факты изложите.

Цитата(Jhohn @ Nov 28 2008, 23:27) *
Стабилитрон не надежный, у него разброс будет напряжения стабилизации, и в серийном производстве не годится. smile.gif + потребление большое.
ой, не помню, 0.2 А точно выдержит, максимум вроде 0.5 А что-то так, а точнее читай: " Павел Агуров - Интерфейс USB.djvu " там все есть smile.gif


А кому какое дело до этого разброса? По спецификации напряжение должно быть больше 2.8В и меньше 3.6В. Если ваши стабилитроны в это требование не укладываются, то думаю есть смысл сменить поставщика =)))

Почему потребление больше? ток ограничивают резисторами, ну да, немного больше, но опять-таки кому до этого дело (10мА больше или меньше?)

А про ток разговора не было... Именно, 500мА макс.

Цитата(acorn @ Nov 29 2008, 00:19) *
Ты про ток? Вольтаж-то оно не жрет, а дает по питанию 5В, сигналы - 3х вольтовые. Брать по питанию можно до 500мА, но об этом нужно попросить хост. Чтобы попросить, нужно пройти enumeration потребляя при этом не более 20мА. По умолчанию 100мА дадут.


Нет, я про допустимый уровень на линиях данных на входе хоста. Просто тут все говорят про 3.6В , а я в спецификации видел циыру 4.6В
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Nov 29 2008, 08:44
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



Цитата
Это почему? По отношению к МК стабилитроны ставят ПОСЛЕ резисторов, а ЮСБ пофиг, оно всеравно не должно выдавать больше 3.6 В.
емкость низковольтных стабилитронов достигает 500 пФ, для LS может сойдет, но все равно многовато.

Цитата
Между прочим, скажите, чем вариант 3 при правильной реализации хуже хардварного ЮСБ?

не полностью реализован контроль ошибок и некоторые другие фишки

Сообщение отредактировал ukpyr - Nov 29 2008, 08:45
Go to the top of the page
 
+Quote Post
MAXvaLL
сообщение Nov 29 2008, 09:13
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 26-12-07
Пользователь №: 33 639



Цитата(ukpyr @ Nov 29 2008, 11:44) *
не полностью реализован контроль ошибок и некоторые другие фишки

Выходные данные контролируются полностью хостом.

Входне не полностью? А откуда такая информация?
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Nov 29 2008, 12:17
Сообщение #14


Профессионал
*****

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



вроде АВР выдает АСК независимо от правильности полученных данных (на проверку нет времени)
Go to the top of the page
 
+Quote Post
Rst7
сообщение Nov 29 2008, 13:30
Сообщение #15


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
вроде АВР выдает АСК независимо от правильности полученных данных (на проверку нет времени)


Именно так. Я дорабатывал драйвер от ObjDev и выкладывал его тут на форуме. При кварце 20МГц выполняется подсчет CRC на лету, так что неправильные пакеты NAK'аются. В железе я его, правда, не проверял, так что надо доводить до ума. Если интересно - поищите.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01479 секунд с 7
ELECTRONIX ©2004-2016