More GPIO

dedicated to the FPGA topics for all Red Pitaya programmers
Post Reply
hamamaher2020
Posts: 4
Joined: Fri Jan 20, 2023 5:24 pm

More GPIO

Post by hamamaher2020 » Sun Jan 22, 2023 7:49 pm

hello

I need more than 16 GPIO. Therefore, I am trying to use the SPI as GPIO.

In the constraint file (.xdc), I wrote:

set_property IOSTANDARD LVCMOS33 [get_ports SPI1_MOSI]
set_property SLEW FAST [get_ports SPI1_MOSI]
set_property DRIVE 8 [get_ports SPI1_MOSI]
set_property PULLTYPE PULLUP [get_ports SPI1_MOSI]
set_property PACKAGE_PIN E9 [get_ports SPI1_MOSI]

When I try to generate bitstream, I got error in VOIVADO:

[DRC UCIO-1] Unconstrained Logical Port: 1 out of 105 logical ports have no user assigned specific location constraint (LOC). This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all pin locations. This design will fail to generate a bitstream unless all logical ports have a user specified site LOC constraint defined. To allow bitstream creation with unspecified pin locations (not recommended), use this command: set_property SEVERITY {Warning} [get_drc_checks UCIO-1]. NOTE: When using the Vivado Runs infrastructure (e.g. launch_runs Tcl command), add this command to a .tcl file and add that file as a pre-hook for write_bitstream step for the implementation run. Problem ports: SPI1_MOSI[0].


Can you help with that error ?

Thanks

Hamam

hamamaher2020
Posts: 4
Joined: Fri Jan 20, 2023 5:24 pm

Re: More GPIO

Post by hamamaher2020 » Sun Jan 22, 2023 7:53 pm

Also, I have done this step:

I open .xpr project in vivado
I open the block design
double click on Zynq7 Processing system block
I went to Peripheral I/O pins
I unchecked SPI0 and SP1.

User avatar
redpitaya
Site Admin
Posts: 883
Joined: Wed Mar 26, 2014 7:04 pm

Re: More GPIO

Post by redpitaya » Fri Feb 03, 2023 1:54 pm

All the MIO ports can be configured by the user, so you only need to disable the special features attached to certain pins, in your case, this is the SPI line.

In the “systemZxx.tcl” script set the following:

CONFIG.PCW_EN_EMIO_SPI0 {0}
CONFIG.PCW_EN_SPI0 {0}
CONFIG.PCW_SPI0_PERIPHERAL_ENABLE {0}
CONFIG.PCW_EN_EMIO_SPI1 {0}
CONFIG.PCW_EN_SPI1 {0}
CONFIG.PCW_SPI1_PERIPHERAL_ENABLE {0}

And comment the code line:
connect_bd_intf_net -intf_net processing_system7_SPI_0 [get_bd_intf_ports SPI0] [get_bd_intf_pins processing_system7/SPI_0]

The configurable IO pins are available in the PL part, not in the PS, so the constraints in .xdc won’t go through.

The settings of the PL MIO pins can be changed in the block design or registers.
The parameters of these pins in the .tcl script are as follows:

CONFIG.PCW_MIO_10_DIRECTION {inout} \
CONFIG.PCW_MIO_10_IOTYPE {LVCMOS 3.3V} \ CONFIG.PCW_MIO_10_PULLUP {enabled} \ CONFIG.PCW_MIO_10_SLEW {slow} \

hamamaher2020
Posts: 4
Joined: Fri Jan 20, 2023 5:24 pm

Re: More GPIO

Post by hamamaher2020 » Thu Feb 16, 2023 5:23 pm

Thank you very much for your help.

I found the file and I have made the change you mentioned. Now I want to access the MIO pin in the PL: I want to
use the SPI pins as input and output to the PL. Can you help me, please by example or documents?

Post Reply
jadalnie klasyczne ekskluzywne meble wypoczynkowe do salonu ekskluzywne meble tapicerowane ekskluzywne meble do sypialni ekskluzywne meble włoskie

Who is online

Users browsing this forum: No registered users and 5 guests