ST7789 1.14'' и Arduino Nano низкий FPS

Схема подключения:


Код:

#include <Adafruit_ST7789.h>
#define TFT_CS         10
#define TFT_RST       11
#define TFT_DC         13
#define TFT_MOSI     A5
#define TFT_SCLK     12

Adafruit_ST7789 TFT = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);

void setup()
{
  Serial.begin(9600);
  TFT.init(135, 240);
  TFT.setRotation(1);
  TFT.fillScreen(0x0000);
  
  ADCSRB = 0;                         
  ACSR =  _BV(ACI)                    
        | _BV(ACIE)            
        | _BV(ACIS0) | _BV(ACIS1);   
                                     
  TCCR1A=0; TIMSK1 = 1<<TOIE1;        
  TCCR1A=1<<COM1A0;       
  TCCR1B=0;
}

void loop(){
	pinMode(2, INPUT);
	pinMode(3, INPUT);
	pinMode(4, INPUT);
	pinMode(5, INPUT);
	pinMode(8, INPUT);
	pinMode(9, INPUT);
	pinMode(A4, INPUT);

	TFT.setCursor(20, 27);
	TFT.setTextSize(5);
	TFT.setTextColor(0xFFFF, 0x0000);
	TFT.print(random(10000,99999));
}

Частота обновления кадров 2-3 в секунду.

123

При попытке ускорить:

TFT.setSPISpeed(8000000);

Дисплей просто зависает.

Подскажите как ускорить вывод данных на дисплей у данной библиотеки или другую библиотеку, которая позволит обновлять данные на дисплее быстрее?

А что ты хочешь от старого «камня» и 16МГц?

скорость SPI у нано 4 мегагерца, хочешь быстрее бери камень пошустрее

А я вот вижу, что у него MOSI подключен к А5.
А это значит, что SPI программный.
Переделывай на аппаратный. Скорость выше в разы.

ТС, надеюсь распиновку сам найдешь.

Хотя…


Вот из примеров библиотеки

Это у аппаратного…

Ты с ним не спорь, человек умеет SPI дисплеи на двух ногах заводить МОСИ и КЛОК)

Да я тоже умею.
Как это к делу относится ?

Ты типа не умеешь ?
CS вообще опционально, особенно когда одна железяка на интерфейсе, а обратная связь тем более опция.

Было дело как то на аппаратном SPI через DMA и сдвиговый регистр дисплей запускал (тоже по двум пинам).

А DC вы куда обои деваете?

Я вот залез сейчас на первый попавшийся ресурс, попалась Википедия, источник конечно так себе, но все же…

Нет там никаких DC.
И не на всех дисплеях этот сигнал есть.
В рамках обсуждения двух проводов рассматриваю SPI как он описан в спецификации

Не подобайся ему, какой SPI дисплей ты завел на двух ногах через ДМА?
Ну и тут вообщем идёт речь о конкретной модели ДИСПЛЕЯ, а не о протоколе SPI.

Ну тут никто не заявлял, что именно этот дисплей будет работать от двух проводов.

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

Ты меня удивляешь, заявления были от тебя, а ответа небыло…

Да что за день сегодня…

Немного от себя скажу. Я пока мало с дисплеями на SPI работал, но DC (Data/Comand), иногда обозначаемый на дисплее как RS, были на всех. Не знаю как без него дисплей поймёт что ему «суют»…

1 лайк

Вот и я не встречал, но один человек на форуме все же умеет по двум линиям
А то что их стало двое… У меня в голове не укладывается, ладно бы от кого, но уважаемый дон…
Я теряюсь.

Ну хотя бы ILI9325

У него тоже есть пин (RS), на сколько я понимаю.

Ну как обычно в последовательных интерфейсах. По байту идентификации.

Ну вот вам описание режима SPI.
Никаких пинов RS/DC нет.

Есть идентификатор RS, это старший бит, стартового байта

Есть подозрение, что если поизучать даташиты на прочие дисплеи, то вполне возможно и там будут режимы в которых можно обойтись без пина RS/DC. Да, скорость упадет, но несущественно.

Я тут выяснил на днях, что бывают даже дисплеи 1602, которые вполне можно подключить по SPI, хотя на самом дисплее такие выводы не указаны.
Стоят в пультах китайских недочпу типа NK105. Проводов 5 или 6 (точно не помню) всего идет на дисплей, это вместе с подсветкой и питанием.
Причем подписано все как на стандартных 1602. Но тупо из параллельных линий данных запаяна всего одна.
В даташите все как обычно “parallel 4/8 bit”, но плюсом SPI. Точно так же 16 выводов у дисплея.
И это не китайское авторство, а вроде как Toshiba.
С виду вообще никак не отличается.