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.

DM3730:CCDC won't become idle!

Other Parts Discussed in Thread: TVP5147M1, DM3730

Hi all,
when we start a camera to preview program(which modified from saMmapLoopback.c),
Normally,it is ok to show preview image to LCD,

but,sometimes,we start a camera to preview program,we have an occasion to occur "CCDC won't become idle!" issue
such that we cann't see any preview image @ LCD,
and once this message happened,we always see this messages,and cann't see preview image even when we turn off and turn on the 
program again
 

the following is detail description:

Environment:
Hardware: (1) DM3730 associated with TVP5147M1
          (2) connnection lines between the 2 are
              CAM_D0 ~ CAM_D9
              CAM_PCLK/CAM_HS/CAM_VS/CAM_WEN
              I2C interface (SCL/SDA)
              INTREQ (currently this interrupt function be disable by tvp514x driver)
              PWDN
              RESETB
          (3) external CCD sensor connected to TVP5147M1 CVBSin 2B channel  

Software: under Android 2.3.4
          and use Camera 2 vout loopback program as image preview program
          which refer to and modified from saMmapLoopback.c mentioned from
          Webside:UserGuideOmap35xCaptureDriver PSP 04.02.00.07,
          http://processors.wiki.ti.com/index.php/UserGuideOmap35xCaptureDriver_PSP_04.02.00.07
   
Other Info:(1)Camera sensor format is NTSC (720x480)
                   (2)we have connection CVBSin channel @ TVP5147M1 2B channel      
                   (3)the protocol between tvp5147M1 and ISPCCDC is BT656
                   (4)as I know,INTREQ between DM3730 and TVP5147M1 is not used now  
                   (5)under Media Controller Framework @kernelV2.6.37,our link is tvp514x<->ISPCCDC<->Memory 
                   (6) pixel clock is 27Mhz


Issue Description:
          @our platform (DM3730 + TVP5147M1) and under Android/Linux evironment,
          when we execute a camera capture 2 preview program which modified from saMmapLoopback.c ,
          normally,we can see Image captured and show Image to our LCD panel,
          
    sometimes and have an opportunity,
          we cann't see preview image @ LCD when we start the camera capture 2 preview program,
    by the way,the terminal show "CCDC won't become idle!" message,
    and once this message happenS,we always see this messages,
    and cann't see preview image even when we turn off and turn on the
          camera to preview program again
   
    the following is related CCDC configuration Registers dump:
    omap3isp omap3isp: -------------CCDC Register dump-------------
          omap3isp omap3isp: ###CCDC PCR=0x00000000
          omap3isp omap3isp: ###CCDC SYN_MODE=0x00032f84
          omap3isp omap3isp: ###CCDC HD_VD_WID=0x00000000
          omap3isp omap3isp: ###CCDC PIX_LINES=0x00000000
          omap3isp omap3isp: ###CCDC HORZ_INFO=0x0000059f
          omap3isp omap3isp: ###CCDC VERT_START=0x00000000
          omap3isp omap3isp: ###CCDC VERT_LINES=0x000000ef
          omap3isp omap3isp: ###CCDC CULLING=0xffff00ff
          omap3isp omap3isp: ###CCDC HSIZE_OFF=0x000005a0
          omap3isp omap3isp: ###CCDC SDOFST=0x00000249
          omap3isp omap3isp: ###CCDC SDR_ADDR=0x00000000
          omap3isp omap3isp: ###CCDC CLAMP=0x00000010
          omap3isp omap3isp: ###CCDC DCSUB=0x00000040
          omap3isp omap3isp: ###CCDC COLPTN=0x00000000
          omap3isp omap3isp: ###CCDC BLKCMP=0x00000000
          omap3isp omap3isp: ###CCDC FPC=0x00000000
          omap3isp omap3isp: ###CCDC FPC_ADDR=0x00000000
          omap3isp omap3isp: ###CCDC VDINT=0x00ee0000
          omap3isp omap3isp: ###CCDC ALAW=0x00000000
          omap3isp omap3isp: ###CCDC REC656IF=0x00000003
          omap3isp omap3isp: ###CCDC CFG=0x00008800
          omap3isp omap3isp: ###CCDC FMTCFG=0x00006000
          omap3isp omap3isp: ###CCDC FMT_HORZ=0x000002d0
          omap3isp omap3isp: ###CCDC FMT_VERT=0x000001e0
          omap3isp omap3isp: ###CCDC PRGEVEN0=0x00000000
          omap3isp omap3isp: ###CCDC PRGEVEN1=0x00000000
          omap3isp omap3isp: ###CCDC PRGODD0=0x00000000
          omap3isp omap3isp: ###CCDC PRGODD1=0x00000000
          omap3isp omap3isp: ###CCDC VP_OUT=0x03be2d00
          omap3isp omap3isp: ###CCDC LSC_CONFIG=0x00006600
          omap3isp omap3isp: ###CCDC LSC_INITIAL=0x00000000
          omap3isp omap3isp: ###CCDC LSC_TABLE_BASE=0x00000000
          omap3isp omap3isp: ###CCDC LSC_TABLE_OFFSET=0x00000000
          omap3isp omap3isp: --------------------------------------------
    
    could you have any suggetion to avoid/skip this issue ?

     thanks a lot ~

  • Hello,

    I would like to ask are you using some customer's device or TI's development platform?

    BR

    Tsvetolin Shulev

  • Hello Cvetolin Shulev-XID,

    thanks for your reply very much ,

    I am use customer's develop who refer to DM3730 EVM board,

    BTW,addtion information are

    (1) currenlty the pixel clock is 27Mhz ,

    (2)protocol between tvp514x and ISPCCDC is bt656

    (3)once the bit CCDC_PCR[BUSY] has been raised ,we still have no any method to let it become 0,

        even after ISP CCDC disable and re-enable again

     

  • Hi,

    Sorry for the delay but I discuss the issue with out camera experts and it seems serious.
    One of the most possible reason is that there isn't enough number of lines coming to the CCDC receiver since the moment in which the receiver can get information (Number of received lines is less then the CCDC receiver expects to get). This includes LSC start and waiting for LSC prefetching if presents.
    The issue may be due to synchronization loss while flushing the buffer for the previous frame (time for vertical blanking).
    Could you specify which software release you are using?

    BR

    Tsvetolin Shulev

  • I had some discussion with the camera experts and in generally they've explained me that the "standard TI" implementation that is widely distributed may suffer of such problem - in case the communication with the sensor gets wrong the state machine stuck... and there is no easy solution of this situation as this seems to happens "by design" because there is no any mechanism to avoid this situation.
    They also mentioned that there is some other public implementation for OMAP3 camera handling that was maintained by Nokia in the last 1-2 years, so may be you should check how easy will be to switch to the Nokia implementation instead of TI one.
     Based on the short explanation that I got seems that "patching" the existing implementation may be a veeeeery difficult tasks that will require very deep knowledge of the entire camera implementation for OMAP3 and this becomes not bug fix, but new design..
    About the Nokia implementation - this code was published in the official Linux repositories (not on omappedia) http://www.kernel.org/ .
    In the latest Kernel 3.7.x this folder is not longer present, so the latest one could be seen here:

     git :git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
     tag: v3.6.9
     defconfig: omap2plus_defconfig