Sunday, April 20, 2014

ZYBO and onboard USB/UART interface

Xilinx's XUP FPGA Design Flow, Lab 3

A moderately frustrating thing about Xilinx's tutorial "FPGA Design Flow" is that it requires a USB to UART interface directly connected to the FPGA fabric. Had I known this when I ordered the ZYBO, I would have also gotten the appropriate peripheral module from digilent, but as it is I find I am unwilling to pay the over $10 shipping for a $20 module which must be only a handful of ounces in weight. Luckily, I was able to get my hands on a spare bluetooth module with a Pmod-like interface - easily modifiable to work with digilent's pmod specification.

An alternative to the pmod would be to pass the on-board USB/UART through the PS to the PL. And the lab manual states right at the beginning that "You will use on-board UART of the ZYBO board to validate your design." But in reality, this requires creating a Zynq boot image - a simple process, I'm sure, but that's for the next of Xilinx's XUP tutorials on Embedded Systems. So, for now, I'll try to work with this bluetooth module.

Update

A friend loaned me a USB to UART module that ended up working just fine! It was powered on the USB side so I only needed to connect the ground and RXD pins on the receiver shown here:
hand-wired USB-UART module. The module's GND and TXD are
connected to the ZYBO's GND and RXD receiving slots
This module probably set my friend back less than $5 US and I was able to finish lab #3 in the FPGA Design Flow lessons from Xilinx's XUP.

4 comments:

  1. Hello,

    How did you configure the Pmod connector to receive and send the signal from and to the USB or Bluetooth module?

    Can it be done from software through the SDK does it need to be configured from the Vivado/EDK design.

    Thank you very much.

    ReplyDelete
  2. The pmod connectors on the board are attached to specific pins directly on the FPGA. I had to read the ZYBO manual carefully to figure out exactly which ones to use, but it wasn't hard. At first, I had the power voltage connected to the ZYBO but the USB adapter got very hot and I realized it was actually powered already on the USB side. The constraints file had this in it for reference:

    # RXD UART using PmodUSBUART Pin 3 on JE PMOD
    set_property PACKAGE_PIN J15 [get_ports rxd_pin]
    set_property IOSTANDARD LVCMOS33 [get_ports rxd_pin]

    ReplyDelete
  3. Thank you very much.

    From Vivado or EDK (XPS) you can modify the pins the UART uses from a GUI, I was also able to change the transmission speed.

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete