Для размышлений:
Появилось время опять заняться подобными дисплеями. Эксперименты провожу с ST7735 128x160.
МК атмега8, 8Mhz.
Вырезал из кода все лишние движения (asm), установил максимальную частоту SPI. Проверяю полное заполнение: визуальный эффект - как будто шторка закрывается, но причём не на протяжении всего заполнения, а только в конце заполнения.
Повысил частоту до 16 MHz. Заполнение происходит в момент, но вот на изображении появились дополнительные ненужные "артефакты" в виде косых ... не знаю как описать.
Открываю даташиты: ну так и есть!
Цитата:
10. Tearing Effect Information
The Tearing Effect output supplies to the MCU a Panel synchronization information (= Tearing Effect information) which is telling the position of the refreshing on the display panel, to the MCU which can decide when it can send image information to ILI9486L (Mainly used for a moving image e.g. video clips) that there can avoid the abnormal visual effect on the display panel of ILI9486L.
This information can be enabled or disabled by the Tearing Effect Line Off & On commands. The mode of the Tearing Effect Signal is defined by the parameter of the Tearing Effect Line Off & On commands.
This Tearing Effect information can be sent in two different ways:
• Separated Line, which is so-called Tearing Effect (TE) line.
• Bus, which is so-called Tearing Effect (TEE) Bus Trigger, when ILI9486L is sending a trigger to the MCU.
The TE line is used in MCU parallel interface. The TE line can also be used in DSI case if the tearing Effect (TEE) Bus Trigger is not possible to use.The Tearing Effect (TEE) Bus Trigger is only used in DSI case.
Это из даташита на ili9486, но на остальные контроллеры (ST7735) также есть разделы типа "9.12 Tearing Effect Output Line" и "9.12.2 Tearing Effect Line Timings".
Вывод: быстро закинуть данные в дисплей можно, но нужно делать это не абы как, а с умом и с синхронизацией.
На данный момент моё мнение по поводу скорости вывода не изменилась. В своей одной конструкции на ILI9341 я разогнал только скорость первой заливки, но заливка идёт до подачи сигнала на LED (или BL), и её никак нельзя созерцать. Потом только обновление некоторых участков. На одном участке, при выводе одной строки я специально забил код лишними циклами, чтобы получился более плавный вывод, типа с "переходными эффектами" - глазу приятнее, чем резкая смена строки.
Видео с tearing effect:
PS Для синхронизации развёртки дисплея с MCU должен присутствовать пин "TE" (выход), которого на панелях дисплеев нет.
TE - Tearing effect output pin to synchronies MCU to frame rate, activated by S/W command.
Так что за скоростью гнаться на стандартных панелях не имеет смысла.