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.

VDINT interrupt problem

Other Parts Discussed in Thread: TVP5146

Hi, we are facing some strange problem on VDINT1 interrupt.  We checked all the CCDC settings and ARM INTC registers: (see following in HEX).  

syn_mod =    3000c
CCDCFG =      140
FMTCFG =     4000
PCR =        1
PID =    1fe00
VDINT =    60006
HORZ_INFO =      2c4
VERT_START =        0
VDLINES =      1ec
HSIZE_OFF =      5a0
SDOFST =        0
SDR_ADDR = 870ae000
CLAMP =       10
DCSUB =        0
REC656IF =        0
INTGEN =        0
MDSTAT0=      f02
MDSTAT1=     1f03
MERRPR0=        0
MERRPR1=        0

FIQ0= ffffffff
FIQ1= ffffffff
IRQ0= ffffffff
IRQ1= fffffffb
EINT0=     2102
EINT1=     418b
INTCTL=        0
INTPRI0= ffffffff
INTPRI1= ffffffff
INTPRI2= ffffffff
INTPRI3= ffffffff
INTPRI4= ffffffff
INTPRI5= ffffffff
INTPRI6= ffffffff
INTPRI7= ffffffff

The external signals: VD, HD and PCLK look good as expected.

Issue: there is NO interruption generated on VDINT1, which is the one our ISR is registered.

We checked the board, and checked almost everything we could.  There is still none.   

Therefore, we are posting it here.   If you can give us some hint, it will be very much appreciated.

  • I am curious which of the Davinci devices you are using? Depending on the device there are different mechanisms to get the interrupt signal into the CPU, however my first suggestion would be to check the interrupt hardware on your device to ensure that the interrupt is enabled and is properly routed to the CPU.

    Beyond making sure the interrupt itself is enabled at the CPU level, my next thought would be to ensure that the pin multiplexing is configured properly such that the VPFE pins are really acting as VPFE pins and not GPIO or some other peripheral, if the pin multiplexing was set incorrectly it could explain a lack of response from the VPFE.

    Additionally I am curious how this came to be an issue, as with the Davinci devices we include a VPFE driver of some sort which should be handling this sort of thing already, typically customers will modify it to support new hardware, but the baseline of configuring the VPFE and interrupts is already written.

  • Thanks for reply.

    We did not use VPFE driver and wrote our own because it lacks the CCD support.  We followed the VPFE documents and set everything we need.  Yet, there was no interrupt on VDINT signal.  (For sure, there is no problem on the board, and the ARM interrupt controller is enabled.)

    In the end, we decided to use both VPFE driver from EVM and our own VPFE driver (using different VDINT1).  It turned out "the missing Interrupt" coming happily. The system now works great.

    We still do not know why it failed before.  Probably, we need to read VPFE driver and other drivers in EVM more.    But the VPFE document (user guide) is NOT well written on this issue.

    Alan

  • Hi all,

    we're facing the same problem too on a DM6446 based board. Could you kindly tell us where we can find clock characteristics needed by CCDC ?

    We didn't find them in TI docs.

    Regards,

    --j

     

  • electrical and timing characteristics are normally found in the main data-sheet (http://focus.ti.com/lit/ds/symlink/tms320dm6446.pdf ); if you can be more specific, we may be able to help you get the information you are looking for.

  • Hi Juan,

    many thanks, we found'em in that document - pg. 89. We're analyzing PCLK, HD and VD signals.

    Thanks again,

    --j

  • I am glad to hear you are on your way.  Let us know if there is anything else we can help you with.

  • Hello,

    I habe the same problems as above. A modified the davinci_vpfe driver to support my ccd controller. But I dont get any interrupts. Has anyone some hints for me, where to start searching. I have the DM355EVM.

    When I enter "cat /proc/interrupts" in the console I can see that the driver registered the interrupts (VDIN0 and VDINT1) in the system but the count is zero.

    Thank you very much for any answers.

    Martin

  • Hi Martin,

    in our case we had very big differences among TI TVP5146 encoder and our Camera, an Omnivision. Most of our settings to "see" VDINT's was related to davinci_ccdc.c source code.

    We inserted some "printk" inside ISRs defined in davinci_vpfe.c to check results. To Tune your setting you should get familiar with CCD settings you'll find in

    sprue38e - DM644x DMSoC Video Processing Front End (VPFE) User's Guide.pdf on pag. 122.

    For example, in our case we had REC656 Enbled, in which Video Synchronisms are embedded in the Data Path: that default setting was good for TI TVP5146 but not for our Omnivision Camera.

    Hope this helps.

    Regards,

    --jake

  • Hi Jake,

    thanks for your answer. I checked my CCDC settings several times but I cant find the failure. I also inserted some printk in my ISRs but they never get called. I did set the PINMUX0 register to 0x7F55. Do you know if that is right? I did this manually because I couldn't find where this is done anywhere. I also have an Omnivision sensor. Which one do you have? Maybe you could post me your register settings.

    Do I have to activate the interrupts globally anywhere or is this done when I enable CCDC in SYNCEN?

    Thanks.

    Martin

  • Hi Martin,

    attached my ccd settings for OV7670 camera (some comments are wrong, don't trust them too much........). I had run-time ReadReg tracings but I cannot find them right now..........

    Regarding PINMUX, I left default settings (we have a DM6446 based target) and I was able to control both VDINT by CCDC register.

    --j

     

  • Hi Jake,

    thanks for the file. It seems that my settings are the same... I have one last question. Did you connect the pixel clock directly to the CCDC? When I measure the signal with an oszilloscope and I think maybe it is not in the specification. I dm355 datasheet there is a maximum rising time of 3ns. Mine is much bigger.

    Martin