Need help finding a suitable voltage translator

I have a Xilinx FPGA VC707 board with a Xilinx expansion io card plugged in. I want to connect a mouse (that has a PS2 style converter attached to it to convert from USB).

I have discovered I need to shift the voltage levels from the GPIO pin I connect to in order to communicate with the Mouse.

I found a few products that would help but I am unsure which one I need. The GPIO pins on the FMC-CE expansion card have a Power output pin at 3.3V and a GND pin output. There are 4 IO pins which the datasheet says are at 2.5V for sending/receiving signals.

Since the I/O pins are at 2.5V would the level converter, should I be converting to and from 3.3V <-> 5V or between 2.5V <-> 5V instead. This is unclear.

Would any of the parts from this search link work for sending receiving the signals between the FMC-CE and the Mouse?


Or, would these be more suitable?


Thank You.


The FMC-CE expansion card has voltage translators on it. It expects 2.5V signals from the FPGA and translates these to 3.3V at the PMOD connectors (which you have the PS2 module connected to). See page 7 of the FMC-CE Card User Guide. So these PMOD interface connectors are 3.3V.

The PS2 module that you’re using looks like Digilent’s PMOD PS2. If it is, then this module has pull-up and series resistors installed on it that handle the 3.3V <-> 5V conversion for you.

So you shouldn’t need to do any additional conversion.

Also, just FYI, if you are using HDL code to handle this interface, we have a free IP core and background information on accomplishing this available here: PS/2 Mouse Interface (VHDL)


1 Like

I did observe on measure that the FMC-CE outputs the FPGA voltage non translated. It does have a 3.3V on the power pin of the gpio but the io lines are at FPGA voltage, in my case 1.8V. There are level translators but they are for the LCD module and are separate from the GPIO. In fact LCD is powered at 5V with a step up converter to 5V. Measured voltage on the input to level translator is the 5V from the step up converter. The datasheet and user manual have discrepancies. I created my own level converter using a resistor divider and a pca 9306 from sparkfun. the resistor divider takes my 5v from a power supply and brings the low side to 1.8V. I input that 1.8V to the pca9306 vref1, and use the 5v to vref2.

I finally got the translator to work, by tapping the power from the FPGA board’s USB header, It is directly at 1.8V. This resulted in removal of the resistor divider so that the input to the level translator Vref would be coming from the FPGA’s power supply, separate from the output side of the translator, powered by a 5V dc supply. So the PCA9306 turned out to be the solution to the problem. The pullups on the PS2 pmod might have interfered with the level conversion so I removed it and used direct connection to the mouse PS2 pins as seen on the right of the PMOD BB module in blue.