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

Можно ли прямо управлять линиями USB?

Здравствуйте все!

допустим есть компьютер просто с DOS без OS WINDOWS -

но есть порт USB.

Может ли в принципе самодельная программа считывать логические уровни с двух линий порта и выставлять на них уровни?

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


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

19 минут назад, Alex_Caledin сказал:

допустим есть компьютер просто с DOS без OS WINDOWS -

но есть порт USB.

А что за DOS такая: MS-DOS, FreeDOS или ещё какая? Обычно на современных компьютерах изначально BIOS или UEFI.

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


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

1 hour ago, Alex_Caledin said:

Здравствуйте все!

допустим есть компьютер просто с DOS без OS WINDOWS -

но есть порт USB.

Может ли в принципе самодельная программа считывать логические уровни с двух линий порта и выставлять на них уровни?

Предположим что Вам удалось добраться регистров EHCI. Если интересующий Вас порт подключен к контроллеру напрямую, а не через HUB - искать в описании EHCI, есть или нет такая опция по установке тестовых состояний. Считывать скорее всего можно.

Enhanced Host Controller Interface - OSDev Wiki

Port Test Control, Line Status

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

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


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

1 час назад, GenaSPB сказал:

Предположим что Вам удалось добраться регистров EHCI. Если интересующий Вас порт подключен к контроллеру напрямую, а не через HUB - искать в описании EHCI, есть или нет такая опция по установке тестовых состояний. Считывать скорее всего можно.

EHCI можно найти только на совсем древних машинах, на новых он иногда применяется в режиме работы с устройствами USB 2.0, да и то не всегда. Поэтому нужно изучать XHCI.

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


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

1 hour ago, Alex_Caledin said:

нужен компьютер на базе платы ROCK64

Электронщику (мне например) вполне хватает win10 и всяких-разных USB переходников, на FT232 или самодельные с STM32.
 например я сделал программатор SPI FLASH который прикидывается DFU устройством. Правда чаще эти проблемы решал с помощью ALtera Byte Blaster.

Кажется современные SEGGER JLINK умеют SPI/I2C, WAVESHARE адаптеры тоже...

Platform Cable USB, Загрузочный кабель для внутрисхемного конфигурирования и программирования всех устройств Xilinx, Waveshare | купить в розницу и оптом (chipdip.ru)

 

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


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

Вопрос в другом, а зачем напрямую управлять линиями USB, или на другом конце самодельная программа считывающая напрямую линии USB?

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


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

4 minutes ago, SlavaV said:

или на другом конце самодельная программа считывающая напрямую линии?

На другом конце стоит комп, на котором нужно решить обратную задачу :biggrin:

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


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

37 minutes ago, SlavaV said:

зачем напрямую управлять линиями

- к примеру я однажды делал простой контроллер на Z80 - его общение с ПК пришлось свести к обмену асинхронными "рукопожатиями" по двум проводам - так получался двусторонний обмен данными. (Но в то время в каждом ПК был COM-порт, можно было задействовать 2 вспомогательных выхода и 2 входа объединённых через 2 диода попарно, вход с выходом.) Такая полная асинхронность связи была нужна чтобы исключить задержку реакции контроллера на внешнее прерывание от контролируемого объекта при одновременной связи контроллера с компьютером.

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


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

10 minutes ago, Alex_Caledin said:

. . .  (Но в то время в каждом ПК был COM-порт, можно было задействовать 2 вспомогательных выхода и 2 входа объединённых через 2 диода попарно, вход с выходом.) . . .

И что мешает купить плату расширения COM-LPT PCI-Ex и дрыгать линиями в свое удовольствие. Хотя с такой платой гораздо производительней делать это из-под Win в почти-дос формате.

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


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

1 час назад, k155la3 сказал:

Хотя с такой платой гораздо производительней делать это из-под Win в почти-дос формате.

Это смотря какая Win? Если Win 95-XP, то все нормально, Win 7 - "несколько" сложнее, Win 10 - ещё хуже.

В этой ситуации для современного железа Линукс больше подойдёт. Но не DOS какой-то эфимерный :acute:

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


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

27 minutes ago, byRAM said:

. . . В этой ситуации для современного железа Линукс больше подойдёт. Но не DOS какой-то эфимерный :acute:

Да, Linux вне конкуренции. А если что-то простое - то штатными средствами OS(Win) можно дрыгать на COM RTS, DTR.

Для LPT (да и для COM) можно попытаться из-под Win поработать через драйвер и IOCTL (но тут - мы не плавали. Но интерес есть).

google <driver, IOCTL>  - где-то отсюда. Возможно и "старые-добрые" решения вроде giveio есть на более современном уровне (для Win'7 ). 

 

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


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

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

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

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

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

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

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

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

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

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