amplify digital signal

Discussion in 'Analog & Mixed-Signal Design' started by spittips101, Apr 9, 2018.

  1. spittips101

    Thread Starter New Member

    Apr 9, 2018
    8
    0
    I have a device which runs at 3v and I need to read a UART signal coming out of it using Arduino. To do this I need to increases the voltage of the signal from 3v to between 3.3v and 5v as that is what is required for the Arduino RX pin. How can I amplify this digital signal? I would imagine there is an IC that can do this but I don't know what it would be called.

    Thanks
    -Taylor
     
  2. dl324

    AAC Fanatic!

    Mar 30, 2015
    8,724
    2,107
    Welcome to AAC!

    This bi-directional level shifter circuit works well for low to medium speed signals:
    upload_2018-4-9_14-23-59.png
    Image is from Sparkfun...
     
  3. spittips101

    Thread Starter New Member

    Apr 9, 2018
    8
    0
    Thank you very much for your reply. I will try this and update this post with my results.
     
  4. danadak

    Distinguished Member

    Mar 10, 2018
    3,478
    783
  5. ebp

    Well-Known Member

    Feb 8, 2018
    2,332
    812
    There are all sorts of "level shifter" ICs available for this purpose. For a single signal at moderate speed the discrete device shifters are OK, but if you need to minimize power consumption, minimize delay time (i.e. operate at high speed) or have several signals to shift, the IC devices are better.
     
  6. danadak

    Distinguished Member

    Mar 10, 2018
    3,478
    783
  7. spittips101

    Thread Starter New Member

    Apr 9, 2018
    8
    0
    I have received the BSS138 logic level converter and I am confused about it's functionality. I have LV at 3.3v and HV at 5v, both grounds connected. Then I have nothing connected at the channels, but all 4 channels on low side are reading 3.3v and all channels on high side are at 5v. I thought that a logic high voltage had to be applied to one side's channel to have a corresponding logic high on the other side. Could my chip be faulty or am I just confused? I can't seem to get a logic low on any of the channels.
     
  8. dl324

    AAC Fanatic!

    Mar 30, 2015
    8,724
    2,107
    Isn't that what you're seeing? Source and Drain both have pull-ups, so no input defaults to logic HIGH.
    If you apply a logic LOW to LV1 or HV1, you'll see a logic LOW on the other terminal.
     
  9. spittips101

    Thread Starter New Member

    Apr 9, 2018
    8
    0
    You are absolutely correct. I got it now, thank you for explaining this to me. Much appreciated.
     
  10. dl324

    AAC Fanatic!

    Mar 30, 2015
    8,724
    2,107
    The clever thing is how a LOW is passed from HV to LV.

    When a LOW is being transferred from the LV side to the HV side, the LOW on the LV side turns on the MOSFET. Nothing unusual here.

    When a LOW is being transferred from the HV side to the LV side, the body diode is used to turn the MOSFET on. It does this by forward biasing the body diode which, in turn, causes the MOSFET to turn on because Vgs will now be about 2.6V (3.3V - 0.7V). As long as 2.6V is sufficient to turn the MOSFET on, the body diode is now out of circuit and it's the MOSFET providing the LOW from the HV side. BSS138 have a Vgs (th) of 0.8-1.5V.

    The reason this circuit is only good for low to medium speed is that there is no active pull up.
     
  11. Bordodynov

    Well-Known Member

    May 20, 2015
    2,344
    727
    Here is my bi-directional level translator scheme:
    Translator.png
     
Loading...