Hi
Great news if we can use directly a USB KB , i was trying to understand how to use my version ( 1 char sent per I2C at a time ) , but how it's done in UAE it's like to try to find out your way in a maze
In your VGA Lib i see this :
Code:
#ifdef BITS12
parallelWidth = FLEXIO_SHIFTCFG_PWIDTH(16); // 16-bit parallel shift width
pinSelect = FLEXIO_SHIFTCTL_PINSEL(0); // Select pins FXIO_D0 through FXIO_D12
#else
parallelWidth = FLEXIO_SHIFTCFG_PWIDTH(4); // 8-bit parallel shift width
pinSelect = FLEXIO_SHIFTCTL_PINSEL(0); // Select pins FXIO_D0 through FXIO_D3
#endif
Is this correct ? , 1st for 12 bits / pixels you use FLEXIO_SHIFTCFG_PWIDTH(16); // 16-bit parallel shift width , but for 8 bits/pixel you use FLEXIO_SHIFTCFG_PWIDTH(4); // 8-bit parallel shift width , why is there a 4 in the parameter ?
some lines after thoose you use :
Code:
#ifdef BITS12
parallelWidth = FLEXIO_SHIFTCFG_PWIDTH(5); // 5-bit parallel shift width
pinSelect = FLEXIO_SHIFTCTL_PINSEL(4); // Select pins FXIO_D4 through FXIO_D8
#else
parallelWidth = FLEXIO_SHIFTCFG_PWIDTH(4); // 8-bit parallel shift width
pinSelect = FLEXIO_SHIFTCTL_PINSEL(4); // Select pins FXIO_D4 through FXIO_D7
#endif
Again for 5 bit shift you use 5 but for 8 bit shift you use 4
....
I don't know if it's correct , but if not then you can presume that some graphics tearing can come from here.
When i made it on STM32Fxx i have use this info and take the 640 x 480 60Hz resolution as base of all other res i made.
https://drive.google.com/file/d/1W3YmJdLxMdyg50v7ym3aeKtSyewpI1Kt/view?usp=sharing
For example :
320 x 240 res was just 640 x 480 but with 2x bigger pixels
now for your 512 x 480 i will add 64 black pixels border on left and right , the advantage is that the pixel ratio is still OK , and when you trace a circle it appear as circle and not as oval
And it's working on the 640 x 480 base resolution.
I just hope i explain correctly
VGA is not a easy stuff ... he he
Cheers.