2 Replies Latest reply on Feb 14, 2020 8:12 AM by amybelle03

    Connecting I2C peripheral to EMIO Bank 13 on MicroZed Z7020

    amybelle03

      I would like to connect the I2C peripheral to EMIO Bank 13 pins on Microzed Z7020 board. All examples seems to leave steps out.

      Has anyone accomplished this and can share the Block Design along with the Constraints?

       

        • Re: Connecting I2C peripheral to EMIO Bank 13 on MicroZed Z7020
          jafoste4

          Check out Tutorial 09 of the Reference Design Section

           

          MicroZed

           

          -Josh

            • Re: Connecting I2C peripheral to EMIO Bank 13 on MicroZed Z7020
              amybelle03

              This was not exactly what I wanted to do but did help me setup my constraints file so thanks for pointing me to this example. I wanted to use the peripheral I2C Hardware and instead of assigning I2C to MIO pins I wanted

              to set it to EMIO and use Bank 13 pins.  It did appear on the processing_system7_0 but I was confused on how to setup the constraints. It appears to have worked but I have not

              tried it on the hardware yet. This is what I ended up doing. I am showing both the AXI_iiC and the Peripheral IIC.

               

              Setting I2C Peripheral to EMIO

              It now shows up on the processing_system7_0

              Here is both I2cs -AXI & the Peripheral routed through the EMIO

               

              Here is the constraints file I ended up with.

              # AXI iic constraints

              set_property IOSTANDARD LVCMOS33 [get_ports iic_rtl_scl_io]

              set_property IOSTANDARD LVCMOS33 [get_ports iic_rtl_sda_io]

              set_property PACKAGE_PIN G14 [get_ports iic_rtl_scl_io]

              set_property PACKAGE_PIN J15 [get_ports iic_rtl_sda_io]

              #Creating SCL CLOCK at 100 Mhz

              create_clock -name IIC_SCL_CLOCK -period 10 [get_ports iic_rtl_scl_io]

              #Input Delays

              set_input_delay -clock IIC_SCL_CLOCK -clock_fall -max 0.0 [get_ports iic_rtl_sda_io]

              set_input_delay -clock IIC_SCL_CLOCK -clock_fall -min 0.0 [get_ports iic_rtl_sda_io]

              #Output Delays

              set_output_delay -clock IIC_SCL_CLOCK -max -1.9 [get_ports iic_rtl_scl_io]

              set_output_delay -clock IIC_SCL_CLOCK -min 0.035 [get_ports iic_rtl_scl_io]

              set_output_delay -clock IIC_SCL_CLOCK -max 0.000 [get_ports iic_rtl_sda_io]

              set_output_delay -clock IIC_SCL_CLOCK -min 0.000 [get_ports iic_rtl_sda_io]

               

              #***************************************************************************

              #Peripheral IIC constraints

              set_property IOSTANDARD LVCMOS33 [get_ports IIC_0_scl_io]

              set_property IOSTANDARD LVCMOS33 [get_ports IIC_0_sda_io]

              set_property PACKAGE_PIN V11 [get_ports IIC_0_scl_io]

              set_property PACKAGE_PIN V10 [get_ports IIC_0_sda_io]

              #Creating SCL CLOCK at 100 Mhz

              create_clock -name IIC_SCL_CLOCK -period 10 [get_ports IIC_0_scl_io]

              #Input Delays

              set_input_delay -clock IIC_SCL_CLOCK -clock_fall -max 0.0 [get_ports IIC_0_sda_io]

              set_input_delay -clock IIC_SCL_CLOCK -clock_fall -min 0.0 [get_ports IIC_0_sda_io]

              #Output Delays

              set_output_delay -clock IIC_SCL_CLOCK -max -1.9 [get_ports IIC_0_scl_io]

              set_output_delay -clock IIC_SCL_CLOCK -min 0.035 [get_ports IIC_0_scl_io]

              set_output_delay -clock IIC_SCL_CLOCK -max 0.000 [get_ports IIC_0_sda_io]

              set_output_delay -clock IIC_SCL_CLOCK -min 0.000 [get_ports IIC_0_sda_io]