cancel
Showing results for 
Search instead for 
Did you mean: 

DSI Host Controller with OTM8009A Timeout on Write

Iris-DM
Associate III

I have a custom board with a STM32H747 micro on board, interfacing with a LCD driven by OTM8009A over the MIPI DSI interface. I have taken the driver code from the DISCO eval board which I used to design and build my board. On calling OTM8009A_Init(), the first four write reg calls run fine - entering in command 2 mode and set EXTC to enable address shift function and entering ORISE command 2 and shifting the address to 0x80 - however, every write command after that fails with a timeout. The timeout appears to be generated by the command FIFO being full and not clearing.

Firstly, how likely is this to be down to a hardware error with the board itself?

Secondly, if it is more likely down to the hardware configuration in the micro, what should be the first thing to investigate? I have copied the CubeMX setup from the eval board demo that I had running.

Finally, what's the best way to debug the physical communications between the micro and screen on the DSI lines? What should I be looking for to indicate a hardware error?

 

EDIT:

The specifics of the issue do not change, even if the screen is disconnected! So there must first be a hardware problem to solve.

1 ACCEPTED SOLUTION

Accepted Solutions
Iris-DM
Associate III

It was the clocks! A lot of trial and error needed and copying working code from the H7 examples got it going.

View solution in original post

2 REPLIES 2
mathiasmarkussen
ST Employee

Hello,

I would start looking at the options under the DSIHOST in CubeMX and comparing that to any data you may have from your display vendor.

There may be a recommended initialization sequence for your display, it will likely be different from the one used for the ST display board. The BSP driver supplied is intended for use only with this specific display board. The display used by ST for that board is FRD400B25025-A-CTK, you should be able to find at least some documentation to compare with.

The display you are using may be using only one data lane, have pins swapped or some signals inverted. 

You can enable a variety of error interrupts under the "Data and Clock lanes" tab, that may give you a clue.

Also check your clocks, they do have an effect on timings.

You can find schematics of the ST display board here: STM32H747I-DISCO - Discovery kit with STM32H747XI MCU - STMicroelectronics - it is MB1166. If you have schematics from you display vendor there may be a clue here.

You can also use this, along with the schematic for the main board itself, to compare to your own design and see if you can find a problem with your own design that way.

Iris-DM
Associate III

It was the clocks! A lot of trial and error needed and copying working code from the H7 examples got it going.