在线时间0 小时
UID158370
注册时间2009-11-10
NXP金币0
该用户从未签到
新手上路

- 积分
- 13
- 最后登录
- 1970-1-1
|
我在i.mx6Q上IPU2上的CSI1接ADV7441A,使用16位CSI总线,行同步,场同步,像素时钟,DE信号,
出现如下错误信息:
and run ./mxc_v4l2_tvin.out -ow 100 -oh 100
get below result:
start time = 33 s, 476123 us
ERROR: v4l2 capture: mxc mxc_v4l_dqueue timeout enc_counter 0
VIDIOC_DQBUF failed.
adv7441a 1-0021: adv7441a:ioctl_s_power.
相关代码如下:
1.
======================================
static iomux_v3_cfg_t mx6q_sabresd_csi1_sensor_pads[] = {
/* IPU2 tvin */
MX6Q_PAD_EIM_DA0__IPU2_CSI1_D_9,
MX6Q_PAD_EIM_DA1__IPU2_CSI1_D_8,
MX6Q_PAD_EIM_DA2__IPU2_CSI1_D_7,
MX6Q_PAD_EIM_DA3__IPU2_CSI1_D_6,
MX6Q_PAD_EIM_DA4__IPU2_CSI1_D_5,
MX6Q_PAD_EIM_DA5__IPU2_CSI1_D_4,
MX6Q_PAD_EIM_DA6__IPU2_CSI1_D_3,
MX6Q_PAD_EIM_DA7__IPU2_CSI1_D_2,
MX6Q_PAD_EIM_DA8__IPU2_CSI1_D_1,
MX6Q_PAD_EIM_DA9__IPU2_CSI1_D_0,
MX6Q_PAD_EIM_EB2__IPU2_CSI1_D_19,
MX6Q_PAD_EIM_D16__IPU2_CSI1_D_18,
MX6Q_PAD_EIM_D18__IPU2_CSI1_D_17,
MX6Q_PAD_EIM_D19__IPU2_CSI1_D_16,
MX6Q_PAD_EIM_D20__IPU2_CSI1_D_15,
MX6Q_PAD_EIM_D26__IPU2_CSI1_D_14,
MX6Q_PAD_EIM_D27__IPU2_CSI1_D_13,
MX6Q_PAD_EIM_D28__IPU2_CSI1_D_12,
MX6Q_PAD_EIM_D21__IPU2_CSI1_D_11,
MX6Q_PAD_EIM_D22__IPU2_CSI1_D_10,
MX6Q_PAD_EIM_D23__IPU2_CSI1_DATA_EN,
MX6Q_PAD_EIM_D17__IPU2_CSI1_PIXCLK,
MX6Q_PAD_EIM_EB3__IPU2_CSI1_HSYNC,
MX6Q_PAD_EIM_D29__IPU2_CSI1_VSYNC,
MX6Q_PAD_EIM_D30__GPIO_3_30, /* adc int */
MX6Q_PAD_EIM_D31__GPIO_3_31, /* tvin reset , low */
};
=====================================
2.
=====================================
static struct fsl_mxc_capture_platform_data capture_data[] = {
{
.csi = 1,
.ipu = 1,
.mclk_source = 0,
.is_mipi = 0,
}, {
.csi = 0,
.ipu = 0,
.mclk_source = 0,
.is_mipi = 0,
},
};
=====================================
3.
=====================================
static void mx6q_csi1_io_init(void)
{
mxc_iomux_v3_setup_multiple_pads(mx6q_sabresd_csi1_sensor_pads,
ARRAY_SIZE(mx6q_sabresd_csi1_sensor_pads));
/* tvin reset */
gpio_request(SABRESD_TVIN_REST, "tvin-rest");
gpio_direction_output(SABRESD_TVIN_REST, 1);
gpio_direction_output(SABRESD_TVIN_REST, 0);
msleep(10);
gpio_direction_output(SABRESD_TVIN_REST, 1);
/* For MX6Q:
* GPR1 bit19 and bit20 meaning:
* Bit19: 0 - Enable mipi to IPU1 CSI0
* virtual channel is fixed to 0
* 1 - Enable parallel interface to IPU1 CSI0
* Bit20: 0 - Enable mipi to IPU2 CSI1
* virtual channel is fixed to 3
* 1 - Enable parallel interface to IPU2 CSI1
* IPU1 CSI1 directly connect to mipi csi2,
* virtual channel is fixed to 1
* IPU2 CSI0 directly connect to mipi csi2,
* virtual channel is fixed to 2
*
* For MX6DL:
* GPR13 bit 0-2 IPU_CSI0_MUX
* 000 MIPI_CSI0
* 100 IPU CSI0
*/
if (cpu_is_mx6q())
mxc_iomux_set_gpr_register(1, 20, 1, 1);
else if (cpu_is_mx6dl())
mxc_iomux_set_gpr_register(13, 0, 3, 4);
}
================================
我需要如何设置i.mx6里面CSI相关的寄存器,
比如说CSI0 Sensor Configuration Register(IPUx_CSI0_SENS_CONF)
里面有YUV422 (YUYV...)还是YUV422 (UYVY...)?
BT.1120 DDR还是BT.1120 SDP?progressive还是interlaced mode?
Pixel clock input是pixel clock is directly applied to internal circuitry还是pixel clock is inverted before applied to internal circuitry
等等。
ADV7441A输出波形如下,我需要如何设置i.mx6
时钟与数据
时钟与DE
时钟与场同步
时钟与行同步
|
|