i.MX6Q BT656 interlace capture problem.

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

i.MX6Q BT656 interlace capture problem.

1,681 Views
takayuki_ishii
Contributor IV

Hello community,

I just try to capture bt656 interlace data.

Each register setting are same as 2.1.1 BT.656 Interlace Setting in document i.MX6 IPU TVIN Application Note.

IPU_CSI_SENS_CONF         0x04000A30
IPU_CSI_SENS_FRM_SIZE 0x020C02CF
IPU_CSI_ACT_FRM_SIZE   0x01DF02CF
IPU_CSI_OUT_FRM_CTRL  0x00000003
IPU_CSI_CCIR_CODE_1     0x010D07DF
IPU_CSI_CCIR_CODE_2     0x00040596
IPU_CSI_CCIR_CODE_3     0x00FF0000

In this time capture data will be swapped each odd/even field.

Line 0      Line 1

Line 1      Line 0

Line 2      Line 3

Line 3      Line 2

Line 4      Line 5

Line 5      Line 4

Line 6      Line 7

Line 7      Line 6

So, we try to change IPU_CSI_CCIR_CODE_1 and IPU_CSI_CCIR_CODE_2 to change F bit setting.

IPU_CSI_CCIR_CODE_1     0x00040596
IPU_CSI_CCIR_CODE_2     0x010D07DF

As a result, capture data is more differ as following.

Line 0      Line 1

Line 1      Line x

Line 2      Line 3

Line 3      Line 0

Line 4      Line 5

Line 5      Line 2

Line 6      Line 7

Line 7      Line 4

to capture these signals.

Which register does it modify to setup capture start line?

Best regards,

Ishii.

Labels (2)
Tags (1)
4 Replies

1,462 Views
umit_kayacik
Contributor II

Thanks Takayuki,

I had a look to RM and found that:

Register BASE ADDR : 0x02600000


IPU_CSI_SENS_CONF           0x02630000
IPU_CSI_SENS_FRM_SIZE   0x02630004
IPU_CSI_ACT_FRM_SIZE      0x02630008 
IPU_CSI_OUT_FRM_CTRL    0x0263000C 
IPU_CSI_CCIR_CODE_1       0x02630014
IPU_CSI_CCIR_CODE_2       0x02630018
IPU_CSI_CCIR_CODE_3       0x0263001C

0 Kudos
Reply

1,462 Views
umit_kayacik
Contributor II

How can you see these registers? Is there any way to see them on linux(yocto) without debugger?

Cheers 

0 Kudos
Reply

1,462 Views
takayuki_ishii
Contributor IV

Hello umit kayacik,

Sorry my late reply.

To access IPU_CSI registers, you can use memtool command in /unit_tests directory.

But it can not use by module name like

  > /unit_tests/memtools IPU1.CSI.*

In this time memtool command will hang-up in my environment.

So please try CSI reguster address directory.

  > /unit_tests/memtools -32 0x02A30000 10

In default Linux BSP, IPU1 clock_gating is disable, so 0x026x_xxxx will be hung-up.

So to access 0x026x_xxxx registers, you must check CCGR3 register.

Best regards,

Ishii.

0 Kudos
Reply

1,462 Views
igorpadykov
NXP Employee
NXP Employee

Hi Takayuki

i.MX6Q BT656 interlace capture is supported in linux, one can look at adv7180 driver:
linux/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
imx6qdl-sabreauto.dtsi\dts\boot\arm\arch - linux-imx - i.MX Linux kernel 
unit test ..test/mxc_v4l2_test/mxc_v4l2_tvin.c
mxc_v4l2_tvin.c\mxc_v4l2_test\test - imx-test - i.MX Driver Test Application Software 
Linux driver and description in sect.6.1.7 V4L2 Capture attached Linux Manual
drivers/media/platform/mxc/capture/adv7180.c
adv7180.c\capture\mxc\platform\media\drivers - linux-imx - i.MX Linux kernel 
baremetal adv7180 example in i.MX6Q SDK in ..camera/test/adv7180_capture.c
(1.1.0_iMX6_Platform_SDK.zip can be found on SMP Enable in IMX6 )
BT656 mode description can be found in sect.18.5.2.3 BT656 mode iMX6_Firmware_Guide.pdf included in SDK

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply