Please explain electrical type when create new IC pin

Felix:

Here are the uses for the electrical pin types:

  • Input is a unidirectional input, like an input to a 7400 NAND gate.
  • Output is a unidirectional output that can drive high or low, like the output of a NAND gate.
  • Bidirectional can act as an input or an output. The I/O pins on microcontrollers are bidirectional.
  • Tri-state is an output that can drive high or low, but can also be placed in a high-impedance state where it floats. The 74125 is a chip with tri-state outputs (sometimes called three-state outputs: hi, low, and high-impedance).
  • Passive is an unpowered connection, like you would find on resistors, capacitors and inductors.
  • Unspecified is, well, unspecified. I guess you would use that when no other classification fits.
  • Power input is an pin where power comes in to a chip. Both the VCC and GND pins of chips would be classified as power inputs.
  • Power outputs are where power comes out of a chip. The outputs of voltage regulators are the most common example of this pin type.
  • Open collector output pins are outputs that can be driven low, but float otherwise. These are good for wired-AND connections where the output goes low if any of the attached open-collector pins goes low, but the output is pulled high by a pull-up resistor if all the pins are floating. The 7401 is a NAND gate chip with open-collector outputs.
  • Open emitter output pins can be driven high, but float otherwise. These are good for wired-OR connections where the output goes high if any of the attached open-emitter pins goes high, but the output is pulled low by a pull-down resistor if all the pins are floating.
  • Not-connected pins are pins which have no function. Think of these as package pins that aren’t bonded to the IC inside.

These pin types are used by eeschema ERC to detect possible errors in the circuit wiring. If you have a bunch of inputs on a net but no output pin is attached to the net, then an error is reported because there’s nothing to drive those inputs to a valid level. Or if you have two outputs attached to the same net, that’s also reported as an error because the outputs could have opposite values and the level on the net would be indeterminate (the outputs could also be damaged).

In actuality, a lot of the reported errors are not really errors at all. So eventually you’ll stop paying attention to the ERC output, just like most people ignore compiler warnings.

24 Likes