How to show internal pullups on a schematic?

Hi all,

The internal pullups are "invisible" in the sense that their circuitry is inside the Arduino "black-box" in a schematic. The code would show that a pin had its pullup enabled, but one doesn't know that from the schamatic: one would simply see (eg) a switch across the pin and ground.

Is there a) any need to and if so b) any way to show an "invisible" internal pullup on a schamatic?

(I was thinking of showing it as an external resistor, but with a dotted line?... kind of "greyed ot" so to speak.)

My vote is that it's not necessary to do so. Your microcontroller really is that black box you mention, and that includes much circuitry that would overcomplicate your schematic if included.

and that includes much circuitry that would overcomplicate your schematic if included.

.... agreed, except that the pullup's enablement is optional and deliberate on the part of the user and could be done externally, and its presence is germane to understanding the circuit, whereas the rest of what goes on in the black box is some kind of arcane Arduino stuff

My opinion is to put a resistor on the schematic then the circuit will look/be correct. The person building the end product from this circuit could either fit these external pullups or omit them and use the internal ones. Even if you make the PCB from the schematic you have the resistor pads but just leave the resistor out and turn on internal pullups.

(I was thinking of showing it as an external resistor, but with a dotted line?... kind of "greyed ot" so to speak.)

That sounds like an acceptable method to me.

Comments are good for code and for schematics...

If the pin/input has a name you put a bar over the top of it to indicate that the logic is reversed (that it has an internal pullup). Shouldn't that be sufficient?

Chagrin:
If the pin/input has a name you put a bar over the top of it to indicate that the logic is reversed (that it has an internal pullup). Shouldn't that be sufficient?

Yep I guess, that's a good suggestion.

edit ... or maybe not 8)

Internal pullup is typically an input pin function.
Outputs can also be "reverse logic", driving a PNP transistor for instance, where Low turns it on and High turns it off.
So PNP-Drive/ could indicate Low = On, while not having a pullup at all.
I think the dashed-line showing implied function is better way to go, or a note saying "Signal X requires internal pullup".

Chagrin:
If the pin/input has a name you put a bar over the top of it to indicate that the logic is reversed (that it has an internal pullup). Shouldn't that be sufficient?

I don't see how that is a good idea. It is using a convention to imply a function that is unrelated to that convention.

Who is to say pull up is inveterted? If the pin is high, it is high. If the pin is low, it is low. That's not inverted.

You can just draw the internal pull-ups inside the box for the device. This makes it clear they are internal and
not a separate component.

Correct, the logic state being used does not in itself tell anyone reading the schematic that the circuit electrically is using (and requires) a pull-up resistor. The issue is how best to tell someone that it's an internal software enabled pull-up and not an external resistor. A dashed line resistor symbol with a note added somewhere in the schematic is one method that is probably as good as any other I could think of.
Lefty

[quote author=James C4S link=topic=155529.msg1166394#msg1166394 date=1363882836]
Comments are good for code and for schematics...[/quote]Exactly what I was thinking. Something like, "Internal pull-up for pin 1 is enabled in software". Or, "Internal pull-up resistor must be enabled if external pull-up is not used."

Notes on on schematics & other technical drawings are very common. I'd say most technical drawings have one or more notes.

What I usually do is add the part externally. Resistors are small and cheap, and I'll often want that behavior to be effective during resets or code crash. For an input (where state during boot-up doesn't matter), I might leave it off the schematic, but I personally like the suggestion of adding the part anyway, then maybe noting it with an asterisk and a footnote that says "optional if internal pull-ups are enabled".

That said, I would be happy reading a schematic where any of the above methods were used.

there is no need to show the pullups, your code will explain the fact that the pullups are used in the mcu. if you want to show someone how to build it why show them stuff they are not assembling ? that is on the coding side. Anyone that clever seeing a button from the input to ground will probably know that it is connected to an internal pull up else it would be pretty pointless having a button that just goes to ground.

Chagrin:
If the pin/input has a name you put a bar over the top of it to indicate that the logic is reversed (that it has an internal pullup). Shouldn't that be sufficient?

No a bar means active low, that is a logic zero means the name is true. It is absoloutly nothing to do with pull up resistors.

If you want to show internal pull ups on schematics you draw them inside the outline of the box that represents the IC.