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

 
 
> Делаем 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
 
Start new topic
Ответов
ukpyr
сообщение Nov 28 2008, 14:54
Сообщение #2


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

Группа: Участник
Сообщений: 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
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 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
QuickWitted
сообщение Dec 2 2008, 14:18
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(MAXvaLL @ Nov 28 2008, 21:03) *
Кстати, что-то я раньше не обращал внимания, но тут
http://www.cesko.host.sk/IgorPlugUSB/IgorP...20(AVR)_eng.htm
тоже разновидность варианта 1. Но резисторы по 68Ом, да еще и подтяжка 1.5кОм от 5В
Удивительно, как это работает =)


А оно и не работает...

По твоей классификации вариант со стабилитронами
я делал так:
http://www.swordgreenline.narod.ru/IgorPlug2.html

При правильной сборке - заводится сразу...
(количество повторений превысило 2000, все возникшие проблемы решались.)

Цитата
Знатоки AVR USB, отзовитесь!


И.


Цитата(MAXvaLL @ Dec 1 2008, 01:13) *
Теоретически да, нужно чтобы устройство имело 2 различных интерфейса, каждому из которых сопоставленны свои ендпоинты. (если в этом МК нет ограничений этому препятствующих, то можно и практически)


Сам то понял что написал?
Нужно два дескриптора, а не "ендпоинты"

пример - клава и мыша

static const char hidReportDescriptor0[] PROGMEM = {
/* partial keyboard */
0x05, 0x01, /* Usage Page (Generic Desktop), */
0x09, 0x06, /* Usage (Keyboard), */
0xA1, 0x01, /* Collection (Application), */
0x85, 0x01, /* Report Id (1) */
0x95, 0x04, /* Report Count (4), */
0x75, 0x08, /* Report Size (8), */
0x15, 0x00, /* Logical Minimum (0), */
0x25, 0x65, /* Logical Maximum(101), */
0x05, 0x07, /* Usage Page (Key Codes), */
0x19, 0x00, /* Usage Minimum (0), */
0x29, 0x65, /* Usage Maximum (101), */
0x81, 0x00, /* Input (Data, Array), ;Key arrays (4 bytes) */
0xC0, /* End Collection */

/* mouse */
0x05, 0x01, /* Usage Page (Generic Desktop), */
0x09, 0x02, /* Usage (Mouse), */
0xA1, 0x01, /* Collection (Application), */
0x09, 0x01, /* Usage (Pointer), */
0xA1, 0x00, /* Collection (Physical), */
0x05, 0x09, /* Usage Page (Buttons), */
0x19, 0x01, /* Usage Minimum (01), */
0x29, 0x03, /* Usage Maximun (03), */
0x15, 0x00, /* Logical Minimum (0), */
0x25, 0x01, /* Logical Maximum (1), */
0x85, 0x02, /* Report Id (2) */
0x95, 0x03, /* Report Count (3), */
0x75, 0x01, /* Report Size (1), */
0x81, 0x02, /* Input (Data, Variable, Absolute), ;3 button bits */
0x95, 0x01, /* Report Count (1), */
0x75, 0x05, /* Report Size (5), */
0x81, 0x01, /* Input (Constant), ;5 bit padding */
0x05, 0x01, /* Usage Page (Generic Desktop), */
0x09, 0x30, /* Usage (X), */
0x09, 0x31, /* Usage (Y), */
0x15, 0x81, /* Logical Minimum (-127), */
0x25, 0x7F, /* Logical Maximum (127), */
0x75, 0x08, /* Report Size (8), */
0x95, 0x02, /* Report Count (2), */
0x81, 0x06, /* Input (Data, Variable, Relative), ;2 position bytes (X & Y) */
0xC0, /* End Collection, */
0xC0, /* End Collection */
};


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
MAXvaLL
сообщение Dec 2 2008, 17:42
Сообщение #5


Местный
***

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



Цитата(QuickWitted @ Dec 2 2008, 17:18) *
И.

Сам то понял что написал?
Нужно два дескриптора, а не "ендпоинты"


Что, И?

Вопрос задан:
USB_PUBLIC uchar usbFunctionSetup(uchar data[8])
из драйвера ObDev (ссылка выше)
которая вызывается при приходе управляющей транзакции.
Интересует что будет, если обнаружиться ошибка приема пакета? Будет ли вызванна функция?

Я-то понял, а вы?
Я написал, что надо 2 ИНТЕРФЕЙСА. (а бывают интерфейсы без ЕП?!)
Соответственно каждому интерфейсу по дескриптору.
Go to the top of the page
 
+Quote Post
QuickWitted
сообщение Dec 2 2008, 18:07
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(MAXvaLL @ Dec 2 2008, 22:42) *
Вопрос задан:
USB_PUBLIC uchar usbFunctionSetup(uchar data[8])
из драйвера ObDev (ссылка выше)
которая вызывается при приходе управляющей транзакции.
Интересует что будет, если обнаружиться ошибка приема пакета? Будет ли вызванна функция?


Цитата
У меня вопрос немного в сторону, но может кто знает, возможно ли в AT90USB162 настроить так, чтобы определялась в виндах как два устройства одновременно, например клава и RS232


тебя спросили про два устройства.
и не в теории а на практике.

Цитата
Соответственно каждому интерфейсу по дескриптору.


и получится 2 интерфейса, а тебя просили "чтобы определялась в виндах как два устройства одновременно" т.е. на один.


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- MAXvaLL   Делаем AVR USB (software) правильно   Nov 28 2008, 13:26
- - Dimonira   Имхо самое правильное, это использовать то, что сп...   Nov 28 2008, 13:38
- - ukpyr   ЦитатаМинимальная необходимая частота 12 Мгц, а пр...   Nov 28 2008, 13:47
- - MAXvaLL   Цитата(Dimonira @ Nov 28 2008, 16:38) Имх...   Nov 28 2008, 13:56
|- - acorn   Цитата(MAXvaLL @ Nov 28 2008, 15:56) Кто ...   Nov 28 2008, 21:19
|- - MAXvaLL   Цитата(QuickWitted @ Dec 2 2008, 21:07) т...   Dec 2 2008, 19:18
|- - QuickWitted   Цитата(MAXvaLL @ Dec 3 2008, 00:18) Хоть ...   Dec 3 2008, 02:35
|- - QuickWitted   Вопрос к АЛЛ как до HID достучаться с Дэльфи? Как...   Dec 3 2008, 16:31
|- - QuickWitted   Что то тема заглохла... Вопрос к АЛЛ как до HID д...   Dec 6 2008, 03:57
|- - Marian   Цитата(QuickWitted @ Dec 3 2008, 19:31) к...   Jun 22 2009, 16:29
- - Jhohn   Цитата(MAXvaLL @ Nov 28 2008, 19:03) Все ...   Nov 28 2008, 20:27
- - Petka   Цитата(MAXvaLL @ Nov 28 2008, 16:26) При ...   Nov 28 2008, 20:38
|- - MAXvaLL   Цитата(Petka @ Nov 28 2008, 23:38) для на...   Nov 29 2008, 07:25
|- - Petka   Цитата(MAXvaLL @ Nov 29 2008, 10:25) Мне ...   Nov 29 2008, 14:12
- - Jhohn   Цитата(Petka @ Nov 28 2008, 23:38) для на...   Nov 28 2008, 20:44
- - ukpyr   ЦитатаЭто почему? По отношению к МК стабилитроны с...   Nov 29 2008, 08:44
|- - MAXvaLL   Цитата(ukpyr @ Nov 29 2008, 11:44) не пол...   Nov 29 2008, 09:13
- - ukpyr   вроде АВР выдает АСК независимо от правильности по...   Nov 29 2008, 12:17
- - Rst7   Цитатавроде АВР выдает АСК независимо от правильно...   Nov 29 2008, 13:30
- - ukpyr   ЦитатаОверклокинг. для 2.7В - да, для 3.6В - нет (...   Nov 29 2008, 14:28
- - Rst7   ЦитатаСтавить ФТДИ просто смешно для данного проек...   Nov 29 2008, 14:52
- - MAXvaLL   Цитата(ukpyr @ Nov 29 2008, 15:17) вроде ...   Nov 29 2008, 18:10
|- - Rst7   Цитата(MAXvaLL @ Nov 29 2008, 20:10) Не м...   Nov 29 2008, 18:23
|- - MAXvaLL   Цитата(Rst7 @ Nov 29 2008, 21:23) Функция...   Nov 29 2008, 18:29
- - vvvvv   У меня вопрос немного в сторону, но может кто знае...   Nov 30 2008, 12:34
- - Jhohn   Цитата(MAXvaLL @ Nov 29 2008, 21:29) Но у...   Nov 30 2008, 19:00
- - MAXvaLL   Цитата(vvvvv @ Nov 30 2008, 15:34) У меня...   Nov 30 2008, 20:13
- - MAXvaLL   Знатоки AVR USB, отзовитесь!   Dec 1 2008, 18:51
- - Xenia   Кто знает, отчего берутся USB-запросы (CDC Class R...   Jun 21 2009, 00:35
|- - Genadi Zawidowski   Цитата(Xenia @ Jun 21 2009, 04:35) Кто зн...   Jun 21 2009, 07:47
|- - Xenia   Цитата(Genadi Zawidowski @ Jun 21 2009, 11...   Jun 21 2009, 14:10
- - Br.Misha   Здраствуйте! Я понимаю что тема уже старая но ...   Aug 24 2009, 19:07


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 21:03
Рейтинг@Mail.ru


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