да он нужен только на стадии инициализации дисплея, поэтому скорее нет чем да
А “петух” то что хотел сказать?
Что комбинацией этих выводов контролёр дисплея начинает общаться по интерфейсу SPI, все?
@Kakmyc принято.
Я почитаю более детально, мы разошлись в модулях дисплеев и их контроллерах.
Как я соскользнул))
Да, посмотрел я даташит на этот ST7789, есть там режим 3-line interface, точнее их там даже 2.
Одна из этих 3-line нам не нужна, это ChipSelect.
Из оставшихся:
Mode 1 подразумевает подключение по линиям DCX(clock) и SDA(data in/out)
Mode 2 , тот же DCX, но линия ввод/вывод поделилась на SDA и SDO.
Так же два режима для подключения 4-line interface. Вот они уже подразумевают наличие линии и WRX(data/command)
А всего режимов подключения у этого дисплея ВОСЕМЬ.
- 16bit parallel
- 8-bit parallel
- 18-bit parallel
- 9-bit parallel
- 3-line serial 1
- 4-line serial 1
- 3-line serial 2
- 4- line serial 2
Последовательные интерфейсы характеризуются как:
3-line/9bit
4-line/8bit
В MODE1 линия данных двунаправленная, в MODE2 линий две in/out
Для выбора режима работы предусмотрено 4 вывода “interface mode” IM0 … IM3.
Так что, все в первую очередь зависит от того что там и как китайцы на модуле напаяли.
Но в любом случае никто не запрещает сделать реализацию работы по двум проводам.
В общем , как говорил мой бывший начальник:“Конструктор, в первую очередь, работает с документацией. А что потом у кого дальше по цепочке не получается и почему, это уже проблемы криворуких индейцев.”
И тем не менее, жду ответа ТС, помогла ли пересадка на аппаратный SPI.
Модуль отказывается что либо показывать, если подключить его на аппаратный spi.
И этот человек убеждает нас, что он сам сделал пробник…
Дед, бригада сборщиков на автовазе, теперь тоже могут убеждать нас, что они сами сделали жигули.)))
Через тернии к звёздам…
//Arduino_ST7789 tft = Arduino_ST7789(TFT_DC, TFT_RST, TFT_MOSI, TFT_SCLK); //for display without CS pin
Arduino_ST7789 tft = Arduino_ST7789(TFT_DC, TFT_RST);//аппаратный spi
На уно другую библиотеку использовал. Arduino_ST7789_Fast.h
для аппаратного SPI надо указать Adafruit_ST7789(int8_t cs, int8_t dc, int8_t rst);
Как бы SDA это не всегда I2C
Adafruit_ST7789 TFT = Adafruit_ST7789(10, 8, 9);
Как выяснилось стандартный I2C не работал из этих настроек:
ACSR = _BV(ACI)
| _BV(ACIE)
| _BV(ACIS0) | _BV(ACIS1);
TCCR1A=0; TIMSK1 = 1<<TOIE1;
TCCR1A=1<<COM1A0;
TCCR1B=0;
И это грусть-печаль так как проект уже готов и я хотел к нему прикрутить красивый экран.
Первое. Покажи свою схему (всю не нужно, только часть с аппаратным SPI) подключения к дисплею и внешним (если они есть) компонентам.
Второе, у меня есть дисплей на st7789 на 1.8 дюйма, оно памяти жрёть пипец сколько - у тебя что за мк?
Поменяйте библиотеку как я писал выше. Дисплей Ваш SPI. На нано или уно толком только текст-цифры, графику цветную не потянут.
Я пробовал на
#include <Arduino_GFX_Library.h>
Ни как не получилось его завести на этой библиотеке.
Пробовал так:
Arduino_DataBus *bus = new Arduino_HWSPI(10 /* DC */, 8 /* CS */);
Arduino_GFX *TFT = new Arduino_ST7789(
bus, 9 /* RST */, 0 /* rotation */, true /* IPS */,
135 /* width */, 240 /* height */,
52 /* col offset 1 */, 40 /* row offset 1 */,
53 /* col offset 2 */, 40 /* row offset 2 */);
и так
Arduino_ST7789 TFT = Arduino_ST7789(10, 8, 9);
и так
Arduino_ST7789 TFT = Arduino_ST7789(10, 9);
Сейчас схема такая, мк обычная Arduino Nano
Код:
Adafruit_ST7789 TFT = Adafruit_ST7789(10, 8, 9);
откуда на Vin питание взялось это раз, дисплей точно 5 вольтовый?
Попробуй библиотеку отсюда:
https://duino.ru/tsvetnoy-tft-ips-displey-st7789-s-razresheniem-240x240/
У меня с ней всё запустилось сразу.