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.

CLKIN VPIF LCDK OMAP L138

Other Parts Discussed in Thread: TVP5147M1, OMAPL138

Hello,I have problem with singnal which I send to CLKIN0 and CLKIN1 pins. I send this clk signal from sensor. When I send it wihout connection with Omap I can see on osciloscope good square signal, but when I connect this signal with omap this signal is not the quare any more, It looks like in omap there is a pull-up or pull-down on this pin. Is this possible? I multiplexe pins to vpif CLKIN0 and CLKIN1.

Regards,

  • Hey Mark and TI Support.
    i would like to join the post and share my experience
    i also work with the LCDKOMAPL138 and the Aptina MT9M034 sensor i can confirm that the I2C with the sensor works and i receieve ACKs.
    After some "re-modelling" the LCDK (removing R141 & U27 parts from the board) we still don't get the VPIF peripheral on the Omap to trigger an event for incoming frame.
    Our issue is that CAM_CLK or PIX_CLK signal which needs to be 74Mhz PWM clock coming from the sensor but has a ripple around the 3.3V (meaning it is pulled up somehow) thus, not enabling the Omap to get a correct clock reading.
    I suspect that there is a bug in the LCDK board 

    thanks in advance
    Maor
  • this waiting for reply from TI Support regarding this issue

  • a reminder

    we haven't got any reply regrading this issue...

  • can anyone from TI help with this issue please???

  • Hello,

    I am also working with OMAPL138-LCDK and a Leopard Imaging camera header and I would like to ask if you have managed to overcome the vpif interrupt issue.

    Thank you!

  • Hey..

    i did manage to overcome this obstacle...

    it involves some ripping in the board in-order to get it to work 

    good documentation regrading the ripping you can find in this post of Andres
    http://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/115/p/230098/862546.aspx#862546

    even tho he was working on the DSP and PSP drivers i've found his findings to be good in my case also

    i've attached here my configuration to make the VPIF work on the ARM processor on the omap-lcdk138 with the Aptina MT9M034 using the StarterWare drivers
    if you need anything else let me know

    MT9M034 on StarterWare.rar
  • Hello Maor,

    thank you very much for your answer!!

    I will have a look in the code and in the link you provided, and I will probably come back with questions.

    SInce you are working with MT9M034 you may find this link useful:

    https://github.com/Aptina/BeagleBoard-xM/tree/master/MT9M034

    Regards,

    Katerina

  • Hello Maor,
    I am not particularly familiar with electronics ,so I would like to ask if instead of removing the components that you suggested,I could bypass the connection of vpif_clkin0 to  tvp5147m1 decoder by grounding the A and Vcc pins of U27. Would it be the same or it could cause an unwanted result?
    Thank you in advance!

    Regards,
    Katerina
  •  i think it should be ok

  • Hello Maor, again!

    I ended up removing U27 component from LCDK ,as you have suggested,but I still cannot get an interrupt...
    I am working on vpif_lcd_loopback example from Starterware (adjusted for
    raw capture mode).
    My camera header is the LI-M024DUAL which interfaces two Aptinas MT9M024 imaging sensors.
    I took a look at the code you attached and the main difference with the code that I am using is the memory management,which I think isn't a critical issue concerning the interrupts from the camera header.
    The VpifRx function I use (after two corrections) is the same with yours.I also guess that you use the given SetupIntc function for interrupt configuration concerning the vpif peripheral.
    I am attaching my code and I would be grateful for any suggestions on what I am doing wrong.

    P.S.
    The i2c communication with the camera header is working properly.
    As for the camera settings I used the mt9m034.c file from:
    https://github.com/Aptina/BeagleBoard-xM/tree/master/MT9M034/Angstrom
    Thank you  for your help!
  • Hello Maor,

    Due to time limitations I am thinking about  purchasing the  LI-CAM-M034 ,because I have not managed to get LI-M024DUAL working.So,I would like to ask you if you have encountered any problems apart from the interrupt issue.

    Thank you for your help!

    Kind Regards,

    Katerina

  • Hello Maor!

    Hoping not to exceed your kindness,I have one more question...
    I am working with LI-CAM-M034 ,VPIFIsr()  is invoked ,but the interrupt that I am getting is the "error interrupt",I am not getting line or frame interrupts at all.
    In OMAPL138 manual says (pg 1758) that an error interrupt might occur due to 3 reasons.I suspect that in my case the error interrupt is generated by the first reason ,which is  "internal buffer overflow".
    I believe this ,because the buffers that are allocated for channel 0 via VPIFCaptureFBConfig() are not filled with data.So, it is as if there is another place that the data from VPIF are stored before and this place is overflowed.
    Is this assumption somewhere near reality?
    Have you faced a similar situation?

    Kind Regards,

    Katerina Trilyraki

  • Hey Katerina

    glad to see you making some progress!

    i am working with the exact same sensor mt9m034 and with the files i attached earlier without any problem...

    please try to send via i2c the settings you get from the registry wizard for the sensor with picture size of 1280*720

    and set the buffers as followed in my files. also good idea is to try and #pragma those buffers

    example:

    #define HORIZONTAL_PIXEL_COUNT 1280
    #define VERTICAL_PIXEL_COUNT 720

    #define VBUF_SIZE (HORIZONTAL_PIXEL_COUNT * VERTICAL_PIXEL_COUNT)

    unsigned char picBuf1[VBUF_SIZE*2];
    #pragma DATA_SECTION(picBuf1,"PICTURE");

    unsigned char picBuf2[VBUF_SIZE*2];
    #pragma DATA_SECTION(picBuf2,"PICTURE");

    unsigned char picBuf3[VBUF_SIZE*2];
    #pragma DATA_SECTION(picBuf3,"PICTURE");

    picBuffer[0] = picBuf1;
    picBuffer[1] = picBuf2;
    picBuffer[2] = picBuf3;

    the VPIFCaptureFBConfig should be set as followed and switch to one of the 3 buffers every interrupt invoke

    i++;

    VPIFCaptureFBConfig(SOC_VPIF_0_REGS, VPIF_CHANNEL_0, VPIF_TOP_FIELD,
                          VPIF_LUMA, (unsigned int)

    <?xml version="1.0" encoding="UTF-8"?> 
    <java version="1.6.0_13" class="java.beans.XMLDecoder"> 
     <object class="com.ti.dvt.ui.views.core.ImageProp"> 
      <void property="delegateProp"> 
       <object class="com.ti.dvt.ui.views.core.BayerProp"> 
        <void property="componentMask"> 
         <long>4095</long> 
        </void> 
        <void property="lineCount"> 
         <int>720</int> 
        </void> 
        <void property="lineStride"> 
         <int>2560</int> 
        </void> 
        <void property="pixelCountPerLine"> 
         <int>1280</int> 
        </void> 
        <void property="pixelOrder"> 
         <string>GR/BG</string> 
        </void> 
        <void property="pixelStride"> 
         <int>2</int> 
        </void> 
        <void property="readAs"> 
         <int>16</int> 
        </void> 
        <void property="startAddress"> 
         <string>buff_luma[(frame-1)%2]</string> 
        </void> 
       </object> 
      </void> 
      <void property="scrollLock"> 
       <boolean>true</boolean> 
      </void> 
     </object> 
    </java> 
    
    [i%3], HORIZONTAL_PIXEL_COUNT*2);

    since we work on raw data only luma is relevant for us 

    later on if you want to watch the content of the buffer in image analyzer use the following settings I've attached..

    simply import them to the Image Analyzer and remember to set the correct startAddress 

    good luck

  • Hello Maor,
    thank you very much for your response!

    Two clarifications please:
    - You use the register output from A1000ERS register wizard without adding the sequencer settings?

    - The data section named "PICTURE" is loaded to the same memory that your program is loaded? For example, if my program is loaded to DDR_MEM I will have to use the directive PICTURE  :load>DDR_MEM.

    I really appreciate your help!

    Kind Regards,

    Katerina