RudolphRiedel / FT800-FT813

Multi-Platform C code Library for EVE graphics controllers from FTDI / Bridgetek (FT810, FT811, FT812, FT813, BT815, BT816, BT817, BT818)
MIT License
121 stars 56 forks source link

Hello Rudolph #79

Closed eschmo closed 10 months ago

eschmo commented 1 year ago

I first want to thank you for your dedication to this toppic and the work youve share with us.

As im pretty sure that, 90% of all who want to work with that display driver will finally reach your page, i just want to share a (from my point) highly neccesary toppic. I hope you find it usefull and may integrate this information in your documentation.

I worked with eve 2,3 and now finally 4. And to be honest i had problems all the time..Even with the help of your great work i didnt got any usefull results. Then i got the first usefull results but still got hit with a lot of display crashes and uncommon issues.

Things i've coded worked some time and then it started to crash etc. without any changes.

I've searched literally for month and replaced nearly every single componend until i finally dropped my whole desk and started to hard wire everything because i finally believed i had issues with wiring and contacts of breadboards etc.

But still the same problems...

Today i basically finally figured out what the rootcause is!

Just to explain...the setup i've used where arm processors all the time, so i had mcu glockrates of >100mhz. actually i run a stm32H7 at 550MHz.

as the BT8x are clocked much lower the interrupt edge detection is much slower as well. and yes it just works on the int edges not on just on high or low. so today i started to make experiments with the signal slew rate of the mcu and when i configured them (CS,PD) to the slowest setup my issues magically disappeared. it seems it just works on the int edges not on just on high or low of the signal.

so it is highly neccesary to configure the PD and CS slew rate as slow as possible when using an mcu which is clocked much higher then the BT8x.

i could nowhere find this information or even any hint to it during my searches, so this may help other who have simmilar issues.

Best regards Thomas

RudolphRiedel commented 1 year ago

I believe the issue you encountered is something else entirely. With faster rise and fall of the signals you get more reflections on the lines and my general recommendation would be to use series resistors of around 50 ohms for all lines. But I am sure that you can't make the lines rise and fall faster than EVE could handle it, only when reflections / ringing occurs things could get ugly.

This seems to be in the same category as providing a stable 3.3V supply for the logic as failing to do so might result in a odd issues with the touch controller.

Now you made me check the user manual and datasheet for STM32H7 as well as configuring one in STM32CubeIDE. :-) Turns out the default value for most port pins is 00 which means OSPEED is set to Low Speed.

And checking my still defunct EVE_init_spi in EVE_target.c I am using "gpio_init.Speed = GPIO_SPEED_FREQ_HIGH;" for both CS and PD and this I should change to GPIO_SPEED_FREQ_LOW.

eschmo commented 1 year ago

Thanks a lot for your feedback!

You may right but it was the first step to get it working anyhow. reaction to the slew rate is repeatably the same. now i see some flickering and crashing when running for more then 24hours on 60fps. maybe this points to the terminatio but im not sure yet how to implement a good termination in my environment. i will try as soon as possible but that needs some serious rewiring.

what issues did you experience with the logik supply? could it be a problem using a pwm supply for the logik?

RudolphRiedel commented 1 year ago

I am using these with breadboards: https://github.com/RudolphRiedel/EVE_display-adapter/tree/master/L-D5019-08/L-D5019-08-02 Some of it is overkill for specific applications, ok, but this allows me to connect to practically anything and provides pins for the logic analyzer.

what issues did you experience with the logik supply?

If the logik supply is not separated from the backlight supply and stable enough there will be a small voltage drop when the backlight is switched on. This will have no effect on EVE but some touch controller glitch out and refuse to work if this happens.

Using a switching regulator is not generally an issue - and there really is no way I could use a linear regulator at the currents of larger displays and the 13V I have to use. Well, if the design works as intended.

And I am deliberately setting the output voltage a little higher than 3.3V. The RTE8258GE has a reference voltage of 0.8V so the output with the 22k+10k+10k resistor is 3.36V.