AnsweredAssumed Answered

What state shall the data and clock lines be when MIPI-CSI DPHY is resetting?

Question asked by Dehuan Xin on Jun 16, 2016
Latest reply on Jun 17, 2016 by Dehuan Xin

According to IMX6QRM <40.3.1 Startup Sequence>:

Before DPHY reset all TX lanes must be in LP11 state (stop state).


I tried to verify this by probing into the ov5640_mipi driver.


However I printed the DPHY status in "ov5640_mipi.c" before and after "mipi_csi2_reset(mipi_csi2_info);" call in "ov5640_init_mode()" function and the status is 0x200, which means neither the clock lane nor the two data lane are in stop state.


If I understand correctly, the indicator for clock lane being in stop state is status 0x6xx, and the indicator for two data lanes being in stop state is 0xx30.


My question is:

1) what state should the clock lane be when the DPHY is resetting? HS DDR clock, LP00, or LP11?

2) what state should the data lanes be when the DPHY is resetting?



I'm asking this because I have another FPGA front end that is connected to the MIPI-CSI2 camera port of a IMX6Q board and I can not get DPHY state to 0x3xx (which means DDR clock is not received).


This FPGA uses 1 data lane.


I tell the FPGA to set both clock and data to LP11 before I tell IMX6 to reset DPHY.


The DPHY status I get immediately after DPHY reset is 0x610. (clock lane is in stop state, clock lane is not in ULPS, data lane 1 is in stop state).


Then I tell FPGA to output DDR clock. Then DPHY state changes to 0x210 (clock lane is not in stop state, but is not receiving DDR clock, either, data lane 1 is in stop state).


I probed the DDR clock on a oscilloscope and it looks normal: both CLK_P and CLK_N are about 200mV P-P with +300mV offset, which is within the spec according to IMX6Q datasheet.


So I think it's reasonable to believe that it's not a electrical/hardware problem, although both data and clock lanes go though a 20cm flex PCB cable.


I can not verify the slew rate because of the bandwidth of the scope (DDR clock is 160MHz and my scope is 200Mhz, so I lost almost all the harmonics).


The DPHY clock setting I use for the FPGA is 0x48(300-330MHz, 330MHz). I also tried different values and it doesn't help.



I've been working on this for almost 2 weeks and this is as far as I can get.


What am I missing?


Any suggestions?