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.

The strange raw data captured from 14bit raw sensor using DM8127 IPNC RDK?

Hi,all

Now I interface the DM8127 ISS with a 14bit CCD AFE chip based on Appro DM8127 IPNC Reference Design. I use the Low power and DDR capture mode,so I can capture the raw data of image into DDR in the camera link. but I find a very strange problem:the sensor is a 14bit raw sensor,and interface with dm8127 using CAM_d13 to CAM_d0,so i think in the captured raw data in DDR memory, the max data should be 0x3FFF, but however I tried, the max data always be 0xFFF, it seems the upper 2 bits has been removed automatically, I don't konw how to solve the problem,any one can help me?

Thank you very much?any help will be appreciated!

Pavel

  • Can you post your ISS register settings?

    Since you mentioned DDR mode, I believe data is not going through ipipe. So there might be someting in ISS settings, specially isif settings, causing this problem.

  • Thank you for your kindly reply!

    yes,I don't send the raw data into ipipe. I just captured the raw frame using isif and then print it to see the value is correct or not.

    because i use a 14bit sensor,so I just change the msb bit setting in the isif:

    gIss_captCommonObj.pIssConfig->eMsbPos = MSP_IPIPE_BAYER_MSB_BIT13;
    isif_reg->CGAMMAWD = 0x04;

    the others codr is same to be DM8127 IPNC RDK.

    I don't have the detailed isp document on DM81xx on my hand, so i have to reference the dm36x vpfe document, I find if interface with raw sensor, dm36x isif only can output 12bit data not 16 bit, and in the isif pipeline, there is a 16to12 bit section to convert the input data to be 12bit, so is it the reason of the max value to be 0xFFF from isif?

    Thank you!

  • Hi pavel4378,

    Try below setting,

    isif_reg->CGAMMAWD= 0x04 indicates 12-bit data !! it should be 0x02 for 14 bit data.

    If you set it as 0x04 2 bit will be simply flushed out, which is not correct.

    also check CCDW value of isif modeset register

  • Thank you very much!

    I have re-write the 2 registers as you replied:

    ISP_SET32(isif_reg->CGAMMAWD, ISIF_GAIN_MSB_BIT13, CSL_ISIF_CGAMMAWD_GWDI_SHIFT, CSL_ISIF_CGAMMAWD_GWDI_MASK);
    ISP_SET32(isif_reg->MODESET, ISIF_CCD_DATA_NO_SHIFT, CSL_ISIF_MODESET_CCDW_SHIFT, CSL_ISIF_MODESET_CCDW_MASK);

    I use the IPNC RDK code to write CGAMMAWD to be MSB 13bit config, and set the data to be on shift. but unfortunately, the max data from isif write into ddr is 0xFFF, not 0x3FFF, is there any other suggestion?

    thank you very much for your reply!

    Pavel Han

  • have you verified the hardware? if you use scope to measure D13, do you see any waveform there?

  • hi,wang!

    yes, I have used scope to measure the bit13 and bit12 signal, and I can confirm the hardware is ok definitely.

    I don't have the DM81xx ISP manual in hand, but I have dm36x isp development experience,so I think the two should be same by and large.

    I find the following material from dm36x vpfe manual:

    P61 figure 4-4:

    from the figure,we can see a 16bit-12bit conversion block

    P85 4.3.4 Input Interface:The IPIPE engine receives 12-bit RAW image data or 16-bit YCbCr data via IPIPEIF.   

    From the upper material,I think there is a limitation of input bits on isif raw data, when we use dm36x to interface with 14bit or 16bit raw sensor, the isif will write raw data into ddr with 12bit data. But I don't confirm that is is suit to DM81xx?Could anyone who have DM81xx ISP user manual in hand can help me to see the isif raw data path, and confirm that is it suit to dm81xx?

    Thank you very much!

    Pavel han

  • OK,

    Now your problem is clear to me. To answer your question,  isif raw data path in DM36x and Dm814x are same. Yes it is having same 12-bit raw limitations. But, since you are trying to capture 14-bit RAW, expected was you are not configuring as RAW mode. 

    Now I have a question to you. Since you are trying to dump 14-bit data, why u cant fake it by saying it as YUV instead of RAW?. So that you can get all 14 bits in 16 bit pack!!

  • OK,I got it, Thank you vey much!