Jump to content
  • 0

FMC-CE (Retired board) Loopback Configuration from GPIO Pin


VaheJ

Question

I have a VC707 FPGA and a FMC-CE GPIO Expansion Card.  I want to loop back two GPIO pins to two other GPIO pins respectively to communicate inout signals between two embedded FPGA modules implemented so I can observe module behavior.  With out loopback I have a real external peripheral connected.  It does not initialize leading me to suspect an issue in the controlling module.  So I came up with an idea to emulate the mouse inside the FPGA and using the GPIO card I thought I could send the two respective signals back into the FPGA between the controller module and my created emulation module of the mouse.  Is this approach safe?  Do I just connect the pins from the header or do I need to use series resistors to safely loopback?   Please advise.

Edited by VaheJ
Revised omitted word to be included
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Hi @VaheJ,

I believe I understand what you are asking about. If I understand correctly, you are effectively wanting to connect one pin from Pmod port JA to a different pin on Pmod port JB via a breadboard wire (with both pins then connected to the different systems on the FPGA)?

If so, then yes you can safely do this as there are already series resistors integrated on each of the Pmod lines as noted in it's schematic available on it's Resource Center here: https://digilent.com/reference/fmc_ce_card/fmc_ce_card#documentation_from_xilinx. Naturally you will need to ensure that one pin is configured as an output and the other as an input (rather than two outputs to avoid drive conflicts).

Let me know if you have any questions.

Thanks,
JColvin

Link to comment
Share on other sites

  • 0

Thank You for the information.  If they are supposed to be inout (bidirectional) as in the case of a real mouse.  How do I preserve the bidirectional flow instead of making one just input or output as opposed to inout.  Is this possible still?   My two signals are a clock and data which are supposed to be controlled by tristates on each side ( each side is its own system - that I have on my FPGA).    If I make one input and one output the inout nature will change.

Link to comment
Share on other sites

  • 0

One inout and one input should be fine. Both could also be inouts, bbut then you need to be careful with the FPGA design to make sure that tristates for both sides of a shorted wire are not outputting different logic levels simultaneously. This is pretty much the way I2C works, it just specifies under which conditions either side of a connection has control over the wire.

Thanks,

Arthur

Link to comment
Share on other sites

  • 0

Thank you for the updated support answer.  I appreciate it.  I have one more question if I can ask, but its related to my original question.  It's about adding the actual mouse to the FMC-CE as I an externally powered PS2 PMOD connected to the 6 pin gpio on the FMC-CE.  It is set to 5V because I was not getting back responses from the mouse at all.  The mouse is a USB trackball and under this voltage it inconsistently responds with burst packets when I send commands.   Do I need an appropriate bidirectional level shifter at all to properly convert the 3.3V from the GPIO FMC-CE to the 5V pullup on the PS2 PMOD?

Link to comment
Share on other sites

  • 0

Hi @VaheJ,

I would definitely consider using a levelshifter; there are pull-up resistors on the various PS/2 data lines which will be pulling the 3.3 V signals to the external 5 V you are supplying, so there is going to be a voltage translation problem, either at the voltage translator mentioned in Section 9 of the User Guide which has an upper translation of 3.3 V as per its datasheet, on the FPGA itself (if there is no such voltage translator like the schematic indicates so the pins are instead operating at 2.5 V), or if the mouse you are using operates with 5 V CMOS logic which has a minimum logic level high of 3.5 V.

If you have a DMM / oscilloscope you could debug which potential problem might be affecting your system; I don't have this particular FMC card to do any debugging directly myself.

Thanks,
JColvin

Link to comment
Share on other sites

  • 0

I confirmed that the GPIO has no level shifting that occurs to output.  It is directly the FMC voltage (the FPGA output level 1.8V in my case).    The PS2-PMOD resistor pullups would interfere with level shifting so I removed it and directly wired it to the PS2 din connector on the mouse adapter.  I used the VC707's 1.8V source on  J14 header left pin located right under the Board Power Port.   I was originally bringing down the voltage down from 5V using a resistor divider on my PCA9306 level translator, but I removed that once I had established the reference voltage on the low side of the PCA9306.   Now the two sides, 1.8V and 5V are from separate sources.   Measurement on my oscilloscope confirmed that the level was properly translated to output at 5V and back to input at 1.8V mouse for the FPGA.  See the final setup.

IMG_3930.thumb.jpg.1675b56c92e0df788f9f04f41b3ee3b6.jpg
IMG_3931.thumb.jpg.df6e2912729f293b09bd70d8ecb10249.jpg

Link to comment
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
×
×
  • Create New...