NC pins: to show or not to show?

This old chestnut.

I’ve been dealing with a 32 pin part that has 4 NC pins and 13 NCI (not connected internally) pins, which is proving a tricky case study for my NC pin handling strategy.

Fundamentally I’m of the opinion that leaving out pins in a symbol introduces unacceptable doubt, though there are practical limits (eg. DDR BGAs with hundreds of NC balls!). This one is on the cusp.

Originally I employed my strategy of stacking pins, but making the stack explicit. This didn’t work well because: (a) flipping the symbol doesn’t flip the annotation, and (b) stacking do-not-connect pins connects them (to each other)!

So I’m considering options.

Here’s one: just use text! Good because the designer doesn’t have to bother dealing with pins they don’t have a choice about. Good because it’s not hard to edit the symbol and make a NCI pin visible if you want an explicit connection. Good because the “free” type means you don’t have to. Bad because even invisible pins can be accidentally connected to (nasty!), and it takes a lot of room to write it out.

Any opinions to help sway me here? Here’s some I’ve found useful:

  • Always make a (possibly invisible) pin per pin, so the part pin count is right. Ref.
  • Those historical hidden VCC/VSS pins have left scars. Ref
  • They could all be grouped in a separate unit. Ref
  • Stacked pins are connected. There is no “don’t connect if I mark with No Connect” concept. Ref.

You are lucky to have the manufacturer explicitly show NC means do not connect and NCI, which you might want to connect to ground for heat transfer.
Why is 16 NCI/GND?

Indeed. I’d hate to undermine that generosity in the symbol.

It’s because there’s a standard pin assignment for this family of parts, set by the Trusted Computing Group (TCG). To comply, pin 8 has to be VDD and pin 16 has to be GND. So the way they do that is make them NCI which means you’re free to connect them to VDD/GND, even though it wont do anything.

Why unacceptable?
I always want my schematic symbols be rather small so all NC pins I just don’t show.
There is only one exception. One IC datasheet asks to surround one pin with GND track going through next to it NCI pin. This one NCI pin I have at schematic.

1 Like

That is also my motto. When I’m fault finding on a PCB (Or even during routing), then I want to be able to verify what a certain pin is in the schematic. For that reason I (nearly) always also unstack all the GND and power pins in the schematic. I don’t like hiding information. A schematic is not only for getting the connectivity right, but it is also an important piece of documentation, and I consider all pins essential in the documentation.

Pins which have no internal connection can be very handy during routing, sinche their pads can be used to route other tracks. In this particular case I am tempted to put the NC and NCI pins in a separate unit, and maybe even place text inside those units to mention how these pins can be used.

1 Like

I don’t really have anything to add to the usual arguments - for me this captures it best: “If I see some (any) pin on a PCB, I want to be able to find it on the schematic to see what it is and what it’s for.”

Same. These preferences are sometimes in opposition!

And this is the clincher - there are always exceptions, and without explicit pins I’m always in doubt.

I’m not sure I’ve optimised the tradeoffs yet…

When I am first time using the IC than I just know why some pins I don’t show at schematic. When (after years) I do the next PCB revision I typically don’t care about such pins as device was working for years so no idea to suppose any problem with hidden pins. In rare case when I would have a doubt what is going on here with other pins I will just press ‘D’ at schematic to see datasheet. I believe it gives you better explanation than seeing a row of pins that are not connected (pin names not always explain why they are not used).
I sometimes hide (other than NC) pins which I know we are not planning to use assuming that ‘in case’ I can just do the second symbol for this IC, but never happened to have such need. For example device has few interfaces while we selected one to use. Few weeks ago I was doing my USB-C socket symbol having only pins we use.

As I wrote earlier: The schematic is not only for you as the designer, but it is also for other people That may be people doing repairs, or the whole world if you’re open sourcing your projects. If that is not important to you, then do whatever you want with your own projects, but there simply are valid reasons for wanting to have a schematic complete, with all pins shown. It is a valid workflow, even if you have another workflow. There is no need to further discuss this or derail a thread with it.

1 Like

In the meantime, here’s what I’ve come up with:

  • Invisible, unstacked NC and NCI pins
    • placed at the symbol boundary where they’re unlikely to be inadvertently connected to.
  • NC pins are “Unconnected” type. NCI are “Free” type.
  • Text within the symbol listing the NC and NCI pin numbers.

This strategy has the following characteristics:

  • Pro: a reviewer can see the purpose of every pin.
  • Pro: the pin count is correct, and the pin list can be reviewed.
  • Con: pin characteristics are partly visualised using plain text, which is unusual and duplicates the pin information in a way that can’t easily be automatically checked.
  • Pro: unlike a text annotation on a pin, the text within the symbol tolerates flipping in the x-direction well.
  • Con: the symbol has to be a bit bigger to accommodate all the text. Although not as big as would be required to fit all the pins.
  • Pro: no need to place a separate unit, or look for it when reviewing.
  • Pro: designer doesn’t have to do anything with NC and NCI pins. NC pins are automatically marked No Connect (by the “Unconnected” type). And NCI pins are “Free” to be routed to in the PCB or not.

I’m quite comfortable with those tradeoffs at the moment.

Remarkably, this is the same conclusion this person came up with (7 years ago! and with nicer visual settings), after a well documented series of trials. I only came across it afterwards.

4 Likes

Not that it helps you now but a nice change coming up for the next KiCad version regarding stacked pins