Перейти к содержанию
    

как я понимаю, об обработке таких запросов мы сообщаем, отдавая бит что бы можем remote wakeup делать. Я не ставлю его.

Не, remote wakeup это когда девайс будит спящий хост. А я про реакцию на отсутствие активности шины - через 3мс будет early suspend, через 10мс suspend. Когда "боролся" с Win XP, заглядывал в HAL, обратил внимание, что они много ненужных прерываний включают, а потом просто флаги дергают в обработчике. Я их не обрабатываю, и все работает нормально, но вдруг есть какой нюанс? В мануале на этот счет как-то тихо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал с CDC один "грязный хак" - указать для двух портов одну и ту же interrupt notification EP. Под ХР работает без проблем, а вот под восьмеркой увы.

 

Добавил аудиоустройство (пока только на вывод аудио, в смысле на ввод в компьютер). Получилась интересная штука - под ХР все работает, по восьмеркой драйвер устанавливается, система сообщает, что устройство работает нормально, но источник сигнала в восьмерке не появляется. Продолбался полдня - результат 0. Фигня какая-то... Думал самое сложное будет передачу/прием данных сделать, а вон оно как вышло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Долго объяснять... Для проверки моей идеи поменяй product I'd например... Про то что радиоприёмник с передатчиком ставятся в запрещённой состоянии помнишь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Долго объяснять... Для проверки моей идеи поменяй product I'd например...

Это уже пробовал, не прокатило. Помогла смена типа терминала на "Микрофон" - девайс появился, но запись не работает - причем, как изначально в Zero Bandwidth восьмерка сконфигурировала интерфейс, так никаких попыток что-то включить и не предпринимает. Придется наверное и на восьмерку сниффер ставить...

 

На ХР все четко - включаешь запись интерфейс переключается в другую конфигурацию и все поехало, запись закончилась обратно в Zero Bandwidth.

 

Про то что радиоприёмник с передатчиком ставятся в запрещённой состоянии помнишь?

А это как?

Изменено пользователем Шаманъ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это вот так:

post-28634-1490633158_thumb.png

post-28634-1490633197_thumb.png

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это вот так:

А понятно, это я знаю, смутило слово "запрещенное состояние", везде просто написано "отключенное состояние". Но то фигня, непонятно что восьмерке не нравится. Сейчас сниффер скачаю, посмотрю. Заодно новый инструмент опробую, притом бесплатный.

 

Поставил Microsoft Message Analyser - очень классная штука. Но проблем по части обмена с устройством нет - все в полном порядке. Но аудио интерфес после перевода в Zero Bandwidth так и остается в нем и никаких команд более на него не отправляется. Видимо что-то не нравится восьмерке в моих дескрипторах. Где-то помнится встречал упоминание, что она хочет чтобы девайс предоставлял какие-нибудь функции управления. Добавить Feature Unit что-ли...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Олег, в моем демонстрационном бинарнике feature unit отсутствует и в приемнике и в передатчике - и ничего, работает...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Олег, в моем демонстрационном бинарнике feature unit отсутствует и в приемнике и в передатчике - и ничего, работает...

Работает под чем? У меня под ХР тоже работает отлично, даже не ожидал такой засады с восьмеркой и куда копать не знаю. Блин, я в тупике...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в десятке, семерке и XP работает, надо ешё поискать у кого восьмёрка. А может это не-ZLP виновато?

Поможет ли тебе для диагностики тестовая прошивка-радиоприемник всегда выдавал тон?

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в десятке, семерке и XP работает

Ну тогда и в восьмерке должно.

А может это не-ZLP виновато?

А причем здесь оно, если восьмерка даже не хочет активировать альтернативную конфигурацию AS интерфейса. Т.е. она фактически не хочет тупо включить "USB звуковуху". К тому же в изохронном обмене большого смысла в ZLP нет, разве что для начальной синхронизации.

 

Поможет ли тебе для диагностики тестовая прошивка-радиоприемник всегда выдавал тон?

Да я так понимаю, что можно загрузить ту, что у меня есть и посмотреть. Кстати, а как там JTAG сконфигурирован, а то мне чтобы ее вытереть пришлось BOOT0 переключать. Наверное в SWD переключен?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да, я в swd переключаю. Сейчас эта тестовая прошивка ничего не отдает...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все нашел проблему. У меня была конфигурация 12000Гц частота дискретизации два 24битных канала, упакованных в 32битные слоты. Короче что-то в этом всем восьмерке не понравилось . Сейчас поставил 16бит 48кГц и все заработало. Возникает резонный вопрос - за что это ее так улучшили, что ХР понимал бОльше форматов?

 

Все, разобрался. Короче восьмерка поддерживает не все форматы, которые ХР поддерживает, это первое. Второе, она (в отличии от ХР) не обновляет конфигурацию устройств, т.е. если поменяли в дескрипторе частоту дискретизации или размер пакета, надо переустановить драйвер (собственно из-за этого все так и затянулось - я форматы сразу начал перебирать, но устройство не удалял).

 

Вот собственно и все. Свою проблему с не поддерживаемым форматом решил за счет перехода на 32битные сэмплы (теперь только не факт, что на ХР будет работать, завтра проверю).

Изменено пользователем Шаманъ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насчет переустановки (я очищаю от устройств через device manager, включив показ скрытых) - это как раз то что я предложил проверить изменив product id.

 

А вот еще одно на W10: если в устройстве два формата у приемника (48к*16 стерео или 96к*24 стерео) - переключается прекрасно. Если стоит например 40к*16 стерео и 80к*24 стерео - виден только первый формат. Причём, по одиночке любой их них виден...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насчет переустановки (я очищаю от устройств через device manager, включив показ скрытых) - это как раз то что я предложил проверить изменив product id.

Просто удаление устройства тоже работает (в смысле кликнуть правой кнопкой по подключенному устройству и выбрать "Удалить").

 

По части форматов восьмерке не понравилась упаковка 24битных отсчетов в 4байтные слоты, при этом она работает с 24битными отсчетами в 3байтных слотах и 32битными в 4х байтных, последнее это фактически то же самое, что и первое.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Решил поглядеть что там с кварцем, и обнаружил странность. Кварц генерирует как и положено ему 8000кГц (если быть точным, то 8000.5кГц), внутренний генератор (внимание!) 16380кГц, т.е. частота тактирования USB от него около 49.14МГц. При этом с ним работает, а с кварцем нет. У меня только одна мысль - джиттер, он может быть по двум причинам:

1. Дурацкий дизайн китайской платы по части генератора (они зачем-то вытянули наружу платы пины к которым подключен резонатор).

2. Плохой резонатор - может генератор работает нестабильно, "на грани" так сказать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...