Jump to content

iyer25

Members
  • Posts

    69
  • Joined

  • Last visited

Posts posted by iyer25

  1. hello all.

    I have been using  zedboard for long now, my question might seem silly but wanted to confirm about it
    https://reference.digilentinc.com/_media/reference/add-ons/fmc-pcam-adapter/fmc_pcam_adapter_sch.pdf
    what is the eeprom address here ?  If i convert 1010GA0GA1 -> its 0x28 but when I check on the petalinux boot image for i2c and eeprom address it is 70 and 50. should the i2c address here be 10100GA0GA1 in the schematic?
    large.580253433_Screenshotfrom2021-06-1716-46-43.png.e632a41682589098151ed3cd61b77f79.png

     

    Also, I have another question for using pcam module. I created the pipeline mipi -> demosaic -> frame_write -> frame_read -> video_out
    on the the pl.dtsi file, we get string name in the mipi ip as
     

    Quote

    xlnx,exdes-board = "ZCU102";

    xlnx,exdes-config = "MIPI_Video_Pipe_Camera_to_Display";

    xlnx,exdes-fmc = "LI-IMX274MIPI-FMC V1.0 Single Sensor";

    As, I use zedboard, fmc and pcam module in the system-user.dtsi file I am overwriting as below
     

    Quote

    xlnx,exdes-board = "zedboard";

    xlnx,exdes-config = "MIPI_Video_Pipe_Camera_to_Display";

    xlnx,exdes-fmc = "ovti,ov5640";

    I just want to confirm if this is good practice. as I have got some trouble in initialising mipi ip. Please any suggestion would be considered.
     

  2. Hello folks, Software v2020.1 Hardware: Zedboard + FMC + PCAM for Port A 

    I am trying to get an example setup running with the MIPI CSI 2 RX subsystem connected to the Video Frame Buffer to read it. 

    See the following diagram large.1763712064_Screenshotfrom2021-05-1318-16-49.png.9d29b8a44f02039672a3c2d44e129c7e.png

     

    As I export the hardware to Vitis to create the device tree files, the pl.dtsi is generated as shown below. It can be seen that in mipi_csi2_rx_subsystem_0 the ports entry is  not created.

    What I would expect are entries like:

    Quote

    csiss_ports: ports {
    #address-cells = <1>;
    #size-cells = <0>;
    csiss_port0: port@0 {
    /* Fill cfa-pattern=rggb for raw data types, other fields video-format and video-width user needs to fill */
    reg = <0>;
    xlnx,cfa-pattern = "rggb";
    xlnx,video-format = <12>;
    xlnx,video-width = <8>;
    csiss_out: endpoint {
    remote-endpoint = <&demosaic_in>;
    };
    };
    csiss_port1: port@1 {
    /* Fill cfa-pattern=rggb for raw data types, other fields video-format,video-width user needs to fill */
    /* User need to add something like remote-endpoint=<&out> under the node csiss_in:endpoint */
    reg = <1>;
    xlnx,cfa-pattern = "rggb";;
    xlnx,video-format = <12>;
    xlnx,video-width = <8>;
    csiss_in: endpoint {
    };
    };
    };
    };


    demosaic_ports: ports {
    #address-cells = <1>;
    #size-cells = <0>;
    demosaic_port0: port@0 {
    /* For cfa-pattern=rggb user needs to fill as per BAYER format */
    reg = <0>;
    xlnx,cfa-pattern = "rggb";
    xlnx,video-width = <8>;
    demosaic_in: endpoint {
    remote-endpoint = <&csiss_out>;

    };

    };

    };

    };

     

    What I have is 

    Quote

    mipi_csi2_rx_subsyst_0: mipi_csi2_rx_subsystem@43c40000 {
                clock-names = "lite_aclk", "dphy_clk_200M", "video_aclk";
                clocks = <&misc_clk_0>, <&misc_clk_1>, <&misc_clk_0>;
                compatible = "xlnx,mipi-csi2-rx-subsystem-5.0";
                interrupt-names = "csirxss_csi_irq";
                interrupt-parent = <&intc>;
                interrupts = <0 29 4>;
                reg = <0x43c40000 0x1000>;
                xlnx,axis-tdata-width = <32>;
                xlnx,cal-mode = "NONE";
                xlnx,clk-io-swap = "false";
                xlnx,clk-lane-io-position = <0x0>;
                xlnx,clk-lp-io-swap = "false";
                xlnx,csi-en-activelanes = "true";
                xlnx,csi-en-crc = "true";
                xlnx,csi-filter-userdatatype = "false";
                xlnx,csi-opt1-regs = "false";
                xlnx,csi-pxl-format = "RAW10";
                xlnx,csi2rx-dbg = <0x0>;
                xlnx,data-lane0-io-position = <0x2>;
                xlnx,data-lane1-io-position = <0x4>;
                xlnx,data-lane2-io-position = <0x6>;
                xlnx,data-lane3-io-position = <0x8>;
                xlnx,dl0-io-swap = "false";
                xlnx,dl0-lp-io-swap = "false";
                xlnx,dl1-io-swap = "false";
                xlnx,dl1-lp-io-swap = "false";
                xlnx,dl2-io-swap = "false";
                xlnx,dl2-lp-io-swap = "false";
                xlnx,dl3-io-swap = "false";
                xlnx,dl3-lp-io-swap = "false";
                xlnx,dphy-lanes = <0x2>;
                xlnx,dphy-mode = "SLAVE";
                xlnx,en-active-lanes ;
                xlnx,en-bg0-pin0 = "false";
                xlnx,en-bg0-pin6 = "false";
                xlnx,en-bg1-pin0 = "false";
                xlnx,en-bg1-pin6 = "false";
                xlnx,en-bg2-pin0 = "false";
                xlnx,en-bg2-pin6 = "false";
                xlnx,en-bg3-pin0 = "false";
                xlnx,en-bg3-pin6 = "false";
                xlnx,en-clk300m = "false";
                xlnx,en-cnts-byte-clk = "false";
                xlnx,en-csi-v2-0 = "false";
                xlnx,en-exdesigns = "false";
                xlnx,en-timeout-regs = "false";
                xlnx,en-vcx = "false";
                xlnx,esc-timeout = <0x6400>;
                xlnx,exdes-board = "ZCU102";
                xlnx,exdes-config = "MIPI_Video_Pipe_Camera_to_Display";
                xlnx,exdes-fmc = "LI-IMX274MIPI-FMC V1.0 Single Sensor";
                xlnx,fifo-rd-en-control = "true";
                xlnx,hs-line-rate = <0x118>;
                xlnx,hs-settle-ns = <0xaa>;
                xlnx,hs-timeout = <0x10005>;
                xlnx,idly-tap = <0x1>;
                xlnx,init = <0x186a0>;
                xlnx,is-7series = "true";
                xlnx,is-versal = "false";
                xlnx,lprx-disable-extport = <0x0>;
                xlnx,max-lanes = <2>;
                xlnx,mipi-slv-int = <0x0>;
                xlnx,ooc-vid-clk = "6.666";
                xlnx,ppc = <1>;
                xlnx,rcve-alt-deskew-seq = "false";
                xlnx,rcve-deskew-seq = "false";
                xlnx,share-idlyctrl = "false";
                xlnx,stretch-line-rate = <0xdac>;
                xlnx,vc = <4>;
                xlnx,vfb ;
            };
            misc_clk_1: misc_clk_1 {
                #clock-cells = <0>;
                clock-frequency = <200000000>;
                compatible = "fixed-clock";
            };
            v_demosaic_0: v_demosaic@43c00000 {
                clock-names = "ap_clk";
                clocks = <&misc_clk_0>;
                compatible = "xlnx,v-demosaic-1.0", "xlnx,v-demosaic";
                interrupt-names = "interrupt";
                interrupt-parent = <&intc>;
                interrupts = <0 30 4>;
                reg = <0x43c00000 0x10000>;
                xlnx,s-axi-ctrl-addr-width = <0x6>;
                xlnx,s-axi-ctrl-data-width = <0x20>;
            };

    What went wrong? however as it is autogenerated and the hardware design will be used later for PetaLinux.

    does anyone has worked with new version mipi core to help me on understanding the issue? 

    Thank you in advance!
     

  3. hello

    Hardware used : zedboard, FMC Pcam5c camera

    version: v2019.1

    Vivado design and device is belowlarge.1763712064_Screenshotfrom2021-05-1318-16-49.png.9d29b8a44f02039672a3c2d44e129c7e.png

    Quote

    /include/ "system-conf.dtsi"
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/media/xilinx-vip.h>

    /{
    xlnk {
    compatible = "xlnx,xlnk-1.0";
    };
    };

    /{

        model = "Zynq Zed Development Board";
        compatible = "xlnx,zynq-zed", "xlnx,zynq-7000";
       
         usb_phy0: phy0@e0002000 {
            compatible = "ulpi-phy";
            #phy-cells = <0>;
            reg = <0xe0002000 0x1000>;
            view-port = <0x0170>;
            drv-vbus;
        };
    };


    &v_tc_0 {
        compatible = "xlnx,bridge-v-tc-6.1";
        xlnx,pixels-per-clock = <1>;
    };


    &usb0 {    
        dr_mode = "host";
        usb-phy = <&usb_phy0>;
    };

    &sdhci0 {
        u-boot,dm-pre-reloc;
    };

    &uart1 {
        u-boot,dm-pre-reloc;
    };

    &qspi {
        u-boot,dm-pre-reloc;
    };


    &flash0 {
        compatible = "micron,m25p80", "s25fl128s", "spi-flash";
    };

    &mipi_csi2_rx_subsyst_0 {
        
        compatible = "xlnx,mipi-csi2-rx-subsystem-4.0", "xlnx,mipi-csi2-rx-subsystem-4.0";        
        reg = <0x43c00000 0x10000>;
        xlnx,max-lanes = <0x02>;
        xlnx,csi-en-activelanes = "true";
        xlnx,vc = <0x4>;
        xlnx,csi-pxl-format = "RAW8";
        xlnx,vfb ;
        xlnx,ppc = <1>;
        xlnx,axis-tdata-width = <32>;

        clock-names = "lite_aclk", "dphy_clk_200M", "video_aclk";
        clocks = <&misc_clk_0>, <&misc_clk_1>, <&misc_clk_0>;
                
            csiss_ports: ports {
            #address-cells = <1>;
            #size-cells = <0>;
            csiss_port0: port@0 {
                reg = <0>;
            xlnx,cfa-pattern = "rggb";
                xlnx,video-format = <12>;
                xlnx,video-width = <8>;
                mipi_csi2_rx_0_to_demosaic_0: endpoint {
                    remote-endpoint = <&demosaic_0_from_mipi_csi2_rx_0>;
                };
            };
            csiss_port1: port@1 {
                reg = <1>;
            xlnx,cfa-pattern = "rggb";
                xlnx,video-format = <12>;
                xlnx,video-width = <8>;
                csiss_in: endpoint {
            data-lanes = <1 2>;
                remote-endpoint = <&ov5640_to_mipi_csi2>;
                };
            };
        };
    };

    &v_demosaic_0 {
        reset-gpios = <&gpio0 57 GPIO_ACTIVE_LOW>;    
        compatible = "xlnx,v-demosaic";  
        reg = <0x43c10000 0x10000>;
        clocks = <&misc_clk_0>;
        xlnx,max-height = <800>;
        xlnx,max-width = <800>;
                
        ports {
            #address-cells = <1>;
            #size-cells = <0>;
            port@0 {
                reg = <0>;
            xlnx,cfa-pattern = "rggb";
                xlnx,video-width = <8>;
                demosaic_0_from_mipi_csi2_rx_0: endpoint {
                    remote-endpoint = <&mipi_csi2_rx_0_to_demosaic_0>;
                };
            };
        port@1 {
                reg = <1>;
            xlnx,cfa-pattern = "rggb";
                xlnx,video-width = <8>;

                demosaic_0_to_fb: endpoint {
                    remote-endpoint = <&vcap_in>;
                };
            };
           
        };
    };

    / {
        misc_clk_a:misc_clk_a {
            #clock-cells = <0>;
            compatible = "fixed-clock";
            clock-frequency = <15000000>;
        };
        cam_reg_1v8: regulator-1v8 {
            compatible = "regulator-fixed";
            regulator-name = "1v8";
            regulator-min-microvolt = <1800000>;
            regulator-max-microvolt = <1800000>;
                    startup-delay-us = <50000>;
            enable-active-high;
        };
        cam_reg_2v8: regulator-1v8 {
            compatible = "regulator-fixed";
            regulator-name = "2v8";
            regulator-min-microvolt = <2800000>;
            regulator-max-microvolt = <2800000>;
            
        };
        cam_reg_1v5: regulator-1v8 {
            compatible = "regulator-fixed";
            regulator-name = "1v5";
            regulator-min-microvolt = <1500000>;
            regulator-max-microvolt = <1500000>;
        };    
     


    };

    &i2c0 {
        clock-frequency = <100000>;
        status = "okay";
        i2c-switch@70{ /* U3 on FMC */
            compatible = "nxp,pca9546";
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <0x70>;
            i2csw_0: i2c@0 { /* cam 1 */
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0>;
                /* I2C0 */
                 };
            i2csw_1: i2c@1 { /* cam 2 */
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <1>;
                /* I2C1 */
                };
            i2csw_2: i2c@2 { /* cam 3*/
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <2>;
                 /* I2C2 */
                };
            i2csw_3: i2c@3 { /* cam 4 */
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <3>;
                /* I2C3 */
                };
        };
    };

    &i2csw_0 {
            ov5640: camera@3c {
            compatible = "ovti,ov5640";
            reg = <0x3c>;
            clocks = <&misc_clk_a >;
            clock-names = "xclk";
            vdddo-supply = <&cam_reg_1v8>;
        vdda-supply = <&cam_reg_2v8>;
        vddd-supply = <&cam_reg_1v5>;
            
            port {
                ov5640_to_mipi_csi2: endpoint {
                    remote-endpoint = <&csiss_in>;
                    clock-lanes = <0>;
                    data-lanes = <1 2>;
                };
            };
        };
    };

    &v_frmbuf_wr_0 {
        compatible = "xlnx,axi-frmbuf-wr-v2.1";    
        reset-gpios = <&gpio0 54 GPIO_ACTIVE_LOW>;
    };

    &v_frmbuf_rd_0 {
        compatible = "xlnx,axi-frmbuf-rd-v2.1";
        reset-gpios = <&gpio0 56 GPIO_ACTIVE_LOW>;
        
    };

    &csiss_in {
        data-lanes = <1 2>;
        remote-endpoint = <&ov5640_to_mipi_csi2>;
    };

    &csiss_port0 {
        xlnx,video-format = <XVIP_VF_YUV_422>;
    };

    &csiss_port1 {
        xlnx,video-format = <XVIP_VF_YUV_422>;
    };

    &amba_pl {
        video_in: video_cap {
            compatible = "xlnx,video";
        
            dmas = <&v_frmbuf_wr_0 0>;
           dma-names = "port0";

           ports {
                #address-cells = <1>;
                #size-cells = <0>;

                 port@0 {
                    reg = <0>;
                    direction = "input";
                    vcap_in: endpoint {
                        remote-endpoint = <&demosaic_0_to_fb>;
                    };
                };            
            };
        };
    };

    error while saving the images

    large.image(1).png.868a2350147bf667a20307684f33a0d4.png

     

    Does anyone know way forward to solve dma failing ?

  4. 5 hours ago, Ionel said:

    @iyer25
    When you install petalinux make sure you install in a directory owned by your user (not root) also run the installer as normal user (not as su)

    If you want to have only one version of petalinux and install in the same directory it be best to remove the previous version and start with a clean directory

    If you have installed multiple versions source only one version per terminal.
    Also you can remove|rename /home/meghuiyer/.PetaLinux/ and let petalinux to recreate the folder

    thank you, I got solution and was solved before.

  5. hello all.

    question is related to petalinux. I recently changed my version to 2020.2 from 2019.1.
    I have message like when I try to create project.

    environment: line 57: /home/meghuiyer/.PetaLinux/.PetaLinux_data: Permission denied
     

    what does this mean? I checked on the user manual as well. Its related to permission 755 and ownership. I have given all the permision.

    does anyone know how to solve it.

    Thanks

     

  6. Hi

    1) I present you the schematic of the FMC Pcam Adapter, here I had a question : why the HS-A-P and HS-A-N are inversed ?
    Actually the Pin 23 of the « MC20901 » is shown as a positive signal but as an output we can see that they provide a negative signal.
    The same for pin 22, normally it will be a negative signals and they put it as a positive signal.
    2) Why the signals of LP[A-D]_LANE1_[PN]_LS, and LP[A-D]_CLK_[PN]_LS are unidirectional ? And why the DIR and OE# of the level translators (IC10 : SN74AVC4T245) are hard-wired like that ? In other word Why the DIR and OE are linked to the ground so the direction of the signals will be from FMC to the Camera like shown in the bleu arrow ? , is that direction is correct ? And what the purpose of having direction of the low power signals from the FMC to the cameras ?

    Screenshot from 2020-12-07 10-18-59.png

    Screenshot from 2020-12-07 10-18-59.png

×
×
  • Create New...