I'm studying the a circuit that is using a driver ULN2803 datashet. The driver is needed for external loads as LEDs when a pin is writing. The situation that I would like to talk about is when the pin is reading. As the GPIO interface is MCP23s17 datasheet, when pin is an input, pin gets Z state.
To explain the enterely application could be a mess, I will try focusing the description on the doubt about ULN2803 behavior within the circuit.
I'm new using it. I have used it for inductive loads, as relays, application once before. I thought I understood the most of this device. But after working with this circuit I realize that I miss some important things.
simulate this circuit – Schematic created using CircuitLab
I think the most important involved circuit is inside the green box.
Maybe the circuit is not functional for what I need. But I was analyizing it over the paper and set on my breadboard and I don't get it of all. So I took some values. I'm studying the value at M node when the output driver pin 'OUT_C' (OUT_C = IN_1) is not connected, so Z.
The following values can be seen:
- V at (driver output) OutC = VCE = IN_1 = 2.4V
- V at M node = 1.5V (driver input)
- V at Diode IN4004 Anode = 2.9V
What I did not understand was how 1.4~1.5V were there (driver input). I actually need input driver to be having about 3V. I'm sure the device is working correctly and who was wrong it's me. The resistor values were firstly calculated in order to have V = 3.3V at M node if driver was OFF. I thought that if driver was OFF, no current drive, so it could be 3.3V at M node. Obviously I don't see that. But I need to understand these questions:
- I guess the driver is ON but if it was, Vin(ON) = 2.4V. Maybe it is not.
- How can M node achieve 1.5V. I don't see it. I even take into account internal driver resistors but I don't get 1.5V.
- I don't see why Vdiode = 2.9V
- I guess VCE = Vdiode - Vd = 2.9 - 0.6 = 2.3V
Feel free for answering where the mistakes are and tell me what is wrong.