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

а у нас на фирме были переходники с рисуночком мышки зеленые и с рисуночком клавиатуры сереневые. Можно было местами менять, они внутри одинаковые, но чтобы вопросов не было были 2 цветов.

 

Кстати кто советует автору PS/2, а вы не думали что у него уже устройство с USB разъемом, и PS/2 разъема нет. И я не уверен что у него этот разъем может появится, ибо похоже курочат какую-то готовую систему...

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


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

а у нас на фирме были переходники с рисуночком мышки зеленые и с рисуночком клавиатуры сереневые. Можно было местами менять, они внутри одинаковые, но чтобы вопросов не было были 2 цветов.

 

Кстати кто советует автору PS/2, а вы не думали что у него уже устройство с USB разъемом, и PS/2 разъема нет. И я не уверен что у него этот разъем может появится, ибо похоже курочат какую-то готовую систему...

1. Правильно, эти переходники пассивные, поэтому их можно менять местами. А вот мышь и клавиатура интеллектуальны.

 

2. Разработка хоста с нуля потянет на полгода минимум. Не с нуля - месяца на 2-3. Если нет аппаратного сниффера, накиньте еще пару месяцев. А вот подпаять пару проводков на GPIO, вырезать в корпусе отверстие под разъем PS/2 и вмонтировать разъем в это отверстие можно за одну смену. ПО можно написать за неделю. Чувствуете разницу ?

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


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

ничего не получается :help:

С USB ? Так ведь это сложнейшая задача, а вы за неделю хотели сделать ? Что именно не получается ?

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


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

ничего не получается

 

это нормально. USB - универсальный, а если что-то универсальное, да еще и 2.0 - 3.0, то оно так уже само собой загажено, что надо стоять у истоков чтобы все получалось...

 

Главное в этом деле не сдаваться, и переходите к конкретным вопросам.

 

Из такого на угад могу сказать что в УСБ чувствительно к времянке, так что если вы отладку между какими то процессами усб втыкаете, этим вы можете все разрушить. Если сейчас совет не подошел, пригодиться в будущем)

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


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

Главное в этом деле не сдаваться, и переходите к конкретным вопросам.

У человека ARM9, как и у меня. И OHCI. У меня тоже OHCI. Но МК у нас разные (у меня ATMEL). Я мог бы дать свой проект в качестве примера, но поможет ли это ? Все-таки, МК очень разные ...

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


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

должно помочь, OHCI - стандарт, если там обращения в регистры через имена а не по адресам, то очень поможет, если по адресам на прямую, то надо будет по мануалу перевести все регистры. Ну и по описанию прерываний понять что куда...

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


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

У человека ARM9, как и у меня. И OHCI. У меня тоже OHCI. Но МК у нас разные (у меня ATMEL).

 

К слову сказать, на 2410 у меня криво-косо, но задышал хост от LPC23-что-то-там (это тоже OHCI). Чуть лучше заработал какой-то непонятный китайский стек (был подобран на каком-то варезнике с иероглифами).

Разве что скурить нормально работу MMU и USB у меня не получилось. Глючило, что интересно, каждый раз по-новому.

Пришлось на время работы стека (у меня это всего несколько секунд, просто проверить наличие воткнутых usb-устройств) отрубать нафиг кэши.

 

Поскольку никакого функционала не требовалось (это был загрузчик с всевозможными "фишечками", основную работу выполняла wince), так оно и осталось.

 

 

Давно только это было...

 

А по делу - при текущем уровне вопросов про USB лучше не вспоминать. Если что-то пойдёт не так, поможет только многотомная спецификация. Разбираться в этом - то ещё удовольствие...

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


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

я вот даже не пойму с чего начать, в каких-то книжках пишется, что надо провести инициализацию устройства, но как конкретно - не написано, в других пишут надо сразу обращаться командами по адресам и ожидать ответа от устройства... :wacko:

 

Ладно... если объяснять на пальцах - вот как например зажечь или погасить скажем NumLock ? Это какая то определённая команда? А как и где посмотреть список возможных команд - у производителя клавиатуры или эти команды универсальны для всех клавиатур? А до этой команды надо провести какую-то инициализацию? Что-то у меня уже мозг закипает.

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


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

Ладно... если объяснять на пальцах - вот как например зажечь или погасить скажем NumLock ? Это какая то определённая команда? А как и где посмотреть список возможных команд - у производителя клавиатуры или эти команды универсальны для всех клавиатур? А до этой команды надо провести какую-то инициализацию? Что-то у меня уже мозг закипает.

И что толку тут спрашивать, как будто тут народ только и делает что с клавой по USB работает?

В сети должно быть навалом описаний интерфейса клавиатуры если хорошо поискать.

Помнится я в своё время умудрялся из ДОСа работать с клавой напрямую (без БИОСа), посылать её команды через порты, зажигать светодиоды,

даже эмулировать нажатия клавиш через регистры ввода/вывода клавиатуры.

И это во времена когда инета не было и этого форума. И как-то справлялся.

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


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

я вот даже не пойму с чего начать, в каких-то книжках пишется, что надо провести инициализацию устройства, но как конкретно - не написано, в других пишут надо сразу обращаться командами по адресам и ожидать ответа от устройства... :wacko:

 

Ладно... если объяснять на пальцах - вот как например зажечь или погасить скажем NumLock ? Это какая то определённая команда? А как и где посмотреть список возможных команд - у производителя клавиатуры или эти команды универсальны для всех клавиатур? А до этой команды надо провести какую-то инициализацию? Что-то у меня уже мозг закипает.

Сначала нужно чтобы hid-устройство у Вас зарегестрировалось, провести энумерацию и проч., а уж потом речь пойдет о командах зажечь лампочку или получить скан-код клавиши.

P.S. Чем WinCE не устраивала на устройстве? Там-то этот вопрос уже решен.

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


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

Сначала нужно чтобы hid-устройство у Вас зарегестрировалось, провести энумерацию и проч., а уж потом речь пойдет о камандах зажечь лампочку или получить скан-код клавиши.

P.S. Чем WinCE не устраивала на устройстве? Там-то этот вопрос уже решен.

 

WinCE не устраивает тем, что он собирается и не работает, при копировании из flash зависает без причин, а родной (который был в устройстве) работет нормально, но там всяческие логотипы и прочие гадости связанные с фирмой-производителем. При попытке расковырять имидж, после редактирования и сжатия - не работает. Стоял WinCE 4.2 net - пробовал собирать свой в Platform Builder-е - не работает, ошибка при распаковке имиджа. Пробовал 5.0 поставить - тоже не работает, такое впечатление, что есть какая-то защита на аппаратном уровне, чтобы свою систему никто не поставил.

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

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


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

WinCE не устраивает тем, что он собирается и не работает, при копировании из flash зависает без причин, а родной (который был в устройстве) работет нормально, но там всяческие логотипы и прочие гадости связанные с фирмой-производителем. При попытке расковырять имидж, после редактирования и сжатия - не работает. Стоял WinCE 4.2 net - пробовал собирать свой в Platform Builder-е - не работает, ошибка при распаковке имиджа. Пробовал 5.0 поставить - тоже не работает, такое впечатление, что есть какая-то защита на аппаратном уровне, чтобы свою систему никто не поставил.

 

IMHO, Вам проще побороть WinCE или Linux (предпочтительнее, по-моему) поставить. Благо в сети есть готовые bsp, чем ваять свой USB-стэк или действительно взять PS/2 и ногодрыг.

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


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

на пальцах это выглядит так.

 

1. вы втыкаете устройство, оно начинает потреблять и тянуть ножки данных в свою сторону.

2. Хост по этом определяет что в него что-то воткнулось и примерно тип полноскоростное, высокоскоростное, низкоскоростное.

3. Хост посылает запрос что за устройство (причем тут есть хитрость что сначала идет запрос 8 байт, в них лежит полная длинна описания, и запрос повторяют с правильной длинной)

4. устройство сообщает кто оно, VID, PID, тип, строки с названием проихводителя и так далее..

5. Хост определяет класс устройства, в случае клавиатуры должен быть HID

6. Хост запрашивает описание репортов HID, там будет сообщено что за поля, сколько их, какого типа за что отвечают. В случае клавиатуры входной отчет будет кодом кнопки нажатой. А отчет фича - будет наверняка лампочками.

7. Хост конфигурит устройство на работу (в случае если в нем несколько сущностей) задает периоды отчетов если разрешается и ждет

 

Все дальше с каждым нажатием кнопочки будет формироваться отчет, который хост будет забирать. А если хост хочет что-то изменить, он будет посылать фича репорты и менять состояние лампочек и так далее...

 

В случае OHCI практически все пункты и их последовательность железо берет на себя. Оно будет принимать данные и ставить флаги об изменении, и дергать вас прерыванием что появились данные, вам надо будет формировать правильные запросы (отчетов, описаний, и прочее,) отдавать их хосту на посылку и обрабатывать прерывания.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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