Например TDA7294

Форум РадиоКот • Просмотр темы - Вопрос к знатокам USB
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 14:43:30

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 23 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопрос к знатокам USB
СообщениеДобавлено: Пн апр 23, 2018 14:32:41 
Друг Кота
Аватар пользователя

Карма: 74
Рейтинг сообщений: 1244
Зарегистрирован: Вс мар 29, 2009 22:09:05
Сообщений: 7517
Рейтинг сообщения: 0
Цитата:
Такое ощущение, что хаб сменил адрес моему устройству, а сам продолжает долбиться по 0000000b


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

Цитата:
С английским у меня хреново от слова совсем.


Могу только посоветовать начинать учить его. Без этого ничего серьезного не сделать. В частности, по USB я не встречал публикаций лучше USB made simple и USB in a nutshell. Впрочем, вторую публикацию вроде бы даже перевели, но к переводам я всегда призываю относиться осторожно.

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос к знатокам USB
СообщениеДобавлено: Вт апр 24, 2018 07:22:17 
Друг Кота

Карма: 14
Рейтинг сообщений: 372
Зарегистрирован: Вс фев 15, 2009 01:04:58
Сообщений: 5069
Откуда: Kaluga
Рейтинг сообщения: 0
Точно не менять адрес до сброса ? Все дело в том что в имеющемся примере (для другого процессора но с тем-же контролером) при команде сброса от хоста адрес тоже сбрасывается. В документации на контролер этот момент описан мутновато. Но если послать пустой пакет с адресом 000000, то далее запросов нет вообще, а если с принятым адресом - то следуют запросы дескриптора и только потом ступор. Грешу все-ж на некоррекную генерацию DATA PID - "переворачивать" это бит надо когда, а когда не надо не нашел вообще нигде.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопрос к знатокам USB
СообщениеДобавлено: Вт апр 24, 2018 10:06:50 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Wladimir_TS писал(а):
Формально HS по спецификации используемого контролера, но нигде нет переключения в другой режим потому не знаю.
Заголовок ДШ говорит что FS, да и генератор на 48МГц только для FS. Так что китайский анализатор Вам поможет.

Wladimir_TS писал(а):
Точно не менять адрес до сброса ?
Очень поверхностно глянул ДШ. Такое впечатление, что при генерации хостом сброса USBN сам не сбрасывает свои регистры. Если конечно под firmware понимается прошива внешнего МК.

Цитата:
On USB reset, the firmware has 10 mS for set-up, and should write 0x80 to the FAR register and 0x00 to the EPC0 register.
On receipt of a SET_ADDRESS command, the firmware must write 0x40 to the EPC0 register and 0x80
<assigned_function_address> to the FAR register. It must then queue a zero length IN packet to complete the status phase
of the SET_ADDRESS control sequence


С точки зрения протокола. После сброса все запросы идут на адрес ноль. После прихода пакета установки адерса, отвечаешь ZLP как от безадресного устройства (я это уже писал). Дело в том, что подчиненное устройство само никогда не начнет передачу, только после запроса IN. А хост после установки адреса, будет слать IN к безадресному устройству (адр. 0). Получив от такого адреса ZLP, далее хост будет слать пакеты уже на установленный адрес. Другой вопрос, как это реализовать на Вашем контроллере, надо разбираться, может какие-то вещи сам на себя берет.

Сброс от хоста (SE0) - это работа с чистого листа. Хост работает с функцией, что-то не понравилось - послал SE0 на линию и пробует все сначала. Пытаться он будет так максимум три раза. По факту с STM у меня проходило 4 сброса (на кривой прошивке), по всей видимости первый SE0 был ложный, в момент подключения к USB.

Wladimir_TS писал(а):
Грешу все-ж на некоррекную генерацию DATA PID - "переворачивать" это бит надо когда, а когда не надо не нашел вообще нигде.
Насколько я помню, если ваши данные не входят в один пакет, а передаются частями, надо чередовать Data0, DATA1. Некий контроль целостности порядка передачи данных. Начинать с DATA0. Судя по размеру буфера 8 байт, Вам почти всегда надо разбивать данные на пакеты.
Еще вспомнил нюанс. Вроде где-то в каком-то дискрепоторе устанавливается максимальный размер передаваемых данных в пакете. Например установлено 8 байт. Вам нужно передать 15 байт. В первом пакете ушло 8 байт, во втором 7. Хост увидел что пакет не полный и знает что данные все отправлены.
Второй случай. Отправляете данные кратные размеру пакета. Например 24 байта. Для хоста идут полные пакеты и он не может определить что данные все. Поэтому после 24 байт, надо отправить еще zlp не забывая переключать data0/1.
После получения данных хост ответит zlp.

Это я все из памяти своей ненадежной, так что могу безбожно врать, уж извините. Кроме того, я работал STM. Там буфер 512 байт за вычетом небольшого. Наверное я устанавливал размер предела пакета 1024 байта, а слал всегда значительно меньше и все в одном пакете. Кроме того возможно STM сам чередует data0/1, но скорее всего ничего не чередовал, т.к. нет необходимости.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 23 ]    , 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y