User Tag List

Страница 3 из 9 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 107

Тема: Вектор-06Ц. подключение USB-мыши.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ... Текущий план использовать для этого Pi Pico (в моем случае rp2040-zero, но разницы нет). ...
    rp2040-zero - выглядит интересно, правда как по мне, выводов GPIO маловато... "не развернёшься"

    Сначала не обратил внимания, почему ни в одном из примеров "USB-мыши" не юзают колесо прокрутки, только 3 кнопки и X/Y, хотя по протоколу от мыши приходит пакет из 8 байт.
    Начал кидать все 8 байт на экран... а колесо не активно!!!
    Получается так-же как и у ps/2 мыши его включать нужно... а это не гуглится.
    Если сильно "зачешется" разобраться, нужно будет запускать на компе прогу с логгером USB-порта, подключать мышь и смотреть обмен, может команда включения колеса найдётся...

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    а это не гуглится
    Нагуглилось на самом деле. Я правда не нашел твоих исходников для stm32, поэтому не уверен, что это подойдет. Но если ты используешь ту же самую библиотеку TinyUSB, то подойдет.

    Протокол при инициализации выбирается Boot. На Report он переключается так из колбаска tuh_hid_mount_cb():
    Код:
    tuh_hid_set_protocol(dev_addr, instance, HID_PROTOCOL_REPORT)
    Репорты тогда будут приходить в таком формате. Поскольку hid_mouse_report_t TinyUSB как-то сразу узурпировало под BOOT, пришлось назвать его hid_wheelmouse_report_t:
    Код:
    typedef struct TU_ATTR_PACKED
    {
        uint8_t report_id;   // mouse=1 
        uint8_t buttons;
        int8_t x;
        int8_t y;
        int8_t wheel;
    } hid_wheelmouse_report_t;
    Соответственно надо подменить этот тип в колбасках, которые обрабатывают мышиные репорты и будет хорошо. У меня колесо ожило.

    - - - Добавлено - - -

    P.S. попробовал другую мышь и она шлет колесо в BOOT протоколе. А первая вот не слала.
    Больше игр нет

  4. #3

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Нагуглилось на самом деле. Я правда не нашел твоих исходников для stm32, поэтому не уверен, что это подойдет. Но если ты используешь ту же самую библиотеку TinyUSB, то подойдет.
    ...
    P.S. попробовал другую мышь и она шлет колесо в BOOT протоколе. А первая вот не слала.
    Внимательнее глянул дескрипторы мыши, в них нет протоколов "приёма" данных, только "отправка".
    Значит у USB-мышей не предусмотрены настройки по стандартному протоколу (каналу).

    Да, надо будет смотреть обработку прерываний.

    Исходник в котором я ковырялся, и из которого переделывал в "контроллер мыши", написан для "pic18f26k20" https://github.com/felis/lightweight-usb-host.
    В нём предусмотрен интерфейс пользователя по UART, несколько вложенных меню, для изучения МАХ3421 и состояния подключения.
    В итоге (когда немного разобрался) достаточно было переопределить pin-ы с pic-а на мой stm32, подшаманить SPI и USART, и проект завёлся. Дальше только косметические изменения под протокол "ПУ".

    P.S. попробовал другую мышь и она шлет колесо в BOOT протоколе. А первая вот не слала.
    Мне тоже нужно попробовать другие мыши.
    МАХ не выставляет флаг запроса прерывания при вращении колеса. Запрос прерывания выставляется только при перемещении мыши и нажатии/отпускании кнопок. При этом МАХ сообщает, что из буфера нужно забрать ТРИ байта, хотя по дескриптору мыши, в протоколе 4 байта.
    Последний раз редактировалось KTSerg; 07.08.2024 в 07:29.

  5. #4

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Любопытно, TinyUSB похоже не поддерживает host на stm32 судя по этой табличке https://docs.tinyusb.org/en/latest/r...supported.html
    Больше игр нет

  6. #5

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Любопытно, TinyUSB похоже не поддерживает host на stm32 судя по этой табличке https://docs.tinyusb.org/en/latest/r...supported.html
    Ну да. В них USB юзабельный, но хилинький, я копаю исключительно серию F1. С серии F4 вроде начинался "крутой" usb, но мне такие не попадались, и я даже подробности не узнавал.

    Проводные мыши у меня оказались одинаковые, даже vid/PID совпадает, а беспроводная, с дескрипторами какая-то фигня...
    По итогу, у меня, ни с одной мышью колесо не работает. Беспроводная реагирует, когда кручу колесо, происходят прерывания, но "МАХ" по прежнему сообщает, что в буфере только ТРИ байта, и они не изменяются при вращении колеса.

  7. #6

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У меня вот есть клавиатура, которая работает со всеми компами, но ни ch9350 ни TinyUSB не могут ее проинициализировать. TinyUSB говорит, да, это клавиатура. И всё.
    Больше игр нет

  8. #7

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    У меня вот есть клавиатура, которая работает со всеми компами, но ни ch9350 ни TinyUSB не могут ее проинициализировать. TinyUSB говорит, да, это клавиатура. И всё.
    Не удивлён.
    Дескрипторы слишком запутанная штука, что-бы "Tiny" версии драйверов, могли их корректно распарсить. У комповых драйверов на много больше возможностей и ресурсов.
    Думаю если внимательно изучить различия в дескрипторах, то можно настроить.
    У меня вот беспроводная мышь определяется как "составное устройство - клавиатура".
    Возможно эта мышь действительно должна была идти в комплекте с беспроводной клавой, но у меня её не было, и кто мне подкинул эту мышь, тоже не помню.

  9. #8
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    Не удивлён.
    Дескрипторы слишком запутанная штука, что-бы "Tiny" версии драйверов, могли их корректно распарсить. У комповых драйверов на много больше возможностей и ресурсов.
    Думаю если внимательно изучить различия в дескрипторах, то можно настроить.
    У меня вот беспроводная мышь определяется как "составное устройство - клавиатура".
    Возможно эта мышь действительно должна была идти в комплекте с беспроводной клавой, но у меня её не было, и кто мне подкинул эту мышь, тоже не помню.
    Часто клавиатурной частью мыши выступают её дополнительные кнопки. Т.е. кнопки помимо стандартных 3х.

  10. #9

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    318
    Поблагодарили
    222 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Часто клавиатурной частью мыши выступают её дополнительные кнопки. Т.е. кнопки помимо стандартных 3х.
    Если бы на моей мыши были дополнительные кнопки, то вопросов бы не возникло совсем, но она обычная 3-ёх кнопочная.
    Больше склоняюсь к варианту, что изначально это была пара клава и мышь на один приёмник.

    На то оно и "составное устройство", что в нём совмещены элементы разных устройств.
    Я когда-то сам такое делал на процессоре "lpc21**", создал на его основе составное HID-устройство "клава-мышь-мультимедиа", подключил к нему ИК-приёмник, отсканировал бесхозный ИК-пульт. Получился самодельный пульт ДУ для ТВ-тюнера, с возможностью гонять курсор мыши по экрану, открывать/закрывать приложения ( не вставая с дивана ). Беспроводной мыши у меня тогда ещё не было.

  11. #10

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я к сожалению не так хорошо подкован в этих делах. Мне нравится покопаться, но тут тот случай, когда просто хочется гет шыт дан, а уж потом как-нибудь можно будет достичь совершенства. К счастью у меня сейчас есть другая клавиатура, которая нормально работает. Но кстати, в ней тоже не без фокусов: у нее есть медиа-кнопки и крутилочка для громкости. И вот она тоже видимо работает как что-то совсем отвлеченное, потому что я никакого эффекта в tiny-штуковинах от нее не замечаю.
    Больше игр нет

Страница 3 из 9 ПерваяПервая 1234567 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 574
    Последнее: 23.08.2024, 09:14
  2. Ответов: 82
    Последнее: 04.07.2022, 12:10
  3. Ответов: 1
    Последнее: 27.04.2022, 11:52
  4. Ответов: 15
    Последнее: 20.01.2022, 17:03
  5. Ответов: 4
    Последнее: 23.06.2016, 00:02

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •