Accidentally designed circuit assuming digital output pins were sourcing

So I designed a circuit and got a board printed assuming my digital output pins were sourcing 5v, it wasn't working, so I took a closer look at the schematic and the digital output pins are sinking(I think?).

Is there any easy solution to fix this? Can I somehow invert the signals?

If not, what is the practical solution to this assuming I was using the DO pins to activate/use a shift register?

Hopefully I wont have to redesign and reprint the circuit, but I understand if that is my only option :(

Here is the schematic for the DO pins.

Thanks for your help.

Top secret? Why not show us the whole schematic.

Assuming Digital_Out_Common is connected to Gnd, and each Digital_Out_X is connected to a pullup to 3.3V or 5V, then yes, the outputs will switch from High to Low when transistor base sees light (presumably this is one or more optoisolators or optocouplers, perhaps in the same pachage even).

If there's software involved you may be able to reverse your logic. Otherwise, you'll probably need an inverter.

Are those phototransistors or opto-isolators?

So I designed a circuit and got a board printed assuming my digital output pins were sourcing 5v,

You didn't breadboad or prototype your circuit first? :stuck_out_tongue: OK... sometimes, especially with surface mount components or circuits with data buses and address busses, the breadboard/prototype is a PC board, but that's part of the cost & risk.

|354x500

Here is the relevant schematic stuff for the board I currently have.

CrossRoads: Assuming Digital_Out_Common is connected to Gnd, and each Digital_Out_X is connected to a pullup to 3.3V or 5V, then yes, the outputs will switch from High to Low when transistor base sees light (presumably this is one or more optoisolators or optocouplers, perhaps in the same pachage even).

I don't think I am following this? do you know where I can find an example circuit showing this?

I tried putting the DIGITAL_OUT_COMMON to +5V and running them backwards, but that didn't work so I assume that means photo-transistors?

Thanks again for all of the replies.

So I tried to figure out the pull-up resistors and got the following? |354x500 This is my updated schematic |500x301 This is the info from the data sheet for the TPIC6B595 I care about so I can see how much current I need to trigger the input pins? 300uA max so with 10k ohm resistors I have 5=10000I I = .0005A or 500uA which is >300uA?

I am still not sure how this works though as I would have to know the internal resistance of the TPIC6B595 to do a voltage divider and find out what the voltage at the pins would be?

I’d use 1K so you have nice crisp rising edges when the transistors turn off, and some slowly rising thing that reaches a high level eventually.
The current needed is minimal, just 1uA. They are CMOS inputs, so it’s voltage swing you are concerned about.
Why are you not driving these from Arduino outputs directly?

It makes no sense to me, to connect photo-transistors and maybe pull-up resistors to a digital output.

Do you mean digital input?

Can you explain or link me to an explanation as to why DO nodes are high when the DO pins are closed?

If there is current flowing, wouldn't there be some voltage divider going on causing the voltage to be lower than 5V hence low?

Supposedly the outputs aren’t sourcing or sinking, they just switch from high to low impedance to the digital out com.

Not sure why connecting Digital Out Com to +5V didn’t work then :frowning:

So I jury-rigged up a fix for this using pull up resistors, and it seems to be working?

Thanks for all the help.

I still don't fully understand why it works though :/

See if this helps:

Oh, Okay so the chip has a super high resistance such that it seems like 5V even though its not exactly 5V.

How does one know if their chip has high resistance? Does this work for all or most chips?

Thanks for the help!

Read the chip’s datasheet:

High Level Input Current: 1uA
Low Level Input Current: -1uA

For CMOS parts, it’s generally going to be pretty low like that.
For non-CMOS parts, it could be much higher, up in the mAs.