|
mass storage ... |
|
|
|
Aug 6 2008, 14:42
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 29-02-08
Пользователь №: 35 500

|
Не определяется USB из тестового примера на AT91SAM7A3 на некоторых ПК на XP SP2, при этом при подключении через usb-хаб все работает.
Сообщение отредактировал Меандр - Aug 6 2008, 14:43
|
|
|
|
|
Aug 7 2008, 20:21
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата(Меандр @ Aug 6 2008, 20:03)  и не у меня одного http://electronix.ru/forum/index.php?s=&am...st&p=359663, что характерно матплата тоже из новых под AMD  Был косяк когда делал усб, после частично заполненных дескрипторов подключал устрйотсво в винду для тестов. И та его запомнила, пока насильно не удалил его из списка устройств, через диспечер устройств, даже новое переделанное устройство определялось как старое неработающее... Маловероятно но может тут что-то типа того. Попробуйте грохнуть устройство принудительно, и заново найти. (там есть еще галочка показать скрытые устройства, может что-то с таким же вендером и пидом в винде лежит в невидиммых устройствах) И потом если я не ошибаюсь УСБ 2.0 поддерживается асусовскими материнками после СП2, а до этого момента надо ставить драйвер материнки с прилагаемого диска, многие игнорируют этот процесс. Может подобная ситуация... в дескрипторе какая версия усб пробита у вас? Все что смог придумать
|
|
|
|
|
Jun 17 2009, 11:35
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Тоже приступаю к написанию USB Mass Storage, но на STM32. Подскажите, пожалуйста, насчёт дескрипторов текстовых строк.
В частности, нулевой дескриптор должен содержать идентификаторы языка. Достаточно одного, или требуется отдельный LanguageID для каждой строки?
Будет ли русский текст правильно отображаться, если задать ID для английского языка - 0х409?
И ещё - посмотрел обмен по USB всякими снифферами. Что-то они показывают всё с довольно высокого уровня. Имею ввиду, например, Bulk Data In транзакция длиной 4096 байт показана как единая транзакция... Такого же быть не может, так как Bulk endpoints имеют макс. длину пакета равную 64 байтам (512 для High Speed).
То есть на самом деле эта транзакция идёт несколькими пакетами по 64 байта? Да ещё и NAKи случаются, если девайс передаёт данные не сразу...
Как можно посмотреть всю низкоуровневую подноготную транзакций?
|
|
|
|
|
Jun 18 2009, 01:01
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(aaarrr @ Jun 18 2009, 00:22)  Деньги экономят. А изохронная передача >512 байт - для стандартного звука много, а видео STM32 не нужно  Дык там ведь и 512 не получится - таблица конечных точек тоже лежит в этой-же SRAM... Вообще в мануале есть вот такие слова: – If BL_SIZE=1, the memory block is 32 byte large, which allows to reach the maximum packet length defined by USB specifications. With this block size the allocated buffer size ranges from 32 to 1024 bytes, which is the longest packet size allowed by USB standard specificationsИ далее идёт табличка, в которой макс. допустимым размером буффера является, конечно же 512. То есть все эти слова - чистое враньё! Вероятно, изначально в планах ST был всё таки массив в 1024 или даже больше байт, а затем урезали в целях экономии в два раза... Ещё интересно вот это: Reception memory buffer locations are written starting from the address contained in the ADDRn_RX for a number of bytes corresponding to the received data packet length, CRC included (i.e. data payload length + 2),
Ну зачем мне могут понадобиться в буфере два байта CRC при приёме, когда они проверяются аппаратно и автоматически?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|