what are the things to keep in mind when interfacing two digital devices, e.g FPGA with a dual shock controller or CPLD with a PS/2 Mouse, Microcontroller with an FPGA, FPGA with an external RAM.

One thing we need to make sure of is that the voltage levels are compatible for simplex communications. The output voltage of transmitter is compatible with input voltage of reciever. But what about impedances on both sides and board skews? How are things different for duplex communication?

There are different types of logic families and different type of circuits that generate outputs and take inputs with open collector being one of them.

Putting it simply, when interfacing 2 digital circuits, what things besides voltage levels will you need to take into consideration such that the interface does not damage the devices and works correctly.

  • \$\begingroup\$ I think you covered it ... voltage, current and timing. With high-speed interfaces, this would include transmission line effects. As it stands, this question is too broad. Do you have a specific interface problem you're trying to solve? (What's a "dual shock controller"?) \$\endgroup\$
    – Dave Tweed
    Apr 22, 2013 at 14:58
  • \$\begingroup\$ "Dual shock controller" is the playstation joystick device. \$\endgroup\$
    – pjc50
    Apr 22, 2013 at 15:08
  • \$\begingroup\$ "What are things" type questions are too broad for the format of this site, which is for questions which can be specifically answered, rather than those which request an open-ended list. \$\endgroup\$ Apr 22, 2013 at 15:41
  • \$\begingroup\$ I was just making sure that I am not missing something in my knowledge. I did not expect to get -1 for the vote. \$\endgroup\$
    – quantum231
    Apr 22, 2013 at 16:07
  • \$\begingroup\$ Ummmmm, not ask on Electronics SE because a bunch of mean people are trying to feel elitist lately? \$\endgroup\$
    – Krista K
    Sep 1, 2013 at 9:44

1 Answer 1


(Broad question gets a broad answer)

I don't think there's much of a worry about damage provided your voltages and directions are correct and current isn't going where it shouldn't. If you're passing the connection outside a case over some sort of connector you should consider ESD protection.

(I'm going to assume your interface is "short", ie up to a few meters of cable)

Getting digital interface signals to work is mostly a question of speed, noise, termination and timing.

For low speeds, none of the others present a problem. As the speed gets higher, there's a risk of noise transients being mistaken for signal. The edges of the signal itself start to become a problem, requiring consideration of impedance and termination. Termination resistors: are they needed? is a good read, but you could fill several books with a detailed discussion of the subject.

The usual techniques for addressing noise are to either shield the signal carrier (coaxial cable) or twist it with a ground or an inverse image of the signal. On a PCB, keep it suitably spaced from other signals and running over a ground plane. Both of these affect the characteristic impedance. You can rule-of-thumb your way round this by declaring everything to be 50 ohm and finding out from your PCB house what the required rules are for your chosen board and thickness to achieve that.

Timing - relative timing between different signals in a bundle - becomes an issue above a few MHz. Avoiding this issue is one reason why modern computer interfaces are all different flavours of high-speed serial (USB, Firewire, SATA etc).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.