Alternative open collector level translation circuit.

Thread Starter

DJ_AA

Joined Aug 6, 2021
305
Hi

This is my circuit below and would like to see if I can improve the circuit.

I have open collector devices, therefore I have used the following design.

What happens if my external devices are not open collectors e..g 5V pulse, when it's connected to the Input Signal port? Can there be a circuit or even an IC, that would send a signal to my microcontroller regards less of if the signal is an open collector or not?

1672076077696.png

By the way my uC works on 3.3V
 

MrChips

Joined Oct 2, 2009
30,821
I am not quite sure what are your requirements.

If the device output is open collector then you need to provide a load which is usually a pull-up resistor of 1k-100kΩ to a+V supply. If your MCU input expects a voltage no greater than 3.3V then you need to ensure that the signal does not exceed 3.3V.

There are various options, passive using resistors and diodes, and active using transistors, level translators, opto-isolators, etc.
 

Thread Starter

DJ_AA

Joined Aug 6, 2021
305
Have you consider mosfet? 2n7000? What is the reason for two? Inversion?
Doesn't seem like the full story is there!
The reason for 2n3904 is that I have a few full reels of this component and wanted to use them up.

The reason for two of this component was to avoid changing my firmware for one particular sensor device

The aim to keep the design a little flexible so i can input any voltage signal up to 12V and monitor a pulse.
 

Thread Starter

DJ_AA

Joined Aug 6, 2021
305
Put a 10kΩ pull-up resistor from the collector of Q1 to 3.3V.
Oh yes, i was first planning to use internal reistors , but i guess an external one is better

1672077601467.png

Currently incoming signal is open collector and the device is powered with 12V, but how can I modify it so in the future if the signal is not open collected (e.g. 3.3V or 5V) it would not damaged anything.
 
Last edited:

ronsimpson

Joined Oct 7, 2019
3,042
Current from 12V flows through R3 and turns on Q2 all the time. When Input_Signal is at 0V, Q2 is on.
Maybe R3 should go from Base to Ground.
1672078463855.png
 

Ian0

Joined Aug 7, 2020
9,835
If you leave the pull-up resistor on your microcontroller switched on, then it doesn't matter whether the device driving the input is open-collector or it isn't - it will work in both cases.
 
Top