пытаемся подключить точ-панель к "штатным" атмеловским аналоговым ногам (без AD7843, AD7846), но что-то не получается с ходу.
поскольку схема модуля секретная, должен спросить по другому:
подключение пинов процессора в части ADC точ-панели соответствует атмеловскому? для начала имеются в виду ножки TSADVREF, VDDANA.
Соответствует.
Предыстория, на прототипе платы SK-AT91SAM9G45 я пытался проверить встроенный контроллер тачскрина, но выяснилось, что не все линии самого тачскрина вывел, плюс вобще падало ядро при включении в его драйвера, на этом эксперименты со встроенным тачскрином тогда закончил.
Недавно, решил снова проверить, т.к. с тех пор провел ревизию 9g45 плат и TFT плагов и предусмотрел возможность подключения стекла тачскрина минуя ADS7843, выяснилось, что допустил ошибку в распиновке подключения к контроллеру, но на "лепнине" драйвер нормально работал (хотя в ядре, я не помню, чтобы что то менял).
вот это самое интересное - поскольку в доке атмела риунок 40-2 и 40-3 прямо противоречат друг другу, а понятия X и Y, TOP, BOTTOM сильно относительны, в том числе и от ориентации дисплея (схема кита от атмела - очень яркий пример перерождения X<->Y), то был бы очень признателен за конкретный совет какие линии точ-панели к каким контактам X1 OEM подключать (ну или к разъему на MB).
Кстати, если сопоставить схемы плага на 7" и SK-MB, то там сигналы эти тоже перерождаютя TS4 по-моему в TS1, точно не помню, даже табличку на работе составил (пишу из дома)
жалко, что Павел так и не ответил, но для любопытствующих докладываю.
Для подключения точ-панели совершенно необходимо между PD23(AD3Ym) и GND 100k...250k для исключения ложного срабатывания. О чем и сказано в ERRATA от атмела.
Поскольку схема секретная, то о наличии или отсутствии этой притяжки к земле догадаться невозможно.
Однако, это не спасает, если панель большая (7"), поскольку в этом случае при медленном (или несильном) нажатии переходное сопротивление добавляется к сопротивлению панели и это приводит к неправильному считыванию координат. То есть давить "надо уметь" - сильно и резко. Возможно, что в небольших панелях этого дефекта нет. Основная причина - нет возможность дать процессу "устаканиться" перед запуском АЦП. Времянки, которые позволяет организовать контроллер точ-панели = это порядка 100мкс, а надо единицы - десятки миллисекунд. В свое время проходили это.
Таким образом, нам необходимо ставить внешний точ-контроллер.
вопрос к Павлу: у модуля выведены наруже SPI0, SPI1.
Лог загрузки показывет, что ADS7846 обслуживается по SPI3, который в модуле не выведен. Вопрос: на какой SPI цеплять ADS7843 чтоб не было конфликта? И куда его IRQ?
Можно было и напомнить ...
В добавок, я экспериментировал достаточное время назад чтобы позабыть все тонкости и просто опасаюсь дезинформировать, изменения я внес в новые плаги которые на днях ожидаю (опять посылка повисла), на них еще раз все проверю, внесу изменения в BSP и опубликую.
Сколько можно меня этим "тыкать" (Вы много знаете OEM модулей с открытой схемой). Соответсие портов в боард файле прописано.
TS1=PD20
TS2=PD21
TS3=PD22
TS4=PD23
Подтяжку из ерраты я ставил, но ошибся и ставил ее на PD20, поэтому, ее нужно ставить внешнюю.
Экспериментировал с 7 и 4,3 дюймовыми панелями, на обоих тачскрин работал вполне нормально, но ts_lib слегка чудила - при запуске ts_test от раза к разу выдавала разные смещения.
Все это буду смотреть-вспоминать, как новые плаги придут.
В штатном варианте ADS7843 подключается через GPIO SPI (на эти же самы TSX пины), его IRQ в боард-файле прописан.
то что Вы написали -
TS1=PD20
TS2=PD21
TS3=PD22
TS4=PD23
в доке прописано. И прочитано. Но в доке нет упоминания о возможности подключения на эти ноги внешнего точ-контроллера. И в своем ответе Вы также не пояснили, куда именно подключить ноги ADS7843(46):
DCLK = ?
CS = ?
DIN = ?
DOUT = ?
PENIRQ = ?
У ADS7843(46) используется 5 ног, а TS1-TS4 - только 4.
можно попытаться догадаться что CS надо на землю (всегда активен) это верно? Куда конкретно остальные?
поскольку я не занимаюсь программированием, я не знаю, что такое боард-файл и где его найти на том диске, что пришел с платой. Вы предлагаете смотреть сорцы? НЕпрограммист там глаз сломает...Мне всего-лишь нужно припаять 4 (5) проводов.
скажите название этого файла, попробую разобраться...
отвлеченно: все-таки было бы правильно внести в описание OEM платы как подключить внешний точ-контроллер, вы бы значительно сэкономили бы и свое время и время вашего клиента.
linux-2.6.36-rc6/arch/arm/mach-at91/board-sam9m10g45ek.c и
linux-2.6.36-rc6/arch/arm/mach-at91/at91sam9g45_devices.c
На самом деле, тут и программист с наскоку все себе сломает, просто подход "ваше непонимание (а у когото и принципиальное нежелание разбираться) - мои проблемы" меня крайне не устравает.
Абсолютно не понимаю проблемы, открываете схему TFT плага и материнской платы и определяете однозначное соответствие какой пин контроллера куда к процессору идет (раз уж с боард-файлом заминка).
На что мне мануал писать, на то чего еще нет (варианта прямого подключения стекла)?
Я же сказал, как разберусь, все опубликую и в мануал скорее всего раздел добавлю.
вынужден оправдываться:
с боард-файлом заминка, поскольку на диске в комплекте поставки такого не оказалось, так же как и образа аварийного восстановления системы. Каким же образом схемотехник должен по вашему мнению догадаться? Что касается плагов - то в описаниях ни в одном из ваших плагов не упоминается совместимость с SK-9G45-MB, но я их конечно все равно смотрел, но не мог сделать однозначного вывода о том, как правильно подключить, поскольку SPI у атмела есть, а подключение - почему-то к GPIO. Информации о том, что на GPIO эмулируется SPI мне тоже неоткуда было взять. На отладочных платах от Атмела (AT91SAM9M10-G45-EK_REVA2, AT91SAM9G45-EKES_REVE) таких финтов с программной эмуляцией нет. Если бы дока от вас была чуть полнее, мне бы не пришлось задавать здесь "лишних" вопросов.
Что касается лени, непонимания, и прочих упреков то хочу заметить, что 5 лет назад делали подобную систему на sharp79520 с экраном 7" и точ-панелью с контроллером 7843, 3 года назад мы делали аналогичную систему на циррусе_9315, 200МГц, но там точ-контроллер встроенный, в обоих слючаях вопросы задавать вообще было некому, но системы были успешно спроектированы и отлично работают. Жалко, что циррус убил это направление. Поэтому и делаем попытку использовать Ваши готовые модули.
"лишний" вопрос: программная эмуляция SPI это особенность только ваших плат?
Мы так до ругани дойдем, Вы виртуальную машину видимо не запускали даже, или опять вспомните что Вы не программист ...
Открываем мануал, вторая страница:
Вот видите, и делали с нуля и спрашивать было негде, но разобраться это не помешало, а в случае со мной, вруг "это не то, там не так", понимаю, включился принцип "мы ведь деньги заплатили", тогда и я включаю принцип "смотрите условия поставки" - не устраивает - возвращайте.
Не совсем понял, это очередной упрек или нет, это фишка ядра, а не конкретных плат и смысл в том, что по моему глубокому убеждению - не стоит отдавать "драгоценную" периферию на мелочевку (аппаратный SPI может десятки мегабит толкать по DMA).
да, не запускал, я оперирую схемами и даташитами, 10 лет назад писал программы для PIC, но это не считается. Поставить виртуальную машину, чтоб посмотреть незнамо чего незнамо в каком файле...при этом искать не зная чего...что там в файлах, названия которых я не знаю...
ваш совет хорошо подходит для человека, который сам линукс-програмер и схемотехник в одном лице. Скорее всего, Вы меряете по себе. Но в жизни не всегда так, даже чаще совсем не так.
ни капли. просто вопрос. видимо от того, что я как схеметехник в функциях ядра не разбираюсь. Мне SPI вовсе не драгоценен, для ADS7843 совсем не жалко. Ну, более-менее прояснилось.