Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
19 years ago

UART max speed

SOPC builder allows for "other" baud rate entries than the standard, with only throwing up a Warning.

I need an isolated link between 2 Nios CPUs, and among other solutions, I'm looking at a 10Mbps isolated /RS-485 transceiver. The SOPC UART will allow me to set the baud rate this fast - but are there internal logic restrictions/constraints that anyone can think of?

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    In Quartus II v6.0 Handbook -> embedded peripherals.

    You could find this for UART baudrate configuration :

    divisor=int((clok freq/baudrate)+0.5)

    baudrate = clock freq / (divisor +1)

    You have to determine max clock freq of your design to determine max baud rate

    How to modify baudrate :

    -------------------------------

    According to your clock freq and the baudrate you want, write into the divisor :

    IOWR_ALTERA_AVALON_UART_DIVISOR(uart_base_addr, new_divisor);

    don't forget to allow modification of divisor in SOPC Builder

    you can also read your divisor with IORD_ALTERA_AVALON_UART_DIVISOR..

    You don't need to open a file descriptor on the uart IP device

    example :

    clock freq : 50Mhz

    baudrate : 921600 bds

    divisor = 54
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Thanks for the reply, I was actually aware of the ability to divide the system clock down for derrivation of the baud rate, but I guess I am leary of whether I could really run Mbps with the uart in terms of processor performance. At 10Mbps, that would mean a byte interrupt every usec or so. Do you know if the processor can handle that? And I know it depends on what all else it is doing, what other interrupts it has to service, but in general?