BT816Q with an ESP32-WROOM-32E connected over VSPI at a 26 MHz clock.
Ok, I did some maintenance on my library yesterday, so I dug out an ESP32-WROOM32 board for it
and connected to a an EVE3-50G which has a BT815.
We're using a modified version of your library and the ESP-IDF.
Modified how, anything that I should consider as well?
This morning I started a test using the PlatformIO project for ESP32 using ESP-IDF.
I modified the SPI clock in EVE_target.c for the display-update transfers with DMA to:
devcfg.clock_speed_hz = 26U * 1000U * 1000U;
I left the the SPI clock for single transfers at 10MHz as this is used to initially configure the EVE chip and
I observed that reading starts to fail at lower clock speeds than writing.
The display-refresh is at 50Hz.
In TFT_display() I added this:
static uint16_t fault_counter = 0;
static uint16_t reg_dlswap_faults = 0;
...
if(EVE_FAULT_RECOVERED == EVE_get_and_reset_fault_state())
{
fault_counter++;
}
if(0 != EVE_memRead8(REG_DLSWAP))
{
reg_dlswap_faults++;
return;
}
...
EVE_color_rgb_burst(BLACK);
EVE_cmd_fillwidth(130);
EVE_cmd_text(10, 150, 28, 0, "First line\nSecond line\nThird line\nFourth line\nyet another line\nand one for good measure");
uint32_t arguments[2];
arguments[0] = (uint32_t) fault_counter;
arguments[1] = (uint32_t) reg_dlswap_faults;
EVE_cmd_text_var(10, 100, 28, EVE_OPT_FORMAT, "Faults: %d %d", 2, arguments);
We have 16:50 now and this is running since 9:45.
It still displays "Faults: 0 0".
So at least a longer line of text with a couple of line-breaks does not show an issue.
I do need to invest in a good logic analyzer as it's too difficult to pick out the data using our scope even though it does have a decode function; doesn't help that we also have two CAN controllers on the same SPI bus as the display so there's a fair bit of traffic going around.
I very much prefer Saleae:
https://www.saleae.com/de/But then I did not pay for neither the Logic 16 I currently have burried somewhere in the pile of boards and displays on my desk,
or the Logic Pro 8 I have in my lab at work.
The Logic 16 is a couple of years old and won't do in this case, it "only" works with 50MS/s when measuring 4 or 5 channels.
The sample rate should be several times higher than the clock of the signal to actually see details in the timing.
So with 26MHz SPI clock I would not use less than 200MS/s - and more is better.
And the Saleae Logic software decodes SPI.
Which reminds me that I started to write a high-level decoder for the EVE chips,
but it turned out to be not as straighforward as I hoped it would be.
As you can see in the attached image, I am using an ESP32 board that looks like an Arduino UNO.
The jumper wires to my adapter board are about 10cm long.
The FFC from the adapter board to the display also is 10cm long.
The adapter is one of these:
https://github.com/RudolphRiedel/EVE_display-adapter/tree/master/L-D5019-08/L-D5019-08-02.
The supply is from a bench PSU that I set to 9V.
As the controller and the display both use 3.3V for the signals, the logic buffers on the adapter are not actually needed.
But what helps with performance across several development boards are the 56R series resistors.