AnsweredAssumed Answered

Parallel CSI interface is not working for me

Question asked by Jiri Slaby on Feb 1, 2018
Latest reply on Feb 9, 2018 by Jiri Slaby

Hi,

 

I have an IMX.6 board and I am trying to make the CSI parallel interface working. I want to transfer generic 16-bit data from FPGA via gated clock mode. Connected are DATA04..DATA19, VSYNC, HSYNC, PIXCLK (75 MHz). DATA_EN is not connected.

 

MX6QDL_PAD_CSI0_DAT7__IPU1_CSI0_DATA07 0x0001b0b0
MX6QDL_PAD_CSI0_DAT8__IPU1_CSI0_DATA08 0x0001b0b0
MX6QDL_PAD_CSI0_DAT9__IPU1_CSI0_DATA09 0x0001b0b0
MX6QDL_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x0001b0b0
MX6QDL_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x0001b0b0
MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x0001b0b0
MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x0001b0b0
MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x0001b0b0
MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x0001b0b0
MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x0001b0b0
MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x0001b0b0
MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x0001b0b0
MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x0001b0b0
MX6QDL_PAD_CSI0_DATA_EN__IPU1_CSI0_DATA_EN 0x0001b0b0
MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x0001b0b0
MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x0001b0b0
MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x0001b0b0

 

  1. VSYNC is put high and down
  2. HSYNC is put high
  3. data for a line are put on DATA[04..19]
  4. HSYNC is put down

 

PIXCLK ticks all the time

 

The line is 280B of blanking and 1920 B of data.

The frames are 41 lines of blanking, 1080 active lines and 3 lines of blanking.

 

The registers are as follows:

[ 93.079402] wwp2 wwp2.24: IOMUXC_GPR1=48693005
[ 93.084458] wwp2 wwp2.24: wwp2 sensor probed !
[ 93.091935] imx-ipuv3 2400000.ipu: clk_mode=0
[ 93.119724] imx-ipuv3 2400000.ipu: init channel = 15
[ 93.119745] imx-ipuv3 2400000.ipu: ipu busfreq high requst.
[ 93.119773] imx-ipuv3 2400000.ipu: initializing idma ch 0 @ c0900000
[ 93.119797] imx-ipuv3 2400000.ipu: ch 0 word 0 - 00000000 00000000 00000000 E0001800 0010DCEF
[ 93.119811] imx-ipuv3 2400000.ipu: ch 0 word 1 - 08860000 0111C000 00C7C000 0003BFC0 00000000
[ 93.119820] imx-ipuv3 2400000.ipu: PFS 0x6,
[ 93.119828] imx-ipuv3 2400000.ipu: BPP 0x3,
[ 93.119835] imx-ipuv3 2400000.ipu: NPB 0x1f
[ 93.119844] imx-ipuv3 2400000.ipu: FW 1919,
[ 93.119852] imx-ipuv3 2400000.ipu: FH 1079,
[ 93.119859] imx-ipuv3 2400000.ipu: EBA0 0x44300000
[ 93.119868] imx-ipuv3 2400000.ipu: EBA1 0x44700000
[ 93.119876] imx-ipuv3 2400000.ipu: Stride 3839
[ 93.119883] imx-ipuv3 2400000.ipu: scan_order 0
[ 93.119890] imx-ipuv3 2400000.ipu: uv_stride 0
[ 93.119898] imx-ipuv3 2400000.ipu: u_offset 0x0
[ 93.119907] imx-ipuv3 2400000.ipu: v_offset 0x0
[ 93.119914] imx-ipuv3 2400000.ipu: Width0 0+1,
[ 93.119921] imx-ipuv3 2400000.ipu: Width1 0+1,
[ 93.119928] imx-ipuv3 2400000.ipu: Width2 0+1,
[ 93.119935] imx-ipuv3 2400000.ipu: Width3 0+1,
[ 93.119942] imx-ipuv3 2400000.ipu: Offset0 0,
[ 93.119949] imx-ipuv3 2400000.ipu: Offset1 0,
[ 93.119957] imx-ipuv3 2400000.ipu: Offset2 0,
[ 93.119963] imx-ipuv3 2400000.ipu: Offset3 0
[ 93.119982] -------
[ 93.122092] imx-ipuv3 2400000.ipu: CSI_SENS_CONF: 0402cb00
[ 93.122100] imx-ipuv3 2400000.ipu: CSI_SENS_FRM_SIZE: 04640897
[ 93.122109] imx-ipuv3 2400000.ipu: CSI_ACT_FRM_SIZE: 0437077f
[ 93.122117] imx-ipuv3 2400000.ipu: CSI_OUT_FRM_CTRL: 01180000
[ 93.122125] imx-ipuv3 2400000.ipu: CSI_TST_CTRL: 00000000
[ 93.122133] imx-ipuv3 2400000.ipu: CSI_CCIR_CODE_1: 00000000
[ 93.122142] imx-ipuv3 2400000.ipu: CSI_CCIR_CODE_2: 00000000
[ 93.122149] imx-ipuv3 2400000.ipu: CSI_CCIR_CODE_3: 00000000
[ 93.122156] imx-ipuv3 2400000.ipu: CSI_MIPI_DI: ffffffff
[ 93.122164] imx-ipuv3 2400000.ipu: CSI_SKIP: 00000000
[ 93.122173] imx-ipuv3 2400000.ipu: SMFC_MAP: 00000000
[ 93.122184] imx-ipuv3 2400000.ipu: IPU_freq = 264000000
[ 93.122192] imx-ipuv3 2400000.ipu: IPU_CONF = 0x00000101
[ 93.122200] imx-ipuv3 2400000.ipu: IDMAC_CONF = 0x0000002F
[ 93.122209] imx-ipuv3 2400000.ipu: IDMAC_CHA_EN1 = 0x00000001
[ 93.122218] imx-ipuv3 2400000.ipu: IDMAC_CHA_EN2 = 0x00000000
[ 93.122227] imx-ipuv3 2400000.ipu: IDMAC_CHA_PRI1 = 0x18800003
[ 93.122235] imx-ipuv3 2400000.ipu: IDMAC_CHA_PRI2 = 0x00000000
[ 93.122242] imx-ipuv3 2400000.ipu: IDMAC_BAND_EN1 = 0x00000000
[ 93.122250] imx-ipuv3 2400000.ipu: IDMAC_BAND_EN2 = 0x00000000
[ 93.122258] imx-ipuv3 2400000.ipu: IPU_CHA_DB_MODE_SEL0 = 0x00000001
[ 93.122267] imx-ipuv3 2400000.ipu: IPU_CHA_DB_MODE_SEL1 = 0x00000000
[ 93.122276] imx-ipuv3 2400000.ipu: IPU_CHA_TRB_MODE_SEL0 = 0x00000000
[ 93.122285] imx-ipuv3 2400000.ipu: IPU_CHA_TRB_MODE_SEL1 = 0x00000000
[ 93.122294] imx-ipuv3 2400000.ipu: DMFC_WR_CHAN = 0x00000090
[ 93.122302] imx-ipuv3 2400000.ipu: DMFC_WR_CHAN_DEF = 0x202020F6
[ 93.122309] imx-ipuv3 2400000.ipu: DMFC_DP_CHAN = 0x00009694
[ 93.122317] imx-ipuv3 2400000.ipu: DMFC_DP_CHAN_DEF = 0x2020F6F6
[ 93.122325] imx-ipuv3 2400000.ipu: DMFC_IC_CTRL = 0x00000002
[ 93.122332] imx-ipuv3 2400000.ipu: IPU_FS_PROC_FLOW1 = 0x00000000
[ 93.122340] imx-ipuv3 2400000.ipu: IPU_FS_PROC_FLOW2 = 0x00000000
[ 93.122349] imx-ipuv3 2400000.ipu: IPU_FS_PROC_FLOW3 = 0x00000000
[ 93.122357] imx-ipuv3 2400000.ipu: IPU_FS_DISP_FLOW1 = 0x00000000
[ 93.122366] imx-ipuv3 2400000.ipu: IPU_VDIC_VDI_FSIZE = 0x00000000
[ 93.122373] imx-ipuv3 2400000.ipu: IPU_VDIC_VDI_C = 0x00000000
[ 93.122382] imx-ipuv3 2400000.ipu: IPU_IC_CONF = 0x00000000
[ 93.122392] imx-ipuv3 2400000.ipu: IDMAC_CH_BUSY = 0x00000000
[ 93.133646] imx-ipuv3 2400000.ipu: IDMAC_CH_BUSY = 0x00000000

 

I can get data when I setup the CSI testing mode (which is 8bit). But not via the parallel interface:

  • I get no end of frame interrupts
  • I get no data
  • IDMAC channel is never busy (opposing to CSI testing mode)

 

Can somebody see anything wrong in the above? Or maybe the signals from the FPGA are not correct?

 

/proc/cpuinfo shows:

Hardware : Freescale i.MX6 Quad/DualLite (Device Tree)

The board is APF6 from Armadeus.

 

Thanks.

Outcomes