i.MX6DQ IPU Support For MIPI DSI Command Mode

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX6DQ IPU Support For MIPI DSI Command Mode

886 Views
david_n_ziemba
Contributor I

On our custom i.MX6Q-based board, we have a MIPI DSI display (H245QBN02.0, 1 data lane) that operates in command mode only. We are able to control this display from the i.MX6Q via MIPI command mode from the ARM platform, but that’s a bit slow and consumes ARM platform CPU cycles, and we therefore want to take advantage of the i.MX6Q’s IPU’s ability to send display data more autonomously via the MIPI DSI interface, with little or no intervention by the ARM platform.

 

According to the i.MX6DQ reference manual, Rev. 2, 6/2014, MIPI command mode is supported by the IPU, via the IPU’s Asynchronous Access Mode. However, it’s not clear how this is done: It’s not obvious which IPU registers to configure to support command/asynchronous mode via the IPU and MIPI DSI interface, such that little or no ARM platform intervention is required.

 

I'll continue looking into this, but I’m hoping that someone here can point me to an app note and/or sample code that provides detailed guidance regarding how to set up the IPU and MIPI DSI interface to support this Asynchronous Access Mode.

Thanks!

0 Kudos
2 Replies

624 Views
david_n_ziemba
Contributor I

Thanks for the information, Igor. I suspected that that was the case.

I have a detailed follow-up question for you -- please let me know if you wish to create a separate issue for this:


As I suggested in my original post, I have been able to get the display working in MIPI DSI command mode by writing MIPI DSI packets directly from the ARM platform. However, as I also wrote, this is a bit slow. I have researched the reasons for this slow performance, and they are
derived from the fact that the generic FIFO (accessed by writing MIPI_DSI_GEN_PLD_DATA) has a maximum of 64 bytes. I learned this limit via experimentation. Our 240x432 display (103680 pixels) therefore requires 3240 fills of this FIFO, which, because the MIPI_DSI_CMD_PKT_STATUS register shows that after such a 64-byte fill of the FIFO, it is "full" for about 200 microseconds, means that a full write of the display takes about ¾ of a second. That's a bit slow.

Thus, I wonder if there is a way to improve this performance, by increasing the size of this FIFO, or otherwise. Is this FIFO’s size fixed at 64 bytes?

 

More generally, I wonder if you know of another method for improving performance of MIPI DSI Asynchronous Mode when writing via the ARM platform. We’ve looked into using the MIPI DBI interface, but the documentation is sparse regarding that module. Is the DBI supported on the i.MX6?

 

Also, I see references to microcode in the IPU, and I wonder if we can have the capability of altering this to assist with our performance goals, given the discussed parameters.


Thank you.

0 Kudos

624 Views
igorpadykov
NXP Employee
NXP Employee

Hi David

asynchronous lcds are not supported in i.MX6 IPU, opposite

to previous i.MX53 IPU (where full description of IPU registers to configure

support command/asynchronous mode via the IPU can be found).

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos