The Pull-Resistor Sizing Contract
Ada audits the pull-resistor sizing contract — current, edge speed, and leakage margin
ADA · CALCULATION AUDIT
Foundations · optional mathematics and physics
The Pull-Resistor Sizing Contract
The chapter sizes a button’s pull-up resistor as a balance: a 10 kOhm pull-up passes 0.33 mA when the button is pressed — ten times stronger than a 100 kOhm part but ten times lighter than a 1 kOhm one — while the weak pull releases the line 100 times more slowly. Too strong wastes current; too weak gives soft, leakage-sensitive edges. This audit works the pull-resistor sizing contract, checking sink current, idle leakage, and RC edge speed.
Companion to the chapter Floating Input and Pull Resistor Contracts — every number here comes from that chapter.
Current, edge speed, and leakage margin, ~4 minutes
A pull resistor is a physical compromise: small enough to define the voltage and recharge capacitance, large enough not to waste current whenever a switch or open-drain device pulls the node the other way.
The working
| Check | Arithmetic | Design meaning |
|---|---|---|
| Current ratio | 3.3 mA / 0.033 mA = 100 | The 1 kOhm pull burns 100 times the driven-low current of the 100 kOhm pull, so it is stronger but less sleep-friendly. |
| 10 kOhm middle point | 0.33 mA / 0.033 mA = 10 | The chapter's button example is ten times stronger than 100 kOhm but ten times lighter than 1 kOhm. |
| RC edge ratio | tau = R * C, so tau(100 kOhm) / tau(1 kOhm) = 100 | For the same node capacitance, the weak pull releases the line 100 times more slowly. |
Round only at the end: the 10 kOhm example is exactly 0.00033 A from the stated values, then reported as 0.33 mA. That is the same contract the prose describes: check sink current, idle leakage margin, and RC edge speed before trusting the logic level.
Every number above is taken from the chapter's own pull-resistor example and re-derived step by step.