Hello, I am currently working on upgrading a project which uses an iMX31 board.
It runs a Nucleus RTOS, with Segger EmWin graphics library, which directly configures the iMX31 IPU for output to an Ortustech COM35H3M10XTC LCD. It was originally designed for 8-bit colors on an older LCD and now we are looking to cover 16-bit colors.
With the original 8-bit settings, the display comes out just fine on the Ortustech LCD. As per Segger’s instructions, we updated the EmWin stack to use 16-bit colors and depth, and the resulting output looks messy and “magnified”, most likely due to the 16 bit graphics stack trying to stuff data into the hard-coded 8-bit IPU driver code. The original author of the IPU driver code is no longer available for reference and we are in the process of reverse-engineering his code to adjust the IPU configurations for 16-bit output.
Our end-goal is for the device to support RGB 565 (16-bit) color. We need to configure the IPU to support this as it currently is hardcoded for RGB 233 (8-bit). Can anyone please provide information regarding which specific areas and/or hardware registers need to be tweaked for this adjustment to be achieved along with the values they require? Thank you.
P.S. If code excerpts are needed, let me know and I will provide what I can.
Hi Justin
one can pay attention to sect.44.4.6.4 Bus Mapping Unit, sect.44.4.1.4 Data Packing Unit
i.MX31 Reference Manual
https://www.nxp.com/docs/en/reference-manual/MCIMX31RM.pdf
may be useful baremetal SDK examples:
Github SDK
https://github.com/backenklee/swp-report/tree/master/iMX6_Platform_SDK
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
The SDK examples were helpful, thank you!