This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB960-Q1: Cant get the pattern generator output working for the 960 deserializer

Part Number: DS90UB960-Q1

I have a 960 deserializer connected to an FPGA. I have both port 0 and 1 connected with 4 lanes. I am trying to get the internal pattern gen to work. I have configured it to give a 1080p60 output. I have all 4 lanes of port 0 enabled at 400 Mbps rate. If I look at the FPGA MIPI IP registers I dont see any packets being received. Below is the register writes I am doing to configure the deserializer. Are there any status registers that I can check to see if the port is transmitting? 

Thanks

Jon

struct config_byte_t const deser_patt_cfg[] =
{
	{0x1f, 0x03},			// CSI_PLL_CTL - 800 Mbps
	{0x32, 0x01},			// CSI0 enable
	{0x33, 0x03},			// CSI_CTL - Enable, cont clock, 4 lanes

	{0xB0, 0x00},   		// Indirect Pattern Gen Registers

	{0xB1, 0x01},           // PGEN_CTL
	{0xB2, 0x01},

	{0xB1, 0x02},           // PGEN_CFG
	{0xB2, 0x35},

	{0xB1, 0x03},           // PGEN_CSI_DI
	{0xB2, 0x2b},

	{0xB1, 0x04},           // PGEN_LINE_SIZE1(2400 bytes)
	{0xB2, 0x09},

	{0xB1, 0x05},           // PGEN_LINE_SIZE0 (2400 bytes)
	{0xB2, 0x60},

	{0xB1, 0x06},           // PGEN_BAR_SIZE1 (300 bytes)
	{0xB2, 0x01},

	{0xB1, 0x07},           // PGEN_BAR_SIZE0 (300 bytes)
	{0xB2, 0x2c},

	{0xB1, 0x08},           // PGEN_ACT_LPF1 (1080 lines)
	{0xB2, 0x04},

	{0xB1, 0x09},           // PGEN_ACT_LPF0 (1080 lines)
	{0xB2, 0x38},

	{0xB1, 0x0A},           // PGEN_TOT_LPF1 (1125 lines)
	{0xB2, 0x04},

	{0xB1, 0x0B},           // PGEN_TOT_LPF0 (1125 lines)
	{0xB2, 0x65},

	{0xB1, 0x0C},           // PGEN_LINE_PD1
	{0xB2, 0x06},

	{0xB1, 0x0D},           // PGEN_LINE_PD0
	{0xB2, 0x07},           // 1/60/1080

	{0xB1, 0x0E},           // PGEN_VBP
	{0xB2, 0x24},

	{0xB1, 0x0F},           // PGEN_VFP
	{0xB2, 0x04}
};

  • Hello Jon,

    It looks like your Line Period calculation is slightly off since you are calculating with the active lines instead of total lines. Please use the following values to set your line period:

    0xB1 = 0x0C

    0xB2 = 0x05

    0xB1 = 0x0D

    0xB2 = 0xC9

    Other than that this looks to be correctly setting up a RAW10 pattern at 1080p60. For 400Mbps rate you must do some additional programming to set the transmitter timing which is described on page 44 of the datasheet before enabling the CSI-2 transmitter. Also to get the pattern to come out on both CSI-2 0 and CSI-2 1, you must set 0x21 = 83 to enable replication 

    Best Regards,

    Casey 

  • Hi Casey

    Thanks for the info. 

    Could you confirm that the image below looks correct? I probed the p signal of one of the data lines. I am afraid the the scope I have isnt high bandwidth but it does give the general look of the signal. I am still not getting any packets received by the FPGA and so just want to know if the MIPI port is working. 

    I assume that I dont need any cameras attached when using the pattern gen?

    Thanks

    Jon

  • Hello Jon,

    The waveform does generally look like a DPHY transmission, yes. However you do need to make sure you are programming the items I mentioned in the previous post to ensure that the TX output characteristics are going to be within compliance for the DPHY standard. You do not need cameras attached to exercise patgen. 

    Best Regards,

    Casey 

  • Hi Casey

    I have changed the values to what you requested. It looks like the deserialiser is generating an MIPI output. But I was asking some questions to a Xilinx guy and he mentioned that it may be an issue with the MIPI initialization. Can you give me some details on the MIPI initialization that the 960 does. He mentions that the FPGA would expect the MIPI master to be in state LP-11 for at least 100us. 

    Thanks

    Jon 

  • Hello Jon,

    Yes, the 960 observes the standard TINIT minimum time of 100us from the DPHY protocol. This is shown on page 18 of the datasheet.

    Best Regards,

    Casey 

  • Hi Casey

    I managed to get it working. There was an issue with the FPGA missing the INIT sequence. I had to delay setting up the 960 until the FPGA was setup.

    Thanks for the help.

    Regards

    Jon