0
\$\begingroup\$

My FPGA Spartan 3E supports 50 Mhz clock via ocillators. Now I am using RS-232 cable connection to send output bits serially into my computer system using HyperTerminal/RealTerm.

However the baud rates the COM ports/RealTerm support are different. I am using a male to female connector cable.

How do I synchronize them both. I have tried including a FIFO inside my design with one end connected to my Design output (write) and read end connected to the RS-232 Transmitter at the Transmission speed clock, using a clock divider. But that doesn't make the synchronization happen as expected.

\$\endgroup\$
11
  • \$\begingroup\$ RS-232 is an asynchronous protocol, so you don't synchronize anything. The protocol is self-synchronizing. The only thing that you need is to generate the proper baud rate out of your 50MHz, which should be extremely easy since this frequency is much higher than any standard BR, so even an inexact frequency division should suffice. (I am assuming you have an UART implemented on your FPGA...) \$\endgroup\$
    – Eugene Sh.
    Aug 4, 2017 at 18:41
  • \$\begingroup\$ Yes I do have an UART implemented in the design. \$\endgroup\$ Aug 4, 2017 at 18:42
  • \$\begingroup\$ Is there any other way to generate proper baud rate from 50 MHz other than clock divider or FIFO? \$\endgroup\$ Aug 4, 2017 at 18:43
  • \$\begingroup\$ Are you looking for the hard way? \$\endgroup\$
    – Eugene Sh.
    Aug 4, 2017 at 18:45
  • 1

1 Answer 1

1
\$\begingroup\$

There is a module named 'kcuart' from xilinx. This can be downloaded from their website and it's free. It has a ready code that you can instantiate in your design for desired baud rates.

\$\endgroup\$
2
  • \$\begingroup\$ Is it a configurable UART? \$\endgroup\$ Aug 11, 2017 at 6:35
  • \$\begingroup\$ Yes, it is configurable. \$\endgroup\$
    – samjay
    Aug 11, 2017 at 6:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.