User's Manual

Enhanced Class 1 Bluetooth v2.1 Module
User’s Guide
Americas: +1-800-492-2320 Option 2
Europe: +44-1628-858-940
Hong Kong: +852-2923-0610
www.lairdtech.com/wireless
143
CONN-GUIDE-BT740_v0.2
// A:2448 (0990),<len=8> 0000000000000000
// A:2454 (0996),<len=2> 06C3
>71 043.056 0E 00 37 7F 72B4 140B020C102D214E
CMD_HDP_SET_TIME
<71 000.109 05 00 37 7F 00
RSP_HDP_SET_TIME (MPSTATUS_OK)
<71 008.721 07 00 96 7F 01 72B4
EVT_HDP_DISASSOCIATED
<71 002.059 08 00 81 7F 00 01 01 0C
EVT_STATUS
13.8.1 Sniff Mode Explained
Bluetooth connections are master/slave in nature. A master sends packets and a slave has to
acknowledge that packet in the next timeslot. Timeslots in Bluetooth are 625 microseconds wide. This
implies that a master always knows when packets are sent and received, which further means it is able to
optimize power usage by switching on power hungry circuitry only when needed.
A slave, however, does NOT have prior knowledge of when a packet receives and has to assume that a
packet receives from a master on every receive slot. This means that it has to leave its receiving circuitry
switched on for most of the receive slot duration. The result of this is high power consumption where a
slave with no data transmission still consumes around 31 mA, whereas a master consumes only 6 mA.
This problem was identified early in the evolution of Bluetooth (especially since headsets spend all their
time as a slave in a Bluetooth connection) and it was solved by having a mode called Sniff, with
appropriate lower layer negotiating protocol.
Sniff mode during connection is an agreement between the slave and its master that null packets are only
exchanged for N timeslots every M slots. The slave can then assume that it will never be contacted during
N-M slots, and so can switch its power hungry circuitry off. The specification goes further by also
specifying a third parameter called ‘timeout’ (T) which specifies ‘extra’ timeslots that the slave agrees to
listen for, after receiving a valid data packet.
Put another way, if a data packet is received by the slave then it knows that it MUST carry on listening for
at least T more slots. If within that T slot time period another data packet receives, then the timer restarts.
This mechanism ensures low power consumption when there is no data transfer at the expense of
latency. When there is a lot of data to transfer, it acts as if sniff mode was not enabled.
It is stated above that during sniff mode, a slave listens for N slots every M slots. The Bluetooth
specification states that a master can have up to 7 slaves attached to it with all slaves requesting varying
sniff parameters. It may therefore be impossible to guarantee that each slave gets the M parameter it
requested. In light of this, the protocol for enabling sniff mode specifies that a requesting peer specify the
M parameter as a minimum and maximum value. This allows the master to interleave the sniff modes for
all slaves attached.
For this reason, the sniff parameters are specified in the Bluetooth module via four S registers. SRegister
73 (561 in AT mode) specifies ‘N’, SRegister 74 (562 in AT mode) specifies ‘T’, and SRegisters 75/76
(563/564 in AT mode) specify minimum ‘M’ and maximum ‘M’ respectively. Although the specification
defines these parameters in terms of timeslots, the S register values have to be specified in units of
milliseconds and the firmware does the necessary translation to timeslots.
The relationship between M, N, T, and power consumption when sniff mode is activated is illustrated in
Figure 13-1.