На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
Страницы: (51) « Первая ... 5 6 [7] 8 9 ...  50 51  ( Перейти к последнему сообщению )  
> Желающим USB под ДОС , Welcome!!!
    Ну и заодно вот это тоже ;)
    Запускать батник, лог будет в pcilog.txt.
    Тоже сюда закинь...
    Прикреплённый файлПрикреплённый файлpci.zip (176.5 Кбайт, скачиваний: 140)
      vpm: Спасибо, большое спасибо. Хоть одной проблемой меньше стало, оказывается 23 и 25 это почти одно и тоже, наверное зависит от версии Windows-а.
      cppasm: это лог от pci.exe, остальное где то через час.
      Прикреплённый файлПрикреплённый файлpcilog.zip (2.16 Кбайт, скачиваний: 133)
        Это лог от ohci.exe

        Detecting OHCI USB Controllers...
        1 OHCI USB Controller(s) detected

        OHCI 0: PCI 00-13-0, VID=0E11h, DID=A0F8h, MM_BASE=E0004000h, IRQ=11
        -= Initializing Host Controller #0=-
        Reset HC: Ok
        Start HC, turn on power

        Detecting USB Devices...
        Device Enumeration
        HC #0, nports=92
        port=2906, no device [00000100]
        port=2906, no device [00000100]
        >>> 0 devices detected <<<
        USB Device not detected.

        И зависает...

        А иногда дает такой лог:

        Detecting OHCI USB Controllers...
        1 OHCI USB Controller(s) detected

        OHCI 0: PCI 00-13-0, VID=0E11h, DID=A0F8h, MM_BASE=E0004000h, IRQ=11
        -= Initializing Host Controller #0=-
        Reset HC: Ok
        Start HC, turn on power

        Detecting USB Devices...
        Device Enumeration
        HC #0, nports=92
        port=2906, no device [00000100]
        port=2906, port=22 [00010101], reset=OK
        set addr =>50000000 50000000 50000000 no answer, abort
        >>> 0 devices detected <<<
        USB Device not detected.

        И опять зависает...
          Прощу прощения за вторжение. Нужна помощь в следующем вопросе. Пишу драйвер USB-host для philips isp1161A, на не-intel архитектуре, планирую читать USB-flash. С микросхемой разобрался, документацию с usb.org и t10.org прочел, с протоколами тоже вроде разобрался, флешки опознаю, дескрипторы читаю. Столкнулся с неожиданной проблемой - на стадии bulk only transfer нормально не проходит больше одной транзакции (то есть CBW - данные - CSW). При попытке следующей запись в out_endpoint проходит нормально, а чтение из in_endpoint - все время NAK. на одной из флешей, с которыми экспериментировал, помогает постоянная (после каждой транзакции) разблокировка out_endpoint(!) с помощью clear_feature(halt), на других и это не помогает. форматы всех пакетов проверял сто раз, вроде все правильно, никаких замечаний, все поля соответствуют - но отакое ощущение, что где-то чего-то не хватает. Анализатора пакетов под рукой (и вообще где-бы то ни было) нету
          Может у кого-то есть идеи на этот счет?
            Идея есть, у меня была похожая трабла, пока (благодаря cppasm'у) я не разобрался с триггером посылок! триггер должен меняться постоянно и для каждой точки отдельно. Т.е. прошла посылка CBW из 3 пакетов, начальный триггер был DATA0 (DATA0-DATA1-DATA0), тогда следующая посылка начнется с триггера DATA1. И так для IN и OUT точек отдельно.
              Цитата sergik_vrn @
              форматы всех пакетов проверял сто раз

              Проверь в 101-й раз биты DATA0/DATA1.
              И ещё правильность всех полей в CBW.
              У меня ISP1760.
                да вроде бы все-таки не в этом дело, т.к. триггеры-то я считаю, причем когда data toggle не совпадает, хост ругается понятным образом - ошибку возвращает. а тут ваще фигня какая-то...
                да, кстати. при посылке CBW toggle должен быть обнулен или взят из предыдущего OUT-пакета? то есть, все они тупо toggle-атся до бесконечности?
                Сообщение отредактировано: sergik_vrn -
                  из предыдущего пакета!
                    щас попробовал. похоже, я чего-то не понимаю, но out_endpoint ваще плевала на toggle. если я первую посылку (CBW) отправляю c toggle = 1 она все равно ведет себя так же. отвечает нормально, отдает все вплоть до CSW, а потом затыкается. странно. еще раз уточню на всякий случай. независимо от протокола (CBW, CSW) toggle-биты должны строго чередоваться по порядку по каждой контрольной точке bulk отдельно, я правильно понял?
                      да
                        нашел ошибку! действительно data toggle :( огромное спасибо!!! пиво при встрече :)
                          Извини что надоедаю, попробуй ещё это...
                          Думаю может хоть виснуть перестанет.
                          Над детектом счас думаю.
                          Выходит статус транзакции 5 - DEVICENOTRESPONDING.
                          У меня такое было когда ресет порта не проходил - устройство 0 адрес не получало.
                          Наверное или со сбросом порта что-то или с установкой питания.
                          Прога в аттаче...

                          PS: а если не военная тайна как ты сброс порта делаеш?
                          У меня так:
                          ExpandedWrap disabled
                            // Clear Port Status Change bits.
                            writed(hc[i].base+port,0x001F0000);
                            // Reset Port of USB Controller.
                            writed(hc[i].base+port,0x00000010);
                            // Wait for reset completition.
                            for(k=0;k<50;k++)
                             { if(readd(hc[i].base+port) & 0x00100000) break; delay(1); }
                            printf("%s\n",k>=50 ? "FAIL" : "OK");
                            // Clear Port Status Change bits.
                            writed(hc[i].base+port,0x001F0000);


                          Добавлено
                          Цитата sergik_vrn @
                          нашел ошибку! действительно data toggle

                          излюбленные грабли :)

                          Добавлено
                          PRT Как я понимаю второй лог был с подключённым устройством?
                          Сообщение отредактировано: cppasm -

                          Прикреплённый файлПрикреплённый файлOHCI.zip (10.37 Кбайт, скачиваний: 117)
                            Лог такой:

                            Detecting OHCI USB Controllers...
                            1 OHCI USB Controller(s) detected

                            OHCI 0: PCI 00-13-0, VID=0E11h, DID=A0F8h, MM_BASE=E0004000h, IRQ=11
                            -= Initializing Host Controller #0=-
                            Reset HC: Ok
                            Start HC, turn on power

                            Detecting USB Devices...
                            Device Enumeration
                            HC #0, nports=92
                            port=2906, no device [00000100]
                            port=2906, port=22 [00010101], reset=OK [00100103]
                            set addr =>50000000 50000000 50000000 no answer, abort
                            >>> 0 devices detected <<<
                            USB Device not detected.

                            И зависает...

                            Но
                            если загружен usbaspi.sys, программа работает

                            Сброс порта делаю так:

                            // Reset Port.
                            writed(port,0x00010111);
                            delay(50);
                            // Enable Port.
                            writed(port,0x00010113);
                            delay(50);
                              Цитата PRT @
                              Лог такой

                              Эээ...
                              А это лог не от последней версии проги :ph34r:
                              На всякий случай аттачу ещё раз.

                              А насчёт того что у меня устройства не детектятся я вроди косяк нашёл...
                              Выходит контроллер не полностью спецификации соответствует.
                              Цитирую:

                              PortEnableStatus
                              This bit indicates whether the port is enabled or disabled.
                              The Root Hub may clear this bit when an overcurrent condition, disconnect event,
                              switched-off power, or operational bus error such as babble is detected.
                              This change also causes PortEnabledStatusChange to be set.
                              HCD sets this bit by writing SetPortEnable and clears it by writing СlearPortEnable.
                              This bit cannot be set when CurrentConnectStatus is cleared.
                              This bit is also set, if not already, at the completion of a port reset when ResetStatusChange is set or port suspend when SuspendStatusChange is set.
                              0 = port is disabled
                              1 = port is enabled


                              А тут выходит после ресета инэйбл не ставится, а сам я его не делал...
                              Вот устройство и не отвечает...

                              А прогу из этого поста всё-таки попробуй плз, виснуть не должна.

                              Это я в первом варианте ошибку сделал - дописывал на быструю руку и в printf не все аргументы написал, потом со стеком проблемы и вылазят.
                              Сообщение отредактировано: cppasm -

                              Прикреплённый файлПрикреплённый файлOHCI.zip (10.37 Кбайт, скачиваний: 110)
                                Попробовал последнюю програму(уверен):
                                Detecting OHCI USB Controllers...
                                1 OHCI USB Controller(s) detected

                                OHCI 0: PCI 00-13-0, VID=0E11h, DID=A0F8h, MM_BASE=E0004000h, IRQ=11
                                -= Initializing Host Controller #0=-
                                Reset HC: Ok
                                Start HC, turn on power

                                Detecting USB Devices...
                                Device Enumeration
                                HC #0, nports=2
                                port=0, no device [00000100]
                                port=1, no device [00000100]
                                >>> 0 devices detected <<<
                                USB Device not detected.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (51) « Первая ... 5 6 [7] 8 9 ...  50 51


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0503 ]   [ 15 queries used ]   [ Generated: 21.07.25, 05:23 GMT ]