UART Setup¶
The ZCU104 hardware has a quad USB-UART transceiver. One UART is dedicated to the onboard JTAG interface. The other three are routed to MPSoC pins to be used as serial ports by CPUs.
The USB-UART interface requires the FTDI VCOM driver, included by default on most platforms. Refer to the FT4232HL USB UART Interface section of Xilinx UG1267 for more details on the UART hardware.
UART Interfaces¶
The Mango 802.11 PetaLinux reference project for ZCU104 uses PSU UART0 (FT4232 channel B) for the Linux console and PSU UART1 (FT4232 channel C) for the RPU stdout
. Both UARTs are configured for 115200bps.
Identifying UART Devices¶
Many operating systems already include the required FTDI Virtual COM Port (VCP) driver. If your PC does not recognize the USB-UART interfaces after connecting the USB cable you may need to install the driver directly. FTDI provides drivers for most operating systems.
On Windows the USB-UART interfaces will enumerate as three “USB Serial Port” devices assigned arbitrary COMx
port labels. These COMx
port labels are used to open a terminal on the serial port.
On Linux the USB-UART interfaces enumerate as four /dev/ttyUSBx
devices. Typically the lowest numbered ttyUSBx
device is the JTAG interface and should not be used with a terminal. The next two ttyUSBx
devices are typically channels A/B of the FT4232 transceiver (PSU UART0/UART1).
On Linux the USB-UART interfaces enumerate as three devices in /dev/serial/by-id
with device names:
where NNNNN
will be a serial number unique to each ZCU104 board.
The Mango reference design assigns UARTs as:
if01-port0
: APU boot console and Linux consoleif01-port1
: RPU output, showsstdout
for both R5 CPUsif01-port2
: Not used
Terminal Configuration¶
Any serial terminal can be used with the USB-UART interfaces. Putty is a good option on Windows, picocom
is good on Linux.
The 802.11 FPGA Design configures the PS UART peripherals for:
Param | Value |
---|---|
Speed | 115200 bps |
Data bits | 8 |
Stop bits | 1 |
Parity | None |
Flow Control | XON/XOFF |
We also recommend enabling “Implicit CR in every LF” in the terminal settings. The Mango team uses a split-pane via tmux
to show both UART streams via the picocom
options below: