24-bit Enhanced port expander with Keypad and PWM controller
Xpander logic
Features
■ 24 GPIOs
■ Operating voltage 1.8V
■ Hardware key pad controller (8*12 matrix ma x)
■ 3 PWM (8 bit) output for LED brightness control
and blinking
■ Interrupt output (open drain) pin
■ Configurable hotkey feature on each GPIO
■ Ul tr a-l ow St an db y- mo de cu rr ent
■ Package TFBGA - 36 pins 3.6x3.6mm, pitch
0.5mm
Description
The STMPE2401 is a GPIO (General Purpose
Input / output) port expander able to interface a
Main Digital ASIC via the two-line bidirectional
bus (I2C); separate GPIO Expander IC is often
used in Mobile-Multimedia platforms to solve the
problems of the limited amounts of GPIOs usually
available on the Digital Engine.
TFBGA
The STMPE2401 offers great flexibility as each
I/Os is configurable as input, output or specific
functions; it's able to scan a keyboard, also
provides PWM outputs for brightness control in
backlight, rotator decoder interface and GPIO.
This device has been designed very low
quiescent current, and is including a wake up
feature for each I/O, to optimize the power
consumption of the IC.
Potential application of the STMPE2401 includes
portable media player, game console, mobile
phone, smart phone
Alternate Function 1 Alternate Function 2 Alternate Function 3
17KP_Y1GPIO 9 Keypad output 1
18KP_Y0GPIO 8 Keypad output 0
20ADDR0GPIO 15
21KP_Y9GPIO 18Keypad output 9Rotator 0
22KP_Y10GPIO 19Keypad output 10Rotator 1
23KP_Y11GPIO 20Keypad output 11Rotator 2
24PWM3GPIO 23Channel 3
25PWM2GPIO 22Channel 2
26PWM1GPIO 21Channel 1
30KP_Y8GPIO 17Keypad output 8ClkOut
31KP_Y7GPIO 16Keypad output 7
32KP_Y6GPIO 14 Keypad output 6
8/55
STMPE2401Pin settings
2.4 Pin mapping to TFBGA ( bottom view, balls up)
Table 3. Pin mapping to TFBGA
ABCDEF
1KP-X2KP-X1Reset_NXTALOUTSCLKKP-Y6
2KP-X4KP-X3KP-X0XTALINSDATAKP-Y7
3KP-X6KP-X5GNDGNDKP-Y8INT
4VCCKP-X7GNDGNDPWM-1VCC
5KP-Y5KP-Y3KP-Y1KP-Y9PWM-3PWM-2
6KP-Y4KP-Y2KP-Y0ADDR0KP-Y10KP-Y11
9/55
Maximum ratingSTMPE2401
3 Maximum rating
Stressing the device above the rating listed in the “Absolute Maximum Ratings” table may
cause permanent damage to the device. These are stress ratings only and operation of the
device at these or any other conditions above those indicated in the Operating sections of
this specification is not implied. Exposure to Absolute Maximum Rating conditions for
extended periods may affect device reliability. Refer also to the STMicroelectronics SURE
Program and other relevant quality documents.
3.1 Absolute maximum rating
Table 4. Absolute maximum rating
SymbolParameterValueUnit
V
CC
V
Input voltage on GPIO pin2.5V
IN
V
Input voltage on I2C pin
I2C
VESD (HBM)ESD protection on each GPIO pin2KV
Supply voltage2.5V
4.5V
(SDATA,SCLK, INT)
3.2 Thermal data
Table 5. Thermal data
SymbolParameterMinTypMaxUnit
R
thJA
T
A
T
J
Thermal resistance junction-ambient100°C/W
Operating ambient temperature-402585°C
Operating junction temperature-4025125°C
10/55
STMPE2401Electrical specification
4 Electrical specification
4.1 DC electrical characteristics
Table 6. DC electrical characteristics
SymbolParameterTest conditions
VCC1,21.8V supply voltage1.651.81.95V
I
HIBERNATE
HIBERNATE mode
current
Min.Typ.Max.
Val ue
Unit
612uA
I
SLEEP
IccOperating current
I
_INTOpen drain output
O
V_INTVoltage level at INT pin3.6V
SLEEP mode current1550uA
(FSM working – No
peripheral activity)
current
4.2 I/O DC electrical characteristics
The 1.8V I/O complies to the EIA/JEDEC standard JESD8-7.
RpdEquivalent pull-down resistance Vi = vdd32.550110.7KΩ
Test
conditions
Min.Typ.Max.
Val ue
Unit
Note:Pull-up and Pull-down characteristics
4.5 AC characteristics
Table 10. AC characteristics
SymbolParameter
Frequency1632kHz
F
O
C
Load capacitance27pF
L
Min.Typ.Max.
Val ue
Unit
12/55
STMPE2401Register map
5 Register map
All registers have the size of 8-bit. Some of the registers are composed of 2-byte to form 16bit registers. For each of the module, their registers are residing within the given address
range.
The features that are supported by the I2C interface are as below:
2
●I
C Slave device
●SDAT and SCLK operates from 1.8V to 3.3V
●Compliant to Philip I
●Supports Standard (up to 100kbps) and Fast (up to 400kbps) modes.
●7-bit device addressing mode
●General Call
●Start/Restart/Stop
●Address up to 4 STMPE2401 devices via I
The address is selected by the state of two pins. The state of the pins will be read upon
reset and then the pins can be configured for normal operation. The pins will have a pull-up
or down to set the address. The I2C interface module allows the connected host system to
access the registers in the STMPE2401.
2
C specification version 2.1
2
C
6.1 Start condition
A Start condition is identified by a falling edge of SDATA while SCLK is stable at high state.
A Start condition must precede any data/command transfer. The device continuously
monitors for a Start condition and will not respond to any transaction unless one is
encountered.
6.2 Stop condition
A Stop condition is identified by a rising edge of SDATA while SCLK is stable at high state.
A Stop condition terminates communication between the slave device and bus master. A
read command that is followed by NoAck can be followed by a Stop condition to force the
slave device into idle mode. When the slave device is in idle mode, it is ready to receive the
2
next I
C transaction. A Stop condition at the end of a write command stops the write
operation to registers.
6.3 Acknowledge bit (ACK)
The acknowledge bit is used to indicate a successful byte transfer. The bus transmitter
releases the SDATA after sending eight bits of data. During the ninth bit, the receiver pulls
the SDATA low to acknowledge the receipt of the eight bits of data. The receiver may leave
the SDATA in high state if it would to not acknowledge the receipt of the data.
14/55
STMPE2401I2C Interface
6.4 Data input
The device samples the data input on SDATA on the rising edge of the SCLK. The SDATA
signal must be stable during the rising edge of SCLK and the SDATA signal must change
only when SCLK is driven low.
6.5 Slave device address
The slave device address is a 7 address, where the least significant 2-bit are programmable.
These 2-bit values will be loaded in once upon reset and after that these 2 pins no longer be
needed with the exception during General Call. Up to 4 STMPE2401 devices can be
connected on a single I
Table 12. Slave device address
ADDR 1ADDR 0Address
000x84
010x86
100x88
110x8A
2
C bus.
6.6 Memory addressing
For the bus master to communicate to the slave device, the bus master must initiate a Start
condition and followed by the slave device address. Accompanying the slave device
address, there is a Read/Write
operation.
If a match occurs on the slave device address, the corresponding device gives an
acknowledgement on the SDA during the 9
from the bus by not responding to the transaction.
bit (R/W). The bit is set to 1 for Read and 0 for Write
th
bit time. If there is no match, it deselects itself
15/55
I2C InterfaceSTMPE2401
6.7 Operation modes
Table 13. Operating modes
Mode BytesProgramming sequence
START, Device Address, R/W
= 0, Register Address to be read
RESTART, Device Address, R/W
If no STOP is issued, the Data Read can be continuously preformed. If the register
Read≥1
Write≥1
address falls within the range that allows address auto-increment, then register
address auto-increments internally after every byte of data being read. For register
address that falls within a non-incremental address range, the address will be kept
static throughout the entire read operations. Refer to the Memory Map table for the
address ranges that are auto and non-increment. An example of such a nonincrement address is FIFO.
START, Device Address, R/W
If no STOP is issued, the Data Write can be continuously performed. If the register
address falls within the range that allows address auto-increment, then register
address auto-increments internally after every byte of data being written in. For
register address that falls within a non-incremental address range, the address will
be kept static throughout the entire write operations. Refer to the Memory Map table
for the address ranges that are auto and non-increment. An example of a nonincrement address is Data Port for initializing the PWM commands.
=0, Register Address to be written, Data Write, STOP
Figure 3.Master/slave operation modes
= 1, Data Read, STOP
16/55
STMPE2401I2C Interface
Figure 4.I2C timing
Table 14. I2C address
SymbolParameterMinTypMaxUnit
f
SCL
t
LOW
t
HIGH
t
F
t
HD:STA
t
SU:STA
t
SU:DAT
t
HD:DAT
t
SU:STO
t
BUF
SCL clock frequency 0400kHz
Clock low period1.3µs
Clock high period600ns
SDA and SCL fall time300ns
START condition hold time
(After this period the first clock is generated)
START condition setup time
(Only relevant for a repeated start period)
600ns
600ns
Data setup time100ns
Data hold time0µs
STOP condition setup time600ns
Time the bust must be free before a new
trasmission can start
1.3µs
17/55
System controllerSTMPE2401
7 System controller
The system controller is the heart of the STMPE2401. It contains the registers for power
control, and the registers for chip identification.
0Enable_ROTWriting a ‘0’ to this bit will gate off the clock to the Rotator module, thus stopping
its operation
1Enable_KPCWriting a ‘0’ to this bit will gate off the clock to the Keypad Controller module,
thus stopping its operation
2Enable_PWMWriting a ‘0’ to this bit will gate off the clock to the PWM module, thus stopping
its operation
3Enable_GPIOWriting a ‘0’ to this bit will gate off the clock to the GPIO module, thus stopping
its operation
4SleepWriting a ‘1’ to this bit will put the device in sleep mode. When in sleep mode, all
the units which need to work on clocks synchronous to 32KHz will get the clocks
derived from the 32K domain. The RC Oscillator will be shut off.
5Disable_32KHzSet this bit to disable the 32KHz OSC, thus putting the device in hibernate
mode. Only a Reset or a wakeup on IIC will reset this bit
6--
7Soft_ResetWriting a ‘1’ to this bit will do a soft reset of the device. Once the reset is done,
this bit will be cleared to ‘0’ by the HW.
19/55
System controllerSTMPE2401
7.3 States of operation
The device has three main modes of operation:
●Operational Mode: This is the mode, whereby normal operation of the device takes
place. In this mode, the RC clock is available and the Main FSM Unit routes this clock
and the 32 KHz clock to all the device blocks that are enabled. In this mode, individual
blocks that need not be working can be turned off by the master by programming the
bits 3 to 0 of the SYSCON register.
●Sleep Mode: In this low-power mode, the RC Oscillator is powered down. All the blocks
which need clocks derived from the 32KHz clock will continue getting a 32KHz clock. In
this mode also, individual blocks can be turned off by the master by programming the
bits 3 to 0 of the SYSCON register. However, the master needs to program the
SYSCON register before coming into this mode, as in the sleep mode, the IIC interface
is not active except to detect traffic for wakeup. Any activity on the I2C port or Wakeup
pin or Hotkey activity will cause the device to leave this mode and go into the
Operational mode. When leaving this mode, the I2C will need to hold the SCLK till the
RC clock is ready.
●Hibernate Mode: This mode is entered when the system writes a ‘1’ to bit 5 of the
SYSCON register. In this mode, the device is completely inactive as there is absolutely
no clock. Only a Reset or a wakeup on IIC will bring back the System to operational
mode. All I2C activities are ignored.
Caution:Hotkey detection is not possible in hibernate mode.
Figure 5.State of operation
20/55
STMPE2401Clocking system
8 Clocking system
Figure 6.Clocking system
The decision on clocks is based on the bits written into SYSCON registers. Bits 0 to 4 of the
SYSCON register control the gating of clocks to the Rotator, Keypad Controller, PWM and
GPIO respectively in the operational mode. When in sleep mode, the operating clock is cut
off from every functional blocks (including the I
8.1 Programming sequence
To put the device in sleep mode, the following needs to be done by the host:
1. Write a ‘1’ to bit 4 of the SYSCON register.
2. To wakeup the device, the following needs to be done by the host:
3. Assert a wakeup routine on the I
address and the R/W bit.
4. If there’s a NOACK, keep sending the wakeup routine till there is an ACK from the
slave.
5. To do a soft reset to the device, the host needs to do the following:
6. Write a ‘1’ to bit 7 of the SYSCON register.
7. This bit is automatically cleared upon reset.
8. To go into Hibernate mode, the following needs to be done by the host:
9. Set the Disable_32K bit to ‘1’
10. To come out of the Hibernate mode, the following needs to be done by the host:
11. Assert a system reset or
12. Put a wakeup on the I
2
C
2
C) except Keypad Controller and GPIO.
2
C bus by sending the Start Bit, followed by the device
21/55
Interrupt systemSTMPE2401
9 Interrupt system
STMPE2401 uses a highly flexible interrupt system. It allows host system to configure the
type of system events that should result in an interrupt, and pinpoints the source of interrupt
by status register. The INT pin could be configured as ACTIVE HIGH, or ACTIVE LOW.
32KHz clock input or crystal must be available for the interrupt system to be functional.
INT pin is 3.3V tolernat.
Once asserted, the INT pin would de-assert only if the corresponding bit in the
InterruptStatus register is cleared.
Figure 7.Interrupt system
9.1 Register map of interrupt system
Table 20. Register map of interrupt system
AddressRegister NameDescription
0x10ICR_msb
0x11ICR_lsbYes
0x12IER_msb
0x13IER_lsbYes
0x14ISR_msb
0x15ISR_lsbYes
0x16IEGPIOR_msb
0x17IEGPIOR_midYes
0x18IEGPIOR_lsbYes
0x19IEGPIOR_msb
0x1AISGPIOR_midYes
0x1BISGPIOR_lsbYes
22/55
Interrupt Control Register
Interrupt Enable Mask Register
Interrupt Status Register
Interrupt Enable GPIO Mask
Register
Interrupt Status GPIO Register
Auto-Increment
(during sequential R/W)
Ye s
Ye s
Ye s
Ye s
Ye s
STMPE2401Interrupt system
9.2 Interrupt control register (ICR)
ICR register is used to configure the Interrupt Controller. It has a global enable interrupt
mask bit that controls the interruption to the host.
ICR_msbICR_lsb
Bit 1514131211109 8 7 6 5 4 3 210
ReservedIC2IC1IC0
R/W R R R R R R RRRRRRRRW RW RW
Reset
Value
Table 21. ICR
BitsNameDescription
0 0 0 0 0 0 0000000 0 00
0IC[0]Global Interrupt Mask bit
When this bit is written a ‘1’, it will allow interruption to the host. If it is written
with a ‘0’, then, it disables all interruption to the host. Writing to this bit does not
affect the IER value.
1IC[1]output Interrupt Type
‘0’ = Level interrupt
‘1’ = Edge interrupt
2IC[2]output Interrupt Polarity
‘0’ = Active Low / Falling Edge
‘1’ = Active High / Rising Edge
9.3 Interrupt enable mask register (IER)
IER register is used to enable the interruption from a particular interrupt source to the host.
IER_msbIER_lsb
Bit1514131211109876543210
ReservedIE8IE7IE6IE5IE4IE3IE2IE1IE0
R/WRRRRRRR RWRWRWRW RWRWRWRWRW
Reset
Val ue
0000000000000000
23/55
Interrupt systemSTMPE2401
Table 22. IER
BitsNameDescription
8:0IE[x]Interrupt Enable Mask (where x = 8 to 0)
IE0 = Wake-up Interrupt Mask
IE1 = Keypad Controller Interrupt Mask
IE2 = Keypad Controller FIFO Overflow Interrupt Mask
IE3 = Rotator Controller Interrupt Mask
IE4 = Rotator Controller Buffer Overflow Interrupt Mask
IE5 = PWM Channel 0 Interrupt Mask
IE6 = PWM Channel 1 Interrupt Mask
IE7 = PWM Channel 2 Interrupt Mask
IE8 = GPIO Controller Interrupt Mask
Writing a ‘1’ to the IE[x] bit will enable the interruption to the host.
9.4 Interrupt status register (ISR)
ISR register monitors the status of the interruption from a particular interrupt source to the
host. Regardless whether the IER bits are enabled or not, the ISR bits are still updated.
ISR_msbISR_lsb
Bit1514131211109876543210
ReservedIS8IS7IS6IS5IS4IS3IS2IS1IS0
R/WRRRRRRR RWRWRWRW RWRWRWRWRW
Reset
Val ue
0000000000000000
Table 23. ISR
BitsNameDescription
8:0IS[x]Interrupt Status (where x = 8 to 0)
Read:
IS0 = Wake-up Interrupt Status
IS1 = Keypad Controller Interrupt Status
IS2 = Keypad Controller FIFO Overflow Interrupt Status
IS3 = Rotator Controller Interrupt Status
IS4 = Rotator Controller Buffer Overflow Interrupt Status
IS5 = PWM Channel 0 Interrupt Status
IS6 = PWM Channel 1 Interrupt Status
IS7= PWM Channel 2 Interrupt Status
IS8 = GPIO Controller Interrupt Status
Write:
A write to a IS[x] bit with a value of ‘1’ will clear the interrupt and a write with a
value of ‘0’ has no effect on the IS[x] bit.
24/55
STMPE2401Interrupt system
9.5 Interrupt enable GPIO mask register (IEGPIOR)
IEGPIOR register is used to enable the interruption from a particular GPIO interrupt source
to the host. The IEG[15:0] bits are the interrupt enable mask bits correspond to the
GPIO[15:0] pins.
23:0IEG[x]Interrupt Enable GPIO Mask (where x = 23 to 0)
Writing a ‘1’ to the IE[x] bit will enable the interruption to the host.
25/55
Interrupt systemSTMPE2401
9.6 Interrupt status GPIO register (ISGPIOR)
ISGPIOR register monitors the status of the interruption from a particular GPIO pin interrupt
source to the host. Regardless whether the IEGPIOR bits are enabled or not, the ISGPIOR
bits are still updated. The ISG[15:0] bits are the interrupt status bits correspond to the
GPIO[15:0] pins.
23:0ISG[x] Interrupt Status GPIO (where x = 23 to 0)
Read:
Interrupt Status of the GPIO[x].
Write:
A write to a ISG[x] bit with a value of ‘1’ will clear the interrupt and a write with a
value of ‘0’ has no effect on the ISG[x] bit.
26/55
STMPE2401Interrupt system
9.7 Programming sequence
To configure and initialize the Interrupt Controller to allow interruption to host, observe the
following steps:
●Set the IER and IEGPIOR registers to the desired values to enable the interrupt
sources that are to be expected to receive from.
●Configure the output interrupt type and polarity and enable the global interrupt mask by
writing to the ICR.
●Wait for interrupt.
●Upon receiving an interrupt, the INT pin is asserted.
●The host comes to read the ISR through I
that the corresponding interrupt source is triggered.
●If the IS8 bit in ISR is set, the interrupt is coming from the GPIO Controller. Then, a
subsequent read is performed on the ISGPIOR to obtain the interrupt status of all 16
GPIOs to locate the GPIO that triggers the interrupt. This is a feature so-called ‘Hot
Key’.
●After obtaining the interrupt source that triggers the interrupt, the host performs the
necessary processing and operations related to the interrupt source.
●If the interrupt source is from the GPIO Controller, two write operations with value of ‘1’
are performed to the ISG[x] bit (ISGPIOR) and the IS[8] (ISR) to clear the
corresponding GPIO interrupt.
●If the interrupt source is from other module, a write operation with value of ‘1’ is
performed to the IS[x] (ISR) to clear the corresponding interrupt.
●Once the interrupt is being cleared, the INT pin will also be de-asserted if the interrupt
type is level interrupt. An edge interrupt will only assert a pulse width of 250ns.
●When the interrupt is no longer required, the IC0 bit in ICR may be set to ‘0’ to disable
the global interrupt mask bit.
2
C interface. A ‘1’ in the ISR bits indicates
27/55
GPIO controllerSTMPE2401
10 GPIO controller
A total of 24 GPIOs are available in the STMPE2401 port expander IC. Most of the GPIOs
are sharing physical pins with some alternate functions. The GPIO controller contains the
registers that allow the host system to configure each of the pins into either a GPIO, or one
of the alternate functions. Unused GPIOs should be configured as outputs to minimize the
power consumption.
Table 26. GPIO controller
AddressRegister nameDescription
0xA2GPMR_msb
0xA3GPMR_csbYes
0xA4GPMR_lsbYes
0x83GPSR_msb
0x84GPSR_csbYes
0x85GPSR_lsbYes
0x86GPCR_msb
0x87GPCR_csbYes
GPIO Monitor Pin State Register
GPIO Set Pin State Register
GPIO Clear Pin State Register
Auto-Increment
(during sequential R/W)
Ye s
Ye s
Ye s
0x88GPCR_lsbYes
0x89GPDR_msb
0x8AGPDR_csbYes
0x8BGPDR_lsbYes
0x8CGPEDR_msb
0x8DGPEDR_csbYes
0x8EGPEDR_lsbYes
0x8FGPRER_msb
0x90GPRER_csbYes
0x91GPRER_lsbYes
0x92GPFER_msb
0x93GPFER_csbYes
0x94GPFER_lsbYes
0x95GPPUR_msb
0x96GPPUR_csbYes
0x97GPPUR_lsbYes
0x98GPPDR_msb
0x99GPPDR_csbYes
0x9AGPPDR_lsbYes
GPIO Set Pin Direction Register
GPIO Edge Detect Status Register
GPIO Rising Edge Register
GPIO Falling Edge Register
GPIO Pull Up Register
GPIO Pull Down Register
Ye s
Ye s
Ye s
Ye s
Ye s
Ye s
28/55
STMPE2401GPIO controller
Table 26. GPIO controller
AddressRegister nameDescription
0x9BGPAFR_U_msb
0x9CGPAFR_U_csbYes
0x9DGPAFR_U_lsbYes
0x9EGPAFR_L_msb
0x9FGPAFR_L_csbYes
0xA0GPAFR_L_lsbYes
0xA5 – 0xAF RESERVEDReservedYes
GPIO Alternate Function Register
(Upper Bit)
GPIO Alternate Function Register
(Lower Bit)
Auto-Increment
(during sequential R/W)
Ye s
Ye s
10.1 GPIO control registers
A group of registers are used to control the exact function of each of the 24 GPIO. All GPIO
registers are named as GPxxx_yyy, where
Xxx represents the functional group
Yyy represents the byte position of the GPIO
Lsb registers controls GPIO[7:0]
Csb registers controls GPIO[15:8]
Msb registers controls GPIO[23:16]
Table 27. Register
Bit76543210
GPxxx_msbIO-23IO-22IO-21IO-20IO-19IO-18IO-17IO-16
GPxxx_csbIO-15IO-14IO-13IO-12IO-11IO-10IO-9IO-8
GPxxx_lsbIO-7IO-6IO-5IO-4IO-3IO-2IO-1IO-0
Note:This convention does not apply to the GPIO Alternate Function Registers
The function of each bit is shown in the following table:
Table 28. Bit’s function
Register nameFunction
GPIO Monitor Pin State Reading this bit yields the current state of the bit. Writing has no effect.
GPIO Set Pin State Writing ‘1’ to this bit causes the corresponding GPIO to go to ‘1’ state.
Writing ‘0’ has no effect.
GPIO Clear Pin State Writing ‘1’ to this bit causes the corresponding GPIO to go to ‘0’ state.
Writing ‘0’ has no effect.
GPIO Set Pin Direction
‘0’ sets the corresponding GPIO to input state, and ‘1’ sets it to output
state
29/55
GPIO controllerSTMPE2401
Table 28. Bit’s function
Register nameFunction
GPIO Edge Detect Status Set to ‘1’ by hardware when there is a rising/falling edge on the corre-
sponding GPIO. Writing ‘1’ clears the bit. Writing ‘0’ has no effect.
GPIO Rising EdgeSet to ‘1’ to enable rising edge detection on the corresponding GPIO.
GPIO Falling EdgeSet to ‘1’ to enable falling edge detection on the corresponding GPIO.
GPIO Pull UpSet to ‘1’ to enable internal pull-up resistor
GPIO Pull DownSet to ‘1’ to enable internal pull-down resistor
10.2 GPIO alternate function register (GPAFR)
GPAFR is to select the functionality of the GPIO pin. To select a function for a GPIO pin, a
bit-pair in the register (GPAFR_U or GPAFR_L) has to be set.
GPAFR_U_msb
Bit2322212019181716
AF23AF22AF21AF20
R/WRWRWRWRWRWRWRWRW
Reset
Val ue
Bit151413121110 9 8
R/WRWRWRWRWRWRWRWRW
Reset
Val ue
Bit76543210
R/WRWRWRWRWRWRWRWRW
Reset
Val ue
00000000
GPAFR_U_csb
AF19AF18AF17AF16
00000000
GPAFR_U_lsb
AF15AF14AF13AF12
00000000
30/55
STMPE2401GPIO controller
Table 29. Bit description
BitsNameDescription
23:0AF[x]GPIO Pin ‘x’ Alternate Function Select (where x = 23 to 12).
‘00’ – The corresponding GPIO pin (GPIO[x]) is configured to Primary
Function.
‘01’ – The corresponding GPIO pin (GPIO[x]) is configured to Alternate
Function 1.
‘10’ – The corresponding GPIO pin (GPIO[x]) is configured to Alternate
Function 2.
‘11’ – The corresponding GPIO pin (GPIO[x]) is configured to Alternate
Function 3.
GPAFR_L_msb
Bit2322212019181716
AF11AF10AF9AF8
R/WRWRWRWRWRWRWRWRW
Reset
Val ue
00000000
GPAFR_L_csb
Bit151413121110 9 8
AF7AF6AF5AF4
R/WRWRWRWRWRWRWRWRW
Reset
Val ue
Bit76543210
R/WRWRWRWRWRWRWRWRW
Reset
Val ue
00000000
GPAFR_L_lsb
AF3AF2AF1AF0
00000000
31/55
GPIO controllerSTMPE2401
Table 30. Bit description
BitsNameDescription
23:0AF[x]GPIO Pin ‘x’ Alternate Function Select (where x = 11 to 0).
‘00’ – The corresponding GPIO pin (GPIO[x]) is configured to Primary
Function.
‘01’ – The corresponding GPIO pin (GPIO[x]) is configured to Alternate
Function 1.
‘10’ – The corresponding GPIO pin (GPIO[x]) is configured to Alternate
Function 2.
‘11’ – The corresponding GPIO pin (GPIO[x]) is configured to Alternate
Function 3.
10.3 Hot key feature
A GPIO is known as ‘Hot Key’ when it is configured to trigger an interruption to the host
whenever the GPIO input is being asserted. This feature is applicable in Operational mode
(RC clock is present) as well as Sleep mode (32kHz clock is present).
10.3.1 Programming sequence for hot key
1. Configures the GPIO pin into GPIO mode by setting the corresponding bits in the
GPAFR.
2. Configures the GPIO pin into input direction by setting the corresponding bit in GPDR.
3. Set the GPRER and GPFER to the desired values to enable the rising edge or falling
edge detection.
4. Configures and enables the interrupt controller to allow the interruption to the host.
5. Now, the GPIO Expander may be put into Sleep mode if it is desired.
6. Upon any Hot Key being asserted, the device will wake-up and issue an interrupt to the
host.
Below are the conditions to be fulfilled in order to configure a Hot Key:
1. The pin is configured into GPIO mode and as input pin.
2. The global interrupt mask bit is enabled.
3. The corresponding GPIO interrupt mask bit is enabled.
10.3.2 Minimum pulse width
The minimum pulse width of the assertion of the Hot Key must be at least 62.5us. Any pulse
width less than the stated value may not be registered.
32/55
STMPE2401PWM controller
11 PWM controller
The STMPE2401 PWM controller provides 3 independent PWM outputs used to generate
light effect; if the PWM outputs are not used, these pins can be used as GPIO.
Figure 8.PWM controller
Instructions are downloaded into the memory via the I2C connection.
33/55
PWM controllerSTMPE2401
11.1 Registers in the PWM controller
The main system registers are:
Table 31. Main system registers
Auto-Increment
AddressRegister NameDescription
0x30PWMCSPWM Control and Status registerYes
PWM instructions are initialized through this
data port. Every instruction is 16-bit width and
0x38PWMIC0
0x39PWMIC1
0x3APWMIC2
therefore, the MSB of the first word is written
first, then, followed by LSB of the first word.
Subsequently, MSB of second word and LSB
of second word and so on.
PWM instructions are initialized through this
data port. Every instruction is 16-bit width and
therefore, the MSB of the first word is written
first, then, followed by LSB of the first word.
Subsequently, MSB of second word and LSB
of second word and so on.
PWM instructions are initialized through this
data port. Every instruction is 16-bit width and
therefore, the MSB of the first word is written
first, then, followed by LSB of the first word.
Subsequently, MSB of second word and LSB
of second word and so on.
(during
Read/Write)
No
No
No
34/55
STMPE2401PWM controller
11.2 PWM control and status register (PWMCS)
Bit 76543210
ReservedII2II1II0EN2EN1EN0
Read/WriteRRRRRRWRWRW
Reset Value00000000
Table 32. Bit description
BitsNameDescription
0EN0PWM Channel 0 Enable bit.
‘1’ – Enable the PWM Channel 0
‘0’ – Reset the PWM Channel 0. Only when the PWM channel is in reset
state, the stream of commands can be written into its data port, which in
this case is PWM_Command_Channel_0.
1EN1PWM Channel 1 Enable bit.
‘1’ – Enable the PWM Channel 1
‘0’ – Reset the PWM Channel 1. Only when the PWM channel is in reset
state, the stream of commands can be written into its data port, which in
this case is PWM_Command_Channel_1.
2EN2PWM Channel 2 Enable bit.
‘1’ – Enable the PWM Channel 2
‘0’ – Reset the PWM Channel 2. Only when the PWM channel is in reset
state, the stream of commands can be written into its data port, which in
this case is PWM_Command_Channel_2.
3II0PWM Invalid Instruction Status bit for PWM Channel 0
‘0’ – No invalid command encountered during the instruction execution.
‘1’ – Invalid command encountered and this puts the PWM Channel 0 into
reset state.
4II1PWM Invalid Instruction Status bit for PWM Channel 1
‘0’ – No invalid command encountered during the instruction execution.
‘1’ – Invalid command encountered and this puts the PWM Channel 1 into
reset state.
5II2PWM Invalid Instruction Status bit for PWM Channel 2
‘0’ – No invalid command encountered during the instruction execution.
‘1’ – Invalid command encountered and this puts the PWM Channel 2 into
reset state.
35/55
PWM controllerSTMPE2401
11.3 PWM instruction channel x (PWMICx)
This PWMICx is the dataport that allows the instructions to be loaded into the PWM
channel. The loading of the instructions is achieved by continuously writing to this dataport.
As this dataport address falls on the non-auto increment region, continuous write operation
2
on I
C will write into the same dataport address. The ‘x’ value is from 0 to 2 as there are 3
independent PWM channels. To access these dataports, the corresponding ENx in the
PWMCS register must be set to 0 first to put the PWM channel in reset state.
Bit76543210
IB7IB6IB5IB4IB3IB2IB1IB0
Read/WriteRWRWRWRWRWRWRWRW
Reset Value00000000
Table 33. Pin description
BitsNameDescription
7:0IB[x]PWM Instruction Channel x, where x is 7 to 0
As an instruction is 16-bit width, writing the instruction into this 8-bit
PWMICx dataport requires two 8-bit data write. The most significant byte
of the 16-bit instruction is to be written in first and followed by the least
significant byte of the instruction. The same effect applies to the read
operation.
36/55
STMPE2401PWM commands
12 PWM commands
The STMPE2401 PWM Controller works as a simple MCU, with program space of 64
instructions and a simple instruction set. The instructions are all 16 bits in length. The 3
most significant bits are used to identify the commands.
Table 34. PWM commands
InstructionDescription
RAMPThis instruction starts the PWM counters and set the pwm_x_out with the
result from the counting.
Set Maximum
(SMAX)
Set Minimum (SMIN) Load the PWM counter with the value of 0x0 and the pwm_x_out will result in
Go to Start (GTS)Branch to the address 0x0 and execute from 0x0 and onwards.
BRANCHBranch to a relative or an absolute address to execute with the looping
ENDEnd the instruction execution by resetting and interrupting to the host.
Trigger (TRIG)Capable of waiting as well as sending triggers to another PWM channel.
Load the PWM counter with the value of 0xff and the pwm_x_out will result in
logic level low.
logic level high.
capability. There are 4 loop counters available and these allow 4 nested
loops.
Table 35. Identification of instructions
InstructionBit 15Bit 14Bit 13
Ramp0- -
SetFullScale0--
SetMinimum0--
GoToStart0- -
Branch101
End110
Trigge r111
Reserved100
37/55
PWM commandsSTMPE2401
Table 36. Instruction
Bit
Instruction
Timing in 2kHz
15141312 11 10 9 8 76 5 4321 0
RAMP0Prescale
0=16
1=512
Step Time
0 - 63
0 = immediate action
Sign
0=stepup
Increment
1 – 126
Increment value
of 0 is not
allowed.
1=stepdown
prescale = 16 :-
Consumes
[(step
time)
nt)] cycles
prescale = 512 :-
Consumes
[(32)
time)
nt)] cycles
SMAX0
(2)
x
00127Consumes 1
cycle
SMIN0
(2)
x
01127Consumes 1
cycle
GTS00000Consumes 1
cycle
(1)
(increme
(1)
(step
(1)
(increme
BRANCH101Loop Counter to
use
0 - 3
Loop Count
0 – 15
0 = forever
loop
0=absol
ute step
size
1=relativ
e step
(1)
size
Step Size
(1)
0 – 63
Consumes 1
cycle
Once the loop
count has been
reached, the
loop counter
resets.
END110Interr
upt to
host
Reset
instructi
on
RESERVEDConsumes 1
cycle
counter
and
output
level to
zero
TRIG111Wait for Trigger
on channel 0 – 2
Continues if all selected triggers
present.
Each bit signifies wait for the
Send Trigger
on channel 0 – 2
Continues if no Wait
for Trigger in this
instruction.
Consumes 1 or
x
(2)
more cycles
corresponding channel.
reserved100RESERVEDReserved.
1. Absolute Branch jumps to the absolute address (relative to address 0x0) using the value of step size. The Relative Branch
jumps in a backward manner relative to the current address location, ie. 1 means jump to the previous instruction location
and 0 means NOP.
2. Don’t care.
38/55
STMPE2401PWM commands
In order to enable a PWM channel, the programming sequence below should be observed.
●The ENx of the PWMCS register should be kept in ‘0’. By default, it has a value of ‘0’.
●Loads the instructions into the PWM channel x by writing the corresponding PWMICx.
●The PWM channel x has a 64-word depth (16-bit width). Any instructions of size less
than or equal to 64 words can be loaded into the channel. Any attempt to load beyond
64 words will result in internal address pointer to roll-over (0x1f ◊ 0x00) and the excess
instructions to be over-written into the first address location of the channel and
onwards.
●After the instructions are loaded in, then, the PWM channel x can be enabled by setting
a ‘1’ to the ENx bit.
●Enables the corresponding interrupt mask bit to allow interruption to the host.
39/55
Keypad controllerSTMPE2401
13 Keypad controller
The main operations of the keypad controller are controlled by four dedicated key controllers
that support up to four simultaneous dedicated key presses and a key scan controller and
two normal key controllers that support a maximum of 12x8 key matrix with detection of two
simultaneous key presses.
Four of the column inputs can be configured as dedicated keys through the setting of
Dkey0~3 bits of KPC_ctrl register.
The normal key matrix size is configurable through the setting of KPC_row and KPC_col
registers. The scanning of each individual row output and column input can be enabled or
masked to support a key matrix of variable size from 1x1 to 12x8.
The operation of the keypad controller is enabled by the SCAN bit of KPC_ctrl register.
Every key activity detected will be de-bounced for a period set by the DB_0~7 bits of
KPC_ctrl register before a key press or key release is confirmed and updated into the output
FIFO. The key data, indicating the key coordinates and its status (up or down), is loaded into
the FIFO at the end of a specified number of scanning cycles (set by ScanCount0~3 bits of
KPC_row_msb register). An interrupt will be generated when a new set of key data is
loaded. The FIFO has a capacity for four sets of key data. Each set of key data consists of
three bytes of information when any of the four dedicated keys is enabled. It is reduced to
two bytes when no dedicated key is involved. When the FIFO is full before its content is
read, an overflow signal will be generated while the FIFO will continue to hold its content but
forbid loading of new key data set.
Figure 9.Keypad controller
40/55
STMPE2401Keypad controller
The keypad column inputs enabled by the KPC_col register are normally ‘HIGH’, with the
corresponding input pins pulled up by resistors internally. After reset, all the keypad row
outputs enabled by the KPC_row register are driven ‘LOW’. If a key is pressed, its
corresponding column input will become ‘LOW’ after making contact with the ‘LOW’ voltage
on its corresponding row output.
Once the key scan controller senses a ‘LOW’ input on any of the column inputs, the
scanning cycles will then start to determine the exact key that has been pressed. The twelve
row outputs will be driven ‘LOW’ one by one (if the row output is enabled) during each
scanning cycle. While one row is driven ‘LOW’, the other rows are driven ‘HIGH’. (The pullups and pull-downs of row outputs are always disabled). If there is any column input sensed
as ‘LOW’ when a row is driven ‘LOW’, the key scan controller will then decode the key
coordinates (its corresponding row number and column number), save the key data into a
de-bounce buffer if available, confirm if it is a valid key press after de-bouncing, and update
the key data into output data FIFO if valid.
13.1 Registers in keypad controller
Table 37. Register in keypad controller
Auto-Increment
AddressRegister nameDescription
0x60KPC_colKeypad column scanning registerYes
(during sequential
R/W)
0x61KPC_row_msbKeypad row scanning registerYes
0x62KPC_row_lsbYes
0x63KPC_ctrl_msbKeypad control registerYes
0x64KPC_ctrl_lsbYes
0x68KPC_data_byte0Keypad data registerNo
0x69KPC_data_byte1No
0x6AKPC_data_byte2No
41/55
Keypad controllerSTMPE2401
13.2 KPC_col register
Table 38. KPC_col Register
Bit76543210
NameInput Column 0 ~ 7
Read/WriteWWWWWWWW
Reset Value00000000
BitNameDescription
7Input Column 7‘1’ to turn on scanning of column 7; ‘0’ to turn off
6Input Column 6‘1’ to turn on scanning of column 6; ‘0’ to turn off
5Input Column 5‘1’ to turn on scanning of column 5; ‘0’ to turn off
4Input Column 4‘1’ to turn on scanning of column 4; ‘0’ to turn off
3Input Column 3‘1’ to turn on scanning of column 3; ‘0’ to turn off
2Input Column 2‘1’ to turn on scanning of column 2; ‘0’ to turn off
1Input Column 1‘1’ to turn on scanning of column 1; ‘0’ to turn off
0Input Column 0‘1’ to turn on scanning of column 0; ‘0’ to turn off
13.3 KPC_row_msb register
Table 39. KPC_row_msb register
Bit7 6 543210
NameScanPW1ScanPW0--Output Row 8 ~ 11
Read/Write-- - - WWWW
Reset Value1 1 000000
BitNameDescription
7ScanPW1Pulse width setting of keypad scanning. Use “11” at all
6ScanPW0
5--
4--
3Output Row 11‘1’ to turn on scanning of row 11; ‘0’ to turn off
2Output Row 10‘1’ to turn on scanning of row 10; ‘0’ to turn off
1Output Row 9‘1’ to turn on scanning of row 9; ‘0’ to turn off
0Output Row 8‘1’ to turn on scanning of row 8; ‘0’ to turn off
times
42/55
STMPE2401Keypad controller
13.4 KPC_row_lsb register
Table 40. KPC_row_lsb register
Bit76543210
Nameoutput Row 0 ~ 7
Read/WriteWWWWWWWW
Reset Value00000000
BitNameDescription
7output Row 7‘1’ to turn on scanning of row 7; ‘0’ to turn off
6output Row 6‘1’ to turn on scanning of row 6; ‘0’ to turn off
5output Row 5‘1’ to turn on scanning of row 5; ‘0’ to turn off
4output Row 4‘1’ to turn on scanning of row 4; ‘0’ to turn off
3output Row 3‘1’ to turn on scanning of row 3; ‘0’ to turn off
2output Row 2‘1’ to turn on scanning of row 2; ‘0’ to turn off
1output Row 1‘1’ to turn on scanning of row 1; ‘0’ to turn off
0output Row 0‘1’ to turn on scanning of row 0; ‘0’ to turn off
13.5 KPC_ctrl_msb register
Table 41. KPC_ctrl_msb register
Bit7 6543210
NameScanCount0 ~ 3DKey_0 ~ 3
Read/WriteWWWWWWWW
Reset Value00000000
BitNameDescription
7ScanCount3Number of key scanning cycles elapsed before a confirmed
6ScanCount2
5ScanCount1
4ScanCount0
3DKey_3Set ‘1’ to use Input Column 3 as dedicated key
2DKey_2Set ‘1’ to use Input Column 2 as dedicated key
1DKey_1Set ‘1’ to use Input Column 1 as dedicated key
0DKey_0Set ‘1’ to use Input Column 0 as dedicated key
key data is updated into output data FIFO (0 ~ 15 cycles)
43/55
Keypad controllerSTMPE2401
13.6 KPC_ctrl_lsb register
Table 42. KPC_ctrl_lsb register
Bit76543210
NameDB_0 ~ 5SCAN
Read/WriteWWWWWWW W
Reset Value00000000
BitNameDescription
7DB_60-128ms of de-bounce time
6DB_5
5DB_4
4DB_3
3DB_2
2DB_1
1DB_0
0SCAN‘1’ to start scanning; ‘0’ to stop
13.7 Data registers
The KPC_DATA register contains three bytes of information. The first two bytes store the key
coordinates and status of any two keys from the normal key matrix, while the third byte store
the status of dedicated keys.
Table 43. KPC_data_byte0 register
Bit765432 1 0
NameUp/DownR3R2R1R0C2 C1C0
Read/WriteRRRRRR R R
Reset Value11 1110 0 0
BitNameDescription
7Up/Down‘0’ for key-down, ‘1’ for key-up
6R3row number of key 1 (valid range : 0-11)
5R2
4R1
3R0
2C2column number of key 1 (valid range : 0-7)
0x1111 for No Key
1C1
0C0
44/55
STMPE2401Keypad controller
Table 44. KPC_data_byte1 register
Bit7 6543210
NameUp/DownR3R2R1R0C2C1C0
Read/WriteR RRRRRRR
Reset Value1 1111000
BitNameDescription
7Up/Down‘0’ for key-down, ‘1’ for key-up
6R3row number of key 2 (valid range : 0-11)
0x1111 for No Key
5R2
4R1
3R0
2C2column number of key 2 (valid range : 0-7)
1C1
0C0
Table 45. KPC_data_byte2 register
Bit7 6543210
Name----Dedicated Key 0 ~ 3
Read/WriteR RRRRRRR
Reset
Val u e
BitNameDescription
7--
6--
5--
4--
3Dedicated Key 3‘0’ for key-down, ‘1’ for key-up
2Dedicated Key 2‘0’ for key-down, ‘1’ for key-up
1Dedicated Key 1‘0’ for key-down, ‘1’ for key-up
0Dedicated Key 0‘0’ for key-down, ‘1’ for key-up
00 001111
45/55
Keypad controllerSTMPE2401
13.7.1 Resistance
Maximum resistance between keypad output and keypad input, inclusive of switch
resistance, protection circuit resistance and connection, must be less than 3.2 KΩ
13.7.2 Using the keypad controller
Before enabling the keypad controller operation, proper setup should be done by configuring
the input and output ports involved. This is achieved by programming the corresponding
GPIO control registers that determine the port direction and the necessary internal pull-up
or pull-down. For the GPIO ports that are used as keypad inputs, internal pull-up should be
enabled. For those that are used as keypad outputs, no internal pull-up or pull-down should
be enabled.
The scanning of column inputs should then be enabled for those GPIO ports that are
configured as keypad inputs by writing ‘1’s to the corresponding bits in the KPC_col register.
If any of the first three column inputs is to be used as dedicated key input, the corresponding
bits in the KPC_ctrl_msb register should be set to ‘1’. The bits in the KPC_row_msb and
KPC_row_lsb registers should also be set correctly to enable the row output scanning for
the corresponding GPIO ports programmed as keypad outputs.
The scan count and de-bounce count should also be programmed into the keypad control
registers before enabling the keypad controller operation. To enable the keypad controller
operation, the Enable_KPC bit in the system control register must be set to ‘1’ to provide the
required clock signals. The keypad controller will then start its operation by setting the
SCAN bit in the KPC_ctrl_lsb register to ‘1’.
The keypad controller operation can be disabled by setting the SCAN bit back to ‘0’. To
further reduce the power consumption, the clock signals can be cut off from the keypad
controller by setting the Enable_KPC bit to ‘0’.
ScanCount value is programmable to any value between 1-15 by writing into the scancount
register. If scan count is programmed to N, the Keypad Controller scans the entire matrix for
N times, collecting up to 2 matrix key and 4 dedicated keys, loads the keys into 1 set of
keypad data buffer and interrupts the host system.
46/55
STMPE2401Rotator controller
14 Rotator controller
Rotator controller consists of 3 terminal, each capable of becoming an input with internal
pull-up, or and output. At any moment, 2 terminals are inputs and one terminal is output.
Figure 10. Rotator controller
The Rotator Controller is responsible for the detection of the direction of rotator and the
reporting of these direction sequences. The direction of a rotator can be either up or down.
A rotator has 3 contacts and detection of shorts on these contacts is used to determine the
direction of rotation. Following diagram shows the definition of the direction of rotation and
how the FSM states and driven outputs correspond to rotation.
6~0Symbol_Count Number of symbols of the type specified by bit 7
‘1’ – Down
‘0’ – Up
Minimum of 0 (b’0000000) to
Maximum of 127 (b’1111111)
48/55
STMPE2401Rotator controller
The host should do the following on the I2C bus to start the Rotator controller:
1. The host writes to GPIO Controller to configure the PU/PD bit and select the Rotator
Bits on the relevant IO.
2. Write Rotator_Control data register to start the rotator controller. A maximum of 2
rotations later, the correct initial state on the rotator FSM is obtained. Scanning for
rotator movement continues.
3. The host waits for interrupt from the rotator controller.
4. The host reads Rotator_Buffer
5. The host can stop rotator controller operation by writing to Rotator_Control register.
49/55
Miscellaneous featuresSTMPE2401
15 Miscellaneous features
15.1 Reset
STMPE2401 is equipped with an internal POR circuit that holds the device in reset state,
until the clock is steady and V
STMPE2401 by asserting Reset_N pin.
15.2 Under voltage lockout
STMPE2401 is equipped with an internal UVLO circuit that generates a RESET signal,
when the main supply voltage falls below the allowed threshold.
15.3 Clock output
STMPE2401 provides a buffered 32KHz clock output at one of the GPIO as alternate
function. This clock could be used for cascading of multiple port expander devices, using
just 1 XTAL unit.
input is valid. Host system may choose to reset the
CC
50/55
STMPE2401Mechanical data
16 Mechanical data
In order to meet environmental requirements, ST offers these devices in ECOPACK®
packages. These packages have a Lead-free second level interconnect . The category of
second level interconnect is marked on the package and on the inner box label, in
compliance with JEDEC Standard JESD97. The maximum ratings related to soldering
conditions are also marked on the inner box label. ECOPACK is an ST trademark.
ECOPACK specifications are available at: www.st.com
51/55
Mechanical dataSTMPE2401
Table 48. TFBGA Mechanical data
mm.inch
Dim.
MinTypMaxMinTypMax
A1.111.160.0430.0390.046
A10.250.010
A20.780.860.0310.034
b0.300.25 0.35 0.0120.0100.014
D3.603.503.700.1420.1380.146
D13.500.138
E3.503.603.700.1420.1380.146
E12.500.098
e0.500.020
F0.550.022
Figure 12. Package dimensions
52/55
STMPE2401Mechanical data
Figure 13. Recommended footprint
Figure 14. Tape and reel information
53/55
Revision historySTMPE2401
17 Revision history
Table 49. Revision history
DateRevisionChanges
08-Jan-20071Initial release
29-May-20072Cover page updated
54/55
STMPE2401
Please Read Carefully:
Information in this document is provided solely in connection with ST products. STMicroelectronics NV and its subsidiaries (“ST”) reserve the
right to make changes, corrections, modifications or improvements, to this document, and the products and services described herein at any
time, without notice.
All ST products are sold pursuant to ST’s terms and conditions of sale.
Purchasers are solely responsible for the choice, selection and use of the ST products and services described herein, and ST assumes no
liability whatsoever relating to the choice, selection or use of the ST products and services described herein.
No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted under this document. If any part of this
document refers to any third party products or services it shall not be deemed a license grant by ST for the use of such third party products
or services, or any intellectual property contained therein or considered as a warranty covering the use in any manner whatsoever of such
third party products or services or any intellectual property contained therein.
UNLESS OTHERWISE SET FORTH IN ST’S TERMS AND CONDITIONS OF SALE ST DISCLAIMS ANY EXPRESS OR IMPLIED
WARRANTY WITH RESPECT TO THE USE AND/OR SALE OF ST PRODUCTS INCLUDING WITHOUT LIMITATION IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE (AND THEIR EQUIVALENTS UNDER THE LAWS
OF ANY JURISDICTION), OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
UNLESS EXPRESSLY APPROVED IN WRITING BY AN AUTHORIZED ST REPRESENTATIVE, ST PRODUCTS ARE NOT
RECOMMENDED, AUTHORIZED OR WARRANTED FOR USE IN MILITARY, AIR CRAFT, SPACE, LIFE SAVING, OR LIFE SUSTAINING
APPLICATIONS, NOR IN PRODUCTS OR SYSTEMS WHERE FAILURE OR MALFUNCTION MAY RESULT IN PERSONAL INJURY,
DEATH, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE. ST PRODUCTS WHICH ARE NOT SPECIFIED AS "AUTOMOTIVE
GRADE" MAY ONLY BE USED IN AUTOMOTIVE APPLICATIONS AT USER’S OWN RISK.
Resale of ST products with provisions different from the statements and/or technical features set forth in this document shall immediately void
any warranty granted by ST for the ST product or service described herein and shall not create or extend in any manner whatsoever, any
liability of ST.
ST and the ST logo are trademarks or registered trademarks of ST in various countries.
Information in this document supersedes and replaces all information previously supplied.
The ST logo is a registered trademark of STMicroelectronics. All other names are the property of their respective owners.