English
Language : 

PIC18F45K80-I Datasheet, PDF (302/622 Pages) Microchip Technology – 28/40/44/64-Pin, Enhanced Flash Microcontrollers with ECAN and nanoWatt XLP Technology
PIC18F66K80 FAMILY
21.4.3.2 Address Masking Modes
Masking an address bit causes that bit to become a
“don’t care”. When one address bit is masked, two
addresses will be Acknowledged and cause an
interrupt. It is possible to mask more than one address
bit at a time, which greatly expands the number of
addresses Acknowledged.
The I2C slave behaves the same way, whether address
masking is used or not. However, when address
masking is used, the I2C slave can Acknowledge
multiple addresses and cause interrupts. When this
occurs, it is necessary to determine which address
caused the interrupt by checking the SSPBUF.
The PIC18F66K80 family of devices is capable of using
two different Address Masking modes in I2C slave
operation: 5-Bit Address Masking and 7-Bit Address
Masking. The Masking mode is selected at device
configuration using the MSSPMSK Configuration bit.
The default device configuration is 7-Bit Address
Masking.
Both Masking modes, in turn, support address masking
of 7-bit and 10-bit addresses. The combination of
Masking modes and addresses provide different
ranges of Acknowledgable addresses for each
combination.
While both Masking modes function in roughly the
same manner, the way they use address masks are
different.
21.4.3.3 5-Bit Address Masking Mode
As the name implies, 5-Bit Address Masking mode uses
an address mask of up to 5 bits to create a range of
addresses to be Acknowledged, using bits, 5 through 1,
of the incoming address. This allows the module to
Acknowledge up to 31 addresses when using 7-bit
addressing, or 63 addresses with 10-bit addressing
(see Example 21-2). This Masking mode is selected
when the MSSPMSK Configuration bit is programmed
(‘0’).
The address mask in this mode is stored in the
SSPCON2 register, which stops functioning as a con-
trol register in I2C Slave mode (Register 21-6). In 7-Bit
Addressing mode, address mask bits, ADMSK<5:1>
(SSPCON2<5:1>), mask the corresponding address
bits in the SSPADD register. For any ADMSKx bits that
are set (ADMSK<n> = 1), the corresponding address
bit is ignored (SSPADD<n> = x). For the module to
issue an address Acknowledge, it is sufficient to match
only on addresses that do not have an active address
mask.
In 10-Bit Addressing mode, bits, ADMSK<5:2>, mask
the corresponding address bits in the SSPADD
register. In addition, ADMSK1 simultaneously masks
the two LSbs of the address (SSPADD<1:0>). For any
ADMSKx bits that are active (ADMSK<n> = 1), the cor-
responding address bit is ignored (SPxADD<n> = x).
Also note that although in 10-Bit Addressing mode, the
upper address bits reuse part of the SSPADD register
bits. The address mask bits do not interact with those
bits; they only affect the lower address bits.
Note 1: ADMSK1 masks the two Least Significant
bits of the address.
2: The two Most Significant bits of the
address are not affected by address
masking.
EXAMPLE 21-2: ADDRESS MASKING EXAMPLES IN 5-BIT MASKING MODE
7-Bit Addressing:
SSPADD<7:1>= A0h (1010000) (SSPADD<0> is assumed to be ‘0’)
ADMSK<5:1> = 00111
Addresses Acknowledged: A0h, A2h, A4h, A6h, A8h, AAh, ACh, AEh
10-Bit Addressing:
SSPADD<7:0> = A0h (10100000) (The two MSb of the address are ignored in this example, since they
are not affected by masking)
ADMSK<5:1> = 00111
Addresses Acknowledged: A0h, A1h, A2h, A3h, A4h, A5h, A6h, A7h, A8h, A9h, AAh, ABh, ACh, ADh,
AEh, AFh
DS39977F-page 302
 2010-2012 Microchip Technology Inc.