I leave the library to use ST7789 TFT display, I have translated one that is in C language. But unfortunately I have not been able to get it to work yet. I leave the files in case someone with more experience with these displays can review it.
Is anyone else annoyed that the SPI speed has very few options?, it's difficult to approach the maximum speed of the display, and the closest under that figure is usually quite a bit slower than possible.
The 16 MHz bus performs quite well. It’s not ideal for animations, but it is suitable for displaying colored text, graphics to indicate liquid levels, voltages, speeds, etc. Overall, it is more than sufficient for the main purpose of this series of microcontrollers: developing small and medium-scale automation systems.
Just had word my two screens will be here soon.
When these are on my pico setup SPI runs ultrafast and animation is really good.
I believe you can achieve 62Mhz.. But they have programable IO cores..
Just had word my two screens will be here soon.
When these are on my pico setup SPI runs ultrafast and animation is really good.
I believe you can achieve 62Mhz.. But they have programable IO cores..
The ST7789V works off the bat, but the screen is inverted.
The ILI9341 is also working but inverted and backwards and rotated 90 deg.
So the big difference is the MADCTL I'm going to investigate as if we need to rotate the screen here is the big difference.
At the moment I have MADCTL = 0x80. that is all bit manipulation is off and BRG is selected
The inversion is ON this is for the ST7789 ( 240 x 240) so each screen will need "adjusting" to be consistent.
Hi,
1st, my previous problems appear to be in the electronics, now sorted out, and Ian's #164 is working perfectly 240x240.
I was playing with the MAIN LOOP settings (Good fun) and find the colours are complimentary to the ones designated. I don't know if it's the same for you? No problem, I can swap the numbers round.
so the whole screen? The MADCTRL is the memory address control.
first we want to control the vertical and horizontal refresh direction so the both need to change
here is the MADCTRL settings
Bit 7 = MY Row address order
Bit 6 = MX Col address order
Bit 5 = MV row / col exchange
Bit 4 = ML scan top to bottom or bottom to top
Bit 3 = BGR / RGB
Bit 2 = MH scan left to right or right to left
so the two bits needed are MH and ML try 0x38 to swap top to bottom then 0x3C to swat left to right
so the whole screen? The MADCTRL is the memory address control.
first we want to control the vertical and horizontal refresh direction so the both need to change
here is the MADCTRL settings
Bit 7 = MY Row address order
Bit 6 = MX Col address order
Bit 5 = MV row / col exchange
Bit 4 = ML scan top to bottom or bottom to top
Bit 3 = BGR / RGB
Bit 2 = MH scan left to right or right to left
so the two bits needed are MH and ML try 0x38 to swap top to bottom then 0x3C to swat left to right