ADV7181C connected to 16bit CSI

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

ADV7181C connected to 16bit CSI

1,475 Views
mks
Contributor II

Hi,

We are working with ADV7181C to get video from SVGA PC output (800x600@60Hz). The CSI is connected through :

CSIx_DAT4 ~ CSIx_DAT9

CSIx_DAT12 ~ CSIx_DAT19

We have set ADV7181C register's properly to output 16-bit YUV 4:2:2 as follow :

Then we applied patch from https://community.freescale.com/docs/DOC-97981.

But when we try to get frames with the following command :

~# ./mxc_v4l2_capture_sgrbg8 -ow 800 -oh 600 -c 500 -fr 25 testsgrbg8.bin

in_width = 176, in_height = 144

out_width = 800, out_height = 600

top = 0, left = 0

sensor chip is adv7180_decoder

sensor supported frame size:

720x576

     Width = 800     Height = 600     Image size = 960000

pixelformat: GRBG

VIDIOC_DQBUF failed.

VIDIOC_QBUF failed

We get timeout error (complete log) :

Jan 16 17:07:35 imx6q user.debug kernel: In MVC: mxc_v4l_open

Jan 16 17:07:35 imx6q user.debug kernel:    device name is Mxc Camera

Jan 16 17:07:35 imx6q user.debug kernel: adv7180 2-0021: adv7180:ioctl_g_ifparm

Jan 16 17:07:35 imx6q user.debug kernel: adv7180 2-0021: adv7180:ioctl_g_fmt_cap

Jan 16 17:07:35 imx6q user.debug kernel:    Returning size of 720x625

Jan 16 17:07:35 imx6q user.debug kernel: End of mxc_v4l_open: v2f pix widthxheight 800 x 600

Jan 16 17:07:35 imx6q user.debug kernel: End of mxc_v4l_open: crop_bounds widthxheight 720 x 625

Jan 16 17:07:35 imx6q user.debug kernel: End of mxc_v4l_open: crop_defrect widthxheight 720 x 625

Jan 16 17:07:35 imx6q user.debug kernel: End of mxc_v4l_open: crop_current widthxheight 720 x 625

Jan 16 17:07:35 imx6q user.debug kernel: On Open: Input to ipu size is 720 x 625

Jan 16 17:07:35 imx6q user.debug kernel: adv7180 2-0021: In adv7180:ioctl_init

Jan 16 17:07:35 imx6q user.debug kernel: adv7180 2-0021: adv7180:ioctl_dev_init

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_DBG_G_CHIP_IDENT chip_ident=7180, revision=0x0

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_ENUM_FRAMESIZES index=0, pixelformat=@��*, type=0 Mxc Camera: - Unknown type!

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_ENUM_FRAMESIZES index=1, pixelformat=@�ﴴ*, type=0 Mxc Camera: - Unknown type!

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_ENUM_FRAMESIZES error -22

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_ENUM_FMT error -22

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_S_PARM type=1

Jan 16 17:07:35 imx6q user.debug kernel: In mxc_v4l2_s_param

Jan 16 17:07:35 imx6q user.debug kernel: adv7180 2-0021: In adv7180:ioctl_g_parm

Jan 16 17:07:35 imx6q user.debug kernel:    type is V4L2_BUF_TYPE_VIDEO_CAPTURE

Jan 16 17:07:35 imx6q user.debug kernel:    Current capabilities are 0

Jan 16 17:07:35 imx6q user.debug kernel:    Current capturemode is 0  change to 0

Jan 16 17:07:35 imx6q user.debug kernel:    Current framerate is 30  change to 25

Jan 16 17:07:35 imx6q user.debug kernel: adv7180 2-0021: In adv7180:ioctl_s_parm

Jan 16 17:07:35 imx6q user.debug kernel: adv7180 2-0021: adv7180:ioctl_g_ifparm

Jan 16 17:07:35 imx6q user.debug kernel:    clock_curr=mclk=27000000

Jan 16 17:07:35 imx6q user.debug kernel: adv7180 2-0021: adv7180:ioctl_g_fmt_cap

Jan 16 17:07:35 imx6q user.debug kernel:    Returning size of 720x625

Jan 16 17:07:35 imx6q user.debug kernel:    g_fmt_cap returns widthxheight of input as 720 x 625

Jan 16 17:07:35 imx6q user.debug kernel:       csi params :

Jan 16 17:07:35 imx6q user.debug kernel: clock_mode 0x0

Jan 16 17:07:35 imx6q user.debug kernel: fmt 0x47425247

Jan 16 17:07:35 imx6q user.debug kernel: width 0x9

Jan 16 17:07:35 imx6q user.debug kernel: ext_vsync 0x1

Jan 16 17:07:35 imx6q user.debug kernel: vsync_pol 0x0

Jan 16 17:07:35 imx6q user.debug kernel: hsync_pol 0x0

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_S_INPUT value=0

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_G_CROP type=vid-cap

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: Rect start at 0x0, size=720x625

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_S_CROP type=vid-cap

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: Rect start at 0x0, size=176x144

Jan 16 17:07:35 imx6q user.debug kernel:    Cropping Input to ipu size 176 x 144

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_S_FMT type=vid-cap

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: width=800, height=600, format=GRBG, field=unknown, bytesperline=800 sizeimage=0, colorspace=2132

Jan 16 17:07:35 imx6q user.debug kernel: In MVC: mxc_v4l2_s_fmt

Jan 16 17:07:35 imx6q user.debug kernel:    type=V4L2_BUF_TYPE_VIDEO_CAPTURE

Jan 16 17:07:35 imx6q user.debug kernel: End of mxc_v4l2_s_fmt: v2f pix widthxheight 800 x 600

Jan 16 17:07:35 imx6q user.debug kernel: End of mxc_v4l2_s_fmt: crop_bounds widthxheight 720 x 625

Jan 16 17:07:35 imx6q user.debug kernel: End of mxc_v4l2_s_fmt: crop_defrect widthxheight 720 x 625

Jan 16 17:07:35 imx6q user.debug kernel: End of mxc_v4l2_s_fmt: crop_current widthxheight 176 x 144

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_S_CTRL id=0x8000000, value=0

Jan 16 17:07:35 imx6q user.debug kernel: In MVC:mxc_v4l2_s_ctrl

Jan 16 17:07:35 imx6q user.debug kernel: In MVC:mxc_streamoff

Jan 16 17:07:35 imx6q user.debug kernel: MVC: In mxc_free_frame_buf

Jan 16 17:07:35 imx6q user.debug kernel: In MVC:mxc_allocate_frame_buf - size=960000

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_REQBUFS count=3, type=vid-cap, memory=mmap

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_G_FMT type=vid-cap

Jan 16 17:07:35 imx6q user.debug kernel: In MVC: mxc_v4l2_g_fmt type=1

Jan 16 17:07:35 imx6q user.debug kernel:    type is V4L2_BUF_TYPE_VIDEO_CAPTURE

Jan 16 17:07:35 imx6q user.debug kernel: End of mxc_v4l2_g_fmt: v2f pix widthxheight 800 x 600

Jan 16 17:07:35 imx6q user.debug kernel: End of mxc_v4l2_g_fmt: crop_bounds widthxheight 720 x 625

Jan 16 17:07:35 imx6q user.debug kernel: End of mxc_v4l2_g_fmt: crop_defrect widthxheight 720 x 625

Jan 16 17:07:35 imx6q user.debug kernel: End of mxc_v4l2_g_fmt: crop_current widthxheight 176 x 144

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: width=800, height=600, format=GRBG, field=unknown, bytesperline=1600 sizeimage=960000, colorspa2

Jan 16 17:07:35 imx6q user.debug kernel: In MVC:mxc_v4l2_buffer_status

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_QUERYBUF 00:00:00.00000000 index=0, type=vid-cap, flags=0x00000001, field=0, sequence=0,p

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: bytesused=0, offset/userptr=0x18800000, length=962560

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000

Jan 16 17:07:35 imx6q user.debug kernel: In MVC:mxc_mmap

Jan 16 17:07:35 imx6q user.debug kernel:    pgoff=0x18800, start=0x2ad7d000, end=0x2ae68000

Jan 16 17:07:35 imx6q user.debug kernel: In MVC:mxc_v4l2_buffer_status

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_QUERYBUF 00:00:00.00000000 index=1, type=vid-cap, flags=0x00000001, field=0, sequence=0,p

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: bytesused=0, offset/userptr=0x18b00000, length=962560

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000

Jan 16 17:07:35 imx6q user.debug kernel: In MVC:mxc_mmap

Jan 16 17:07:35 imx6q user.debug kernel:    pgoff=0x18b00, start=0x2aeb9000, end=0x2afa4000

Jan 16 17:07:35 imx6q user.debug kernel: In MVC:mxc_v4l2_buffer_status

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_QUERYBUF 00:00:00.00000000 index=2, type=vid-cap, flags=0x00000001, field=0, sequence=0,p

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: bytesused=0, offset/userptr=0x18c00000, length=962560

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000

Jan 16 17:07:35 imx6q user.debug kernel: In MVC:mxc_mmap

Jan 16 17:07:35 imx6q user.debug kernel:    pgoff=0x18c00, start=0x2b097000, end=0x2b182000

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_QBUF 00:00:00.00000000 index=0, type=vid-cap, flags=0x00000003, field=0, sequence=0, memp

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: bytesused=0, offset/userptr=0x18800000, length=0

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_QBUF 00:00:00.00000000 index=1, type=vid-cap, flags=0x00000003, field=0, sequence=0, memp

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: bytesused=0, offset/userptr=0x18b00000, length=0

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_QBUF 00:00:00.00000000 index=2, type=vid-cap, flags=0x00000003, field=0, sequence=0, memp

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: bytesused=0, offset/userptr=0x18c00000, length=0

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000

Jan 16 17:07:35 imx6q user.debug kernel: Mxc Camera: VIDIOC_STREAMON type=vid-cap

Jan 16 17:07:35 imx6q user.debug kernel: In MVC:mxc_streamon

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: init channel = 15

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: initializing idma ch 0 @ c08c0000

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: ch 0 word 0 - 00000000 00000000 00000000 E0001800 00095C63

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: ch 0 word 1 - 031A0000 00634000 00C1C000 00018FC0 00000000

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: PFS 0x6,

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: BPP 0x3,

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: NPB 0x7

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: FW 799,

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: FH 599,

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: EBA0 0x18d00000

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: EBA1 0x18d00000

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: Stride 1599

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: scan_order 0

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: uv_stride 0

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: u_offset 0x0

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: v_offset 0x0

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: Width0 0+1,

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: Width1 0+1,

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: Width2 0+1,

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: Width3 0+1,

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: Offset0 0,

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: Offset1 0,

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: Offset2 0,

Jan 16 17:07:35 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: Offset3 0

Jan 16 17:07:35 imx6q user.debug kernel: In MVC:mxc_v4l_dqueue

ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0

ERROR: v4l2 capture: VIDIOC_QBUF: buffer already queued

Jan 16 17:07:45 imx6q user.err kernel: ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0

Jan 16 17:07:45 imx6q user.debug kernel: Mxc Camera: VIDIOC_DQBUF error -62

Jan 16 17:07:45 imx6q user.err kernel: ERROR: v4l2 capture: VIDIOC_QBUF: buffer already queued

Jan 16 17:07:45 imx6q user.debug kernel: Mxc Camera: VIDIOC_QBUF error -22

Jan 16 17:07:45 imx6q user.debug kernel: Mxc Camera: VIDIOC_STREAMOFF type=vid-cap

Jan 16 17:07:45 imx6q user.debug kernel: In MVC:mxc_streamoff

Jan 16 17:07:45 imx6q user.debug kernel: imx-ipuv3 imx-ipuv3.0: CSI stop timeout - 5 * 10ms

Jan 16 17:07:45 imx6q user.debug kernel: In MVC:mxc_free_frames

Jan 16 17:07:45 imx6q user.debug kernel: In MVC:mxc_v4l_close

Jan 16 17:07:45 imx6q user.debug kernel: In MVC:mxc_streamoff

Jan 16 17:07:45 imx6q user.debug kernel: mxc_v4l_close: release resource

Jan 16 17:07:45 imx6q user.debug kernel: MVC: In mxc_free_frame_buf

Jan 16 17:07:45 imx6q user.debug kernel: In MVC:mxc_free_frames

Here is setting from adv7180.c  ioctl_g_ifparm() :

   /* Initialize structure to 0s then set any non-0 values. */
   memset(p, 0, sizeof(*p));
   p->if_type = V4L2_IF_TYPE_BT656; /* This is the only possibility. */
   p->u.bt656.mode = V4L2_IF_TYPE_BT656_MODE_NOBT_8BIT;
   p->u.bt656.bt_sync_correct = 1;
   //p->u.bt656.nobt_hs_inv = 1;
   //p->u.bt656.nobt_vs_inv = 1;
   p->u.bt656.clock_curr = 27000000;  //Gated clock mode
   /* ADV7180 has a dedicated clock so no clock settings needed. */

Labels (1)
0 Kudos
4 Replies

687 Views
gangli
Contributor II

Hi kamel,

     Have you got adv7181c work with iMX6? I got the same problem, could you share the solution? Thanks。

0 Kudos

687 Views
igorpadykov
NXP Employee
NXP Employee

Hi kamel

for ADV7180/bt656 one needs to use mxc_v4l2_tvin, also

one can look at below activities

https://community.freescale.com/message/314760#314760

Re: ADV7180 on IMX6 giving magenta output

Best regards

igor

0 Kudos

687 Views
mks
Contributor II

Hi Igor,

Im using mxc_v4l2_capture to because tvin doesn't have redirection to binary file, only display on framebuffer is supported.

We have both adv7180  and adv7181c, the first work well with default bt656 mode with a cvbs input but with adv7181c, we need to capture a svga/xvga input so we can't configure adv7181c with bt656 (look at SDP vs CP).

Is there any application note on how to properly set csi with 16-bit generic data ? What configuration should I have in registers CSI0_SENS_CONF, CSI0_SENS_FRM_SIZE, CSI0_ACT_FRM_SIZE and CPMEM ?

There is a lot of discussion but no one gives a correct answer or scheme to follow ?

0 Kudos

687 Views
igorpadykov
NXP Employee
NXP Employee

Hi kamel

I am afraid there are no such documents, link below is for

16-bit generic data

https://community.freescale.com/message/331888

https://community.freescale.com/message/309833#309833

~igor

0 Kudos