Тачпад от ноутбука
- Войдите на сайт для отправки комментариев
Решил подключить к Ардуино сабж.
Заказал вот такой: https://aliexpress.ru/item/33030152663.html
Дождался. Получил. Но что-то не могу заставить его работать.
Всего на шлейф выходит шесть контактов. Определил, где земля, где питание, подключил к логическому анализатору: по двум из четырех оставшихся идет сигнал, очень напоминающий data и clock. Два другие молчат. Но самое неприятное, что сигнал никак не зависит от того, касаюсь я тачпада или нет.
Лицевая поверхность тачпада была заклеена бумагой на какой-то липкой основе. И бумагу и липкую основу - отодрал, ничего не изменилось.
Настораживает то, что сама поверхность как-то мало напоминает поверхность тачпада - имеет явно выраженную фактуру.
Вопрос: это похоже на реальную поверхность тачпада или я чего-то не понимаю?
Из отзывов: Тачпад прибыл мертвым. Использованный товар, не новый. Aliexpress дал мне возмещение.
Читал я этот отзыв. Правда, уже после того, как получил заказ. Ибо в самом этом отзыве поставлена оценка 5 звезд. И, как следствие, средняя оценка тоже 5 звезд.
Кстати, продавец уже согласился перепослать товар (после того, как я привел ему скрин логического анализатора).
Но все равно интересно: такая поверхность тачпада - это норма?
Потому как она была заклеена бумагой (см. фото на странице товара), и определить, что под бумагой, не отрывая ее, все равно невозможно.
Ну не занимаюсь я ремонтом ноутов, поэтому как должны выглядеть правильные детали, не знаю.
Получил от продавца второй точно такой же.
И ведет себя точно так же: сам по себе время от времени (порядка раза в секунду) посылает сигнал, показанный выше. При подключении библиотеки PS2-Mouse http://github.com/kristopher/PS2-Mouse-Arduino/ возвращает 3 байта: 8, 0 и 0. Обычная PS/2 мышь с этой библиотекой работает нормально, т.е. посылает статус кнопок и два приращения координат.
Т.е. такое впечатление, что не сам тачпад бракованный, а я не умею с ним работать.
Кто может еще что посоветовать для проверки тачпада?
Если он стандартно-пополамный, то может его к ПК для диагностики подключить?
Не уверен, что сейчас найду ПК с интерфейсом PS/2.
Опять же, совсем нет уверенности в том, что он "стандартно-пополамный". Скорее, есть сильное подозрение, что это совсем не так.
Какие еще бывают варианты подключения тачпада? Может, там с инициализацией какие тонкости? Потому как на логическом анализаторе он выглядит вполне себе PS/2, только от внешнего воздействия на него ничего не меняется.
Документ старый, но может подойдет - https://www.aquaphoenix.com/hardware/ledlamp/reference/synaptics_touchpad_interfacing_guide.pdf
Нашёл на работе пару битых ноутов, сдернул тачпады. Один оказался на Synaptics T1006: http://blog.iq-mobile.com/2011/12/laptop-touchpad-connected-to-ps2.html
Припаял к одному хвост от PS/2 мыши, воткнул в комп - работает, Win7 поставила дрова для Microsoft Mouse PS/2. Курсор гоняется по экрану.
Попозжа приаттачу к ардуине, присяду лог. анализатором.
Второй не подключал, он без падов. К ногам чипа паяться - излишне сложная работа для моего паяльника. Но сам тачпад без пленки верхней. Зеленая "плата" с вертикальными полосками. Загогулин, как на фото выше, не наблюдаю. Может вторым слоем сделаны...
Подключил к Нане с примером библиотеки, что выше. Валит в серийный порт вот так:
Цифири с '24:'- это когда пальцем вожу, с '40:' - когда просто тач пада делаю.
Картинка с лог.анализатора. Работает всё тот же пример из библиотеки. От ардуины Data/Clock отрывал - сам по себе тач ничего не слал (ЛА не сработал).
Зелено-полосатый - это тачпад без черной защитной пленки.
Вот что ещё нашёл:
http://blog.amigas.ru/wp-content/uploads/2014/03/touchpad_RevB.pdf
2.4. Power-on reset
At power-on, the PS/2 TouchPad performs a self-test and calibration, then transmits the completion code $AA and ID code $00. If the TouchPad fails its self-test, it transmits error code $FC and ID code $00. This processing also occurs when a software Reset ($FF) command is received.
Power-on self-test and calibration normally takes 300–1000 ms. Self-test and calibration following a software Reset command normally takes 300–500 ms. In most Synaptics TouchPads, the delays are nominally 750 ms and 350 ms, respectively. But some newer TouchPads support an option in which the TouchPad transmits $AA and $00 immediately, and is immediately ready to accept host commands, without waiting for self-test and calibration to complete. This option should be ordered only if the KBC (keyboard controller) is compatible with it. The Synaptics TouchPad never sends an $FC power-on/reset error code.
И, действительно, ЛА показывает, что после ресета тачпада
Просто мистика какая-то.
Решил опробовать все команды, имеющиеся в библиотеке, при инициализации (в setup()).
Заметил, что команда set_resolution приводит к однократному срабатыванию тачпада.
Переместил ее в loop() и, как мне поначалу показалось, добился желаемого: при проведении пальцем вдоль тачпада показания менялись примерно на +200 или -200 единиц в зависимости от направления , а поперек - порядка +80/-80. Это при set_resolution(30200);
Попытался поварьировать величину параметра, оказалось, что он должен быть не менее 4. Сделал еще несколько попыток что-то "улучшить", но добился противоположного результата: тачпад стал реагировать на прикосновения крайне неохотно, лишь на ограниченной площади, с резкими скачками "назад" (т.е. при движении, скажем, в "+" бОльшая часть приращений - положительная, но встречается пара тройка обратного знака и большой величины, в результате чего координата остается практически на месте).
Еще: если в режиме стандартного опроса он осуществлялся регулярно, хоть и возвращал неизменные величины, то теперь, если судить по логическому анализатору:
1. Появляются огромные пробелы в данных. Т.е. процесс обмена инициализируется, но не заканчивается, вызывая тем самым пауз сравнимые с секундой.
2. В порт сыпется много "мусора", который логический анализатор не в состоянии разобрать (идентифицировать как часть протокола мыши). Как из этой мешанины удается что-то выудить Ардуине - не знаю.
Пока что у меня сложилось впечатление, что в одинаковых условиях тачпад ведет себя в разные периоды времени по-разному: иногда отвечает что-то более или менее вразумительное, а иногда - шлет мусор или зависает.
Есть идея запитать его через два диода (т.е. не от 5В, а от 3.7В) и посмотреть, как он на это отреагирует.
https://www.win.tue.nl/~aeb/linux/kbd/scancodes-13.html
Особенно мне понравились разделы "Magic knock" и "Vendor extensions". По ходу дела без промышленного шпионажа не обойтись.
Садман! Juniper SSG 5 на рабочий стол, это когда выкинуть жалко? )))
Интересно, что там за процессор, моторола?
Как это - выкинуть? А провода чем прижимать? Капуста сейчас пойдёт, солить надо будет. Тоже пресс нужен.
Насчёт процессора не знаю, не разбирал. Интернет утверждает, что Intel https://michaeldale.com.au/archive/2007/04/02/photos-of-inside-a-juniper-netscreen-ssg-5/
Как это - выкинуть? А провода чем прижимать? Капуста сейчас пойдёт, солить надо будет. Тоже пресс нужен.
Насчёт процессора не знаю, не разбирал. Интернет утверждает, что Intel https://michaeldale.com.au/archive/2007/04/02/photos-of-inside-a-juniper-netscreen-ssg-5/
богатая у тебя контора однако, джуниперы по столам валяются )))