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!

AR# 57384

14.6 SDK, UART 16550 - UART in interrupt mode does not register transactions of multiples of FIFO threshold

Description

If I use the UART16550 IP in interrupt mode, the handler does not register transactions where the size is not a multiple of the FIFO threshold value.

For example, in a setup where the FIFO threshold is set to 8 and the buffer size is set to 15 bytes, all transactions < buffer size will result in a TimeOut handler being called, except for multiples of the FIFO threshold. 

This results in lost data.

How can this be addressed?

Solution

To fix this issue, copy the attached file into the driver src folder in the EDK install directory:

C:\Xilinx\14.6\ISE_DS\EDK\sw\XilinxProcessorIPLib\drivers\uartns550_v2_01_a\src

Note:

Be aware of the following when using this fix:

the TimeOut callback will be called when there is data received that is equal to the threshold (even if there is further data coming)

A receive callback will then be received when all data requested has come through. 

Attachments

Associated Attachments

Name File Size File Type
xuartns550_intr.c 15 KB C
AR# 57384
Date Created 09/06/2013
Last Updated 08/06/2014
Status Active
Type General Article
Devices
  • FPGA Device Families
Tools
  • EDK - 14.6
  • Vivado Design Suite - 2013.2
IP
  • AXI UART 16550