2
\$\begingroup\$

During ERC, I get these two warnings:

enter image description here

If you take a look at the schematic, these are the problematic areas:

enter image description here

No matter how many Power Flags I place, I cannot seem to get this error removed. To the contrary, they get increased. If I place a Power Flag on the Vcc and GND of that connector, the errors become three:

enter image description here

EDIT: When I add power flags, the problem seems to be jumping all over the place to other Vcc and GND.

For example, look at this: enter image description here

However, when a take a look at this symbol, then pin 4 is declared as power input.

enter image description here

If I add a power flag to that place, then a new warning pops up.

enter image description here

\$\endgroup\$
5
  • \$\begingroup\$ What is component #PWR029 \$\endgroup\$
    – Aaron
    Commented Jun 5, 2023 at 21:40
  • \$\begingroup\$ I do not know, nor do i know how to locate it. \$\endgroup\$ Commented Jun 5, 2023 at 21:41
  • \$\begingroup\$ The problem has jumped around for reasons i do not understand. Now it targets the Vcc and Gnd of other components. \$\endgroup\$ Commented Jun 5, 2023 at 21:42
  • \$\begingroup\$ Those numbers @229,85mm are the location on your schematic \$\endgroup\$
    – Aaron
    Commented Jun 5, 2023 at 21:42
  • \$\begingroup\$ Now it targets the Vcc of a chip (a symbol) i have designed, and the GND of a potentiometer. \$\endgroup\$ Commented Jun 5, 2023 at 21:43

3 Answers 3

1
+50
\$\begingroup\$
  • You should have one PWR_FLAG connected to each power source symbol (Vcc, Vdd, V+, 5V0, whatever) and another PWR_FLAG connected to your GND symbol. I often draw these off in the corner to keep them out of the main schematic.

  • Your other components have pins defined incorrectly. SN74LVC1G00DBVR is a 2-input NAND gate. The error message in your last picture says "Pin 1 (Power output) of component #FLG0102 is connected to pin 2 (Bidirectional) of component U1 (net 7)."

The reference to #FLG0102 is a PWR_FLAG, which is connected to VCC in the upper-right corner of the schematic screenshot there. VCC is also shown connected to pin 2 (IN_B), so transitively PWR_FLAG #FLG0102 is actually sourcing power into pin 2. This is actually fine. For SN74LVC1G00DBVR, that is an input pin as defined on the datasheet.

But your symbol defines pin 2 as bidirectional-type -- indicating the IC can either use it as an input, or drive it as an output. It would be bad for the IC to attempt to drive Vcc in this way; but that is not actually going to be the case in your circuit board implementation with the real chip.

You should edit the SN74LVC1G00DBVR symbol and then double click on the pin in question and change its type to "input." Then save the symbol, go back to your schematic, right click on U1, and choose "Update Symbol..." to pull the revised symbol definition into your schematic.

Where did you get the symbols? If you made the symbols yourself, you need to distinguish input, output, bidirectional, and power I/O pins from one another for ERC to give you useful information. If you label everything as bidirectional, ERC will just show you faulty error messages. If you downloaded this symbol from somewhere like UltraLibrarian or SnapEDA, you may want to file a bug report.

Note that you need to read the error messages carefully... The ERC error arrow is pointing at a PWR_FLAG, which is close to connector J2 -- but J2 is fine with having power pushed into any pin (its pins are all marked as "passive" type). The true issue being raised to your attention is how that PWR_FLAG interacts with U2 pin #2. U2 pin 2 is where the interesting interaction to resolve is. (I agree the green error flag would be more helpful on the U2 side of that interaction, but I guess that's how it goes sometimes.)

\$\endgroup\$
7
  • \$\begingroup\$ One IC is ATMega328, which exists in KiCad's library. This has the RESET pin as bidirectional, while I connect Vcc. But I cannot edit standard library parts... Another problem is with one custom IC. In one case, one pin has to go to GND, while in another case, the same pin has to be connected to circuitry. What do I place for the pin in this case? \$\endgroup\$ Commented Jun 12, 2023 at 19:23
  • \$\begingroup\$ If RESET is truly bidirectional, then it should probably be connected to Vcc thru a pull up resistor with a value that limits its current to a safe level, like 10k. \$\endgroup\$ Commented Jun 13, 2023 at 20:06
  • \$\begingroup\$ It's hard to know what you mean about the other case without specifics. But if that's another bidir pin which must sometimes be grounded, you probably want to do the same thing - even if you think in steady state it will only be used as an input, you should use a pulldown resistor of 10k or so to ensure it won't short to GND under any transient circumstances like startup or undervoltage and fry itself. \$\endgroup\$ Commented Jun 13, 2023 at 20:10
  • \$\begingroup\$ It is a chip thats used as step up / step down converter. In one case, this pin should be connected to GND. In the other case, it should go to signal (that's what i meant when i meant it goes to circuitry). As for the AVR's RESET pin, i plan on NOT using a reset button, this is why i hooked the RESET pin directly to Vcc. \$\endgroup\$ Commented Jun 13, 2023 at 20:26
  • \$\begingroup\$ If these are truly bidirectional pins, then connecting to Vcc or GND via a pullup or pulldown resistor will be safe, and will eliminate the ERC error. If you choose to disregard that and believe that in your use case you can guarantee you won't have transient short circuits thru the pin to Vcc / GND in cases of startup / shutdown / temporary undervoltage, and you're confident in asserting that connecting to Vcc / GND won't be problematic, then the ERC error is bonafide but you are choosing to ignore it, in which case I'd probably just click on each error arrow and mark it as "Ignored." \$\endgroup\$ Commented Jun 14, 2023 at 22:33
2
\$\begingroup\$

This is due to how the part is defined. The pins are defined as inputs, and therefore needs to be driven by an output. If you change the pins to passive, it'll go away.

\$\endgroup\$
2
  • \$\begingroup\$ Thank you! But which pins exactly should i change as passive? The ones on the connector? This is a standard component of Kicad btw. \$\endgroup\$ Commented Jun 5, 2023 at 21:33
  • \$\begingroup\$ These pins are all set to Passive in the footprint editor. \$\endgroup\$ Commented Jun 5, 2023 at 21:36
1
\$\begingroup\$

The errors you show are for power connected to bidirectional pins on ICs - this would be a Bad Thing if those bidirectional pins were set as outputs, so the program issues a warning.

If you know those pins will only be used as inputs, you should edit the schematic symbol to change them to inputs to eliminate those errors.

DRC errors are really just warnings to you that something might be wrong. They will not prevent you from creating a PC board if you choose to ignore them.

\$\endgroup\$
3
  • \$\begingroup\$ Thanks! But they seem to pop all over the place. All around where there is a Ground, or where I have the Vcc flag, as in shown in the second picture. So i guess i should change the pins not only on my Custom ICs, but on the ATMega328 one correct? \$\endgroup\$ Commented Jun 6, 2023 at 7:57
  • \$\begingroup\$ Yes, you can change the ATMega328 pins that cause an error. There may be a "No ERC" marker that you can place on the problem pins, rather than changing the ATMega328 symbol. \$\endgroup\$ Commented Jun 6, 2023 at 15:30
  • \$\begingroup\$ Pins in which this warning shows up are indeed declared as Power Input in the symbol editor. So unfortunately, this does not solve this. I edited my question with further pics. \$\endgroup\$ Commented Jun 7, 2023 at 14:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.