• 0

PmodRS485 on Zybo


For various reasons I need to use RS485 for communication with my Zybo board. PmodRS485 seems to be a perfect add-on module, however, so far I could find only an MPIDE example. In my understanding Xilinx Uart should be the way to go because the Analog Devices chip is supposed to take care of the protocol. Correct me if I am wrong.

Hope someone has such experience and can share it with us.

Thank you!

Link to post
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Hi @Notarobot,

Unfortunately, we have not had time to make an IP core for the PmodRS485. My understanding is the same that you would use the Xilinx uart. Right click on the out of the Uart IP and make external and use the xdc to constrain whats in the wrapper for the UART IP. Then In SDK I would use the MPIDE code form the resource page you mentioned as reference on how to config and use the Pmod. 

thank you,


Link to post
Share on other sites
  • 0


To add to what Jon has already said, I believe you will need to either try to use either the UART16550 IP Core or an AXI GPIO controller along with the basic AXI UART core in order to control the RTS and CTS pins of the PmodRS485. Controlling these pins appears to be required for transmitting and receiving data. Which of the above IP cores you use will depend on whether the RTS and CTS pins need to be switched in the middle of a transfer (I don't believe so, but am not positive). If you need control of the pins during transfer, you should use the UART16550, as it contains equivalents that you could also constrain by making each of the individual ports you need within the interface external, rather than making the entire interface external. Otherwise, making a 2 bit wide, single channel, output only GPIO controller should suffice. I'm not as familiar with the control-from-Zynq option, but something similar to the above should still be feasible.

Hope this helps,


Link to post
Share on other sites
  • 0

Hi @artvvb and @jpeyron

I need to tell that I have experience using rs485 for communication of industrial controllers with equipment. The most important for me is its ability to talk with several clients using two wires only. To my knowledge RTS and CTS pins are needed only for the flow control which is optional.

In my recent research I've found that UART16550 can be used for making rs485 working but only between two controllers. In order to make multiple client communication a signal disabling TX should accerted after the end of each transmission. There is no other obvious way to do it but via GPIO. However, proper timing becomes a problem since this signal is not a part of AXI controlling the uart.

There are some other options but facing a deadline on my project I decided to abandon rs485 and switch to CAN which is supported by Xilinx. I am going to add CAN interface breakout board to one of the Pmod ports. I've used CAN in the past as well and it is even better than rs485 in many respects. I will share results with you, and you might add PmodCAN to your store in the future.

Thank you for your input I appreciate it very much


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now