UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor hunly007
Visitor
6,598 Views
Registered: ‎01-26-2015

Transfer data from PL to PS using SPI, I2C or UART on Zynq

Jump to solution

Anyone know? How can I transfer data from PL to PS using standart I/O like I2C, SPI or UART on Zynq. I am finding many tutorial but I did not found the example about hardware design in Vivado. I am using Microzed Board right now. Please give me some ideas about HW design. 

0 Kudos
1 Solution

Accepted Solutions
Scholar austin
Scholar
9,489 Views
Registered: ‎02-27-2008

Re: Transfer data from PL to PS using SPI, I2C or UART on Zynq

Jump to solution

h,

 

Why?

 

Transfers from/to PL and PS are best supported by the GPIO pins dedicated to that task, the HP AXI buses, the lowers speed GP AXI bus, or the cache coherent co-processor bus.

 

I suppose you may place a uart in the PL side, and connect it to a uart in the ps side using the EMIO pins internally,  or looping it out and back in again, but that seems inefficient to me.

Austin Lesea
Principal Engineer
Xilinx San Jose
0 Kudos
9 Replies
Scholar austin
Scholar
9,490 Views
Registered: ‎02-27-2008

Re: Transfer data from PL to PS using SPI, I2C or UART on Zynq

Jump to solution

h,

 

Why?

 

Transfers from/to PL and PS are best supported by the GPIO pins dedicated to that task, the HP AXI buses, the lowers speed GP AXI bus, or the cache coherent co-processor bus.

 

I suppose you may place a uart in the PL side, and connect it to a uart in the ps side using the EMIO pins internally,  or looping it out and back in again, but that seems inefficient to me.

Austin Lesea
Principal Engineer
Xilinx San Jose
0 Kudos
Visitor hunly007
Visitor
6,580 Views
Registered: ‎01-26-2015

Re: Transfer data from PL to PS using SPI, I2C or UART on Zynq

Jump to solution

Thanks Moderator

 

But it is posible that I can transfer data from PL to PS by using EMIO such as SPI, I2C or UART? I am not sure about this. I have used AXI GPIO and I can send some of data from PL to PS. That data handled by Kernel Module and then send to Userspace. Now I would like to do the same way by using SPI, I2C or UART and I am not sure it is possible or not. I tried to find the example from any websites but I didn't get it. Could you tell me which IP Core that I can use to interface between PL to PS by using SPI, I2C or UART?

 

Thanks 

0 Kudos
Scholar austin
Scholar
6,567 Views
Registered: ‎02-27-2008

Re: Transfer data from PL to PS using SPI, I2C or UART on Zynq

Jump to solution

h,

 

Yes, it is possible.

 

There are I2C, UART IP cores one may place in the PL just like an AXI core for the HP or GP buses.


Connecting it to the PS may be interesting, as I do not know how capable the EMIO programming is (do you need to use an external IO, or can you connect them internally?)..

 

 

Austin Lesea
Principal Engineer
Xilinx San Jose
0 Kudos
Teacher muzaffer
Teacher
6,563 Views
Registered: ‎03-31-2012

Re: Transfer data from PL to PS using SPI, I2C or UART on Zynq

Jump to solution
EMIO is just wires into PL so they can equally terminate there instead of connecting to external IO pins. This makes it possible to convert the GMII interface to RGMII interface where PL logic modulates the EMIO signals to something which is significantly different in nature. I don't know why anyone would terminate I2C, UART etc in PL (virtualization?) but it's possible.
- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Visitor hunly007
Visitor
6,552 Views
Registered: ‎01-26-2015

Re: Transfer data from PL to PS using SPI, I2C or UART on Zynq

Jump to solution

Hi Moderator,

Yes I would like to connect them internally. And then I would like to generate some data from PL and send it to PS by using those standard I/O port. That mean I would like to send data from PL to PS by using I2C, SPI, or UART port but the data transfer just inside Zynq (PL to PS).

 

 

Thanks 

 

Hunly

0 Kudos
Visitor hunly007
Visitor
6,548 Views
Registered: ‎01-26-2015

Re: Transfer data from PL to PS using SPI, I2C or UART on Zynq

Jump to solution

Please recommand me if anyone know the ways to design this in Vivado. Because I am a Newbie I do not know much about this. Please give me some example.

0 Kudos
Visitor hunly007
Visitor
6,539 Views
Registered: ‎01-26-2015

Re: Transfer data from PL to PS using SPI, I2C or UART on Zynq

Jump to solution

Hi, This is my HW desgin. I am not sure it is work or not. I am using Microzed board and I stuck with constraint file.

design.png

 

MIO.png

 

address.png

 

Best regard, 

 

Hunly

0 Kudos
Visitor belalta4.
Visitor
2,331 Views
Registered: ‎04-18-2018

Re: Transfer data from PL to PS using SPI, I2C or UART on Zynq

Jump to solution

Hello, I am student i have to finish my project soon as soon possible  my project is    to send data from a sensor to a PC via UART in viva do and i use micro zed board 7010 . I have been using zynq processor  and  axi interconnect and axi UART lite . i generated bit stream and there is no error but i have some problem in sdk how can i initialize UART ..

 also after the communication i have to use just  micro blaze without processor  i mean the PL part do i write vhdl code

 

Thank you for your time

 

 

0 Kudos
Moderator
Moderator
2,325 Views
Registered: ‎11-09-2015

Re: Transfer data from PL to PS using SPI, I2C or UART on Zynq

Jump to solution

Hi @belalta4.,

 

Our Community Help has a tip that might help you : Tip: If the message is older than 6-12 months, please post a new message rather than adding to the existing thread. Your inquiry will have a better chance of being picked up by an expert if it is a new topic.

 

https://forums.xilinx.com/t5/help/faqpage/faq-category-id/posting#posting

 

I would suggest you create a new topic on the appropriate board


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos