Solution

Using an open drain buffer like the 74LVC1G07 did the trick. Note that this part only works for inputs with a pull-up resistor. There are other parts from the same lineup that can work with any input.

Problem

I have an ebike computer that has two inputs that accept square wave signals. The range is 0-5V. One of the inputs has no pull-up/down resistors on it. When I hook up a device producing signal, the signal is detected correctly. Both highs and lows are detected correctly. The other input has a built-in pull-up resistor. When I hook the same signal to it, only the high side is detected. Measuring the voltage of the low side, it’s a bit higher than when hooked to the other input and I’m guessing it isn’t crossing the low threshold the computer expects in order to register the low.

Am I right in thinking that the pull-up resistor is increasing the lows?

Is it possible to counteract the internal pull-up resistor by hooking a pull-down resistor to the input?

I’m a software guy with decent soldering skills and minimal knowledge in electronics so please answer like I’m not the brightest electronic bulb on the tree.

Thank you in advance!

Cross-posting my question from StackExchange.

  • lightrushOP
    link
    fedilink
    English
    1
    edit-2
    2 years ago

    Looks like it. I measured the cable and I got .1-.2 Ohms on every pin, ground included. I replaced both the computer and the sensor device in question with new units and the behavior is the same.

    I got an interesting solution proposed in StackExchange - to use a buffer instead of messing with the pull-up. I ordered some parts to try it out.

    Do you have any idea what “open drain” means in the context of buffers?

    • @mattaw
      link
      English
      1
      edit-2
      2 years ago

      Open drain is the same as open collector. They both require an external pull-up resistor to function. There are a couple of uses like level shifting the output down (connect the pull-up R to the lower voltage) and connecting multiple outputs together with no extra circuits as the outputs can’t fight. Look up the I2C bus as that uses open drain to work for more info.