Bus Transceiver Question - Data Flow

Discussion in 'Embedded Systems and Microcontrollers' started by mbxs3, Jan 9, 2019.

  1. mbxs3

    Thread Starter Senior Member

    Oct 14, 2009
    170
    3
    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?
     
  2. dl324

    AAC Fanatic!

    Mar 30, 2015
    8,208
    1,977
    How can you have bidirectional data flow without specifying direction??
     
  3. mbxs3

    Thread Starter Senior Member

    Oct 14, 2009
    170
    3
    Thanks for the constructive response.

    I take it that is a "no"?
     
  4. dl324

    AAC Fanatic!

    Mar 30, 2015
    8,208
    1,977
    That would be correct. Since it's constructed of tri-state buffers, you need to specify which buffers are going to be active.
     
  5. MrChips

    Moderator

    Oct 2, 2009
    18,379
    5,813
    Yes, there is such a device. It is a piece of copper wire.
     
    nsaspook likes this.
  6. mbxs3

    Thread Starter Senior Member

    Oct 14, 2009
    170
    3
    Got ya...I'll just clip the wires before boot and then twist them back after boot.
     
  7. dl324

    AAC Fanatic!

    Mar 30, 2015
    8,208
    1,977
    If I understand what you're saying, you could use a power-on reset/time delay to force the direction at boot time.
     
  8. mbxs3

    Thread Starter Senior Member

    Oct 14, 2009
    170
    3
    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.
     
  9. nsaspook

    AAC Fanatic!

    Aug 27, 2009
    5,624
    6,268
    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: Jan 9, 2019
  10. MrChips

    Moderator

    Oct 2, 2009
    18,379
    5,813
    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.
     
  11. MrChips

    Moderator

    Oct 2, 2009
    18,379
    5,813
    As for your specific situation, I will show you ways to solve your problem.
    You do not need to use SN74LVC245 bus drivers.
     
  12. ErnieM

    AAC Fanatic!

    Apr 24, 2011
    7,977
    1,839
Loading...