Program Memory - bytes8K16K8K16K
EEPROM - bytes256
RAM (stack) - bytes384 (256)512 (256)384 (256)512 (256)
PeripheralsWatchdog, Timers, SPI, SCI, ADC and optional Low Voltage Detector Reset
Operating Supply3 to 5.5 V
CPU Frequency8MHz max (16MHz oscillator) - 4MHz max over 85°C
Temperature Range- 40°C to + 125°C
PackageTQFP44 - SDIP42TQFP64 - SDIP56
Note: The ROM versions are supported by the ST72334 family.
The ST72T331 HCMOS Microcontroller Unit
(MCU) is a member of the ST7 f amily. The de vic e
is based on an industry-standard 8-bit core and
features an enhanced instruction set . The device
is normally operated at a 16 MHz oscillator frequency. Under software control, the ST72T331
may be placed in either Wait, Slow or Halt modes,
thus reducing power consumption. Th e enhance d
instruction set and ad dressing modes afford real
programming potential. In addition to standard
8-bit data management, the ST72T331 features
true bit manipulation, 8x8 unsigned multiplication
and indirect addressing modes on the whole memory. The device includes a lo w consumption and
Figure 1. ST72T331 Block Diagram
Internal
OSCIN
OSCOUT
RESET
OSC
CONTROL
AND L VD
8-BIT CO RE
ALU
PROGRAM
MEMORY
(8 - 16K Bytes)
EEPROM
(256 Bytes)
CLOCK
fast sta r t on - c hip o s c illator, CP U , p r og ra m memo ry (OTP/EPROM versions), EEPROM, RAM, 44
(QFP64 and SDIP56) o r 32 (QFP44 and SD IP42)
I/O lines, a Low V oltage Detector (LVD) and the
following on-chip peripherals: Analog-to-Digital
converter (ADC) with 8 (QFP64, SDIP56) or 6
(QFP44, SDIP42) multiplexed analog inputs, industry standard s ynchronous SPI and asynchronous SCI serial interfaces, digital Watchdog, two
independent 16-bit Timers, one featuring an External Clock Input, and bo th featuring Pulse G enerator capabilities, 2 Input Captures and 2 Output
Compares (only 1 Input Capture and 1 Output
Compare on Timer A).
PORT A
PORT B
TIMER B
ADDRESS AND DATA BUS
PORT C
SPI
PORT D
8-BIT ADC
PA0 - > PA7
(8 bits for ST72T331N)
(5 bits for ST72T331J)
PB0 - > PB7
(8 bits for ST72T331N)
(5 bits for S T 72T331J)
PC0 -> PC7
(8 bits)
PD0 -> PD7
(8 bits for ST72T331N)
(6 bits for S T 72T331J)
91PB4I/OPort B4External Interrupt: EI3
102PB5I/OPort B5External Interrupt: EI3
113PB6I/OPort B6External Interrupt: EI3
124PB7I/OPort B7External Interrupt: EI3
135PD0/AIN0I/OPort D0 or ADC Analog Input 0
146PD1/AIN1I/OPort D1 or ADC Analog Input 1
157PD2/AIN2I/OPort D2 or ADC Analog Input 2
168PD3/AIN3I/OPort D3 or ADC Analog Input 3
179PD4/AIN4I/OPort D4 or ADC Analog Input 4
1810PD5/AIN5I/OPort D5 or ADC Analog Input 5
1911PD6/AIN6I/OPort D6 or ADC Analog Input 6
2012PD7/AIN7I/OPort D7 or ADC Analog Input 7
2113V
2214V
23V
24V
DDA
SSA
DD_3
SS_3
SPower Supply for analog peripheral (ADC)
SGround for analog peripheral (ADC)
SMain power supply
SGround
2515 PF0/CLKOUTI/OPort F0 or CPU Clock OutputExternal Interrupt: EI1
2616PF1I/OPort F1External Interrupt: EI1
2717PF2I/OPort F2External Interrupt: EI1
28NCNot Connected
2918PF4/OCMP1_AI/OPort F4 or Timer A Output Compare 1
30NCNot Connected
3119PF6/ICAP1_AI/OPort F6 or Timer A Input Capture 1
3220PF7/EXTCLK_AI/OPort F7 or External Clock on Timer A
3321V
3422V
DD_0
SS_0
SMain power supply
SGround
3523PC0/OCMP2_BI/OPort C0 or Timer B Output Compare 2
3624PC1/OCMP1_BI/OPort C1 or Timer B Output Compare 1
3725PC2/ICAP2_BI/OPort C2 or Timer B Input Capture 2
3826PC3/ICAP1_BI/OPort C3 or Timer B Input Capture 1
3927PC4/MISOI/OPort C4 or SPI Master In / Slave Out Data
4028PC5/MOSII/OPort C5 or SPI Master Out / Slave In Data
4129PC6/SCKI/OPort C6 or SPI Serial Clock
4230PC7/SS
I/OPort C7 or SPI Slave Select
4331PA0I/OPort A0External Interrupt: EI0
Test mode pin . In the EPROM programming
mode, this pin acts as the programming voltage
input V
PP.
I/OBidirectional. Active low. Top priority non maskable interrupt.
This pin must be tied
low in user mode
55NCNot Connected
56NCNot Connected
5743V
SS_2
5844OSCOUTO
5945OSCINI
6046V
DD_2
SGround
Input/Output Oscillator pin. These pins connect a parallel-resonant
crystal, or an external source to the on-chip oscillator.
SMain power supply
6147PE0/TDOI/OPort E1 or SCI Transmit Data Out
6248PE1/RDII/OPort E1 or SCI Receive Data In
63NCNot Connected
64NCNot Connected
Note 1: VPP on EPROM/OTP only.
Table 2. ST72T331Jx Pin Desc ription
Pin n°
QFP44
Pin n°
SDIP42
Pin NameTypeDescriptionRemarks
138PE1/RDII/OPort E1 or SCI Receive Data In
239PB0I/OPort B0External Interrupt: EI2
340PB1I/OPort B1External Interrupt: EI2
441PB2I/OPort B2External Interrupt: EI2
542PB3I/OPort B3External Interrupt: EI2
61PB4I/OPort B4External Interrupt: EI3
72PD0/AIN0I/OPort D0 or ADC Analog Input 0
83PD1/AIN1I/OPort D1 or ADC Analog Input 1
94PD2/AIN2I/OPort D2 or ADC Analog Input 2
105PD3/AIN3I/OPort D3 or ADC Analog Input 3
116PD4/AIN4I/OPort D4 or ADC Analog Input 4
127PD5/AIN5I/OPort D5 or ADC Analog Input 5
138V
149V
DDA
SSA
SPow er Supply for analog perip heral (ADC )
SGround for analog peripheral (ADC)
1510PF0/CLKOUTI/OPort F0 or CPU Clock OutputExternal Interrupt: EI1
1611PF1I/OPort F1External Interrupt: EI1
1712PF2I/OPort F2External Interrupt: EI1
8/107
8
ST72E331 ST72T331
Pin n°
QFP44
Pin n°
SDIP42
Pin NameTypeDescriptionRemarks
1813PF4/OCMP1_AI/OPort F4 or Timer A Output Compare 1
1914PF6/ICAP1_AI/OPort F6 or Timer A Input Capture 1
2015PF7/EXTCLK_AI/OPort F7 or External Clock on Timer A
21V
22V
DD_0
SS_0
SMain power supply
SGround
2316PC0/OCMP2_BI/OPort C0 or Timer B Output Compare 2
2417PC1/OCMP1_BI/OPort C1 or Timer B Output Compare 1
2518PC2/ICAP2_BI/OPort C2 or Timer B Input Capture 2
2619PC3/ICAP1_BI/OPort C3 or Timer B Input Capture 1
2720PC4/MISOI/OPort C4 or SPI Master In / Slave Out Data
2821PC5/MOSII/OPort C5 or SPI Master Out / Slave In Data
2922PC6/SCKI/OPort C6 or SPI Serial Clock
3023PC7/SS
SGround
3427PA4 I/OPort A4High Sink
3528PA5I/OPort A5 High Sink
3629PA6I/OPort A6 High Sink
3730PA7I/OPort A7High Sink
3831TEST/V
PP
1)
3932RESET
4033V
SS_2
4134OSCOUTO
4235OSCINI
4336V
DD_2
Test mode pin. In the EPROM programming
S
mode, this pin acts as the programming
voltage input V
PP.
I/OBidirectional. Active low. Top priority non maskable interrupt.
SGround
Input/Output Oscillator pin. These pins connect a parallel-resonant
crystal, or an external source to the on-chip oscillator.
SMain power supply
This pin must be tied
low in user mode
4437PE0/TDOI/OPort E0 or SCI Transmit Data Out
Note 1: VPP on EPROM/OTP only.
9/107
9
ST72E331 ST72T331
1.3 EXTERNAL CONNECTIONS
The following figure shows the recom mended external connections for the device.
The V
pin is only used for programming OTP
PP
and EPROM devices and must be tied to ground in
user mode.
The 10 nF and 0. 1 µF decoupling capacitors on
the power supply lines are a suggested EMC performance/cost tradeoff.
Figure 6. Recommended Extern al Connec tions
V
DD
Optional if Low Voltage
Detector (LVD) is used
EXTERNAL RESET CIRCUIT
10nF
+
See
A/D Converter
Section
V
DD
0.1µF
0.1µF
The external reset network is intended to protect
the device against parasitic resets, especially in
noisy environments.
Unused I/Os shoul d be t ied hi gh to av oid any unnecessary power consumption on floating lines.
An alternative solution is to program the unused
ports as inputs with pull-up.
V
PP
V
4.7K
DD
V
SS
V
DDA
V
SSA
RESET
0.1µF
10/107
10
See
Clocks
Section
Or configure unused I/O ports
by software as input with pull-up
Control Register2
Control Register1
Status Register
Input Capture1 High Register
Input Capture1 Low Register
Output Compare1 High Register
Output Compare1 Low Register
Counter High Register
Counter Low Register
Alternate Counter High Register
Alternate Counter Low Register
Input Capture2 High Register
Input Capture2 Low Register
Output Compare2 High Register
Output Compare2 Low Register
SCI Status Register
SCI Data Register
SCI Baud Rate Register
SCI Control Register 1
SCI Control Register 2
SCI Extended Receive Prescaler Register
Reserved
SCI Extended Transmit Prescaler Register
Reserved Area (24 bytes)
ADC Data Register
ADC Control/Status Register
Reserved Area (14 bytes)
00h
00h
xxh
xxh
xxh
80h
00h
FFh
FCh
FFh
FCh
xxh
xxh
80h
00h
C0h
xxh
00x----xb
xxh
00h
00h
---
00h
00h
00h
R/W
R/W
Read Only
Read Only
Read Only
R/W
R/W
Read Only
Read Only
Read Only
Read Only
Read Only
Read Only
R/W
R/W
Read Only
R/W
R/W
R/W
R/W
R/W
Reserved
R/W
Read Only
R/W
Notes:
1. The bits corresponding to unavailable pins are forced to 1 by hardware, this affects the reset status value.
2. External pin not available.
3. Not used in versions without Low Voltage Detector Reset.
Remarks
2)
2)
2)
2)
13/107
13
ST72E331 ST72T331
1.5 OPTION BYTE
The user has the option to select software watchdog or hardware watchdog (see description in the
Watchdog chapter). When program ming EPROM
or OTP devices, this o ption is selected in a men u
by the user of the EPROM programmer before
burning the EPROM/O TP. The Option Byte is located in a non-user map. No address has to be
specified. The Option Byte is at FFh after UV erasure and must be properly programmed t o set desired options.
OPTBYTE
70
----b3b2-WDG
Bit 7:4 = Not used
Bit 3 = Reserved, must be cleared.
Bit 2 = Reserved, must be s et on S T7 2T331 N devices and must be cleared on ST72T331J devices.
Bit 1 = Not used
Bit 0 = WDG
Watchdog disable
0: The Watchdog is enabled after reset (Hardware
Watchdog).
1: The Watchdog is not enabled after reset (Soft-
ware Watchdog).
14/107
14
2 CENTRAL PROCE SSI NG UNIT
ST72E331 ST72T331
2.1 INTRODUCTION
This CPU has a full 8-bit architecture and contains
six internal registers allowing efficient 8-bit data
manipulation.
2.2 MAIN FEATURES
■ 63 basic instructions
■ Fast 8-bit by 8-bit multiply
■ 17 main addressing modes
■ Two 8-bit index registers
■ 16-bit stack pointer
■ Low po wer modes
■ Maskable hardware interrupts
■ Non-maskable software interrupt
2.3 CPU REGISTERS
The 6 CPU registers shown in Figure 1 are not
present in the memory mapping and are accessed
by specific instructions.
Figure 8. CPU Registers
70
RESET VALUE = XXh
70
RESET VALUE = XXh
70
RESET VALUE = XXh
Accumulator (A)
The Accumulator is an 8-bit general purpose register used to hold operan ds and the results of the
arithmetic and logic calculations and to manipulate
data.
Index Registers (X and Y)
In indexed addressing modes, these 8-bit registers
are used to create either effective addresses or
temporary storage areas for data manipulation.
(The Cross-Assembler generates a precede instruction (PRE) to indicate that the following instruction refers to the Y register.)
The Y register is not affected by the interrupt automatic procedures (not pushed to and popped from
the stack).
Program Cou nt er (P C )
The program counter is a 16-bit register containing
the address of the next instruction to be executed
by the CPU. It is made of two 8-bit registers PCL
(Program Counter Low which is the LSB) and PCH
(Program Counter High which is the MSB).
ACCUMULA T OR
X INDEX REGISTER
Y INDEX REGISTER
158
RESET VALUE = RESET VECTOR @ FFFEh-FFFFh
15
RESET VALUE = STACK HIGHER ADDRESS
PCH
RESET VALUE =
7
70
1C11HI NZ
1X11X1XX
70
8
PCL
0
PROGRAM COUNTER
CONDITION CODE REGISTER
STACK POINTER
X = Undefined Value
15/107
15
ST72E331 ST72T331
CPU REGISTERS (Cont’d)
CONDITION CODE REGISTER (CC)
Read/Write
Reset Value: 111x1xxx
70
111HINZC
The 8-bit Condition Code register c ontains the interrupt mask and four flags represent ative of the
result of the instruction just executed. This register
can also be handled by the PUSH and POP instructions.
These bits can be individually tested and/or controlled by specific instructions.
Bit 4 = H
Half carry
.
This bit is set by hardware when a carry occurs between bits 3 and 4 of t he ALU during an ADD or
ADC instruction. It is reset by hardware during the
same instructions.
0: No half carry has occurred.
1: A half carry has occurred.
This bit is tested using the JRH or JRNH instruction. The H bit is useful in BCD arithmetic subroutines .
Bit 3 = I
Interrupt mask
.
This bit is set by hardware when entering in interrupt or by software to disable all interrup ts except
the TRAP software interrupt. This bit is cleared by
software.
0: Interrupts are enabled.
1: Interrupts are disabled.
This bit is controlled by the RIM, SIM and IRET instructions and is tested by the JRM and JRNM instructions.
Note: Interrupts requested while I is set are
latched and can be processed whe n I is cleared.
By default an interrupt routine is not in terruptable
because the I bi t is set by hardware at the start of
the routine and reset by the IRET instruction at the
end of the routine. If the I bit is cleared by software
in the interrupt routine, pending interrupts are
serviced regardless of the priority level of the current interrupt routine.
Bit 2 = N
Negative
.
This bit is set and cleared by hardware. It is representative of the result sign of the last arithmeti c,
logical or data manipulation. It is a copy of the 7
bit of the result.
0: The result of the last operation is positive or null.
1: The result of the last operation is negative
(i.e. the most significant bit is a logic 1).
This bit is accessed by the JRMI and JRPL instructions.
Zero
Bit 1 = Z
.
This bit is set and cleared by hardware. This bit indicates that the result of the last arithmetic, logical
or data manipulation is zero.
0: The result of the last operation is different from
zero.
1: The result of the last operation is zero.
This bit is accessed by the JREQ and JRNE test
instructions.
Bit 0 = C
Carry/borrow.
This bit is set and cleared b y hardware and software. It indicates an overflow or an underflow has
occurred during the last arithmetic operation.
0: No overflow or underflow has occurred.
1: An overflow or underflow has occurred.
This bit is driven by the SCF and RCF instructions
and tested by the JRC and JRNC instructions. It is
also affected by the “bit test and branch”, shift and
rotate instructions.
th
16/107
16
ST72E331 ST72T331
CENTRAL PROCESSING UNIT (Cont’d)
Stack Pointer (SP)
Read/Write
Reset Value: 01FFh
158
00000001
70
SP7SP6SP5SP4SP3SP2SP1SP0
The Stack Pointer is a 16-bit register which is always pointing to the next free location in the stack.
It is then decremented after data has been pushed
onto the stack and incremented before data is
popped from the stack (see Figure 9).
Since the stack is 256 bytes deep, the 8th most
significant bits are forced by hardware. Following
an MCU Reset, or after a Reset Stack Pointer instruction (RSP), the Stack Pointer contains its reset value (the SP7 to SP0 bits are set) which is the
stack higher address.
The least significant byte of the Stack Pointer
(called S) can be directly accessed by a LD instruction.
Note: When the lower limit is exceeded, the Stack
Pointer wraps around to the stack upper limit, wi thout indicating the s tack overflow. The prev iously
stored information is then o verwritten and therefore lost. The stack also wraps in case of an underflow.
The stack is used to save the retu rn address during a subroutine call and the CPU context during
an interrupt. The user may also directly manipulate
the stack by means of the PUSH and POP instructions. In the case of an interrupt, the PCL is stored
at the first location point ed to by the SP. Then the
other registers are stored in the next locations as
shown in Figure 9.
– When an interrupt is received, the SP is decre-
mented and the context is pushed on the stack.
– On return from interrupt, the SP is incremented
and the context is popped from the stack.
A subroutine call occupies two locations and an interrupt five locat ions i n the sta ck ar ea.
The MCU accepts either a crystal or ceramic resonator, or an external clock signal to drive the internal oscillator. The internal clock (f
from the external oscillator frequency (f
) is derived
CPU
OSC).
The
external Oscillator clock is first divided by 2, and
an additional division factor of 2, 4, 8, or 16 can be
applied, in Slow Mode, to red uce th e f requency of
the f
; this clock signal is also routed to the on-
CPU
chip peripherals. The CPU clock signal consists of
a square wave with a duty cycle of 50%.
The internal oscillat or is designed to operate with
an AT-cut parallel resonant quartz crystal resonator in the frequency range specified for f
osc
. The
circuit shown in Fi gure 11 is recommended whe n
using a crystal, and Tab le 5 lists the recommended capacitance and feedback resistance values.
The crystal and associated components should be
mounted as close as p ossible to the input pins i n
order to minimize output distortion and start-up
stabilisation time.
Use of an external CMOS oscillator is recommended when crystals outside the specified frequency ranges are to be used.
3.1.2 External Clock
An external clock may be applied to the OSCIN input with the OSCOUT pin not connected, as
shown on Figure 10.
Figure 10. External Clock Source Connections
OSCINOSCOUT
NC
EXTERNAL
CLOCK
Figure 11. Crystal/Ceramic Resonator
OSCOUT
C
OSCOUT
C
OSCIN
OSCIN
Table 5 Recommended Values for 16 MHz
R
SMAX
Crystal Resonator (C
R
SMAX
C
OSCIN
C
OSCOUT
40
Ω
56pF47pF22pF
56pF47pF22pF
: Parasitic series resistance of the quartz
60
< 7pF)
0
Ω
150
Ω
crystal (upper limit).
: Parasitic shunt capacitance of the quartz crys-
C
0
tal (upper limit 7pF).
C
OSCOUT
, C
: Maximum total capacitance on
OSCIN
pins OSCIN and OSCOUT (the value includes the
external capacitance tied to the p in plus the parasitic capacitance of the board and of the device).
18/107
18
Figure 12. Clock Prescaler Block Diagram
C
OSCIN
OSCIN
OSCOUT
%2% 2, 4, 8, 16
C
OSCOUT
f
CPU
to CPU and
Peripherals
3.2 RESET
ST72E331 ST72T331
3.2.1 Introd uct i on
There are four sources of Reset:
– RESET
pin (external source)
– Power-On Reset (Internal source)
– WATCHDOG (Internal Source)
– Low Voltage Detection Reset (internal source)
The Reset Service Routine vector is located at ad-
dress FFFEh-FFFFh.
3.2.2 External Reset
The RESET
pin is both an input and an open-drain
output with integrated pull-up resi stor. When one
of the internal Reset sources is active, the Reset
pin is driven low for a duration of t
RESET
to reset
the whole application.
3.2.3 Reset Operation
The duration of the Reset state is a minimum of
4096 internal CPU Clock cycles. During the Reset
state, all I/Os take their reset value.
A Reset signal originating from an external source
must have a duration of at least t
PULSE
in order to
Figure 13. Reset Block Diagram
be recognised. This detection is asynchronous
and therefore the MCU can enter Reset state even
in Halt mode.
At the end of the Reset cycle, the MCU may be
held in the Reset state by an External Reset signal. The RESET
has risen to a point where the MCU can oper-
V
DD
pin may thus be used to ens ure
ate correctly before the user program is run. Following a Reset event, or after exiting Halt mode, a
4096 CPU Clock cycle delay period is initiated in
order to allow the oscillat or to stabilise and to ensure that recovery has taken place from the Reset
state.
In the high state, the RESET
ternally to a pull-up resistor (R
pin is connected in-
). This resistor
ON
can be pulled low b y ex ternal circuitry to res et t he
device.
The RESET
pin is an asynchronous signal which
plays a major role in EMS performance. In a noisy
environment, it is rec ommended to u se the external connections shown in Figure 6.
RESET
OSCILLATOR
SIGNAL
V
DD
R
ON
TO ST7
RESET
INTERN AL
RESET
COUNTER
POWER-ON RESE T
WATCHDOG RESET
LOW VOLTAGE DETECTOR RESET
19/107
19
ST72E331 ST72T331
RESET (Cont’d)
3.2.4 Low Voltage Detector Reset
The on-chip Low Voltage Detector (LVD) generates a static reset when the supply voltage is below a reference value. The LVD functions both
during power-on as well as when the power supply
drops (brown-out). The reference value for a voltage drop is lower than the reference value for power-on in order to avoid a parasitic reset when the
MCU starts running and sinks current on the supply (hysteresis).
The LVD Reset circuitry generates a reset when
is below:
V
DD
V
V
Provided the minimun V
the oscillator frequency) is above V
MCU can only be in two modes:
- under full software control or
- in static safe reset
In this condition, secure operation is always en-
sured for the application without the need for external reset hardware.
During a Low Voltage Detector Reset, the RESET
pin is held low, thus perm itting the MCU to reset
other devices.
In noisy environments, the power supply may drop
for short periods and cause the Low Voltage Detector to generate a Reset too frequen tly. In such
when VDD is rising
LVDUP
LVDDOWN
when VDD is falling
value (guaranteed for
DD
LVDDOWN
, the
cases, it is recommended to us e devices without
the LVD Reset option and to rely on the watchdog
function to detect application runaway conditions.
Figure 14. Low Voltage Detector Reset Function
V
DD
LOW VOLTAGE
DETECTOR RESET
FROM
WATCHDOG
RESET
RESET
Figure 15. Low Voltage Detector Reset Signal
V
V
DD
RESET
LVDUP
V
LVDDOWN
Note: See electrical characteristics for values of
LVDUP
and V
LVDDOWN
V
Figure 16. Temporization timing diagram after an internal Reset
V
LVDUP
Temporiz ation (40 96 CP U clock cy cl es)
$FFFE
20/107
V
DD
Addresses
20
4 INTE RRUPTS
ST72E331 ST72T331
The ST7 core may be interrupted by one of two different methods: maskable hardware interrupts as
listed in the Interrupt Mapping Table and a nonmaskable software interrupt (TRAP). The Interrupt
processing flowchart is shown in Figure 1.
The maskable interrupts must be enabled by
clearing the I bit in order to be serviced. However,
disabled interrupts may be latched and processed
when they are enabled (see external interrupts
subsection).
Note: After reset, all interrupts are disabled.
When an interrupt has to be serviced:
– No rmal processing is susp ended at the end of
the current instruction execution.
– The PC, X, A and CC registers are saved onto
the stack.
– The I bit of the CC register is set to prevent addi-
tional interrupts.
– The PC is then loaded with the interrupt vector of
the interrupt to service and the first instruction of
the interrupt service routine is fetched (refer to
the Interrupt Mapping Table for vector addresses).
The interrupt service routine should finish with the
IRET instruction which c auses the conten ts o f the
saved registers to be recovered from the stack.
Note: As a consequence of the IRET instruction,
the I bit will be cleared a nd the main pro gram will
resume.
Priority Management
By default, a servicing interrupt cannot be interrupted because the I bit is set by hardware entering in interrupt routine.
In the case when several inte rrupt s ar e simultaneously pending, an hardware priority defines which
one will be serviced first (see the Interrupt Mapping Table).
Interrupts and Low Power Mode
All interrupts allow the processor to leave the
WAIT low power mode. Only external and specifically mentioned interrupts allow the proc essor to
leave the HALT low power mode (refer to the “Exit
from HALT“ column in the I nterrupt Mapping Table).
4.1 NON MASKABLE SOFTWARE INTERRUPT
This interrupt is entered when the TRAP instruction is executed regardless of the state of the I bit.
It will be serviced according to the flowchart on
Figure 1.
4.2 EXTERNAL INTERRUPTS
External interrupt vectors can be loaded into the
PC register if the corresponding ext ernal interrupt
occurred and if the I bit is cleared. These interrupts
allow the processor to leave the Halt low power
mode.
The external interrupt polarity is selected through
the miscellaneous register or interrupt register (if
available).
An external interrupt triggered on edge will be
latched and the interrupt request automatically
cleared upon entering the interrupt service routine.
If several input pins, connected to the same interrupt vector, are configured as interrupts, their signals are logically ANDed and inverted before entering the edge/level detection block.
Caution: The type of sensitivity defined in the Miscellaneous or Interrupt register (if available) applies to the ei source. In case of an ANDed source
(as described on the I/O ports section), a low level
on an I/O pin configured as input with interrupt,
masks the interrupt request even in case of risingedge sensitivity.
4.3 PERIPHERAL INTERRUPTS
Different peripheral interrupt flags in the status
register are able to cause an interrupt when they
are active if both:
– The I bit of the CC register is cleared.
– The corresponding enable bit is set in the control
register.
If any of these two conditions is false, the interrupt
is latched and thus remains pending.
Clearing an interrupt request is done by:
– Writing “0” to the corresponding bit in the status
register or
– Access to the status register while the f lag i s set
followed by a read or write of an associated register.
Note: the clearing sequence resets the internal
latch. A pending interrupt (i.e. waiting for being enabled) will therefore be lost if the clear sequence is
executed.
21/107
21
ST72E331 ST72T331
INTERRUPTS (Cont’d)
Figure 17. Inte rru pt P rocessing Flow c hart
There are three Power Saving modes. Slow Mode
is selected by setting the rele vant bits in the Miscellaneous register. Wait and Halt m odes may b e
entered using the WFI and HALT instructions.
Figure 18. WAIT Flow Chart
WFI INSTRUCTION
4.4.2 Slow Mode
In Slow mode, the oscillator frequency can be d ivided by a value defined in the Miscellaneous
Register. The CPU and peripherals are clocked at
this lower frequency. Slow mode is used to reduce
power consumption, and enables the user to adapt
clock frequency to available supply voltage.
4.4.3 Wait Mode
Wait mode places the M CU in a low power consumption mode by stopping the CPU. All peripherals remain active. During Wait mode, th e I bit (CC
Register) is cleared, so as to enable all interrupts.
All other registers and memory remain unchanged.
The MCU w ill remain in Wait mode u ntil an Inte rrupt or Reset occurs, whereupon the Program
Counter branches to the starting address of the Interrupt or Reset Service Routine.
The MCU will remain in Wait mode until a Reset or
an Interrupt occurs, causing it to wake up.
Refer to Figure 18 below.
N
INTERRUPT
Y
OSCILLATOR
PERIPH. CLOCK
CPU CLOCK
I-BIT
N
RESET
OSCILLATOR
PERIPH. CLOCK
CPU CLOCK
I-BIT
4096 CPU CLOCK
CYCLES DELAY
ON
ON
OFF
CLEARED
Y
ON
ON
ON
SET
24/107
24
OSCILLATOR
PERIPH. CLOCK
CPU CLOCK
I-BIT
FETCH RESET VECTOR
OR SERVICE INTERRUP T
Note: Before servicing an interrupt, the CC register is
pushed on the sta ck. The I-Bit is s et d uring the inte rrupt routine and cleared when the CC register is
popped.
ON
ON
ON
SET
POWER SAVING MODES (Cont’d)
4.4.4 Halt Mode
The Halt mode is the MCU lowest power consumption mode. The Halt mode is entered by executing the HALT instruction. The internal oscillator
is then turned off, causing all internal processing to
be stopped, including the operation of the on-chip
peripherals. The Halt mode cannot be used whe n
the watchdog is enabled, if the HALT instruction is
executed while the watchdog system is enabled, a
watchdog reset is generated thus resetting the entire MCU.
When entering Halt mode, the I bit in the CC Register is cleared so as to enable External Interrupts.
If an interrupt occurs, the CPU becomes active.
The MCU can exit the Halt mode upon reception of
an interrupt or a reset. Refer t o the I nterrupt M apping Table. The oscillator is then turned on and a
stabilization time is provided before releasing CPU
operation. The stabilization time is 4096 CPU clock
cycles.
After the start up delay, the CPU continues operation by servicing the interrupt which wakes it up or
by fetching the reset vector if a reset wakes it up.
ST72E331 ST72T331
Figure 19. HALT Flow Chart
HALT INSTRUCTION
WATCHDOG
RESET
N
EXTERNAL
INTERRUPT
Y
OSCILLATOR
PERIPH. CLOCK
CPU CLOCK
I-BIT
N
1)
WDG
ENABLED?
N
OFF
OFF
OFF
CLEARED
RESET
Y
Y
1) or some specific interrupts
2) if reset PERIPH. CLOCK = ON ; if interrupt
PERIPH. CLOCK = OFF
Note: Before servicing an interrupt, the CC register is
pushed on th e sta ck. The I-Bit is s et d uring the inte rrupt routine and cleared when the CC register is
popped.
OSCILLATOR
PERIPH. CLOCK
CPU CLOCK
I-BIT
4096 CPU CLOCK
CYCLES DELAY
OSCILLATOR
PERIPH. CLOCK
CPU CLOCK
I-BIT
FETCH RESET VECTOR
OR SERVICE INTERRUPT
ON
2)
OFF
ON
SET
ON
ON
ON
SET
25/107
25
ST72E331 ST72T331
4.5 MISCELLANEOUS REGISTER
The Miscellaneous register allows to select the
SLOW operating mode , the polarity of ex ternal i nterrupt requests and to output the internal clock.
Note: Any modification of one of these two bits re-
sets the interrupt request related to t his interrupt
vector.
MODEPEI3PEI2
Falling edge and low level
(Reset state)
Falling edge only10
Rising edge only01
Rising and falling edge11
Note: Any modification of one of these two bits resets the interrupt request related to this interrupt
vect or.
Bit 5 = MCO
Main Clock Out
This bit is set and cleared by software. When set, it
00
Bit 2:1 = PSM[1:0]
Prescaler for Slow Mode
These bits are set and cleared by so ftware. They
determine the CPU clock when the SMS bit is set
according to the following table.
Table 9. f
Value in Slow Mode
CPU
f
Valu e
CPU
/ 400
f
OSC
/ 1601
f
OSC
/ 810
f
OSC
f
/ 3211
OSC
enables the output of the Internal Clock on the
PPF0 I/O port.
0 - PF0 is a general purpose I/O port.
1 - MCO alternate function (f
is output on PF0
CPU
pin).
Bit 0 = SMS
This bit is set and cleared by software.
0: Normal Mode - f
Slow Mode Select
= f
CPU
OSC
/ 2
(Reset state)
1: Slow Mode - the f
PSM[1:0] bits .
value is determined by the
CPU
00
PSM1PSM0
26/107
26
5 ON-CHIP PERIPHERALS
5.1 I/O PORTS
5.1.1 Introd uction
The I/O ports offer different functional modes:
– transfer of data through digital inputs and outputs
and for specific pins:
– an alog signal input (ADC)
– alterna te signal input/output for the on-chip pe-
ripherals.
– external interrupt generat ion
An I/O port is composed of up to 8 pins. Each pin
can be programmed independently as digital input
(with or without interrupt generation) or digital output.
5.1.2 Functional Description
Each port is associated to 2 main registers:
– Data Register (DR)
– Data Direction Register (DDR)
and some of them to an optional register:
– Option Register (OR)
Each I/O pin may be programmed using the corre-
sponding register bits in DDR and OR registers: bit
X corresponding to pin X of the port. The same correspondence is used for the DR register.
The following description takes into account the
OR register, for specific ports which do not provide
this register refer to the I/O Port Implementation
Section 4.1.3. The generic I/O block diagram is
shown on Figure 21.
5.1.2.1 Input Modes
The input configuration is sele cted by clearing the
corresponding DDR register bit.
In this case, reading the DR register returns the
digital value applied to the external I/O pin.
Different input modes can be selected by software
through the OR register.
Notes:
1. All the inputs are triggered by a Schmitt trigger.
2. When switching from input mode to output
mode, the DR register should be written first to
output the correct value as soon as the port is configured as an output.
ST72E331 ST72T331
Interrupt function
When an I/O is configured in Input with Interrupt,
an event on thi s I/O can generat e an external Interrupt request to the CPU. The interrupt polarity is
given independently according to the description
mentioned in the Miscellaneous regi ster or in the
interrupt register (where available).
Each pin can independently generate an Interrupt
request.
Each external interrupt vector is linked t o a dedicated group of I/O port pins (see Interrupts section). If several input pins are configured as inputs
to the same interrupt vector, their sign als are logically ANDed before entering the edge/level detection block. For this reason if one of the interrupt
pins is tied low, it masks the other ones.
5.1.2.2 Output Mode
The pin is configured in output mode by setting the
corresponding DDR register bit.
In this mode, writing “0” or “1” to the DR register
applies this digital value to the I/O pin through the
latch. Then reading the DR register returns the
previously stored value.
Note: In this mode, the interrupt function is disabled.
5.1.2.3 Digital Alternate Function
When an on-chip peripheral is configured to use a
pin, the alternate function is au tomatically selected. This alternate function takes priority over
standard I/O programming. When the signal is
coming from an on-chip peripheral, the I/O pin is
automatically configured in output mode (push-pull
or open drain according to the peripheral).
When the signal is goi ng to an on-chip peripheral,
the I/O pin ha s to be configured in i nput mode. In
this case, the pin’s state is a lso digitally readable
by addressing the DR register.
Notes:
1. Input pull-up configuration can cause an unex pected value at the input of the alternate peripheral input.
2. When the on-chip peripheral uses a pin as input
and output, this pin must be configured as an input
(DDR = 0).
Warning
vated as long as the pin is configured as input with
interrupt, in order to avoid generating spurious interrupts.
: The alternate func tion m us t not be a cti-
27/107
27
ST72E331 ST72T331
I/O PORTS (Cont’d)
5.1.2.4 Analog Alternate Function
When the pin is used as an ADC input the I/O must
be configured as input, floating. The analog multiplexer (controlled by the ADC registers) switches
the analog voltage present o n the selected pin to
the common ana log rail which i s c onnect ed to the
ADC input.
It is recommended not to change the voltage level
or loading on any port pin while conversion is in
progress. Furthermore it i s recommended not to
have clocking pins located close t o a sele cted analog pin.
Warning
within the limits stated in the Absolute M aximum
Ratings.
Figure 20. Recommended I/O State Transition Diagram
: The analog input voltage level mus t be
5.1.3 I/O Port Implementation
The hardware implementation on each I/O port depends on the settings in the DDR and OR registers
and specific feature of the I/O port such as ADC Input (see Figure 21) or true open drain. Switching
these I/O ports from one state to an other should
be done in a sequence that prevents unwanted
side effects. Recommended safe transitions are illustrated in Figure 20. Other transitions are potentially risky and should be avoided, since they are
likely to present unwanted side-effects such as
spurious interrupt generation.
INPUT
with interrupt
INPUT
no interrupt
OUTPUT
open-drain
OUTPUT
push-pull
28/107
28
I/O PORTS (Cont’d)
ST72E331 ST72T331
Figure 21
. I/O Block Diagram
COMMON ANALOG RAIL
ALTERNATE INPUT
LATCH
DDR
LATCH
DATA BUS
LATCH
(SEE TABLE BELOW)
OR SEL
DDR SEL
DR SEL
ALTERNATE
OUTPUT
DR
OR
ALTERNATE ENABLE
1
M
U
X
0
ALTERNATE
1
M
U
X
0
ENABLE
ALTERNATE
ENABLE
PULL-UP
CONDITION
ANALOG ENABLE
(ADC)
(S
EE NOTE BELOW)
PULL-UP
ANALOG
SWITCH
V
DD
P-BUFFER
EE TABLE BELOW)
(S
V
DD
DIODE
(SEE TABLE BELOW)
GND
N-BUFFER
GND
PAD
CMOS
SCHMITT TRIGGER
EXTERNAL
INTERRUPT
SOURCE (EIx)
POLARITY
SEL
FROM
OTHER
BITS
Table 10. Port Mode Configuration
Configuration ModePull-upP-bufferVDD Diode
Floating001
Pull-up 101
Push-pull011
True Open Drainnot presentnot present not present
Open Drain (logic level)001
Legend:
0 - present, not activated
1 - present and activated
Notes:
– No OR Register on some ports (see register map).
– ADC Switch on ports with analog alternate functions.
29/107
29
ST72E331 ST72T331
I/O PORTS (Cont’d)
Table 11. Port Configuration
PortPin name
PA0:PA2
Port A
PA3floating*pull-up with interruptopen-drainpush-pull
1)
Input (DDR = 0)Output (DDR = 1)
OR = 0OR = 1OR = 0OR =1
floating*pull-up with interruptopen-drainpush-pull
PA4:PA7floating*open drain, high sink capability
PB0:PB4floating* pull-up with interruptopen-drain
Port B
PB5:PB7
1)
floating* pull-up with interruptopen-drain
Port CPC0:PC7floating*pull-upopen-drainpush-pull
PD0:PD5floating*pull-upopen-drainpush-pull
Port D
PD6:PD7
1)
floating*pull-upopen-drainpush-pull
PE0:PE1floating*pull-upopen-drainpush-pull
Port E
PE4:PE7
1)
floating*2) open drain, high sink capability3)
PF0:PF2floating*pull-up with interruptopen-drainpush-pull
Port F
PF4, PF6, PF7floating*pull-upopen-drainpush-pull
Notes:
1. ST72T331N only
2. For OTP/EPROM version, when OR=0: floating & when OR=1: reserved
3. For OTP/EPROM version, when OR=0: open-drain, high sink capability & when OR=1: reserved
push-pull
push-pull
* Reset state (The bits corresponding to unavailable pins are forced to 1 by hardware, this affects the reset status value).
Warning: All bits of the DDR register which correspond to unconnected I/Os must be left at their reset value. They must
not be modified by the user otherwise a spurious interrupt may be generated.
30/107
30
Loading...
+ 78 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.