Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.143.168.172] |
|
Страницы: (14) « Первая ... 11 12 [13] 14 все ( Перейти к последнему сообщению ) |
Сообщ.
#181
,
|
|
|
Проблема решена. Надо movsd использовать
|
Сообщ.
#182
,
|
|
|
Добрый день! Пытался найти помощь на разных форумах но пока там молчок.
Здесь обсуждение идёт по нужной теме! LPC1768 - микроконтроллер HOST взят за основу хост от LPC (который умеет работать с флэшкой) OCHI Почему то не работают interrupt transfers подключаю камеру UVC енумерация проходит, стандартные запросы работают такие как установка адреса, установка интерфейса, установка конфигурации, чтение дескриптора. почему то не работают interrupt transfers (точнее понятно почему - что-то не так делаю но что ... ) HCCA настраиваю (т.е. записываю в массив один указатель на ED) в HC адрес HCCA записываю. ED настроил по аналогии с ED для bulk TD к ED подключил прерывание по передачи TD разрешено (control transfer работают) поля CONTROL в TD и ED не изменяются такие же как и после их инициализации. Может засовываю в HCCA не вовремя - есть такое предположение. вообщем HC ничего с моим EDinterrupt не хочет делать Заранее Спасибо. |
Сообщ.
#183
,
|
|
|
Обнаружил что нужно заполнять ещё регистр USB->HcPeriodicStart=0x3E67;
для опроса по interrupt дескрипторам. но всё равно не работает. пытался отправить дескриптор по bulk на interrupt endpoint - но то же не проходит, впечатление, что хост не трогает этот endpoint вообще. Новые Вопросы: 1. Может ли такое вообще быть, что при запуске передачи вообще ничего не происходит (никакой из дескрипторов вообще не изменяеся ED TD) ? 2. Нужно ли включать interrupt точку? и что будет если послать транзакцию например несуществующей точке. |
Сообщ.
#184
,
|
|
|
немного ошибся реакция HC всё же есть
LPC_USB->HcBulkHeadED = (uint32_t)ed; LPC_USB->HcCommandStatus |= OR_CMD_STATUS_BLF; LPC_USB->HcControl |= OR_CONTROL_BLE; после включения BLE BLF сразу же сбрасывается. Но сами дескрипторы не изменяются и другие регистры HC не меняются. если это же действие проделать с Control endpoint 0 то данные передаются |
Сообщ.
#185
,
|
|
|
Сделал SET_FEATURE для interrupt ep
теперь дескриптор стал обрабатываться ! |
Сообщ.
#186
,
|
|
|
правда возвращает STALL
а через HCCA не хочет почему-то всё-равно работать хотя HcPeriodCurrentED устанавливается правильно сам на нужный ED как же запустить interrupt передачи ??? |
Сообщ.
#187
,
|
|
|
К сожалению, сейчас спешу, поэтому коротко.
Цитата Пришелец @ поля CONTROL в TD и ED не изменяются такие же как и после их инициализации. Цитата Пришелец @ прерывание по передачи TD разрешено (control transfer работают) Правильно ли ты работаешь с точками по прерываниям? Делаешь ли обработчик прерывания по завершении транзакции, если ты включаешь этот бит? Как ты организуешь непрерывную периодичность активного дескриптора. Ведь как он отработал, он больше не выполнится. |
Сообщ.
#188
,
|
|
|
О спасибо! За отклик!!!
да прерывание разрешено по WDH планирую по прерыванию эту точку и обрабатывать т.е. после каждой передачи перенастраивать дескрипторы. но пока суть не в этом - дескриптор не обрабатывается ни одного раза т.е. HeadTd!=TailTd при этом всё же HcPeriodCurrentED устанавливается правильно сам на нужный ED |
Сообщ.
#189
,
|
|
|
Начали обрабатываться и через HCCA !
неправильно был установлен HcPeriodicStart |
Сообщ.
#190
,
|
|
|
Здравствуйте скиньте пожалуйста исходники USB на мыло tyreunion@yandex.ru
|
Сообщ.
#191
,
|
|
|
На сайте usbisnotprogram.org лежат исходники USB, а так же можно найти исходники монитора и принтера 8)
|
Сообщ.
#192
,
|
|
|
У меня проблема c OHCI 1.0 - не устанавливается флаг PORT_ENABLE в регистре PORT_CHANGE после запроса PORT_RESET к USB Flash 2.0 (bcdDevice 1.10). C USB Flash 2.0 (bcdDevice 1.0) таких проблем нет. С релизом OHCI 1.1 работает всё нормально. В чем может быть проблема?
Работа с OHCI 1.0 и USB Flash 2.0 (bcdDevice 1.0) PORT 1 STATUS //после подключения USB Flash 2.0 (bcdDevice 1.0) к OHCI 1.0 wPortStatus = 0101 DevicePresent Powered wPortChange = 0001 ConnectChange //после сброса PORT 1 STATUS wPortStatus = 0103 DevicePresent Enabled Powered wPortChange = 0010 ResetChange //после отключения устройства PORT 1 STATUS wPortStatus = 0100 Powered wPortChange = 0001 ConnectChange Работа с OHCI 1.0 и USB Flash 2.0 (bcdDevice 1.0) PORT 1 STATUS //после подключения USB Flash 2.0 (bcdDevice 1.10) к OHCI 1.0 wPortStatus = 0101 DevicePresent Powered wPortChange = 0001 ConnectChange //после сброса PORT 1 STATUS wPortStatus = 0101 DevicePresent Powered wPortChange = 0011 ConnectChange ResetChange //после отключения устройства PORT 1 STATUS wPortStatus = 0100 Powered wPortChange = 0001 ConnectChange |
Сообщ.
#193
,
|
|
|
я OHCI не программировал (только UHCI пока), но могу сказать, что это происходит врядли из-за версии. Скорее всего ты неправильно резетишь. Возможно допустил ошибку с задержками. Читай другие топики посвященные этой проблеме. И внимательно перечитай спецификацию (особенно что касается резета и инита).
|
Сообщ.
#194
,
|
|
|
Спасибо за ответ! Только не понятно почему с другими флэшками работает? У тестируемых флэшек единственное отличие - строки (bcdDevice 1.0 - рабочая) (bcdDevice 1.10 - не рабочая), размер один и тот же - 2Gb. Но на другой платформе тот же код для OHCI работает с обеими флэшками,но ревизия у контроллера OHCI: reg_rev - 0x110. Ещё есть ноутбук IBM на котором установлен XP и имеется ОНСI, с которым так же не работает эта же флэшка (bcdDevice 1.10).
|
Сообщ.
#195
,
|
|
|
Да,подключив эту флешку (bcdDevice 1.0) через HUB 2.0, она работает, а на прямую нет (не сбрасывается корректно).
|