• 0
plu

Second serial port on Zybo-Z7-10

Question

Posted (edited)

I'm using the Zybo-Z7-10, running Petalinux.

Is there any easy way to implement a separate serial port on the board, in addition to the base one used for the Linux console shell?

The base serial port is implemented with a FT2232 USB-serial device in the FPGA, so presumably instantiating another one of these IPs on one of the other (full-size) USB ports would get a second serial port, but that's work on the FPGA side.

Is it possible to use an external USB-serial device hooked onto one of the Zybo USB ports?  This would require the proper Linux/OS drivers to support such a dongle.

Any other ways?

Thanks for suggestions.

Edited by plu

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

In order to get the needed "separate serial port on the board" you could use the Pmod USB-UART.

In order to use an USB-UART device you should implement an UART communication on the corresponding pins (see the connector pinout found in Pmod USBUART Reference Manual).

In order to implement the linux UART communication, please take a look on the UART linux example provided by Digilent. It uses the AXI UartLite IP in the Vivado project. This is implemented on Zybo Z7-20 board but it will be easy for you to port in on Zybo Z7-10 board.  

Share this post


Link to post
Share on other sites
  • 0
On 4/9/2020 at 11:31 AM, plu said:

Is there any easy way to implement a separate serial port on the board, in addition to the base one used for the Linux console shell?

There are a number of ways to do this.

My favorite way to ass UARTs to a design is to find a 2 spare GPIO pins and connect them to a TTL USB UART cable or breakout board. You don't need to tie up a whole PMOD connector for this. There are a number of cheap possibilities from Adafruit or Sparkfun. FTDI also sells a cable with in embedded device to do this.

Since you are using a ZYNQ you have the option of connecting the TTL USB UART Tx and Rx pins to the unused PS UART and can seemlessly use the second UART with the same code as the first one. This is accomplished by enabling the second UART in the ZYNQ7 board design IP block and providing location constraints for the external pins. I've done this on other ZYNQ based FPGA boards numerous times. You can also use the TTL USB UART as an interface that's local to your PL design and hidden from your PS if that makes sense for your needs.

If you don't mind using a whole PMOD connector to use just two pins than a PMOD USB-UART. I strongly suggest that you take a pass on using AXI IP to add a UART and just mux the MIO pins through the PL as I've mentioned above. If you are really not sure about what you are doing then perhaps the add-on PMOD module makes sense from a convenience point of view.

These TTL USB UARTs are indispensable for debugging and can be used on any FPGA platform having a PMOD connector or not. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now