Bus Transceiver Question - Data Flow

Thread Starter

mbxs3

Joined Oct 14, 2009
170
I incorporated an SN74LVC245AN bus transceiver into a project I was doing. It's main usage is to isolate some connections I have on a BeagleBone Black during the boot process.

From what I understand in testing this device in my project, depending on the state of the DIR pin, the flow is determined (A to B or B to A).

I am wondering if there is a similar device that allows bidirectional data flow which doesn't have to be controlled by a DIR input?
 

Thread Starter

mbxs3

Joined Oct 14, 2009
170
My issue is the connection is to an arduino ICSP header and is used for flashing the 328p over GPIO. The GPIO connections I have to make are pins that have to be isolated during boot or the BeagleBone will not boot up. After boot, I am free to do use them.

My issue is that the MISO signal is getting suppressed due to the way I have the direction set. I don't understand the protocol or electronics behind it enough to realize if what I am trying to achieve is possible. Even if I could tie the direction signal on the bus transceiver to something that indicated the MISO signal was ready, I feel like it would interfere with the SCK and RESET signals going through the same bus transceiver.

I'd like to say that I can just move my connections and utilize pins that aren't restricted during the boot process, but unfortunately I am utilizing every available GPIO pin on my BeagleBone with some sort of connection.
 

nsaspook

Joined Aug 27, 2009
13,279
The transceiver output-enable (OE low true) input can be used to disconnect the device from the bus. A pull-up resistor should keep the SN74LVC245A device isolated until a OE 'ready' signal goes low.

I don't know the directional protocol for your signals but you might be able to use the spi slave CS pin for that 'ready'.
 
Last edited:

MrChips

Joined Oct 2, 2009
30,810
Got ya...I'll just clip the wires before boot and then twist them back after boot.
You can do that if you choose but I prefer to do it the easy way.

I have two MCU chips with I/O pins wired directly to each other with copper wires. I can send data back and forth without having to clip the wires.

When the MCUs start up on power-on, all the I/O pins are inputs. They don't mind that at all.
Then one MCU says, "I want to send you data". The other MCU acknowledges and starts listening.
There is a bit of "hand-shaking" that takes place and the data transfer is completed.

I suspect that that is how all USB devices operate.
 

MrChips

Joined Oct 2, 2009
30,810
My issue is the connection is to an arduino ICSP header and is used for flashing the 328p over GPIO. The GPIO connections I have to make are pins that have to be isolated during boot or the BeagleBone will not boot up. After boot, I am free to do use them.

My issue is that the MISO signal is getting suppressed due to the way I have the direction set. I don't understand the protocol or electronics behind it enough to realize if what I am trying to achieve is possible. Even if I could tie the direction signal on the bus transceiver to something that indicated the MISO signal was ready, I feel like it would interfere with the SCK and RESET signals going through the same bus transceiver.

I'd like to say that I can just move my connections and utilize pins that aren't restricted during the boot process, but unfortunately I am utilizing every available GPIO pin on my BeagleBone with some sort of connection.
As for your specific situation, I will show you ways to solve your problem.
You do not need to use SN74LVC245 bus drivers.
 
Top