pin-out-of-recommended

A supply pin sits on a rail whose nominal voltage is outside that pin's own recommended operating range.

Remedy

Bring this terminal’s supply inside the range the datasheet gives for it. Where a part has several supplies, each carries its own window.

What it means

A component joined to a seeded datasheet spec has a supply pin on a rail whose name states a nominal voltage outside that pin’s own recommended operating range, above its maximum or below its minimum.

Why engineers want it

Outside the recommended operating range the datasheet’s guaranteed specifications no longer hold. The part may still function, but margin, accuracy and lifetime are no longer assured, and the failure is the kind that survives the bench and appears in the field.

rail-nominal-out-of-recommended cannot answer this for a part with more than one supply. It declines outright, because the range is two-sided and applying the wrong terminal’s window invents an over- or under-voltage that is not there. Multi-supply parts are therefore unchecked today. This rule reads the range per terminal, so those parts are checked rather than skipped.

They never both fire. This rule acts only on a part whose spec carries pin bindings, and rail-nominal-out-of-recommended defers on exactly those parts. Its single-recommended-row restriction still governs everything else.

Evidence honesty

Every input that cannot be trusted is a skip, never a guess:

  • no MPN, unseeded MPN, no seeded set, or a spec with no pin bindings -> this rule is silent and the alias path answers instead;
  • a design pin that does not resolve to exactly one spec pin -> skipped, for the reasons on pin-exceeds-abs-max;
  • limit rows that are under-specified or carry text-only conditions are not compared;
  • a bound the datasheet did not state is not invented: a row with only a maximum is checked only above, and a row with only a minimum only below;
  • a rail name with no parseable nominal, or with conflicting nominals, is not compared.

Query structure

join components to specs by MPN, resolve each supply pin onto a spec pin, and compare the rail’s nominal against the recommended-operating rows bound to that pin.

select C in components where spec(C) has pin bindings
  for P in pins(C) where electrical_type(P) == power_in
    S = resolve_pin(spec(C), name(P), designator(P), package(C))   -- may refuse
    for R in recommended rows bound to S
      nominal(net(P)) > max(R) or nominal(net(P)) < min(R) -> finding

Reads: param.pin, param.pin_range, pin.electrical_type, net.name, on_net. Tier R.