# What does it mean to “assert a pin”?

From the XBee/XBeePro product manual page 24 (link to pdf):

Sleep Modes enable the RF module to enter states of low-power consumption when not in use. In order to enter Sleep Mode, one of the following conditions must be met (in addition to the module having a non-zero SM parameter value):

• Sleep_RQ (pin 9) is asserted and the module is in a pin sleep mode (SM = 1, 2, or 5)
• The module is idle (no data transmission or reception) for the amount of time defined by the ST (Time before Sleep) parameter. [NOTE: ST is only active when SM = 4-5.]

What is meant by "asserting a pin"?

Asserting a pin means setting it to its active state.

De-asserting a pin means setting it to its inactive state.

If a pin is active high (which it is, in your case), then asserting it means setting it to logic high (usually 3.3V/5V) and de-asserting it means setting it to a logic low (0V).

On the same page of the datasheet you've linked there's Table 2-04 which shows that Asserting pin 9 (Sleep_RQ) means setting it high:

• One minor caveat: de-asserting a pin in some contexts may mean driving it to the state opposite the active state, or it may mean floating the pin, to allow the pin to return itself to the inactive state (and also possibly allowing other devices to assert the pin). – supercat Jun 5 '12 at 15:13
• I think the word is used in a electronics in a different way than what the word originally meant. In common English "assert" means rougly: to state with confidence, to make sure smth is the case. In programming it means: check that an expression evaluates to true, otherwise throw exception. – Lucy Brennan Jun 5 '12 at 17:24
• @LucyBrennan I agree. It's used differently than in programming. – m.Alin Jun 5 '12 at 20:20
• If you think of asserting signals (not pins), it's closer to English. To assert the RESET# signal makes more sense than to assert the RESET# pin (at least to me). It also avoids loaded words that might give the wrong idea if asserting RESET# involves driving it low (or not driving it high). – Alexios Jun 6 '12 at 22:31

It means that the active level is applied. In the manual active level is indicated between brackets ("high"). That's the common standard for GPIO (General Purpose I/O), but lots of signals are often active low, like $\overline{\mathrm{CS}}$ (Chip Select), $\overline{\mathrm{OE}}$ (Output Enable), $\overline{\mathrm{UB}}$ (Upper Byte). Asserting $\overline{\mathrm{CS}}$ means make that line low. (The overline indicates active low logic).

To be a little bit more precise, (de)asserting a pin usually means that you must have a transition from one state to an other. From active to inactive if you de-assert the pin. From inactive to active if you assert it.

So, assuming you must assert (active high) a pin:

• either it is currently low (i.e.: inactive), you only have to set it high (i.e.: active),
• but if it is already high, you must first set it low in order to set it high again just after that.