Electrical rules check problem

Hi,

I have a circuit where I have a variety of buses connected to a single output connector.

Only one of these busses will output at one time, I therefore figured a single ‘wire’ could connect each of the output pins from my buses to my output connector.

When I run the electrical rules checker it fails with :

Pin connected to some other pins but no pin to drive it, for each of the ‘daisy chained’ wires:

Is this not valid? If not, what is the ‘right’ way to connect this up?

You get those squawks because one (or more) of the symbol pins in those nets is defined with an electrical type of “Input” or “Power Input”; and there is no corresponding pin in the same net defined as “Output” or “Power Output”.

You can fix this in several ways.

  • Change the “Electrical type” of all the schematic symbol pins to “Passive”.

  • In each net, designate ONE of the pins as “Output”, or “Power Output” (and modify the footprint accordingly in the footprint library.

Dale

This makes sense,

I have altered the component so those pins are output. (do I need to delete the schematic component and replace for this update to take effect?)

Note that the pins on the far right bus are ok, why is that?

I am still getting these markers with the same error.

You sure you don’t want to use local labels or buses for this?

Maybe I do! Not sure what they are - can you show an example?

labels:
http://docs.kicad.org/4.0.5/en/eeschema.html#local-hierarchical-and-global-labels

bus:
http://docs.kicad.org/4.0.5/en/eeschema.html#wires-buses-labels-power-ports

Ok I have looked at this, I like the idea of the bus, however, will it allow many to one?

For instance would I have 3 buses, connected to a single output? Or would I have one giant bus which connects to the output.

bus 1 -> output
bus 2 -> output
bus 3 -> output

or

MEGA BUS -> output

I am not convinced mega bus would actually work, as how would I be able to label 3 A1 pins to a single B1 Pin on the out?

OK - I have given it a try.

This is one ‘bus’ which connects everything. Each output has P1 - P21. They all ‘link’ to the P1 - P21 on the SCART Female connector on the right:

Does this look ‘ok’?

It doesn’t appear to be OK as the tester says outputs of A2 are connected to A3…which is true, but I don’t really want that, I want all outputs of A1, A2, A3, A4 to be connected to the SCART on the right, but NOT each other! Ah!

Might it be that you then need some component in between as a separator? A copper connection does not care what the signal means that travels on it.
If 4 things are connected to one point, they are connected with each other as well. Meaning all of them get the same signal.

1 Like

Indeed. So what allows me to do just that?

DRC only goes so far, it’s only a static check. It cannot tell if you have several outputs that are enabled by an enable line, which is commonly used by output buffers. At that point you need the grey matter between the ears to work out if what you are doing is electrically valid or not.

Knowing more about your project would help, it looks like a SCART switch. If the SCART drivers can be enabled then you can ignore the DRC error, but it is up to you to design the circuit so only one driver can be enabled at a time.

1 Like

Yes, I will be ensuring that only one scart bus is enabled at one time.

You are right, I am building a electrically controlled SCART switch of sorts. One output line, many inputs which will be controlled via an ESP32.

I am with my existing approach concerned about ‘noise’ from the other 3 connected buses even if they are not on, I feel it is possible some noise may be produced., not clear on the best way to separate these.

I don’t believe the bus switch (FSTD16211MTDX) has an enable switch, unless you would call the OE1, and OE pins enable(which is what they appear to do) If 3 of the SCART buses are sending OE1, OE2 low, to turn of the bus, only one SCART will be connected to the output. Will I get noise? If so, how can I remove that?

In such a case the output is typically a three state pin, or it is open collector/open emitter. (Open drain/source)
If it is a push-pull output then you can not connect multiple output pins together. (You would need a device in between that does allow an output to float.) If one assigns type output to a pin, KiCads ERC assumes it is a push/pull output.

KiCad has an option for telling ERC about these sort of pins. More details about electrical types see this faq post:

Hi Rene,

Sorry but this confuses me a bit. Are we saying if OE1 and OE2 are LOW, then the output pins are ‘floating’ in the 3rd state?

Would this cause any problems? How do we stop signals from another one of the buses from going towards the output of another bus?

I had a look at the datasheet, it’s basically a set of solid state switches. OE1 and OE2 are active low, so when they are low the switches are on. If OE1/OE2 are high, the switches are off. I would define the pins as tristate in this case.

With the switches in the off state, there will be no signal passing through, so you should be ok.

1 Like

Right, so marking them in the component editor as tristate will satisfy the electrical rules checker?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.