38

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"?

Lucy Brennan
  • 593
  • 3
  • 8
  • 11

3 Answers3

29

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: enter image description here

m.Alin
  • 10,638
  • 19
  • 62
  • 89
  • 8
    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 05 '12 at 15:13
  • 1
    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 05 '12 at 17:24
  • @LucyBrennan I agree. It's used differently than in programming. – m.Alin Jun 05 '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 06 '12 at 22:31
13

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).

stevenvh
  • 145,145
  • 21
  • 455
  • 667
3

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.
Sylvain Leroux
  • 274
  • 2
  • 6