We are struggling with UART issue,
I hope someone have any idea how to handle it.
We have several UARTs on our device, after having this issue we updated the IP from simple UART IP to FIFOed avalon uart.
This was quite helpful and most of UARTs are now fully functional in 921600 without any byte lost.
Yet, surprisingly, there are still some UARTs who lose bytes on reading.
Checking the fifo status, we see that the FIFO never get full.
Is there any idea how to handle or debug this issue ?
I am recommending you to check the following example designs for your reference, these examples are open and will help you in this issue:
Thanks for the links, it help understanding some stuff.
I see that the 1st link is using UART RS-232 IP, which has only 1 sample , i.e. no FIFO (!)
It also use baud 115200 in the software example.
From this I wander if this IP can ever be functional in high rates of 921600 bytes. Probably, the answer is - No...
I did find a non-Intel IP which has FIFO and is functional (after fixing bugs in the IP........)
Yet, I wander how it is that Intel does not have any functional FIFO UART.
The shared design examples show you how to use Intel's IP. I understand that there are third parties IPs give a good FIFOs. You are free to use them and Intel still gives you some useful IPs to help you.
Please check the following page to understand the required clock frequency to get the desired Baud rate you are aiming.
Thanks, yes it works fine now.
There was a bug in latest (13.2) release in which the header file set size of fifo as 64, although we needed - and configured - a larger fifo in qsys.
On increasing this size, "bytes skiped issue" been solved.