Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21609 Discussions

Interfacing STRATIX 3 FPGA with RS485 and RS232.

Altera_Forum
Honored Contributor II
4,567 Views

Hello sir, 

 

I am designing a hardware multipurpose board using STRATIX 3 FPGA(EP3SL340F1517C3N). I have never worked on Fpga practically. So kindly let me know how to interface this Fpga with RS485 AND RS232. Can FPGA be directly connected to RS485 or any intermediate block is required? Kindly reply in detail. 

 

Thank you
0 Kudos
9 Replies
Altera_Forum
Honored Contributor II
3,078 Views

You will need transceivers that can translate the RS232 or RS485 voltage levels to I/O standards compatible with your FPGA. You can find lots of transceivers compatible with 3.3V I/O for example. 

 

Linear rs232 (http://www.linear.com/products/rs232%7crs562_transceivers), rs485 (http://www.linear.com/products/rs485%7c422_transceivers

Maxim rs232 (http://para.maximintegrated.com/en/search.mvp?fam=rs232&tree=master) , rs485 (http://para.maximintegrated.com/en/search.mvp?fam=rs485&tree=master)
0 Kudos
Altera_Forum
Honored Contributor II
3,078 Views

Thanks for your reply sir. I have the idea of using MAX485 IC in order to connect RS485 to FPGA. Is it necessary to short the ~RE(Receiver Output Enable) and DE(Driver Output Enable) and connect a resistor to enable the MAX485? Along with Tx,Rx pins will i have to connect RE and DE pins to FPGA? Also I'm concerned about the voltage levels. Will I have to use a level converter in between MAX485 and FPGA? Can you please help me out with this?

0 Kudos
Altera_Forum
Honored Contributor II
3,078 Views

You can either short the ~RE and DE to ground and vcc respectively if you want the transceiver to be always enabled, or connect those pins to the FPGA if you want to be able to turn the transceiver on and off. 

If you plan to use the MAX485 then you will need a level converter between the MAX485 and the FPGA, as the MAX requires a 5V supply but the FPGA can only have input/outputs at up to 3.3V. I would suggest to use the MAX3485 instead, that can operate at 3.3V and can be directly connected to the FPGA without level translation.
0 Kudos
Altera_Forum
Honored Contributor II
3,078 Views

Thanks. 

 

I'm always messed up with serial and parallel communication. RS485 is serial communication while my FPGA needs parallel inputs. Then, is it necessary to perform serial to parallel conversion? Can the conversion be done by placing an additional block in between MAX3485 and FPGA? Or can this be done by VHDL coding itself?(I'm writing a VHDL code to interface all the components on my board with FPGA) Will this make my code lengthy? Please help!
0 Kudos
Altera_Forum
Honored Contributor II
3,078 Views

Yes you need do to serial to parallel conversion. Usually it is done inside the FPGA, as it doesn't use a lot of resources and decreases the number of FPGA pins you require. 

You can either write your own conversion, using a shift register, or use a ready made UART from SOPC Builder or QSys.
0 Kudos
Altera_Forum
Honored Contributor II
3,077 Views

Thanks once again. 

 

 

I am using an ADC(ADS6445) in my design to digitize the ECG signal input and feed that to FPGA. Does the ADC require pre-amplifier and an ADC driver blocks? 

Please help!
0 Kudos
Altera_Forum
Honored Contributor II
3,077 Views

I have no experience with ECG signals, but yes, usually you need some analog blocks to amplify and adjust your analog signals before feeding them to an ADC.

0 Kudos
Altera_Forum
Honored Contributor II
3,077 Views

Thanks! 

 

In case of RS485, you suggested me to use MAX3485 instead of MAX485 to solve the voltage level problem. In order to connect FPGA to my PC through RS232, I am supposed to use MAX232. But this may again create voltage problems I suppose!? Will I have to search for another device in MAX series to make this easier?
0 Kudos
Altera_Forum
Honored Contributor II
3,078 Views

Yes you'll have the same problems, as the MAX232 is limited to 5V. You could for example use the MAX3232E instead, which can operate at 3.3V.

0 Kudos
Reply