Where is the data collected by the camera

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

Where is the data collected by the camera

657 Views
zhiyuan_song
Contributor II
This is the idmac configuration
void ipu_general_idmac_config()
{
 uint32_t channel = 0;
 /* enable channel 0 */
 ipu_idmac_channel_enable(channel, 0);
 memset((void *)ipu_cpmem_addr(channel), 0, sizeof(ipu_cpmem_t));
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 1, 0, 29, 0x08000000);
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 1, 29, 29, 0);
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 0, 125, 13, 0x0000027f);
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 0, 138, 12, 0x000001df);
    /*setup default pixel format */
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 1, 85, 4, 0x01);
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 0, 46, 22, 0x4b000 / 8);
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 0, 68, 22, 0x4b000 * 3 / 16);
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 1, 102, 14, 640 - 1);
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 1, 128, 14, 640 / 2 - 1);

    /*setup pixel per burst */
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 1, 78, 7, 30);
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 0, 113, 1, 0);
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 1, 58, 20, 0);
    //setup rotate/vf/hf and block mode
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 0, 119, 1, 0);
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 0, 121, 1, 0);
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 0, 120, 1, 0);
    ipu_cpmem_set_field(ipu_cpmem_addr(channel), 0, 117, 2, 0);
    ipu_idmac_channel_mode_sel(channel, 0);
    ipu_idmac_channel_enable1(channel, 1);
}
This is the SMFC configuration:
uint32_t ipu_smfc_fifo_allocate(uint32_t channel, uint32_t map,
                                uint32_t burst_size)
{
    switch (channel) {
    case 0:
        writel(map, 0x2650000);
        writel(burst_size, 0x2650008);
        break;
    case 1:
        writel(map, 0x2650000);
        writel(burst_size, 0x2650008);
        break;
    case 2:
        writel(map, 0x2650000);
        writel(burst_size, 0x2650008);
        break;
    case 3:
        writel(map, 0x2650000);
        writel(burst_size, 0x2650008);
        break;
    default:
        printf("Wrong channel selected!!\n");
        return -1;
    }
    writel(1, 0x2600000);
    return 0;
}
This is the csi configuration:
void ipu_csi_config()
{
 writel((readl(0x2600000) | 1 << 28), 0x2600000);//mipi
 writel(0x1e, 0x2638020);//di
 writel(((0x04 << 24) | (0x00 << 4) | (0x0 << 16) | (0x1 << 11) | (0x0 << 7) | (0x02 << 8)), 0x2630000);
 writel(((0x01df << 16) | (0x027f << 0)), 0x2630004);
 writel((readl(0x2600000) | (1 << 0)), 0x2600000);
}
My development board is imx6q,and configure camera data.640 x 480,15fps;
and I don't use an operating system.
cpmem address:0x02700000.CH23_EBA0 = 0X40000000;
ov5640->csi->smfc->idmac->memory.
So where should the data collected by the camera be stored?
When I look at the in-memory data.I find that memory data varies between 0x2701400 and 0x2701ff0.CH23_EBA0 = 0X40000000 data is constant.So how much memory should I look at?To see the data from the camera.
Labels (1)
0 Kudos
Reply
1 Reply

537 Views
igorpadykov
NXP Employee
NXP Employee

Hi song

for bare metal example one can look at settings in function  ipu_capture_setup():

/*step1: config the csi: idma channel (csi -- mem), smfc, csi */
    memset(&idmac_info, 0, sizeof(ipu_idmac_info_t));
    idmac_info.channel = CSI_TO_MEM_CH0;
    idmac_info.addr0 = csi_mem0;
    idmac_info.addr1 = csi_mem1;
    idmac_info.width = act_width;
    idmac_info.height = act_height;

rt-thread/ipu_common.c at master · RT-Thread/rt-thread · GitHub 

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