Question about bi-directional pin from Roth reference

I now am studying the tri-state buffer from the reference "Fundamental of Logic Design", 6th edition, By: C. H. Roth and L. L. Kinney. I found that circuit of a bi-directional pin as application of tri-state buffer:

With this text descriping it

Integrated circuits are often designed using bi-directional pins for input and output. Bi-directional means that the same pin can be used as an input pin and as an output pin, but not both at the same time. To accomplish this, the circuit output is connected to the pin through a three-state buffer, as shown in Figure 9-12.When the buffer is enabled, the pin is driven with the output signal.When the buffer is disabled, an external source can drive the input pin.

1. In case of EN=1, the output of the ciruit will be put in the bi-directional bin and also looped again into the circuit. I think there should be some other tri-state buffer in the lower signal to prevent this. Is this right?
2. In case of EN=1, what if there is some logic value is put on the bi-directional pin as an input from external source? This will result in unknown state I think. So I think there should be another tri-state buffer on the line between the join and the pin. Is this right?

I think there should be some other tri-state buffer in the lower signal to prevent this. Is this right?

No. Simple as that; there's no reason not to sense your own voltage. It's not like input circuitry had a low impedance!

In case of EN=1, what if there is some logic value is put on the bi-directionl pin as an input from external source?

Two possible things:

• External voltage = voltage produced by the buffer: No voltage difference, no current flows, nothing happens
• External voltage $$\\ne\$$ voltage produced by the buffer: you've got your external source trying to work against your internal source. The resulting voltage will be defined by their source impedances (simple voltage divider!). The resulting current can be very high, and potentially damaging to either side

This will result in unknown state I think.

No, not really.

So I think there should be another tri-state buffer on the line between the join and the pin. Is this right?

No. How would that help or even work.

• Good answer. The question is hard to interpret, but I think when the OP says "unknown state" I think they meant "unknown logic level". An unknown or invalid logic level would be consistent with your answer, I think. Mar 2 '19 at 13:49
• Thank you for your answer. I am studying this topic from an academic point of view, not for implementation purposes. That's why it seems a strange question. And yes you are right I mean unknown logic level, not logic 0 not logic 1 Mar 17 '19 at 22:09