Power Electronics Development Center

cancel
Showing results for 
Search instead for 
Did you mean: 

Using LVTTL DIO bidirectionally

I would like to use several of the LVTTL DIO in a bidirectional manner. For the sake of explanation, lets say I want to use 8 lines to interface with an external device that can read/write from/to those lines.

I'm concerned about the case when both the FPGA and the external device try to drive the lines at the same time. How would one go about setting up this system? What electrical, timing and software considerations should be taken into account?

I would like to do this reading and writing consecutively as fast as possible. I guess the code should look something like this, is that right?

LVTTL DIO RW expected correct.png

On the other hand, what would happen in this other case?

LVTTL DIO RW expected problem.png

0 Kudos
Message 1 of 2
(3,502 Views)

Regarding bi-directional I/O, there a few choices here. One approach is to make both devices open collector with a pull up resistor to 3.3 V. This is how I2C works. Another approach is to coordinate the directionality of each device either in software or hardware to avoid the double drive. Yet another option is to insert some protective impedance in series with the signal.

Message 2 of 2
(2,959 Views)