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"?
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.
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?
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))