|
|
  |
USB клавиатура, s3c2410 (ARM9) и USB клавиатура |
|
|
|
May 23 2014, 15:42
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(Golikov A. @ May 23 2014, 21:49)  а у нас на фирме были переходники с рисуночком мышки зеленые и с рисуночком клавиатуры сереневые. Можно было местами менять, они внутри одинаковые, но чтобы вопросов не было были 2 цветов.
Кстати кто советует автору PS/2, а вы не думали что у него уже устройство с USB разъемом, и PS/2 разъема нет. И я не уверен что у него этот разъем может появится, ибо похоже курочат какую-то готовую систему... 1. Правильно, эти переходники пассивные, поэтому их можно менять местами. А вот мышь и клавиатура интеллектуальны. 2. Разработка хоста с нуля потянет на полгода минимум. Не с нуля - месяца на 2-3. Если нет аппаратного сниффера, накиньте еще пару месяцев. А вот подпаять пару проводков на GPIO, вырезать в корпусе отверстие под разъем PS/2 и вмонтировать разъем в это отверстие можно за одну смену. ПО можно написать за неделю. Чувствуете разницу ?
|
|
|
|
|
Jun 2 2014, 11:08
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата ничего не получается это нормально. USB - универсальный, а если что-то универсальное, да еще и 2.0 - 3.0, то оно так уже само собой загажено, что надо стоять у истоков чтобы все получалось... Главное в этом деле не сдаваться, и переходите к конкретным вопросам. Из такого на угад могу сказать что в УСБ чувствительно к времянке, так что если вы отладку между какими то процессами усб втыкаете, этим вы можете все разрушить. Если сейчас совет не подошел, пригодиться в будущем)
|
|
|
|
|
Jun 2 2014, 13:47
|

Профессионал
    
Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877

|
Цитата(kovigor @ Jun 2 2014, 19:37)  У человека ARM9, как и у меня. И OHCI. У меня тоже OHCI. Но МК у нас разные (у меня ATMEL). К слову сказать, на 2410 у меня криво-косо, но задышал хост от LPC23-что-то-там (это тоже OHCI). Чуть лучше заработал какой-то непонятный китайский стек (был подобран на каком-то варезнике с иероглифами). Разве что скурить нормально работу MMU и USB у меня не получилось. Глючило, что интересно, каждый раз по-новому. Пришлось на время работы стека (у меня это всего несколько секунд, просто проверить наличие воткнутых usb-устройств) отрубать нафиг кэши. Поскольку никакого функционала не требовалось (это был загрузчик с всевозможными "фишечками", основную работу выполняла wince), так оно и осталось. Давно только это было... А по делу - при текущем уровне вопросов про USB лучше не вспоминать. Если что-то пойдёт не так, поможет только многотомная спецификация. Разбираться в этом - то ещё удовольствие...
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
|
Jun 3 2014, 01:16
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 6-08-13
Пользователь №: 77 820

|
я вот даже не пойму с чего начать, в каких-то книжках пишется, что надо провести инициализацию устройства, но как конкретно - не написано, в других пишут надо сразу обращаться командами по адресам и ожидать ответа от устройства... Ладно... если объяснять на пальцах - вот как например зажечь или погасить скажем NumLock ? Это какая то определённая команда? А как и где посмотреть список возможных команд - у производителя клавиатуры или эти команды универсальны для всех клавиатур? А до этой команды надо провести какую-то инициализацию? Что-то у меня уже мозг закипает.
|
|
|
|
|
Jun 3 2014, 01:49
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(TrueCyrix @ Jun 3 2014, 11:26)  Ладно... если объяснять на пальцах - вот как например зажечь или погасить скажем NumLock ? Это какая то определённая команда? А как и где посмотреть список возможных команд - у производителя клавиатуры или эти команды универсальны для всех клавиатур? А до этой команды надо провести какую-то инициализацию? Что-то у меня уже мозг закипает. И что толку тут спрашивать, как будто тут народ только и делает что с клавой по USB работает? В сети должно быть навалом описаний интерфейса клавиатуры если хорошо поискать. Помнится я в своё время умудрялся из ДОСа работать с клавой напрямую (без БИОСа), посылать её команды через порты, зажигать светодиоды, даже эмулировать нажатия клавиш через регистры ввода/вывода клавиатуры. И это во времена когда инета не было и этого форума. И как-то справлялся.
|
|
|
|
|
Jun 3 2014, 01:52
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(TrueCyrix @ Jun 3 2014, 08:26)  я вот даже не пойму с чего начать, в каких-то книжках пишется, что надо провести инициализацию устройства, но как конкретно - не написано, в других пишут надо сразу обращаться командами по адресам и ожидать ответа от устройства... Ладно... если объяснять на пальцах - вот как например зажечь или погасить скажем NumLock ? Это какая то определённая команда? А как и где посмотреть список возможных команд - у производителя клавиатуры или эти команды универсальны для всех клавиатур? А до этой команды надо провести какую-то инициализацию? Что-то у меня уже мозг закипает. Сначала нужно чтобы hid-устройство у Вас зарегестрировалось, провести энумерацию и проч., а уж потом речь пойдет о командах зажечь лампочку или получить скан-код клавиши. P.S. Чем WinCE не устраивала на устройстве? Там-то этот вопрос уже решен.
|
|
|
|
|
Jun 3 2014, 02:07
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 6-08-13
Пользователь №: 77 820

|
Цитата(DmitryM @ Jun 3 2014, 10:02)  Сначала нужно чтобы hid-устройство у Вас зарегестрировалось, провести энумерацию и проч., а уж потом речь пойдет о камандах зажечь лампочку или получить скан-код клавиши. P.S. Чем WinCE не устраивала на устройстве? Там-то этот вопрос уже решен. WinCE не устраивает тем, что он собирается и не работает, при копировании из flash зависает без причин, а родной (который был в устройстве) работет нормально, но там всяческие логотипы и прочие гадости связанные с фирмой-производителем. При попытке расковырять имидж, после редактирования и сжатия - не работает. Стоял WinCE 4.2 net - пробовал собирать свой в Platform Builder-е - не работает, ошибка при распаковке имиджа. Пробовал 5.0 поставить - тоже не работает, такое впечатление, что есть какая-то защита на аппаратном уровне, чтобы свою систему никто не поставил.
Сообщение отредактировал TrueCyrix - Jun 3 2014, 02:08
|
|
|
|
|
Jun 3 2014, 02:32
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(TrueCyrix @ Jun 3 2014, 09:17)  WinCE не устраивает тем, что он собирается и не работает, при копировании из flash зависает без причин, а родной (который был в устройстве) работет нормально, но там всяческие логотипы и прочие гадости связанные с фирмой-производителем. При попытке расковырять имидж, после редактирования и сжатия - не работает. Стоял WinCE 4.2 net - пробовал собирать свой в Platform Builder-е - не работает, ошибка при распаковке имиджа. Пробовал 5.0 поставить - тоже не работает, такое впечатление, что есть какая-то защита на аппаратном уровне, чтобы свою систему никто не поставил. IMHO, Вам проще побороть WinCE или Linux (предпочтительнее, по-моему) поставить. Благо в сети есть готовые bsp, чем ваять свой USB-стэк или действительно взять PS/2 и ногодрыг.
|
|
|
|
|
Jun 3 2014, 03:27
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
на пальцах это выглядит так.
1. вы втыкаете устройство, оно начинает потреблять и тянуть ножки данных в свою сторону. 2. Хост по этом определяет что в него что-то воткнулось и примерно тип полноскоростное, высокоскоростное, низкоскоростное. 3. Хост посылает запрос что за устройство (причем тут есть хитрость что сначала идет запрос 8 байт, в них лежит полная длинна описания, и запрос повторяют с правильной длинной) 4. устройство сообщает кто оно, VID, PID, тип, строки с названием проихводителя и так далее.. 5. Хост определяет класс устройства, в случае клавиатуры должен быть HID 6. Хост запрашивает описание репортов HID, там будет сообщено что за поля, сколько их, какого типа за что отвечают. В случае клавиатуры входной отчет будет кодом кнопки нажатой. А отчет фича - будет наверняка лампочками. 7. Хост конфигурит устройство на работу (в случае если в нем несколько сущностей) задает периоды отчетов если разрешается и ждет
Все дальше с каждым нажатием кнопочки будет формироваться отчет, который хост будет забирать. А если хост хочет что-то изменить, он будет посылать фича репорты и менять состояние лампочек и так далее...
В случае OHCI практически все пункты и их последовательность железо берет на себя. Оно будет принимать данные и ставить флаги об изменении, и дергать вас прерыванием что появились данные, вам надо будет формировать правильные запросы (отчетов, описаний, и прочее,) отдавать их хосту на посылку и обрабатывать прерывания.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|