PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Дополнительные устройства (http://pccar.ru/forumdisplay.php?f=177)
-   -   I2C capacitive touch screen (http://pccar.ru/showthread.php?t=20609)

oledv 30.11.2014 14:35

DaveMF, расскажите лучше какие модули и настройки использовали для подключения тача по I2C.

p.s. пере собирать андройд для использования GPS на радхе считаю не нецелесобразным, на 4.2.2 и 4.4.2 работает с небольшими манипуляциями, а потраченого времени при пере сборке целый вагон.

DaveMF 30.11.2014 16:04

Цитата:

Сообщение от oledv (Сообщение 312521)
DaveMF, расскажите лучше какие модули и настройки использовали для подключения тача по I2C.

p.s. пере собирать андройд для использования GPS на радхе считаю не нецелесобразным, на 4.2.2 и 4.4.2 работает с небольшими манипуляциями, а потраченого времени при пере сборке целый вагон.

В ядро добавлен драйвер контроллера сенсора и настроены ноги i2c в board.box файле, никаких модулей нет, только драйвер и правильная настроечная таблица, без которой сенсор невозможно использовать.
Все-равно нужно залазить в menuconfig и включать поддержку сенсора, почему бы не зайти в соседнюю вкладку и не включить поддержку GPS сразу в ядро и не мучатся с библиотеками и правами на них.
Это как продавать машину без колес, почему бы не начать продавать авто вместе с ними...

подробнее в этой теме http://www.pccar.ru/showthread.php?t=22740

nikolna 03.01.2015 13:18

Вложений: 1
Вот описание как я заставил тач от Acer A500 с контроллером Atmel mxt1386 работать с Cubietruck:

Я все делал на Cubieboard2 SDK от 08.05.2014, соответственно с пересборкой андройда

Первое что надо сделать это добавить поддержку данного тача в файле sys_config.fex ( SDK/lichee/tools/pack/chips/sun7i/configs/android )

в блоке [rtp_para] отключим поддержку резестивного тача, установив rtp_used = 0

в блоке [ctp_para] включим поддержку емкостного ctp_used = 1 и укажем его параметры

ctp_twi_id = 1 - это номер линии I2C
ctp_name = "maXTouch" - это наименование тача в драйвере
ctp_twi_addr = 0x4c - адрес
ctp_screen_max_x = 1280
ctp_screen_max_y = 800
ctp_revert_x_flag = 0
ctp_revert_y_flag = 0
ctp_exchange_x_y_flag = 0

ctp_int_port = port:PI15<6> - порт для прерываний от тача
ctp_wakeup = port:PI14<1><1> - порт для пробуждения контроллера

в блоке [ctp_list_para] включим авто поиск тача ctp_det_used = 1 и конкретно нашего maXTouch = 1

Сами исходники драйвера положить в SDK/lichee/linux-3.4/drivers/input/touchscreen

в этом же каталоге подправить Makefile добавив
obj-$(CONFIG_TOUCHSCREEN_ATMEL_MXT1386) += atmel_mxt1386.o

В файл SDK/lichee/linux-3.4/arch/arm/configs/cubietruck_config добавить
CONFIG_TOUCHSCREEN_ATMEL_MXT1386=m

Осталось собрать андройд, загрузиться, положить файл atmel-maxtouch.idc в /system/usr/idc

загрузить драйвер командой insmod /system/vendor/modules/atmel_mxt1386.ko

и проверить работу тача, например посмотреть евенты через команду getevent

Сам файл драйвера с моими правками во вложении. В нем изменил инициализацию и работу через gpio прерывания

DaveMF 04.01.2015 22:53

Отлично, земляк!!!
Как правильно заметил, чтобы все заработало необходимо пересобирать андроид под конкретную плату. Без этого никак!

nikolna 04.01.2015 23:44

Цитата:

Сообщение от DaveMF (Сообщение 316209)
Отлично, земляк!!!
Как правильно заметил, чтобы все заработало необходимо пересобирать андроид под конкретную плату. Без этого никак!

На самом деле раньше можно было по другому:
На кубике на предыдущих сборках андройда, можно было из прошивки вытащить файл script.bin и преобразовав в fex править его, но теперь вроде такое не прокатывает и приходится пересобирать!


Часовой пояс GMT +4, время: 09:28.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot