What is real difference between power symbol and global net symbol. I see a tons of power symbols in library but still missing correct one. So Do I need to create my own +8V power symbol or just create +8V global net? In Eagle I do have only 1 power symbol that show net name. So I just place symbol (not mandatory at all!) and set global net name.
Power symbols are always global. It can be thought as as global label of power input pin electrical type.
Be careful when making your +8V symbol: you must change the pin name too. Changing the symbol name is no enough. Usually the power symbol has a zero lenght pin.
Sure, you can also use a global label. For the ERC it will not be a power input but it will work too.
So if understand correctly the power symbol is same as global net with power flag.
Power symbols are global labels. But they are implemented by making use of a power input pin. Which means for ERC they are then power inputs requiring power being supplied to any net with a power symbol on it.
- Power symbols are special symbols that require power (they have a Power Input pin, ERC would watch out), and have a fancy visual look. They also create a Global Net.
- Global Labels create a Global Net too, but have different visual look, they also allow you to indicate signal direction, and you’re free to change their name. They don’t have anything to do with power, thus ERC doesn’t treat them in any special way.
- PWR_FLAG is a special symbol that gives power (they have a Power Output pin). AFAICT, it serves the only purpose to tell the ERC that you promise there is going to be power coming into the Net at this point from “somewhere”.
PWR_FLAG is not a “power symbol” like the others, i think the naming may be confusing.
You may have 20 “+5V” symbols in your schematic, they are all globally connected together and it’s fine, but if you connect two PWR_FLAGs together - that’s an ERC error.
Usually the reasons you’d need to use PWR_FLAG is when:
- Your power comes from a connector (like a Pin Header, Screw Terminal, etc…)
- You already have power but at some point some passive component is in series and the Net ends on one side - there’s no longer power on the other side. This is more common, when you have an inductor, or a small-value resistor, or a normally-closed jumper, or a Net-Tie in series with the power rail.
It’s important to learn how ERC works so that you know how to use it, because the job of ERC is to help you not make silly mistakes, because such happen way too often.
For ERC to be able to help you, you have to first supply the needed information, and be honest with it.
You also have to actually run ERC. Never forget to run it at the end, or when you’ve made some small adjustments afterwards, or before ordering a board, or if you don’t remember “Did I run ERC on this?” - just go and run it now, it does not hurt.
Here’s how it works:
Every pin in a symbol has an electrical type, some are inputs, others are outputs, some are passive. You can see this by merely clicking on a pin (in eeschema) and observing the info that comes out either in the bottom status bar or in the “Clarify selection” menu.
ERC uses this info to figure out what’s going on in your circuit.
By default there are some sane rules (which you can alter) that say things like
- Passive + Passive is okay
- Passive and Output is okay
- Passive and Power Output is okay
- Output and Input is okay
- Output and Output is not okay
- Output and Power Output is not okay
- Power Output and Power Output is not okay
…and so on
When you make your own symbols (and you should, because not every possible component you might wanna use would be available in the library), you should spend the time and set the pin electrical types properly, so that the ERC can do its job later.
If you don’t know what types to use, you can try finding a similar Symbol in the stock library, and inspecting the electrical types of its pins.
See for example a Linear Regulator - it has 3 pins, VIN and GND are Power Inputs (they require power), VOUT is a Power Output (it gives power).
See also an MCU or some IC - it would have its GND and VDD/VCC pins set to Power Inputs (require power).
If you put a 5V and a 3.3V regulator and connect their VOUT pins together on the same net - ERC will be able to see the problem and count it as an error.
Be aware that ERC isn’t very clever, it does not understand Voltages, it can easily get fooled.
the “+5V” power symbol only tells ERC that it needs power, but ERC has no idea about anything else like “voltage” being “5 volts” … it does not know that a given IC would explode if you supply +24V to it.
I think there could be special passive pin type (Power_passive) telling ERC that power connected to one such element pin goes out through all other Power_passive pins of that element. You then should use that Power_passive type at least for ferryte bead pins, and may be also for all inductors. May be also for all small value resistors. If it would be a problem in other places small resistors are used then you may be will have to have separate resistor symbol for resistors used in power supply and elsewhere.
I don’t use ERC, but if I were using it I would have to use many, many PWR_FLAGs in my schematics. I use L-C-L-C (two stage) at any DCDC input and output (small PCB can easily have 3 DCDCs on it), I also use such filters at input of power to PCB, I give power to each IC (and others - for example buzzers) through ferryte-bead. I power some circuits through P-MOS keys so ERC also loses info about power.
I think if there were Power-passive pin type my case would be much simpler
what you describe here is adding a special pin type or generally adding a special property to the symbols, i’ve mentioned this as an alternative at the end of this wishlist issue: