4 Replies Latest reply on Jun 28, 2017 9:57 PM by nisa

    OV7251 sensor with CX3 RDK board Black screen

    saysui_2337346

      I have CX3RDK kit with OV7251 sensor. OV7251 is VGA and Black and white ( RAW10 bit)

         

      I added ov7251 init code for I2C write. I2C write is looks good, because read back value almost same.

         

      But eCAM viewer has [ Resolution : 640x480 ] but, FrameRate: 0.0 fps... and Screen is Black.

         

      And windows can find USB video device. 

         

      When I cover my hand up OV7251. Mipi data looks changed. so I think sensor is working.

         

      And My project file come from cycx3_uvc_ov5640 sample file. 

         

       

         

      when i checked trouble shooting doc.... "check...  glDMATxCount  is zero (0) "

         

      but when I change ov7251 sensor MIPI_CTRL ( Clock Lane gate enable = Gate clock lane with no package to transmit )

         

      I can see CX3_DMA_RESET_EVENT repeatly. 

         

      Could any one give me an answer what problem causes the machine display black view?

         

      my system; USB2.0 ( not a USB3.0)

        • 2. Re: OV7251 sensor with CX3 RDK board Black screen
          nisa

          If you go through your firmware, you will notice that the firmware is using a timer- Cx3ResetTimer. In the DMA callback, whenever you get a producer event, you are starting the timer, and whenever you get a consumer event then the timer is being stopped and being reinitialized. 

             

          Producer event is triggered when CX3 receives data from the sensor, and consumer event is triggered with PC reads the data from the CX3. 

             

          If after the producer event, the PC does not read the data. Then the consumer event will not be triggered and the timer will expire upon completing the period. If you look at the timer callback function, you will notice that it will set CX3_DMA_RESET_EVENT.  This is the current scenario. If the host is not asking the data continuously, then the timer will expire and you will get a CX3_DMA_RESET_EVENT triggered.  Please check on USb3.0 to check, probably you wont because the host will ask the data more fast. If so, then you can probably increase the period of the timer to avoid this. 

          • 3. Re: OV7251 sensor with CX3 RDK board Black screen
            saysui_2337346

            I don't have any USB 3.0 port, but I increased the period of the timer.

               

            But Still, I have DMA_RESET, because of below condition. (always go to "if (status != CY_U3P_SUCCESS)")

               

            Is there any point to check?

               

                        /* Commit Buffer to USB*/
                        status = CyU3PDmaMultiChannelCommitBuffer (chHandle, (dmaBuffer.count + 12), 0);
                        if (status != CY_U3P_SUCCESS)
                        {
                               CyU3PEventSet(&glCx3Event, CX3_DMA_RESET_EVENT,CYU3P_EVENT_OR);
                               break;
                        }

            • 4. Re: OV7251 sensor with CX3 RDK board Black screen
              nisa

              1) You can add the PIB callback in your firmware. using CyU3PPibRegisterCallback
               API. If you do not get any overfolw on the PIB side, then you can remove the reset timer related component. The reset timer is included for error handling when the host is not asking data fast but the sensor sends at a higher speed. 

                 

              2) The host application, does it support RAW10 display? When you put your hand, and the data changes, that makes sense (You may not be able to see the correct video because the host application may not support RAW10)

                 

              3) We have provided a sample firmware to stream RAW video using vendor class implementation. Please have a look: http://www.cypress.com/forum/usb-known-problems-and-solutions/fx3-cx3-firmware-streaming-raw-image-data-using-cypress