Re: OMAP3 isp single-shot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Daniel,

On Friday 25 March 2011 14:10:28 Daniel Lundborg wrote:
> > On Thursday 24 March 2011 11:26:01 Daniel Lundborg wrote:

[snip]

> > > I can see on the oscilloscope that the sensor is sending something when
> > > I trigger it, but no picture is received..
> > 
> > "something" is a bit vague, can you check the hsync/vsync signals and make
> > sure they're identical in both modes ?
> 
> I have now tested this and I can say that I am having problems triggering
> the sensor. I wrongly thought I was triggering the sensor with my other
> driver correctly, but that was not the case.
> 
> What I want is to put the Omap ISP to generate a signal (CAM_WEN) to
> make the camera sensor take a picture.

That's not possible. The cam_wen signal is an input to the ISP. The ISP Timing 
Control module can generate pulses on the cam_shutter, cam_strobe and 
cam_global_reset signals only.

What you could do is configure the cam_wen pin as a GPIO and control it using 
the GPIO framework (either in kernelspace or userspace).

> In my working mt9v034 driver which is using kernel 2.6.31-rc7 with the
> patches from <http://gitorious.org/omap3camera/mainline/commits/slave> I
> set the ISP to this on power on:
> 
>   isp_reg_and_or(vdev->cam->isp, OMAP3_ISP_IOMEM_MAIN, ISP_TCTRL_CTRL,
> 0x9a1b63ff, 0x98036000);  // Set CAM_GLOBAL_RESET pin as output, enable
> shutter, set DIVC = 216

What ISP driver version are you using ? isp_reg_and_or has been replaced by 
isp_reg_clr_set a very long time ago. You should really upgrade.

>   isp_reg_and(vdev->cam->isp, OMAP3_ISP_IOMEM_MAIN,
> ISP_TCTRL_SHUT_DELAY, 0xfe000000);  // Set no shutter delay
>   isp_reg_and_or(vdev->cam->isp, OMAP3_ISP_IOMEM_MAIN,
> ISP_TCTRL_SHUT_LENGTH, 0xfe000000, 0x000003e8);  // Set shutter signal
> length to 1000 (=> 1000 * 1/216MHz * 216 = 1 ms)
>   isp_reg_and_or(vdev->cam->isp, OMAP3_ISP_IOMEM_MAIN,
> ISP_TCTRL_GRESET_LENGTH, 0xfe000000, 0x000003e8);  // Set shutter signal
> length to 1000 (=> 1000 * 1/216MHz * 216 = 1 ms)
>   isp_reg_and(isp_ccdc_dev, OMAP3_ISP_IOMEM_CCDC, ISPCCDC_LSC_CONFIG,
> ~ISPCCDC_LSC_ENABLE);  // Make sure you disable LSC
> 
> And when I want to take a picture I do:
> 
>   isp_reg_or(vdev->cam->isp, OMAP3_ISP_IOMEM_MAIN, ISP_TCTRL_CTRL,
> 0x00e00000);  // Enable shutter (SHUTEN bit = 1)
>   isp_reg_or(vdev->cam->isp, OMAP3_ISP_IOMEM_MAIN, ISP_TCTRL_CTRL,
> 0x20000000);  // Start generation of CAM_GLOBAL_RESET signal (GRESETEN
> bit = 1)
> 
> When I try to do this in the newer driver I manage to generate a pulse
> on the CAM_WEN pin, but no VSYNC, HSYNC or data is transmitted.

I fail to see how that code can generate a pulse on the cam_wen signal. It 
should only control the cam_shutter, cam_strobe and cam_global_shutter pins.

> Am I missing something?

Is your sensor correctly configured ? Is there a publicly available datasheet 
for the MT9V034 ?

-- 
Regards,

Laurent Pinchart
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux