Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
Раскорчевать TS_LIB
Pavel Ivanchenko
Добавлено 22.04.2011 10:14 Редактировалось 22.04.2011 12:35 Сообщение: 71
Pavel Ivanchenko
Admin
4.39

Пункты: 91348
Регистрация: 24.03.2009
Пол: Мужчина
Клеймлю себя позором (спасибо sasamy, что заметил) за такую грубую и поверхностную ошибку!
В боард-файле, видимо со времен не очень вдумчивых копипастов осталась строка:
Код
at91_set_B_periph(AT91_PIN_PD21, 1); /* External IRQ1, with pullup */

Как минимум, это не правильно (т.к. на этом пине нет перифении-прерывания), нужно закоментировать!
Добавить:
Код
at91_set_gpio_input(AT91_PIN_PD21);


Видимо глаз "мылил" принцип "на четырехдюймовой панели ведь работает нормально".
Плюс, можно добавить:
Код
#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
{ /* ADS7846 */
.modalias = "ads7846",
.max_speed_hz = 1000000,
.bus_num = 3,
>> это .controller_data = (void *)AT91_PIN_PC10,
.platform_data = &ads_info,
.irq = AT91_PIN_PD21,
},
#endif

Для того, чтобы CS учавтвовал в общении.

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

Кто адаптирует, а работать все-равно не будет, стучите в личку через пару недель, исправлю и проверю все BSP, выдам линки.
Спуститься к концу Подняться к началу
Персональная информация
sherr
Добавлено 01.05.2011 13:16 Редактировалось 01.05.2011 13:50 Сообщение: 72
sherr
0

Пункты: 6512
Регистрация: 02.11.2009
>> это .controller_data = (void *)AT91_PIN_PC10,

Это что, комментарий такой, да еще с русскими буквами,
или просто в строке описка ?

Или следует читать так :

#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
{ /* ADS7846 */
.modalias = "ads7846",
.max_speed_hz = 1000000,
.bus_num = 3,
.controller_data = (void *)AT91_PIN_PC10,
.platform_data = &ads_info,
.irq = AT91_PIN_PD21,
},
#endif

И это в файле платы .
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 01.05.2011 16:23 Сообщение: 73
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
указующая строка:
Код
Плюс, можно добавить:

что добавить:
Код
>> это .controller_data = (void *)AT91_PIN_PC10,

разумеется, убрав все перед точкой..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sherr
Добавлено 01.05.2011 17:17 Сообщение: 74
sherr
0

Пункты: 6512
Регистрация: 02.11.2009
[quote]указующая строка:
Код
Плюс, можно добавить:

что добавить:
Код
>> это .controller_data = (void *)AT91_PIN_PC10,

разумеется, убрав все перед точкой..[/quote]
Спасибо, уже до самого дошло...
Спуститься к концу Подняться к началу
Персональная информация
sherr
Добавлено 01.05.2011 21:57 Сообщение: 75
sherr
0

Пункты: 6512
Регистрация: 02.11.2009
Вообще-то строчка должна быть такой -
at91_set_gpio_input(AT91_PIN_PD21 ,1);
иначе не компилируется ....

В общем собрал, залил , калибруется более-менее штатно,
не виснет при рисовании, но тормозит как при калибровке,
так и при рисовании, и при нажатии на кнопки - задержки
на глаз до 0,5-0,8 секунды, к тому же при рисовании
иногда бывают проскоки вправо до конца экрана.
Рисовать приходится о-о-о-очень медленно.
Но - на экранные кнопки жать уже можно ,
Начало положено, всем спасибо !

Теперь бы еще с тормозами разобраться....
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 01.05.2011 23:05 Редактировалось 01.05.2011 23:20 Сообщение: 76
sasamy
4.70

Пункты: 76880
Регистрация: 14.08.2009
1 Попробуйте увеличить толерантность в структуре ads_info в боард-файле
...
.debounce_tol = 20,
...

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

2 Уменьшить частоту pixclock в структуре at91_tft_vga_modes, в районе 20000 не должно быть заметно мерцание экрана и тормоза должны заметно поубавиться.

.pixclock = KHZ2PICOS(20000),
Спуститься к концу Подняться к началу
Персональная информация
sherr
Добавлено 03.05.2011 22:30 Редактировалось 03.05.2011 22:40 Сообщение: 77
sherr
0

Пункты: 6512
Регистрация: 02.11.2009
Цитата
1 Попробуйте увеличить толерантность в структуре ads_info в боард-файле
...
.debounce_tol = 20,
...

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

2 Уменьшить частоту pixclock в структуре at91_tft_vga_modes, в районе 20000 не должно быть заметно мерцание экрана и тормоза должны заметно поубавиться.

.pixclock = KHZ2PICOS(20000),


Попробовал так - тормоза стали чуть меньше, (tol = 25)
но глюков и прострелов при непрерывном ведении
(рисовании - а оно мне также нужно) только добавилось,
тем более это обидно что на экране 4,3 этого ничего
не было. Замена драйвера 7846 на старый к уменьшению тормозов не привела, ну только повисло
через примерно 1 минуту. Интересно, что первые 5-10
секунд после включения ts_test почти нормально, по-
том по нарастающей....

ps поднятие tol до 50 также ничего не дало
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 03.05.2011 22:48 Редактировалось 03.05.2011 22:49 Сообщение: 78
sasamy
4.70

Пункты: 76880
Регистрация: 14.08.2009
На 7" явно наводки сильно сказываются - как на интерфейсе так и на аналоговой части. Если уменьшить pixclock до значений 4,3" плага (9000) - у меня например ванильный драйвер вообще не зависает и отскоков нет при рисовании, но сам экран мерцает на такой частоте. Надо бы конечно вообще аналоговую землю делать для ads7843.

PS тут бОльшую роль играет как раз частота pixclock а не толерантность - из-за нее наводки судя по всему
Спуститься к концу Подняться к началу
Персональная информация
sherr
Добавлено 03.05.2011 23:16 Сообщение: 79
sherr
0

Пункты: 6512
Регистрация: 02.11.2009
Цитата
На 7" явно наводки сильно сказываются - как на интерфейсе так и на аналоговой части. Если уменьшить pixclock до значений 4,3" плага (9000) - у меня например ванильный драйвер вообще не зависает и отскоков нет при рисовании, но сам экран мерцает на такой частоте. Надо бы конечно вообще аналоговую землю делать для ads7843.

PS тут бОльшую роль играет как раз частота pixclock а не толерантность - из-за нее наводки судя по всему


Вернул tol = 10 и pixclk уменьшил до 10000 - рисует
НАМНОГО лучше . Теперь, я так понимаю, надо брать
осциллограф и смотреть наводки ...
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 03.05.2011 23:31 Редактировалось 03.05.2011 23:34 Сообщение: 80
sasamy
4.70

Пункты: 76880
Регистрация: 14.08.2009
Цитата

надо брать осциллограф и смотреть наводки ...


Осциллограф от наводок не спасет :) Если есть желание и возможность - попробуйте отпаять земляную лапу ads7843 от общей земли и подпаять к этой лапе отдельный провод от "-" прямо с разъема БП основной платы. У меня к сожалению руки к паяльнику не приспособлены чтобы паять таких мелких тараканов и проверить - я боюсь там все испортить :)
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux