Recently I found some time to move my TFEL driver onto a spare Pi3B to test its performance. First, it still compiles fine on Archlinux ARM 4.14.87 and the GPIO layout is compatible.
The pin connection list is as follows:
|Pi GPIO #||TFEL pin #||Use|
|11 (GPIO 17)||13||VCLK|
|12 (GPIO 18)||15||VD0|
|13 (GPIO 27)||11||HSYNC|
|15 (GPIO 22)||9||VSYNC|
|16 (GPIO 23)||7||VD1|
I am still not using a level shifter (although it would be better) since the 3.3V levels of the Pi are sufficient to drive the display inputs. This is probably the reason why the dark display still shows some flickering areas. However, performance is neither better nor worse than before – with the difference, that the single-thread program can now run pretty much uninterrupted on a single core while three others remain for additional work. The program itself is limited in speed mostly by the update routines for the framebuffer, which makes the pattern mode fastest.
One thing I forgot in my previous post: if framebuffer read-mode is selected, the framebuffer must first be preset to the correct resolution. For this, install fbset or the containing package and call:
fbset -xres 640 -yres 400 -vxres 640 -vyres 400 -match
I am currently planning to add DMA capability to prepare data in-memory and then stream it out using DMA to the GPIO. An alternative option would be to add a STM32 module for streaming and clock generation, which has just sufficient memory to keep one or two images. Updates would then be performed through USART.