PCA9502 8-bit I/O expander with I2C-bus/SPI interface Rev. 03 — 13 October 2006 Product data sheet 1. General description The PCA9502 is an 8-bit I/O expander with I2C-bus/SPI host interface. The device comes in a very small HVQFN24 package, which makes it ideally suitable for hand-held, battery operated applications. The device also supports software reset, which allows the host to reset the device at any time, independent of the hardware reset signal. 2. Features 2.1 General features n n n n n n n n Selectable I2C-bus or SPI interface 3.3 V or 2.5 V operation Industrial temperature range: −40 °C to +85 °C Eight programmable I/O pins Software reset Industrial and commercial temperature ranges Available in HVQFN24 package 16 hardware-selectable slave addresses 2.2 I2C-bus features n n n n Noise filter on SCL/SDA inputs 400 kbit/s (maximum) Compliant with I2C-bus Fast-mode Slave mode only 2.3 SPI features n 15 Mbit/s maximum speed n Slave mode only n SPI Mode 0 3. Applications n Factory automation and process control n Portable and battery operated devices n Cellular data devices PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface 4. Ordering information Table 1. Ordering information Type number PCA9502BS Package Name Description Version HVQFN24 plastic thermal enhanced very thin quad flat package; SOT616-3 no leads; 24 terminals; body 4 × 4 × 0.85 mm 5. Block diagram VDD PCA9502 RESET SCL GPIO REGISTER SDA A0 8 GPIO[7:0] I2C-BUS A1 IRQ 1 kΩ (3.3 V) 1.5 kΩ (2.5 V) VDD VDD I2C/SPI 002aab837 VSS Fig 1. Block diagram of PCA9502 I2C-bus interface VDD PCA9502 RESET SCLK GPIO REGISTER CS SO 8 GPIO[7:0] SPI SI IRQ 1 kΩ (3.3 V) 1.5 kΩ (2.5 V) VDD I2C/SPI 002aab838 VSS Fig 2. Block diagram of PCA9502 SPI interface PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 2 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface 6. Pinning information 19 GPIO5 20 GPIO6 21 GPIO7 22 VDD terminal 1 index area 23 VSS 24 VDD 19 GPIO5 20 GPIO6 terminal 1 index area 22 VDD 21 GPIO7 24 VDD 23 VSS 6.1 Pinning RESET 1 18 GPIO4 RESET 1 18 GPIO4 VDD 2 VDD 2 VDD 3 17 VSS 16 GPIO3 VDD 3 17 VSS 16 GPIO3 VDD 4 15 GPIO2 VSS 4 A0 5 14 GPIO1 CS 5 14 GPIO1 A1 6 13 GPIO0 SI 6 13 GPIO0 Transparent top view a. I2C-bus interface 9 SCLK VSS 15 GPIO2 IRQ 12 8 VSS 10 VDD 11 7 002aab839 PCA9502BS SO IRQ 12 9 SDA VDD 11 8 VSS 10 7 n.c. SCL PCA9502BS 002aab840 Transparent top view b. SPI interface Fig 3. Pin configuration for HVQFN24 6.2 Pin description Table 2. Pin description Symbol Pin Type Description RESET 1 I VDD 2, 3, 11, 22, 24 power supply I2C/SPI 4 I I2C-bus or SPI interface select. I2C-bus interface is selected if this pin is at logic HIGH. SPI interface is selected if this pin is at logic LOW. CS/A0 5 I SPI chip select or I2C-bus device address select A0. If SPI configuration is selected by I2C/SPI pin, this pin is the SPI chip select pin (Schmitt trigger, active LOW). If I2C-bus configuration is selected by I2C/SPI pin, this pin along with A1 pin allows user to change the device’s base address. SI/A1 6 I SPI data input pin or I2C-bus device address select A1. If SPI configuration is selected by I2C/SPI pin, this is the SPI data input pin. If I2C-bus configuration is selected by I2C/SPI pin, this pin along with A0 pin allows user to change the device’s base address. To select the device address, please refer to Table 11. SO 7 O SPI data output pin. If SPI configuration is selected by I2C/SPI pin, this is a 3-stateable output pin. If I2C-bus configuration is selected by I2C/SPI pin, this pin function is undefined and must be left as n.c. (not connected). SCL/SCLK 8 I I2C-bus or SPI input clock. SDA 9 I/O I2C-bus data input/output, open-drain if I2C-bus configuration is selected by I2C/SPI pin. If SPI configuration is selected then this pin is an undefined pin and must be connected to VSS. device hardware reset (active LOW)[1] PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 3 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface Table 2. Pin description …continued Symbol Pin Type Description IRQ 12 O Interrupt (open-drain, active LOW). Interrupt is enabled when interrupt sources are enabled in the I/O Interrupt Enable register (IOIntEna). The interrupt condition is the change of state of the input pins. An external resistor (1 kΩ for 3.3 V, 1.5 kΩ for 2.5 V) must be connected between this pin and VDD. GPIO0 13 I/O programmable I/O pin GPIO1 14 I/O programmable I/O pin GPIO2 15 I/O programmable I/O pin GPIO3 16 I/O programmable I/O pin GPIO4 18 I/O programmable I/O pin GPIO5 19 I/O programmable I/O pin GPIO6 20 I/O programmable I/O pin GPIO7 21 I/O programmable I/O pin VSS 10, 17, 23 - ground VSS center pad - The center pad on the back side of the HVQFN24 package is metallic and should be connected to ground on the printed-circuit board. [1] See Section 7.1 “Hardware reset, Power-On Reset (POR) and software reset” 7. Functional description The device interfaces to a host through either I2C-bus or SPI interface (selectable through I2C/SPI pin), and provides the host with eight programmable GPIO pins. 7.1 Hardware reset, Power-On Reset (POR) and software reset These three reset methods are identical and will reset the internal registers as indicated in Table 3. Table 3 summarizes the state of registers after reset. Table 3. Registers after reset Register Reset state I/O direction all bits cleared I/O interrupt enable all bits cleared I/O control all bits cleared Table 4 summarizes the state of hardware pins after reset. Table 4. Signals after reset Signal Reset state I/Os inputs IRQ HIGH by external pull-up PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 4 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface 7.2 Interrupts The PCA9502 has interrupt generation capability. The interrupt enable register (IOIntEna) enables interrupts due to I/O pin change of state, and the IRQ signal in response to an interrupt generation. 8. Register descriptions The programming combinations for register selection are shown in Table 5. Table 5. Table 6. Register map - read/write properties Register name Read mode Write mode IODir I/O pin direction I/O pin direction IOState I/O pin states n/a IOIntEna I/O interrupt enable register I/O interrupt enable register IOControl I/O pins control I/O pins control PCA9502 internal registers Register Register address Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 R/W General Register Set 0x0A[1] IODir bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 R/W 0x0B[1] IOState bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 R/W 0x0C[1] IOIntEna bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 R/W 0x0D[1] reserved reserved reserved reserved reserved reserved reserved reserved reserved [2] [2] [2] [2] [2] [2] [2] [2] [2] reserved reserved reserved reserved SReset reserved reserved IOLatch [2] [2] [2] [2] [2] [2] 0x0E[1] IOControl [1] Other addresses 0x00 through 0x09, 0x0F are reserved and should not be accessed (read or write). [2] These bits are reserved and should be set to 0. R/W 8.1 Programmable I/O pins Direction register (IODir) This register is used to program the I/O pins direction. Bit 0 to bit 7 control GPIO0 to GPIO7. Table 7. IODir register (address 0x0A) bit description Bit Symbol Description 7:0 IODir set GPIO pins 7:0 to input or output 0 = input 1 = output Remark: If there is a pending input (GPIO) interrupt and IODir is written, this pending interrupt will be cleared, that is, the interrupt signal will be negated. PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 5 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface 8.2 Programmable I/O pins State register (IOState) When ‘read’, this register returns the actual state of all I/O pins. When ‘write’, each register bit will be transferred to the corresponding IO pin programmed as output. Table 8. IOState register (address 0x0B) bit description Bit Symbol Description 7:0 IOState Write this register: set the logic level on the output pins 0 = set output pin to zero 1 = set output pin to one Read this register: return states of all pins 8.3 I/O Interrupt Enable register (IOIntEna) This register enables the interrupt due to a change in the I/O configured as inputs. Table 9. IOIntEna register (address 0x0C) bit description Bit Symbol Description 7:0 IOIntEna input interrupt enable 0 = a change in the input pin will not generate an interrupt 1 = a change in the input will generate an interrupt 8.4 I/O Control register (IOControl) Table 10. IOControl register (address 0x0E) bit description Bit Symbol Description 7:4 - reserved for future use 3 SReset software reset A write to this bit will reset the device. Once the device is reset this bit is automatically set to 0. 2:1 - reserved for future use 0 IOLatch enable/disable inputs latching 0 = input values are not latched. A change in any input generates an interrupt. A read of the input register clears the interrupt. If the input goes back to its initial logic state before the input register is read, then the interrupt is cleared. 1 = input values are latched. A change in the input generates an interrupt and the input logic value is loaded in the bit of the corresponding input state register (IOState). A read of the IOState register clears the interrupt. If the input pin goes back to its initial logic state before the interrupt register is read, then the interrupt is not cleared and the corresponding bit of the IOState register keeps the logic value that initiates the interrupt. Example: If GPIO4 input was as logic 0 and the input goes to logic 1 then back to logic 0, the IOState register will capture this change and an interrupt is generated (if enabled). When the read is performed on the IOState register, the interrupt is de-asserted, assuming there were no additional input(s) that changed, and bit 4 of the IOState register will read ‘1’. The next read of the IOState register should now read ‘0’. PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 6 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface 9. I2C-bus operation The two lines of the I2C-bus are a serial data line (SDA) and a serial clock line (SCL). Both lines are connected to a positive supply via a pull-up resistor, and remain HIGH when the bus is not busy. Each device is recognized by a unique address whether it is a microcomputer, LCD driver, memory or keyboard interface and can operate as either a transmitter or receiver, depending on the function of the device. A device generating a message or data is a transmitter, and a device receiving the message or data is a receiver. Obviously, a passive function like an LCD driver could only be a receiver, while a microcontroller or a memory can both transmit and receive data. 9.1 Data transfers One data bit is transferred during each clock pulse (see Figure 4). The data on the SDA line must remain stable during the HIGH period of the clock pulse in order to be valid. Changes in the data line at this time will be interpreted as control signals. A HIGH-to-LOW transition of the data line (SDA) while the clock signal (SCL) is HIGH indicates a START condition, and a LOW-to-HIGH transition of the SDA while SCL is HIGH defines a STOP condition (see Figure 5). The bus is considered to be busy after the START condition and free again at a certain time interval after the STOP condition. The START and STOP conditions are always generated by the master. SDA SCL data line stable; data valid change of data allowed mba607 Fig 4. Bit transfer on the I2C-bus SDA SDA SCL SCL S P START condition STOP condition mba608 Fig 5. START and STOP conditions The number of data bytes transferred between the START and STOP condition from transmitter to receiver is not limited. Each byte, which must be eight bits long, is transferred serially with the most significant bit first, and is followed by an acknowledge bit. (see Figure 6). The clock pulse related to the acknowledge bit is generated by the master. The device that acknowledges has to pull down the SDA line during the acknowledge clock pulse, while the transmitting device releases this pulse (see Figure 7). PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 7 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface acknowledgement signal from receiver SDA MSB SCL 0 S 1 6 7 8 0 1 2 to 7 ACK START condition 8 P ACK byte complete, interrupt within receiver STOP condition clock line held LOW while interrupt is serviced 002aab012 Fig 6. Data transfer on the I2C-bus data output by transmitter transmitter stays off of the bus during the acknowledge clock data output by receiver SCL from master acknowledgement signal from receiver S 0 1 6 7 8 002aab013 START condition Fig 7. Acknowledge on the I2C-bus A slave receiver must generate an acknowledge after the reception of each byte, and a master must generate one after the reception of each byte clocked out of the slave transmitter. There is an exception to the ‘acknowledge after every byte’ rule. It occurs when a master is a receiver: it must signal an end of data to the transmitter by not signalling an acknowledge on the last byte that has been clocked out of the slave. The acknowledge related clock, generated by the master should still take place, but the SDA line will not be pulled down. In order to indicate that this is an active and intentional lack of acknowledgement, we shall term this special condition as a ‘negative acknowledge’. 9.2 Addressing and transfer formats Each device on the bus has its own unique address. Before any data is transmitted on the bus, the master transmits on the bus the address of the slave to be accessed for this transaction. A well-behaved slave with a matching address, if it exists on the network, should of course acknowledge the master's addressing. The addressing is done by the first byte transmitted by the master after the START condition. An address on the network is seven bits long, appearing as the most significant bits of the address byte. The last bit is a direction (R/W) bit. A ‘0’ indicates that the master is transmitting (write) and a ‘1’ indicates that the master requests data (read). A complete data transfer, comprised of an address byte indicating a ‘write’ and two data bytes is shown in Figure 8. PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 8 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface SDA SCL S START condition 0 to 6 address 7 8 0 to 6 R/W ACK data 7 8 0 to 6 ACK data 7 8 P ACK STOP condition 002aab046 Fig 8. A complete data transfer When an address is sent, each device in the system compares the first seven bits after the START with its own address. If there is a match, the device will consider itself addressed by the master, and will send an acknowledge. The device could also determine if in this transaction it is assigned the role of a slave receiver or slave transmitter, depending on the R/W bit. Each node of the I2C-bus network has a unique seven-bit address. The address of a microcontroller is of course fully programmable, while peripheral devices usually have fixed and programmable address portions. When the master is communicating with one device only, data transfers follow the format of Figure 8, where the R/W bit could indicate either direction. After completing the transfer and issuing a STOP condition, if a master would like to address some other device on the network, it could start another transaction by issuing a new START. Another way for a master to communicate with several different devices would be by using a ‘repeated START’. After the last byte of the transaction was transferred, including its acknowledge (or negative acknowledge), the master issues another START, followed by address byte and data, without effecting a STOP. The master may communicate with a number of different devices, combining ‘reads’ and ‘writes’. After the last transfer takes place, the master issues a STOP and releases the bus. Possible data formats are demonstrated in Figure 9. Note that the repeated START allows for both change of a slave and a change of direction, without releasing the bus. We shall see later on that the change of direction feature can come in handy even when dealing with a single device. In a single master system, the repeated START mechanism may be more efficient than terminating each transfer with a STOP and starting again. In a multimaster environment, the determination of which format is more efficient could be more complicated, as when a master is using repeated STARTs it occupies the bus for a long time and thus preventing other devices from initiating transfers. PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 9 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface data transferred (n bytes + acknowledge) master write: S SLAVE ADDRESS START condition W write A DATA acknowledge A DATA acknowledge A P acknowledge STOP condition data transferred (n bytes + acknowledge) master read: S SLAVE ADDRESS START condition R read A DATA acknowledge A DATA acknowledge NA P not acknowledge STOP condition data transferred (n bytes + acknowledge) combined formats: S SLAVE ADDRESS R/W START condition read or write A DATA acknowledge A acknowledge data transferred (n bytes + acknowledge) Sr SLAVE ADDRESS R/W repeated START condition read or write A DATA acknowledge direction of transfer may change at this point A P acknowledge STOP condition 002aab458 Fig 9. I2C-bus data formats PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 10 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface 9.3 Addressing Before any data is transmitted or received, the master must send the address of the receiver via the SDA line. The first byte after the START condition carries the address of the slave device and the read/write bit. Table 11 shows how the PCA9502’s address can be selected by using A1 and A0 pins. For example, if these 2 pins are connected to VDD, then the PCA9502’s address is set to 0x90, and the master communicates with it through this address. Table 11. PCA9502 address map A1 A0 PCA9502 I2C-bus addresses (hex)[1] VDD VDD 0x90 (1001 000X) VDD VSS 0x92 (1001 001X) VDD SCL 0x94 (1001 010X) VDD SDA 0x96 (1001 011X) VSS VDD 0x98 (1001 100X) VSS VSS 0x9A (1001 101X) VSS SCL 0x9C (1001 110X) VSS SDA 0x9E (1001 111X) SCL VDD 0xA0 (1010 000X) SCL VSS 0xA2 (1010 001X) SCL SCL 0xA4 (1010 010X) SCL SDA 0xA6 (1010 011X) SDA VDD 0xA8 (1010 100X) SDA VSS 0xAA (1010 101X) SDA SCL 0xAC (1010 110X) SDA SDA 0xAE (1010 111X) [1] X = logic 0 for write cycle; X = logic 1 for read cycle. 9.4 Use of sub-addresses When a master communicates with the PCA9502 it must send a sub-address in the byte following the slave address byte. This sub-address is the internal address of the word the master wants to access for a single byte transfer, or the beginning of a sequence of locations for a multi-byte transfer. A sub-address is an 8-bit byte. Unlike the device address, it does not contain a direction (R/W) bit, and like any byte transferred on the bus it must be followed by an acknowledge. A register write cycle is shown in Figure 10. The START is followed by a slave address byte with the direction bit set to ‘write’, a sub-address byte, a number of data bytes, and a STOP signal. The sub-address indicates which register the master wants to access. and the data bytes which follow will be written one after the other to the sub-address location. PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 11 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface S SLAVE ADDRESS W A REGISTER ADDRESS A nDATA A P 002aab047 White block: host to PCA9502 Grey block: PCA9502 to host Fig 10. Master writes to slave The register read cycle (see Figure 11) commences in a similar manner, with the master sending a slave address with the direction bit set to ‘write’ with a following sub-address. Then, in order to reverse the direction of the transfer, the master issues a repeated START followed again by the device address, but this time with the direction bit set to ‘read’. The data bytes starting at the internal sub-address will be clocked out of the device, each followed by a master-generated acknowledge. The last byte of the read cycle will be followed by a negative acknowledge, signalling the end of transfer. The cycle is terminated by a STOP signal. S SLAVE ADDRESS W A REGISTER ADDRESS A S nDATA SLAVE ADDRESS A LAST DATA R A NA P 002aab048 White block: host to PCA9502 Grey block: PCA9502 to host Fig 11. Master read from Slave Table 12. Register address byte (I2C-bus) Bit Name Function 7 - not used 6:3 A[3:0] internal register select 2:1 - not used, set to 0 0 - not used PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 12 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface 10. SPI operation SCLK SI R/W A3 A2 A1 A0 0 0 X D7 D6 D5 D4 D3 D2 D1 D0 002aab925 R/W = 0; A[3:0] = register address a. Register write SCLK SI R/W A3 A2 A1 A0 0 0 X D7 SO D6 D5 D4 D3 D2 D1 D0 002aab926 R/W = 1; A[3:0] = register address b. Register read Fig 12. SPI operation Table 13. Register address byte (SPI) Bit Name Function 7 R/W 1: read from PCA9502 0: write to PCA9502 6:3 A[3:0] internal register select 2:1 - not used, set to 0 0 - not used 11. Limiting values Table 14. Limiting values In accordance with the Absolute Maximum Rating System (IEC 60134). Symbol Parameter Min Max Unit VDD supply voltage −0.3 +4.6 V VI input voltage any input −0.3 +5.5[1] V II input current any input −10 +10 mA IO output current any output −10 +10 mA Ptot total power dissipation - 300 mW P/out power dissipation per output - 50 mW Tamb ambient temperature −40 +85 °C Tstg storage temperature −65 +150 °C [1] Conditions 5.5 V steady state voltage tolerance on inputs and outputs is valid only when the supply voltage is present. 4.6 V steady state voltage tolerance on inputs and outputs when no supply voltage is present. PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 13 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface 12. Static characteristics Table 15. Static characteristics VDD = (2.5 V ± 0.2 V) or (3.3 V ± 0.3 V); Tamb = −40 °C to +85 °C; unless otherwise specified. Symbol Parameter Conditions VDD = 2.5 V VDD = 3.3 V Unit Min Max Min Max 2.3 2.7 3.0 3.6 V operating; no load - 750 - 750 µA static; no load - 600 - 600 µA 1.6 5.5[1] 2.0 5.5[1] V - 0.6 - 0.8 V - 1 - 1 µA - 3 - 3 pF 1.85 - - - V IOH = −4 mA - - 2.4 - V IOL = 1.6 mA - 0.4 - - V IOL = 4 mA - - - 0.4 V - 4 - 4 pF Supplies VDD supply voltage IDD supply current Inputs I2C/SPI VIH HIGH-level input voltage VIL LOW-level input voltage IL leakage current Ci input capacitance input; VI = 0 V or 5.5 V[1] Output SO VOH VOL Co HIGH-level output voltage LOW-level output voltage IOH = −400 µA output capacitance Inputs/outputs GPIO0 to GPIO7 VIH HIGH-level input voltage 1.6 5.5[1] 2.0 5.5[1] V VIL LOW-level input voltage - 0.6 - 0.8 V VOH HIGH-level output voltage 1.85 - - - V IOH = −4 mA - - 2.4 - V IOL = 1.6 mA - 0.4 - - V IOL = 4 mA - - - 0.4 V input; VI = 0 V or 5.5 V[1] - 1 - 1 µA - 4 - 4 pF IOL = 1.6 mA - 0.4 - - V IOL = 4 mA - - - 0.4 V - 4 - 4 pF VOL LOW-level output voltage IL leakage current Co output capacitance IOH = −400 µA Output IRQ VOL Co I2C-bus LOW-level output voltage output capacitance input/output SDA VIH HIGH-level input voltage 1.6 5.5[1] 2.0 5.5[1] V VIL LOW-level input voltage - 0.6 - 0.8 V VOL LOW-level output voltage IOL = 1.6 mA - 0.4 - - V IOL = 4 mA - - - 0.4 V IL leakage current input; VI = 0 V or 5.5 V[1] - 10 - 10 µA Co output capacitance - 7 - 7 pF PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 14 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface Table 15. Static characteristics …continued VDD = (2.5 V ± 0.2 V) or (3.3 V ± 0.3 V); Tamb = −40 °C to +85 °C; unless otherwise specified. Symbol I2C-bus Parameter Conditions VDD = 2.5 V VDD = 3.3 V Min Max Min Max Unit inputs SCL, CS/A0, SI/A1 VIH HIGH-level input voltage 1.6 5.5[1] 2.0 5.5[1] V VIL LOW-level input voltage - 0.6 - 0.8 V IL leakage current - 10 - 10 µA Ci input capacitance - 7 - 7 pF [1] input; VI = 0 V or 5.5 V[1] 5.5 V steady state voltage tolerance on inputs and outputs is valid only when the supply voltage is present. 3.8 V steady state voltage tolerance on inputs and outputs when no supply voltage is present. 13. Dynamic characteristics Table 16. I2C-bus timing specifications All the timing limits are valid within the operating supply voltage, ambient temperature range and output load; VDD = (2.5 V ± 0.2 V) or (3.3 V ± 0.3 V); Tamb = −40 °C to +85 °C; refer to VIL and VIH with an input voltage of VSS to VDD. All output load = 25 pF, except SDA output load = 400 pF.[1] Symbol Parameter Conditions Standard-mode I2C-bus [2] Fast-mode I2C-bus Min Max Min Max 0 100 0 400 Unit fSCL SCL clock frequency tBUF bus free time between a STOP and START condition 4.7 - 1.3 - µs tHD;STA hold time (repeated) START condition 4.0 - 0.6 - µs tSU;STA set-up time for a repeated START condition 4.7 - 0.6 - µs tSU;STO set-up time for STOP condition 4.7 - 0.6 - µs tHD;DAT data hold time 0 - 0 - ns tVD;ACK data valid acknowledge time - 0.6 - 0.6 µs SCL LOW to data out valid kHz tVD;DAT data valid time - 0.6 - 0.6 ns tSU;DAT data set-up time 250 - 150 - ns tLOW LOW period of the SCL clock 4.7 - 1.3 - µs tHIGH HIGH period of the SCL clock 4.0 - 0.6 - µs tf fall time of both SDA and SCL signals - 300 - 300 ns tr rise time of both SDA and SCL signals - 1000 - 300 ns tSP pulse width of spikes that must be suppressed by the input filter - 50 - 50 ns td1 I2C-bus GPIO output valid time 0.5 - 0.5 - µs td4 I2C input pin interrupt valid time 0.2 - 0.2 - µs td5 I2C input pin interrupt clear time 0.2 - 0.2 - µs [1] A detailed description of the I2C-bus specification, with applications, is given in brochure “The I2C-bus and how to use it”. This brochure may be ordered using the code 9398 393 40011. [2] Minimum SCL clock frequency is limited by the bus time-out feature, which resets the serial bus interface if SDA is held LOW for a minimum of 25 ms. PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 15 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface START condition (S) protocol tSU;STA bit 7 MSB (A7) tLOW bit 0 LSB (R/W) bit 6 (A6) tHIGH STOP condition (P) acknowledge (A) 1/f SCL SCL tBUF tf tr tSP SDA tSU;DAT tHD;STA tVD;ACK tVD;DAT tHD;DAT tSU;STO 002aab489 Rise and fall times refer to VIL and VIH. Fig 13. I2C-bus timing diagram SDA SLAVE ADDRESS W A A IOSTATE REG. A A DATA td1 GPIOn 002aab255 Fig 14. Write to output ACK from slave SDA SLAVE ADDRESS W A A IOSTATE REG. A ACK from slave S SLAVE ADDRESS R A ACK from master DATA A P IRQ td4 GPIOn td5 002aab877 Fig 15. GPIO pin interrupt PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 16 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface Table 17. SPI-bus timing specifications All the timing limits are valid within the operating supply voltage, ambient temperature range and output load; VDD = (2.5 V ± 0.2 V) or (3.3 V ± 0.3 V); Tamb = −40 °C to +85 °C; and refer to VIL and VIH with an input voltage of VSS to VDD. All output load = 25 pF, unless otherwise specified. Symbol Parameter Conditions td(CS_NH-SOZ) CS HIGH to SO 3-state delay time VDD = 2.5 V VDD = 3.3 V Unit Min Max Min Max - 100 - 100 ns CL = 100 pF tsu(CS_N-SCLK) CS to SCLK setup time 100 - 100 - ns th(CS_N-SCLK) CS to SCLK hold time 20 - 20 - ns td(SCLK-SO) SCLK fall to SO valid delay time - 25 - 20 ns tsu(SI-SCLK) SI to SCLK setup time 10 - 20 - ns th(SI-SCLK) SI to SCLK hold time TSCLK SCLK period tSCLKH CL = 100 pF 10 - 10 - ns 83 - 67 - ns SCLK HIGH time 30 - 25 - ns tSCLKL SCLK LOW time 30 - 25 - ns tw(CS_NH) CS HIGH pulse width 200 - 200 - ns td9 SPI output data valid time 200 - 200 - ns td13 SPI interrupt clear time 200 - 200 - ns tSCLKL + tSCLKL CS th(CS_N-SCLK) tsu(CS_N-SCLK) tSCLKL tSCLKH th(CS_N-SCLK) tw(CS_NH) SCLK th(SI-SCLK) tsu(SI-SCLK) SI td(SCLK-SO) td(CS_N-SOZ) SO 002aac429 Fig 16. Detailed SPI-bus timing CS SCLK SI R/W A3 A2 A1 A0 0 0 X D7 D6 D5 D4 D3 D2 D1 D0 td9 GPIOn 002aab878 R/W = 0; A[3:0] = IOState (0x0B) Fig 17. SPI write IOState to GPIO switch PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 17 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface CS SCLK SI R/W A3 A2 A1 A0 0 0 X D7 SO D6 D5 D4 D3 D2 D1 D0 td13 IRQ 002aab879 R/W = 1; A[3:0] = IOState (0x0B) Fig 18. Read IOState to clear GPIO INT PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 18 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface 14. Package outline HVQFN24: plastic thermal enhanced very thin quad flat package; no leads; 24 terminals; body 4 x 4 x 0.85 mm A B D SOT616-3 terminal 1 index area A A1 E c detail X e1 C 1/2 e e 12 y y1 C v M C A B w M C b 7 L 13 6 e e2 Eh 1/2 e 1 18 terminal 1 index area 24 19 X Dh 0 2.5 5 mm scale DIMENSIONS (mm are the original dimensions) UNIT A(1) max. A1 b c D (1) Dh E (1) Eh e e1 e2 L v w y y1 mm 1 0.05 0.00 0.30 0.18 0.2 4.1 3.9 2.75 2.45 4.1 3.9 2.75 2.45 0.5 2.5 2.5 0.5 0.3 0.1 0.05 0.05 0.1 Note 1. Plastic or metal protrusions of 0.075 mm maximum per side are not included. REFERENCES OUTLINE VERSION IEC JEDEC JEITA SOT616-3 --- MO-220 --- EUROPEAN PROJECTION ISSUE DATE 04-11-19 05-03-10 Fig 19. Package outline SOT616-3 (HVQFN24) PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 19 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface 15. Handling information Inputs and outputs are protected against electrostatic discharge in normal handling. However, to be completely safe you must take normal precautions appropriate to handling integrated circuits. 16. Soldering This text provides a very brief insight into a complex technology. A more in-depth account of soldering ICs can be found in Application Note AN10365 “Surface mount reflow soldering description”. 16.1 Introduction to soldering Soldering is one of the most common methods through which packages are attached to Printed Circuit Boards (PCBs), to form electrical circuits. The soldered joint provides both the mechanical and the electrical connection. There is no single soldering method that is ideal for all IC packages. Wave soldering is often preferred when through-hole and Surface Mount Devices (SMDs) are mixed on one printed wiring board; however, it is not suitable for fine pitch SMDs. Reflow soldering is ideal for the small pitches and high densities that come with increased miniaturization. 16.2 Wave and reflow soldering Wave soldering is a joining technology in which the joints are made by solder coming from a standing wave of liquid solder. The wave soldering process is suitable for the following: • Through-hole components • Leaded or leadless SMDs, which are glued to the surface of the printed circuit board Not all SMDs can be wave soldered. Packages with solder balls, and some leadless packages which have solder lands underneath the body, cannot be wave soldered. Also, leaded SMDs with leads having a pitch smaller than ~0.6 mm cannot be wave soldered, due to an increased probability of bridging. The reflow soldering process involves applying solder paste to a board, followed by component placement and exposure to a temperature profile. Leaded packages, packages with solder balls, and leadless packages are all reflow solderable. Key characteristics in both wave and reflow soldering are: • • • • • • Board specifications, including the board finish, solder masks and vias Package footprints, including solder thieves and orientation The moisture sensitivity level of the packages Package placement Inspection and repair Lead-free soldering versus PbSn soldering 16.3 Wave soldering Key characteristics in wave soldering are: PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 20 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface • Process issues, such as application of adhesive and flux, clinching of leads, board transport, the solder wave parameters, and the time during which components are exposed to the wave • Solder bath specifications, including temperature and impurities 16.4 Reflow soldering Key characteristics in reflow soldering are: • Lead-free versus SnPb soldering; note that a lead-free reflow process usually leads to higher minimum peak temperatures (see Figure 20) than a PbSn process, thus reducing the process window • Solder paste printing issues including smearing, release, and adjusting the process window for a mix of large and small components on one board • Reflow temperature profile; this profile includes preheat, reflow (in which the board is heated to the peak temperature) and cooling down. It is imperative that the peak temperature is high enough for the solder to make reliable solder joints (a solder paste characteristic). In addition, the peak temperature must be low enough that the packages and/or boards are not damaged. The peak temperature of the package depends on package thickness and volume and is classified in accordance with Table 18 and 19 Table 18. SnPb eutectic process (from J-STD-020C) Package thickness (mm) Package reflow temperature (°C) Volume (mm3) < 350 ≥ 350 < 2.5 235 220 ≥ 2.5 220 220 Table 19. Lead-free process (from J-STD-020C) Package thickness (mm) Package reflow temperature (°C) Volume (mm3) < 350 350 to 2000 > 2000 < 1.6 260 260 260 1.6 to 2.5 260 250 245 > 2.5 250 245 245 Moisture sensitivity precautions, as indicated on the packing, must be respected at all times. Studies have shown that small packages reach higher temperatures during reflow soldering, see Figure 20. PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 21 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface maximum peak temperature = MSL limit, damage level temperature minimum peak temperature = minimum soldering temperature peak temperature time 001aac844 MSL: Moisture Sensitivity Level Fig 20. Temperature profiles for large and small components For further information on temperature profiles, refer to Application Note AN10365 “Surface mount reflow soldering description”. 17. Abbreviations Table 20. Abbreviations Acronym Description GPIO General Purpose Input/Output I2C-bus Inter Integrated Circuit bus I/O Input/Output LCD Liquid Crystal Display POR Power-On Reset SPI Serial Peripheral Interface PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 22 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface 18. Revision history Table 21. Revision history Document ID Release date Data sheet status Change notice Supersedes PCA9502_3 20061013 Product data sheet - PCA9502_2 Modifications: • The format of this data sheet has been redesigned to comply with the new identity guidelines of NXP Semiconductors. • • Legal texts have been adapted to the new company name where appropriate. Table 15 “Static characteristics”, sub-section “Supplies”: – IDD, supply current, operating; no load: changed maximum limit from 6.0 mA to 750 µA for both 2.5 V and 3.3 V supply voltage ranges – IDD, supply current: added “static; no load” Conditions (max 600 µA) PCA9502_2 20060803 Product data sheet - PCA9502_1 PCA9502_1 20060707 Product data sheet - - PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 23 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface 19. Legal information 19.1 Data sheet status Document status[1][2] Product status[3] Definition Objective [short] data sheet Development This document contains data from the objective specification for product development. Preliminary [short] data sheet Qualification This document contains data from the preliminary specification. Product [short] data sheet Production This document contains the product specification. [1] Please consult the most recently issued document before initiating or completing a design. [2] The term ‘short data sheet’ is explained in section “Definitions”. [3] The product status of device(s) described in this document may have changed since this document was published and may differ in case of multiple devices. The latest product status information is available on the Internet at URL http://www.nxp.com. 19.2 Definitions Draft — The document is a draft version only. The content is still under internal review and subject to formal approval, which may result in modifications or additions. NXP Semiconductors does not give any representations or warranties as to the accuracy or completeness of information included herein and shall have no liability for the consequences of use of such information. Short data sheet — A short data sheet is an extract from a full data sheet with the same product type number(s) and title. A short data sheet is intended for quick reference only and should not be relied upon to contain detailed and full information. For detailed and full information see the relevant full data sheet, which is available on request via the local NXP Semiconductors sales office. In case of any inconsistency or conflict with the short data sheet, the full data sheet shall prevail. 19.3 Disclaimers General — Information in this document is believed to be accurate and reliable. However, NXP Semiconductors does not give any representations or warranties, expressed or implied, as to the accuracy or completeness of such information and shall have no liability for the consequences of use of such information. Right to make changes — NXP Semiconductors reserves the right to make changes to information published in this document, including without limitation specifications and product descriptions, at any time and without notice. This document supersedes and replaces all information supplied prior to the publication hereof. Suitability for use — NXP Semiconductors products are not designed, authorized or warranted to be suitable for use in medical, military, aircraft, space or life support equipment, nor in applications where failure or malfunction of a NXP Semiconductors product can reasonably be expected to result in personal injury, death or severe property or environmental damage. NXP Semiconductors accepts no liability for inclusion and/or use of NXP Semiconductors products in such equipment or applications and therefore such inclusion and/or use is at the customer’s own risk. Applications — Applications that are described herein for any of these products are for illustrative purposes only. NXP Semiconductors makes no representation or warranty that such applications will be suitable for the specified use without further testing or modification. Limiting values — Stress above one or more limiting values (as defined in the Absolute Maximum Ratings System of IEC 60134) may cause permanent damage to the device. Limiting values are stress ratings only and operation of the device at these or any other conditions above those given in the Characteristics sections of this document is not implied. Exposure to limiting values for extended periods may affect device reliability. Terms and conditions of sale — NXP Semiconductors products are sold subject to the general terms and conditions of commercial sale, as published at http://www.nxp.com/profile/terms, including those pertaining to warranty, intellectual property rights infringement and limitation of liability, unless explicitly otherwise agreed to in writing by NXP Semiconductors. In case of any inconsistency or conflict between information in this document and such terms and conditions, the latter will prevail. No offer to sell or license — Nothing in this document may be interpreted or construed as an offer to sell products that is open for acceptance or the grant, conveyance or implication of any license under any copyrights, patents or other industrial or intellectual property rights. 19.4 Trademarks Notice: All referenced brands, product names, service names and trademarks are the property of their respective owners. I2C-bus — logo is a trademark of NXP B.V. 20. Contact information For additional information, please visit: http://www.nxp.com For sales office addresses, send an email to: [email protected] PCA9502_3 Product data sheet © NXP B.V. 2006. All rights reserved. Rev. 03 — 13 October 2006 24 of 25 PCA9502 NXP Semiconductors 8-bit I/O expander with I2C-bus/SPI interface 21. Contents 1 2 2.1 2.2 2.3 3 4 5 6 6.1 6.2 7 7.1 7.2 8 8.1 8.2 8.3 8.4 9 9.1 9.2 9.3 9.4 10 11 12 13 14 15 16 16.1 16.2 16.3 16.4 17 18 19 19.1 19.2 19.3 General description . . . . . . . . . . . . . . . . . . . . . . 1 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 General features . . . . . . . . . . . . . . . . . . . . . . . . 1 I2C-bus features . . . . . . . . . . . . . . . . . . . . . . . . 1 SPI features . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Ordering information . . . . . . . . . . . . . . . . . . . . . 2 Block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Pinning information . . . . . . . . . . . . . . . . . . . . . . 3 Pinning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Pin description . . . . . . . . . . . . . . . . . . . . . . . . . 3 Functional description . . . . . . . . . . . . . . . . . . . 4 Hardware reset, Power-On Reset (POR) and software reset . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Register descriptions . . . . . . . . . . . . . . . . . . . . 5 Programmable I/O pins Direction register (IODir) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Programmable I/O pins State register (IOState) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 I/O Interrupt Enable register (IOIntEna) . . . . . . 6 I/O Control register (IOControl). . . . . . . . . . . . . 6 2 I C-bus operation . . . . . . . . . . . . . . . . . . . . . . . . 7 Data transfers . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Addressing and transfer formats. . . . . . . . . . . . 8 Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Use of sub-addresses. . . . . . . . . . . . . . . . . . . 11 SPI operation . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Limiting values. . . . . . . . . . . . . . . . . . . . . . . . . 13 Static characteristics. . . . . . . . . . . . . . . . . . . . 14 Dynamic characteristics . . . . . . . . . . . . . . . . . 15 Package outline . . . . . . . . . . . . . . . . . . . . . . . . 19 Handling information. . . . . . . . . . . . . . . . . . . . 20 Soldering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Introduction to soldering . . . . . . . . . . . . . . . . . 20 Wave and reflow soldering . . . . . . . . . . . . . . . 20 Wave soldering . . . . . . . . . . . . . . . . . . . . . . . . 20 Reflow soldering . . . . . . . . . . . . . . . . . . . . . . . 21 Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Revision history . . . . . . . . . . . . . . . . . . . . . . . . 23 Legal information. . . . . . . . . . . . . . . . . . . . . . . 24 Data sheet status . . . . . . . . . . . . . . . . . . . . . . 24 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Disclaimers . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 19.4 20 21 Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Contact information . . . . . . . . . . . . . . . . . . . . 24 Contents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Please be aware that important notices concerning this document and the product(s) described herein, have been included in section ‘Legal information’. © NXP B.V. 2006. All rights reserved. For more information, please visit: http://www.nxp.com For sales office addresses, please send an email to: [email protected] Date of release: 13 October 2006 Document identifier: PCA9502_3