FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
5990 Discussions

How to create Uart (RS-232) of 2 000 000 bps in SOPC Builder?

Altera_Forum
Honored Contributor II
1,254 Views

The question is: We use RS-232 of 2 000 000 bps, and due to the fact that speed never changes, there is no necessity in software initialization. Is there any possibility to create UART of 2 000 000 bps without software initialization "Fixed baud rate"?

0 Kudos
5 Replies
Altera_Forum
Honored Contributor II
93 Views

sorry,i don't know.

Altera_Forum
Honored Contributor II
93 Views

Sure.  

If you use the standard UART module supplied with sopc builder, you have both choices in component properties: fixed baud rate (defined in sopc builder) or programmable by means of a divisor register. 

If you use another custom UART core, you still have a divisor/baudrate register: simply set it to the fixed value you require.
Altera_Forum
Honored Contributor II
93 Views

Hi, 

I got similar question about how to make High-Speed Inter-Chip through I2C, 

i.e. 480Mb as USB2.0? 

Is there any IP or test board available? 

Thanks,:cool:
Altera_Forum
Honored Contributor II
93 Views

Hi, Cris72! I know that UART speed can be adjusted by software and hardware means. My question was: can UART be adjusted by hardware (with the set "Fixed baud rate") for speed of 2 000 000 bps?

Altera_Forum
Honored Contributor II
93 Views

The standard UART core available with sopc builder, set the baudrate through a divisor register according to this equation: 

baudrate = clock_frequency / (divisor + 1) 

So, if baudrate is an exact multiple of clock_frequency, you don't have any problem. This is relevant only for low divisor values, while for high divisor/low baudrate a few lost decimals don't matter. 

Also consider that, although you can virtually use divisor=1 to drive uart at half clock speed, this is usually not recommended since the receiver needs to synchronize to incoming data (remember the A in UART means Asynchronous). Other UART cores usually derive an internal sample clock 16x the system clock, so they require baudrate = clock_frequency / (16 * (divisor + 1))
Reply