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.

OMAP3530 ISP: Writing CCDC Raw Output to memory.

Other Parts Discussed in Thread: OMAP3530, SYSCONFIG, DM3730

I'm trying to configure the ISP interface on our OMAP processor to write raw Bayer input to memory. However, I keep seeing an error that the CCDC won't become idle. I'm using the Linux ISP driver from the TI PSP, when I tell the driver to configure the ISP to write to memory, it sets the ISP_CTRL.RSZ_CLK_EN[12] bit to 1, enabling the resizer clock. However, the resizer should not be used in this case so it seems to me this bit should be set to zero. I was wondering if having the resizer clock enabled might be causing the CCDC to not be able to come out of the idle state. The test checks that one of the following conditions are true to determine if the CCDC is busy:

  • CCDC_PCR.BUSY[1] bit is asserted.
  • SBL_CCDC_WR_0.DATA_READY[21] bit is asserted.
  • SBL_CCDC_WR_1.DATA_READY[21] bit is asserted.
  • SBL_CCDC_WR_2.DATA_READY[21] bit is asserted.
  • SBL_CCDC_WR_3.DATA_READY[21] bit is asserted.

Is it possible that the OMAP will assert one of these bits if the Previewer clock is enabled, and it will not be cleared until some event occurs which never happens because the Previewer is disabled.

Also is there a better explanation of the meanings of the DATA_READY, and DATA_SENT bits. The TRM is pretty scant on details.

Thanks,

  • The ISP_CTRL.RSZ_CLK_EN[12] bit is unset and I'm still seeing the same behaviour, so that pretty much rules out that theory.

  • We've run into the same issue, and I don't know the solution to this.

    If we use the preview (bayer to YUV) everything works fine, but if we use bayer->memory than we get the CCDC won't become idle.

    Hopefully you'll have better luck resolving this issue than we've had.

  • Can you please provide more details on your setup and use-case? have you done any changed to ISP-Camera driver? If yes, then Can you please provide the details about the changes?

    Thanks,

    Vaibhav

  • Hi Vaibhav,

    I am having the exact same problem.  I'm using the OMAP3EVM board, and I am using the omap3camera kernel from Sakari Ailus.  Have you been able to write raw data from the CCDC straight into memory?

  • Hi Michael,

     

    I have not tried receiving bayer input data from CCDC directly to memory, But I have validated YUV data stream coming in through CCDC directly to Memory and this is working fine without any issues.

    The sensor I am (MT9T111 & MT9V113) working on also supports bayer output so I can try this feature at my end. Currently I am on vacation so will be able to look into this only after returning back to office.

     

    Thanks,

    Vaibhav

  • Hi Vibhav,

    I was looking for a solution to dump the raw Bayer data from the ISP to the memory.

    As mentioned by you, have you tried the same at your end?

    Please provide details on how to acheive this.

    Thanks,

    Deepak

     

  • Hi All,

    I'm currently trying to get some raw data from the ISP's CCDC entity to the memory. I facing the same issue with this "CCDC won't become idle" message. Did someone manage to solve this please?

    Regards,

    Loïc

  • Hi Deepak,

    Till the time I always supported YUV and BT656 interface to the OMAP3 ISP CCDC, but I have supported multiple customers to get raw bayer data through CCDC. Actually I had some plans to support raw bayer format, but due to some other critical issues I have to postpone it. But I can help you to get this working.

     

    Thanks,

    Vaibhav

  • Hello Vaibhav Hiremath,

     

    We are using the Gumstix OMAP3530 to capture a raw 12bit monochrome i/p to CCDC and want to write the data directly to the memory without any preview changes and resizer.

    We do face the same issue of "ccdc is busy" in the isr. The image capture operation doesn't get completed. Where as i can see the interrupts received properly.

    Can you suggest the changes, configuration required to do the same.

     

    Regards,

    Shriharsh

  • Hi Shriharsh,

    I do not have working set of configuration which I can share here for Monochrome interface, as I mentioned we always supported, YUV422, RGB formats until now.

    The message "ccdc is busy" pops up, usually when your CCDC configuration has some issue. For example width and height is not matching with incoming data (in-sync with pixel clock). CCDC busy status bit is not getting reset.

    Can you provide your CCDC register configuration, I can review for you? Also provide details like,

     - What is resolution of incoming image data?

     - Pixel clock Freq?

     Thanks,

    Vaibhav

  • Hello Vaibhav,

     

    We got the 12bit raw bayer format capture working on OMAP3530 :)

    Now we are able to capture the raw image from the CCDC directly to the memory and avoid use of the previewer and the resizer blocks.

    Thanks for your time and help.

     

    Thanks and regards,

    Shriharsh Datar

    Maven Systems Pvt. Ltd. Pune, India

    +91-99229-91230 | shriharsh.datar@mavensystems.com

    www.mavensystems.com

  • Can you share how you did this?

  • I am also very interested in how to achieve the CCDC->memory path.  I want to read a 14MP image in (line width: 4416) and I expect that I will have to use the preview engine stand-alone and multi-pass it since the TRM says the maximum width it can handle is 4096.  I also have to use the resizer stand-alone.  Any help with this is greatly appreciated.

     

    Thanks,

    Jason

  • Hello,

    I'm facing a very similar problem.

    Details:

    pclk from Camera : 72Mhz

    Resolution : 1280 X 800

    Format : YUYV 8bit Parallel sync mode.

    Destination : Memory

    CCDC Configuration:

    [  877.511596] ISPCCDC: ccdc output format is CCDC_OTHERS_MEM
    [  877.519592] ISPCCDC: ###ISP_CTRL in ccdc =0x29c100
    [  877.526763] ISPCCDC: ###ISP_IRQ0ENABLE in ccdc =0x0
    [  877.533966] ISPCCDC: ###ISP_IRQ0STATUS in ccdc =0x80000300
    [  877.541748] ISPCCDC: ###CCDC SYN_MODE=0x3270c
    [  877.548400] ISPCCDC: ###CCDC HORZ_INFO=0x13f
    [  877.554901] ISPCCDC: ###CCDC VERT_START=0x0
    [  877.561340] ISPCCDC: ###CCDC VERT_LINES=0xef
    [  877.567840] ISPCCDC: ###CCDC CULLING=0xffff00ff
    [  877.574432] ISPCCDC: ###CCDC HSIZE_OFF=0x280
    [  877.580963] ISPCCDC: ###CCDC SDOFST=0x0
    [  877.587005] ISPCCDC: ###CCDC SDR_ADDR=0x1000
    [  877.593475] ISPCCDC: ###CCDC CLAMP=0x10
    [  877.599517] ISPCCDC: ###CCDC COLPTN=0x0
    [  877.605407] ISPCCDC: ###CCDC CFG=0x8000
    [  877.611724] ISPCCDC: ###CCDC VP_OUT=0x0
    [  877.617706] ISPCCDC: ###CCDC_SDR_ADDR= 0x1000
    [  877.624389] ISPCCDC: ###CCDC FMTCFG=0x6000
    [  877.630706] ISPCCDC: ###CCDC FMT_HORZ=0x0
    [  877.636810] ISPCCDC: ###CCDC FMT_VERT=0x0
    [  877.643066] ISPCCDC: ###CCDC LSC_CONFIG=0x6600
    [  877.649963] ISPCCDC: ###CCDC LSC_INIT=0x0
    [  877.656219] ISPCCDC: ###CCDC LSC_TABLE BASE=0x0
    [  877.662963] ISPCCDC: ###CCDC LSC TABLE OFFSET=0x0
    [  877.669860] ISPCTRL: ###ISP_CTRL=0x29c100
    [  877.675964] ISPCTRL: ###ISP_TCTRL_CTRL=0x1f
    [  877.682403] ISPCTRL: ###ISP_SYSCONFIG=0x2000
    [  877.688934] ISPCTRL: ###ISP_SYSSTATUS=0x1
    [  877.695129] ISPCTRL: ###ISP_IRQ0ENABLE=0x0
    [  877.701416] ISPCTRL: ###ISP_IRQ0STATUS=0x80000300

    Target : Beagle Board XM(DM3730)

    All signals(VS,HS and D0-7) are coming on the port from the camera respectively.

    On using mplayer to access the camera, I'm getting the following stream repeatedely on the console(after the above configuration dump, which too is multiple times)

    [  878.749786] ISPCTRL: HS_VS_IRQ
    [  878.752838] ISPCTRL: CCDC_VD1_IRQ
    [  878.758666] ISPCTRL: CCDC_VD0_IRQ
    [  878.764434] ISPCTRL:
    [  878.773590] omap3isp omap3isp: isp_wait: wait is too much
    [  878.781341] omap3isp omap3isp: ccdc 1 won't become idle!

    Tracing the code I've found out that the DATA_READY bit in ISPSBL_WR_X registers does not get set.

    Please kindly help.

    Rakesh Shroff