3.95 LCD модуль (parallel port) подключение к ESP 32

deestylov
Offline
Зарегистрирован: 10.12.2020

Доброго дня, господа!



Достался мне дисплей 3.95 дюйма, на чипе ST7796S. (посмотреть его можно тут: http://www.lcdwiki.com/images/d/d3/MAR3953-001.jpg). Подключается через параллельный порт 8 или 16 бит к ESP32. SPI не поддерживается для управления данным дисплеем, но его пины (SPI) на самом дисплее имеются. Страница дисплея на LCD WIKI: http://www.lcdwiki.com/3.95inc... y-Mega2560 .



Удалось завести сам дисплей по 8 битной шине, с помощью uTFT_SPI, но никак не могу разобраться с тачскрином. В uTFT_SPI нет его поддержки, при параллельном подключении дисплея. (и не будет, как говорит разработчик).

Пробовал библиотеки: LCDWIKI_TOUCH (они только под ардуину оказались), URTouch (они только под ардуину оказались), Adafruit_TouchScreen и некоторые кастомные - результата нет, тач не работает. По даташиту, тач управляется 5 пинами - SPI, tp_cs, tp_irq. SPI подключил в соотвествующие пины (23, 19, 18), tp_cs, tp_irq - подключил к аналоговые 12 и 13 пин, результата нет. Нигде никакой информации толком нет на этот счет, только для Меги или УНО.



Прошу помощи, если кто в курсе. Заранее большое спасибо!

rkit
Offline
Зарегистрирован: 23.11.2016

А чем информация для меги или уно не устраивает?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Так он с Мегой или Уно работает?

deestylov
Offline
Зарегистрирован: 10.12.2020

Смысла в ней нет. Подключаю по такому-же принципу, результата нет. Библиотеки с которыми оно работает - под мегу и уно, но для ESP 32 не компилируется.  

deestylov
Offline
Зарегистрирован: 10.12.2020

С мегой точно работает, с ESP не получается(

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Если с Мегой работает, делайте на ESP точно так же, как на Меге.

rkit
Offline
Зарегистрирован: 23.11.2016

deestylov пишет:

Смысла в ней нет. Подключаю по такому-же принципу, результата нет. Библиотеки с которыми оно работает - под мегу и уно, но для ESP 32 не компилируется.  

А приложить мозги не пробовал? Ну не тупо копировать, а с пониманием?

deestylov
Offline
Зарегистрирован: 10.12.2020

andriano пишет:

Если с Мегой работает, делайте на ESP точно так же, как на Меге.

 

Посоветуйте библиотеку для проверки тача?

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

deestylov
Offline
Зарегистрирован: 10.12.2020

rkit пишет:

deestylov пишет:

Смысла в ней нет. Подключаю по такому-же принципу, результата нет. Библиотеки с которыми оно работает - под мегу и уно, но для ESP 32 не компилируется.  

А приложить мозги не пробовал? Ну не тупо копировать, а с пониманием?

Ты вопрос видел вообще? Если тебе ответить нечего по делу, прикладывай свои "мозги" в другом месте.

nik182
Offline
Зарегистрирован: 04.05.2015

Даже на приведённой картинке видно, что тач подключается через spi. Т.е. 4 ноги и земля. Пятая нога прерывание от тача.

deestylov
Offline
Зарегистрирован: 10.12.2020

nik182 пишет:
Даже на приведённой картинке видно, что тач подключается через spi. Т.е. 4 ноги и земля. Пятая нога прерывание от тача.

SPI подключил корректно,  прерывание от тача - куда идет обычно? Ни разу не подключал, не особо разбираюсь. Пишут про аналоговый пин вроде как.

b707
Offline
Зарегистрирован: 26.05.2017

deestylov пишет:

SPI подключил корректно,  прерывание от тача - куда идет обычно? Ни разу не подключал, не особо разбираюсь. Пишут про аналоговый пин вроде как.

прерывание - на анлоговый пин? :)

с такими познаниями ты собрался библиотеку портировать? Правильно выше написали - включи мозг. Но если нет мозгов, то и включать нечего

deestylov
Offline
Зарегистрирован: 10.12.2020

b707 пишет:

deestylov пишет:

SPI подключил корректно,  прерывание от тача - куда идет обычно? Ни разу не подключал, не особо разбираюсь. Пишут про аналоговый пин вроде как.

прерывание - на анлоговый пин? :)

с такими познаниями ты собрался библиотеку портировать? Правильно выше написали - включи мозг. Но если нет мозгов, то и включать нечего

Пишут так, я то причем)) Вы читайте внимательнее и отвечайте по делу, если есть что. Спасибо. 

b707
Offline
Зарегистрирован: 26.05.2017

а почитать немного, что такое "прерывание"? Причем абсолютно не важно, для какого МК - можно даже для атмега328 для начала

А то фраза смешная в первом сообщении "нигде нет никакой информации, только для мега и уно"... А применить инфу для меги в ЕСП32 - не судьба? Что, разве тач принципиально по разному работает в меге и ЕСП? Или у них разные принципы SPI и прерываний?

Хотя выше уже предлагали... видимо не судьба

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

deestylov пишет:

Посоветуйте библиотеку для проверки тача?

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

deestylov, если Вы с пинами не можете разобраться, обратитесь в раздел "Ищу исполнителя". Это будет самый простой путь.

deestylov
Offline
Зарегистрирован: 10.12.2020

b707 пишет:

а почитать немного, что такое "прерывание"? Причем абсолютно не важно, для какого МК - можно даже для атмега328 для начала

А то фраза смешная в первом сообщении "нигде нет никакой информации, только для мега и уно"... А применить инфу для меги в ЕСП32 - не судьба? Что, разве тач принципиально по разному работает в меге и ЕСП? Или у них разные принципы SPI и прерываний?

Хотя выше уже предлагали... видимо не судьба

 

Вы тут, я смотрю, прекрасно самоутверждаетесь. Ты если такой "много умный", то дай наводку нормально или пример с похожим подключением, чтоб проще было разобраться. будь проще, дядь. Про прерывания обязательно почитаю, и на том спасибо. 

deestylov
Offline
Зарегистрирован: 10.12.2020

andriano пишет:

deestylov пишет:

Посоветуйте библиотеку для проверки тача?

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

deestylov, если Вы с пинами не можете разобраться, обратитесь в раздел "Ищу исполнителя". Это будет самый простой путь.

Спасибо за совет, но бюджетом скорее всего не порадую. 

b707
Offline
Зарегистрирован: 26.05.2017

deestylov пишет:

дай наводку нормально или пример с похожим подключением

библиотеки сам перечислил в первом сообщении - чем не "пример с похожим подключением"?

deestylov
Offline
Зарегистрирован: 10.12.2020

b707 пишет:

deestylov пишет:

дай наводку нормально или пример с похожим подключением

библиотеки сам перечислил в первом сообщении - чем не "пример с похожим подключением"?

Проблема не с подключением. Сверился с Мегой, почитал про прерывания, с пинами вроде ровно все, не совсем понятно как проверить. Библиотеки, которые перечислил работают с 4 пинами, у меня 5 получается. Не понятно какие именно нужно прописывать. 

b707
Offline
Зарегистрирован: 26.05.2017

deestylov пишет:

Библиотеки, которые перечислил работают с 4 пинами, у меня 5 получается.

либа LCDWIKI_TOUCH  - родная для дисплея - работает с 5 пинами

А вообще контроллер тача там на ИС 2046 - для него куча библиотек на гитхабе. Может в том числе и для ЕСП32...

Во всяком случае в гугле на запрос "xpt2046 esp32" куча информации вываливается

deestylov
Offline
Зарегистрирован: 10.12.2020

b707 пишет:

deestylov пишет:

Библиотеки, которые перечислил работают с 4 пинами, у меня 5 получается.

либа LCDWIKI_TOUCH  - родная для дисплея - работает с 5 пинами

А вообще контроллер тача там на ИС 2046 - для него куча библиотек на гитхабе. Может в том числе и для ЕСП32...

Во всяком случае в гугле на запрос "xpt2046 esp32" куча информации вываливается

Спасибо за инфу, буду разбираться

deestylov
Offline
Зарегистрирован: 10.12.2020

b707 пишет:

deestylov пишет:

Библиотеки, которые перечислил работают с 4 пинами, у меня 5 получается.

либа LCDWIKI_TOUCH  - родная для дисплея - работает с 5 пинами

А вообще контроллер тача там на ИС 2046 - для него куча библиотек на гитхабе. Может в том числе и для ЕСП32...

Во всяком случае в гугле на запрос "xpt2046 esp32" куча информации вываливается

Проблема решена, тач заработал! Большое спасибо Вам, все-же вы помогли, мне глупому, безрукому и ни на что не способному. От души! Обещаю стать лучше))) :В

slider
Offline
Зарегистрирован: 17.06.2014

deestylov пишет:

...Прошу помощи, если кто в курсе. Заранее большое спасибо!

вывод изображения побеждайте.
гуглить   esp32 lcd 8bit  , esp32 lcd 16bit 

https://github.com/Bodmer/TFT_eSPI/issues/299

https://forum.arduino.cc/index.php?topic=540147.0 (если не париться с переключением диспа с 16 на 8бит)

тем более , по ссылке, что вы дали на ваш дисплей http://www.lcdwiki.com/3.95inch_Arduino_Display-Mega2560  , его можно запросто переключить на 8бит. 

// хотя считаю что можно и все 16бит завести , согласно даташиту ESP32 https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf   стр.79 :

Name Description
Bit[0] Set to 1 to enable the Hold function of pad U0RTD
Bit[1] Set to 1 to enable the Hold function of pad U0TXD
Bit[2] Set to 1 to enable the Hold function of pad
SD_CLK
Bit[3] Set to 1 to enable the Hold function of pad
SD_DATA0
Bit[4] Set to 1 to enable the Hold function of pad
SD_DATA1
Bit[5] Set to 1 to enable the Hold function of pad
SD_DATA2
Bit[6] Set to 1 to enable the Hold function of pad
SD_DATA3
Bit[7] Set to 1 to enable the Hold function of pad
SD_CMD
Bit[8] Set to 1 to enable the Hold function of pad GPIO5
Bit[9] Set to 1 to enable the Hold function of pad GPIO16
Bit[10] Set to 1 to enable the Hold function of pad GPIO17
Bit[11] Set to 1 to enable the Hold function of pad GPIO18
Bit[12] Set to 1 to enable the Hold function of pad GPIO19
Bit[13] Set to 1 to enable the Hold function of pad GPIO20
Bit[14] Set to 1 to enable the Hold function of pad GPIO21
Bit[15] Set to 1 to enable the Hold function of pad GPIO22
Bit[16] Set to 1 to enable the Hold function of pad GPIO23

только надо на руках иметь ESP32 DevKitC  ( V4 ), а не ESP32 DevKit V1

//// существуют даже платы переходники (шилды) с ESP32 на такие большие дисплеи с параллельной шиной - ESP32-LCDKit  . описание и схема https://github.com/espressif/esp-iot-solution/blob/master/documents/evaluation_boards/ESP32_LCDKit_guide_en.md  (на этом шилде старшие разряды 16бит , замыкают на - , поэтому там 8бит честных )

 

deestylov
Offline
Зарегистрирован: 10.12.2020

slider пишет:

deestylov пишет:

...Прошу помощи, если кто в курсе. Заранее большое спасибо!

вывод изображения побеждайте.
гуглить   esp32 lcd 8bit  , esp32 lcd 16bit 

https://github.com/Bodmer/TFT_eSPI/issues/299

https://forum.arduino.cc/index.php?topic=540147.0 (если не париться с переключением диспа с 16 на 8бит)

тем более , по ссылке, что вы дали на ваш дисплей http://www.lcdwiki.com/3.95inch_Arduino_Display-Mega2560  , его можно запросто переключить на 8бит. 

// хотя считаю что можно и все 16бит завести , согласно даташиту ESP32 https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf   стр.79 :

Name Description
Bit[0] Set to 1 to enable the Hold function of pad U0RTD
Bit[1] Set to 1 to enable the Hold function of pad U0TXD
Bit[2] Set to 1 to enable the Hold function of pad
SD_CLK
Bit[3] Set to 1 to enable the Hold function of pad
SD_DATA0
Bit[4] Set to 1 to enable the Hold function of pad
SD_DATA1
Bit[5] Set to 1 to enable the Hold function of pad
SD_DATA2
Bit[6] Set to 1 to enable the Hold function of pad
SD_DATA3
Bit[7] Set to 1 to enable the Hold function of pad
SD_CMD
Bit[8] Set to 1 to enable the Hold function of pad GPIO5
Bit[9] Set to 1 to enable the Hold function of pad GPIO16
Bit[10] Set to 1 to enable the Hold function of pad GPIO17
Bit[11] Set to 1 to enable the Hold function of pad GPIO18
Bit[12] Set to 1 to enable the Hold function of pad GPIO19
Bit[13] Set to 1 to enable the Hold function of pad GPIO20
Bit[14] Set to 1 to enable the Hold function of pad GPIO21
Bit[15] Set to 1 to enable the Hold function of pad GPIO22
Bit[16] Set to 1 to enable the Hold function of pad GPIO23

только надо на руках иметь ESP32 DevKitC  ( V4 ), а не ESP32 DevKit V1

//// существуют даже платы переходники (шилды) с ESP32 на такие большие дисплеи с параллельной шиной - ESP32-LCDKit  . описание и схема https://github.com/espressif/esp-iot-solution/blob/master/documents/evaluation_boards/ESP32_LCDKit_guide_en.md  (на этом шилде старшие разряды 16бит , замыкают на - , поэтому там 8бит честных )

 

Изображение нормально выводится с помощью библиотеки TFT_eSPI. В новой версии есть соотвествующий драйвер. Он не плохо работает с параллельным портом, 8 БИТ вывести особых проблем не составило. Но только вот нет в библиотеке поддержки работы тачскрина с при параллельном порте, только SPI. Пришлось ставить отдельную библиотеку на чип тача и работать с ними в связке.