Hello, I am relatively new to VHDL design, and I bought this board as a first time learning kit. I was mainly interested in the I/O expansion connector for this board. It appears that the connector has both 3.3V and 5V outputs. If I had wanted to interface the board with a PS/2 port for example (which uses 5V logic levels), how can I force the Spartan board to output 5V logic levels and not 3.3V output? I'm not too sure if this is even possible since the FPGA's voltage requirements is only 3.3v. Thanks for your help.
Spartan 3 Starter Kit I/O ports
Started by ●October 5, 2006
Reply by ●October 6, 20062006-10-06
vu_5421 wrote:> Hello, > > I am relatively new to VHDL design, and I bought this board as a first > time learning kit. > > I was mainly interested in the I/O expansion connector for this board. > It appears that the connector has both 3.3V and 5V outputs. If I had > wanted to interface the board with a PS/2 port for example (which uses > 5V logic levels), how can I force the Spartan board to output 5V logic > levels and not 3.3V output? > > I'm not too sure if this is even possible since the FPGA's voltage > requirements is only 3.3v. > > Thanks for your help.I believe the S3 starter kit already has a PS/2 port, but I suppose if you want both a mouse and a keyboard, you would need to add another. As for the voltages, 5V devices can see a 3.3V driver just fine. 3.3V is well above the 2.5V threshold for TTL logic. The trouble is that a 3.3V device can't interface directly with a 5V driver as it is beyond the voltage tolerance of most parts. You can simply use a shottky barrier diode to clamp the voltage at 3.3V, though. A lot of development boards already include some I/O with clamping diodes, but I'm not sure about the S3 starter kit board.
Reply by ●October 7, 20062006-10-07
Radarman, Thanks for the reply. Just wanted to clarify your response:> As for the voltages, 5V devices can see a 3.3V driver just fine. 3.3V > is well above the 2.5V threshold for TTL logic. The trouble is that a > 3.3V device can't interface directly with a 5V driver as it is beyond > the voltage tolerance of most parts.So you are saying even though I can send signals to the computer PS/2 port using 3.3V levels just fine, the signals I receive back will be too high for the Spartan board's components? radarman wrote:> vu_5421 wrote: > > Hello, > > > > I am relatively new to VHDL design, and I bought this board as a first > > time learning kit. > > > > I was mainly interested in the I/O expansion connector for this board. > > It appears that the connector has both 3.3V and 5V outputs. If I had > > wanted to interface the board with a PS/2 port for example (which uses > > 5V logic levels), how can I force the Spartan board to output 5V logic > > levels and not 3.3V output? > > > > I'm not too sure if this is even possible since the FPGA's voltage > > requirements is only 3.3v. > > > > Thanks for your help. > > I believe the S3 starter kit already has a PS/2 port, but I suppose if > you want both a mouse and a keyboard, you would need to add another. > > As for the voltages, 5V devices can see a 3.3V driver just fine. 3.3V > is well above the 2.5V threshold for TTL logic. The trouble is that a > 3.3V device can't interface directly with a 5V driver as it is beyond > the voltage tolerance of most parts. You can simply use a shottky > barrier diode to clamp the voltage at 3.3V, though. A lot of > development boards already include some I/O with clamping diodes, but > I'm not sure about the S3 starter kit board.
Reply by ●October 7, 20062006-10-07
For 5V to 3.3V interfacing: Just use a ~100 ohm series resistor. The S3 has clamp diodes to Vcco and ground, so you are not violating any specifications using the series resistor. http://www.xilinx.com/products/virtex/techtopic/vtt002.pdf applies to Spartan 3, 3E as well. Many 5V TTL drivers do not really drive all the way to 5V, check to see if they are true CMOS output structures (then they do drive to 5V). If they are npn bipolar, or all nmos outputs, then they pull weakly to something less than 5V, and usually can not source more than a few milliamperes into the clamp diodes (and no resistor is needed, at all). Austin
Reply by ●October 7, 20062006-10-07
Austin, Thanks for the comments. I did a search on Xilinx answers database and found this article: http://www.xilinx.com/xlnx/xil_ans_display.jsp?iLanguageID=1&iCountryID=1&getPagePath=19146 Answer Record: 19146 It pretty much reinforces what you had mentioned. Although I am still unsure on the result of the series resistor if the I/O pin was a bidirectional pin. I assume it would work fine for a 5V input signal (from PC PS/2 to Spartan3), but what about outputting the same signal to the PC? The article above quotes: "Spartan-3/-3E I/O can be made 5V-tolerant by using an external series current limiting resistor to limit the current into the upper clamp diode to 10 mA. This makes the input 5V-tolerant, but an I/O configured as an output still cannot drive 5 Volts and the resulting VOH does not meet the input specifications of the 5V device." Btw, it appears they would reccommend a 300ohm series resistor instead of a 100ohm. Thanks all for the help. Austin Lesea wrote:> For 5V to 3.3V interfacing: > > Just use a ~100 ohm series resistor. > > The S3 has clamp diodes to Vcco and ground, so you are not violating any > specifications using the series resistor. > > http://www.xilinx.com/products/virtex/techtopic/vtt002.pdf > > applies to Spartan 3, 3E as well. > > Many 5V TTL drivers do not really drive all the way to 5V, check to see > if they are true CMOS output structures (then they do drive to 5V). If > they are npn bipolar, or all nmos outputs, then they pull weakly to > something less than 5V, and usually can not source more than a few > milliamperes into the clamp diodes (and no resistor is needed, at all). > > Austin
Reply by ●October 7, 20062006-10-07
vu_ I prefer the ~100 ohms.* As for the other direction, previous post already answered that: a 3.3V cmos driver is more than sufficient, as the TTL hi level is 2.4 volts. Austin *The issue is how much current should you inject into the pmos body diode. The answer is that for the entire device, it shall be less than the JEDEC latchup specification of 200 mA, or else you risk activating the parasitic npnp structure, and causing destructive latchup. So, if a bus has 10 pins, that would be 10 X 20 mA (max) for each pin. 3.3v + 0.5v (diode) = 3.8v 5-3.8=1.2v 1.2v/10 mA = 120 ohms (for twenty IOs, all overdriven). If you have more than 20 IOs, then you should have more than 120 ohms. 300 ohms would allow for ~50 IO's, all driven at the same time high, strongly to 5.0 volts...if my math is right. 300 ohms/50=6 ohms. 1.2v/6ohms=200mA. Yes, I think that is exactly right.
Reply by ●October 7, 20062006-10-07
vu_5421 wrote:> "Spartan-3/-3E I/O can be made 5V-tolerant by using an external series > current limiting resistor to limit the current into the upper clamp > diode to 10 mA. This makes the input 5V-tolerant, but an I/O configured > as an output still cannot drive 5 Volts and the resulting VOH does not > meet the input specifications of the 5V device."The VOH might not meet the VIH spec for some 5v logic family, but in the real world it is almost certain to work if the distance isn't too great and the speed not blindingly fast (you resistor is after all mostly working against input capacitance). For a hobby project or experiment, that's likely enough. Otherwise, look at the specs of the actual receiver. Another thing to build confidence - try substituting a vastly larger series resistor. Keep increasing it until you get errors. Compare that value to the 100 or 300 ohms being considered, and you have some rough but practical idea of your margin (ie, if it works with a series resistor of a few K, 300 ohms isn't much to worry about)
Reply by ●October 8, 20062006-10-08
Check the specifications for the PS/2 pins as output and as input. Vih min is the most critical parameter, the lowest voltage that is guaranteed to be recognized as a High logic input level. If it is well below 3.0 V, then you have no problem. If is higher, you ned som level-shifting arrangements. Peter Alfke ========== vu_5421 wrote:> Hello, > > I am relatively new to VHDL design, and I bought this board as a first > time learning kit. > > I was mainly interested in the I/O expansion connector for this board. > It appears that the connector has both 3.3V and 5V outputs. If I had > wanted to interface the board with a PS/2 port for example (which uses > 5V logic levels), how can I force the Spartan board to output 5V logic > levels and not 3.3V output? > > I'm not too sure if this is even possible since the FPGA's voltage > requirements is only 3.3v. > > Thanks for your help.
Reply by ●October 8, 20062006-10-08
The way we do it in our development board products is to use a bus switch to protect the Spartan-3 with pullups to 5V on the keyboard side to ensure we make 5V CMOS levels. Using the bus switch, or a series resistor, is probably better than an active device as some lines are bi-directional using open drain style driving. Controlling an active driver can have a few issues if you are not very careful on these lines. Have a look at our schematics as to what we do. Follow link to our PS2 module on our module page http://www.enterpoint.co.uk/moelbryn/modules/modules.html to access them. Most keyboards etc with PS2 will be happy with TTL level capable of being driven by the Spartan-3 but occasionally we have seen some that need the higher CMOS levels. John Adair Enterpoint Ltd. vu_5421 wrote:> Hello, > > I am relatively new to VHDL design, and I bought this board as a first > time learning kit. > > I was mainly interested in the I/O expansion connector for this board. > It appears that the connector has both 3.3V and 5V outputs. If I had > wanted to interface the board with a PS/2 port for example (which uses > 5V logic levels), how can I force the Spartan board to output 5V logic > levels and not 3.3V output? > > I'm not too sure if this is even possible since the FPGA's voltage > requirements is only 3.3v. > > Thanks for your help.
Reply by ●October 8, 20062006-10-08
I will start implementation later in the week, I'll post my results. Thanks for everyone's help. John Adair wrote:> The way we do it in our development board products is to use a bus > switch to protect the Spartan-3 with pullups to 5V on the keyboard side > to ensure we make 5V CMOS levels. Using the bus switch, or a series > resistor, is probably better than an active device as some lines are > bi-directional using open drain style driving. Controlling an active > driver can have a few issues if you are not very careful on these > lines. Have a look at our schematics as to what we do. Follow link to > our PS2 module on our module page > http://www.enterpoint.co.uk/moelbryn/modules/modules.html to access > them. > > Most keyboards etc with PS2 will be happy with TTL level capable of > being driven by the Spartan-3 but occasionally we have seen some that > need the higher CMOS levels. > > John Adair > Enterpoint Ltd. > > vu_5421 wrote: > > Hello, > > > > I am relatively new to VHDL design, and I bought this board as a first > > time learning kit. > > > > I was mainly interested in the I/O expansion connector for this board. > > It appears that the connector has both 3.3V and 5V outputs. If I had > > wanted to interface the board with a PS/2 port for example (which uses > > 5V logic levels), how can I force the Spartan board to output 5V logic > > levels and not 3.3V output? > > > > I'm not too sure if this is even possible since the FPGA's voltage > > requirements is only 3.3v. > > > > Thanks for your help.






