– 9 programmable interrupt inputs
– 4 high sink outputs
– 13 alternate functions
–EMI filtering
■ Software or Hardware Watchdog (WDG)
■ Two 16-bit Timers, each featuring:
– 2 Input Captures and 2 Output Compares
– External Clock input (on Timer A)
– PWM and Pulse Generator modes
■ Synchronous Serial Peripheral Interface (SPI)
■ Asynchronous Serial Communications Interface
(SCI)
■ 8-bit Data Manipulation
■ 63 basic Instructions an d 17 main Addressing
Modes
■ 8 x 8 Unsigned Multiply Instruction
■ True Bit Manipulation
■ Complete Development Support on DOS/
WINDOWS
■ Full Software Package on DOS/WINDOWS
(C-Compiler, Cross-Assembler, Debugger)
Note: 1. One only of each on Tim er A.
TM
Real-Time Emulator
ST72E121
ST72T121
DATASHEET
PSDIP42
1)
CSDIP42W
TQFP44
TM
(See ordering information at the end of datasheet)
Device Summary
FeaturesST72T121J2ST72T121J4
Program Memory - bytes8K16K
RAM (stack) - bytes384 (256)512 (256)
PeripheralsWatchdog, Timers, SPI, SCI and optional Low Voltage Detector Reset
Operating Supply3 to 5.5 V
CPU Frequency8MHz max (16MHz oscillator) - 4MHz max over 85°C
The ST72T121 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 ST72T121
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 ST72T121 features
true bit manipulation, 8x8 unsigned multiplication
Figure 1. ST72T121 Block Diagram
Internal
OSCIN
OSCOUT
RESET
OSC
CONTROL
AND L VD
8-BIT CO RE
ALU
PROGRAM
MEMORY
(8 - 16K Bytes)
CLOCK
and indirect addressing modes on the whole memory. The device includes a low consumption and
fast sta r t on - c hip o s c illator, CP U , p r og ra m memo ry (OTP/EPROM vers ions), RAM, 32 I/O lines, a
Low Voltage Detector (LVD) and the following onchip peripherals: industry standard synchronous
SPI and asynchronous SCI serial interfaces, digi tal Watchdog, two independent 16-bit Timers, one
featuring an External Clock Input, and both featuring Pulse Generator capabilities, 2 Input Captures
and 2 Output Compares (only 1 Input Capture and
1 Output Compare on Timer A).
138PE1/RDII/OPort E1 or SCI Receive Data In
239PB0I/OPort B0Extern al Interrupt: EI2
340PB1I/OPort B1Extern al Interrupt: EI2
441PB2I/OPort B2Extern al Interrupt: EI2
542PB3I/OPort B3Extern al Interrupt: EI2
61PB4I/OPort B4External Int er ru pt: EI3
72PD0I/OPort D0
83PD1I/OPort D1
SGround
1510PF0/CLKOUTI/OPort F0 or CPU Clock OutputExternal Interrup t: EI1
1611PF1I/OPort F1External Interrupt: EI1
1712PF2I/OPort F2External Interrupt: EI1
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 / Sl ave In Data
2922PC6/SCKI/OPort C6 or SPI Serial Clock
3023PC7/SS
SGround
3427PA4 I/OPort A4High Sink
3528PA5I/OPo rt A5 High Sink
3629PA6I/OPo rt A6 High Sink
3730PA7I/OPo rt A7High Sink
3831TEST/V
PP
1)
3932RESET
4033V
SS_2
4134OSCOUTO
4235OSCINI
4336V
DD_2
S
mode, this pin acts as the programming voltage
input V
PP.
I/OBidirectional. Active low. Top priority non maskable interrupt.
SGround
Input/Ou tput Oscill ator p in. The se pins conn ect a paral lel-re sonant cr ystal, or
an external source to the on-chip oscillator.
SMain power supply
Test mode pin. In the EPROM programming
This pin must be tied low
in user mode
4437PE0/TDOI/OPort E0 or SCI Transmit Dat a Out
Note 1: VPP on EPROM/OTP only.
6/93
6
1.3 EXTERNAL CONNECTIONS
ST72E121 ST72T121
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 4. Recommended Extern al Connec tions
V
DD
Optional if Low Voltage
Detector (LVD) is used
EXTERNAL RESET CIRCUIT
10nF
+
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
RESET
0.1µF
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 (40 bytes)
00h
00h
xxh
xxh
xxh
80h
00h
FFh
FCh
FFh
FCh
xxh
xxh
80h
00h
C0h
xxh
00x----xb
xxh
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
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)
10/93
10
1.5 OPTION BYTE
ST72E121 ST72T121
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 2T121 N devices and must be cleared on ST72T121J 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).
11/93
11
ST72E121 ST72T121
2 CENTRAL PROCE SSI NG UNIT
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 6 are not
present in the memory mapping and are accessed
by specific instructions.
Figure 6. 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
12/93
PCH
RESET VALUE =
7
70
1C11HI NZ
1X11X1XX
70
8
PCL
12
0
PROGRAM COUNTER
CONDITION CODE REGISTER
STACK POINTER
X = Undefined Value
ST72E121 ST72T121
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
13/93
13
ST72E121 ST72T121
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 7).
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 previously
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 7.
– 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 Figure 9 is recommended whe n
using a crystal, and Tab le 4 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 8.
Figure 8. External Clock Source Connections
OSCINOSCOUT
NC
EXTERNAL
CLOCK
Figure 9. Crystal/Ceramic Resonator
OSCINOSCOUT
C
OSCIN
C
OSCOUT
Table 4 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).
Figure 10. Clock Prescaler Block Diagram
C
OSCIN
OSCIN
OSCOUT
%2% 2, 4, 8, 16
C
OSCOUT
f
CPU
to CPU and
Peripherals
15/93
15
ST72E121 ST72T121
3.2 RESET
3.2.1 Introd uction
There are four sources of Reset:
– RESET
pin (external source)
– Power-O n Reset (Internal source)
– W ATCHDOG (Internal Source)
– Lo w 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 11. 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 4.
RESET
OSCILLATOR
SIGNAL
V
DD
R
ON
TO ST7
RESET
INTERN AL
RESET
COUNTER
POWER-ON RESE T
WATCHDOG RESET
LOW VOLTAGE DETECTOR RESET
16/93
16
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:
when VDD is rising
LVDUP
LVDDOWN
when VDD is falling
value (guaranteed for
DD
LVDDOWN
, the
- 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
ST72E121 ST72T121
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 12. Low Voltage Detector Reset Function
V
DD
Figure 13. Low Voltage Detector Reset Signal
V
DD
RESET
Note: See electrical characteristics for values of
V
LVDUP
LOW VOLTAGE
DETECTOR RESET
WATCHDOG
V
LVDUP
and V
LVDDOWN
FROM
RESET
RESET
V
LVDDOWN
Figure 14. Temporization timing diagram after an internal Reset
V
V
DD
Addresses
LVDUP
Temporiz ation (40 96 CP U clock cy cl es)
$FFFE
17/93
17
ST72E121 ST72T121
4 INTE RRUPTS
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 15.
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 are 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 processor 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 15.
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.
18/93
18
INTERRUPTS (Cont’d)
Figure 15. Inte rru pt P rocessing Flow c hart
NOT USEDFFE4h-FFE5h
NOT USEDFFE2h-FFE3h
NOT USEDFFE0h-FFE1h
Register
Label
SPISR
TASR
TBSR
SCISR
Flag
SPIF
ICF1_A
ICF1_B
TDRE
Exit
from
HALT
yes
no
Vector
Address
FFF6h-FFF7h
FFECh-FFEDh
FFEAh-FFEBh
FFE8h-FFE9h
FFE6h-FFE7h
Priority
Order
Highest
Priority
Lowest
Priority
20/93
20
4.4 POWER SAVING MODES
4.4.1 Introd uct i on
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.
ST72E121 ST72T121
Figure 16. 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 16 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
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
21/93
21
ST72E121 ST72T121
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.
Figure 17. 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
22/93
22
4.5 MISCELLANEOUS REGISTER
ST72E121 ST72T121
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 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
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).
Note: Any modification of one of these two bits resets the interrupt request related to t his interrupt
vector.l
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 8. f
Bit 0 = SMS
Value in Slow Mode
CPU
f
Valu e
CPU
/ 400
f
OSC
f
/ 1601
OSC
/ 810
f
OSC
/ 3211
f
OSC
Slow Mode Select
This bit is set and cleared by software.
= f
0: Normal Mode - f
CPU
OSC
/ 2
(Reset state)
1: Slow Mode - the f
PSM[1:0] b its.
value is determined by the
CPU
00
PSM1PSM 0
23/93
23
ST72E121 ST72T121
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 5.1.3. The generic I/O block diagram is
shown on Figure 19.
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.
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-
24/93
24
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 18. 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 19) 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 18. Other transitions are potentially risky and should be avoided, since they are
likely to present unwanted side-effects such as
spurious interrupt generation.
ST72E121 ST72T121
INPUT
with interrupt
INPUT
no interrupt
OUTPUT
open-drain
OUTPUT
push-pull
25/93
25
ST72E121 ST72T121
I/O PORTS (Cont’d)
Figure 19
. 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 9. 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
26/93
Notes:
– No OR Register on some ports (see register map).
– ADC Switch on ports with analog alternate functions.
26
I/O PORTS (Cont’d)
Table 10. Port Configuration
ST72E121 ST72T121
PortPin name
PA3floating*pull-up with interruptopen-drainpush-pull
Port A
PA4:PA7floating*true open drain, high sink capability
Port BPB0:PB4floating*pull-up with interruptopen-drainpush-pull
Port CPC0:PC7floating*pull-upopen-drainpush-pull
Port DPD0:PD5floating*pull-upopen-drainpush-pull
Port EPE0:PE1floating*pull-upopen-drainpush-pull
PF0:PF2floating*pull-up with interruptopen-drainpush-pull
Port F
PF4, PF6, PF7floating*pull-upopen-drainpush-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.
Input (DDR = 0)Output (DDR = 1)
OR = 0OR = 1OR = 0OR =1
27/93
27
ST72E121 ST72T121
I/O PO R T S (Cont’d)
5.1.4 Register Description
5.1.4.1 Data registers
Port A Data Register (PADR)
Port B Data Register (PBDR)
Port C Data Register (PCDR)
Port D Data Register (PDDR)
Port E Data Register (PEDR)
Port F Data Register (PFDR)
Read/Write
Reset Value: 0000 0000 (00h)
5.1.4.3 Option registers
Port A Option Register (PAOR)
Port B Option Register (PBOR)
Port C Option Register (PBOR)
Port D Option Register (PBOR)
Port E Option Register (PBOR)
Port F Option Register (PFOR)
Read/Write
Reset Value: see Register Memory Map Table 3
70
D7D6D5D4D3D2D1D0
Bit 7:0 = D7-D0
Data Register 8 bits.
The DR register has a specific behaviour according to the selected input/output configuration. Writing the DR register is always taken in account
even if the pin is configured as an input. Reading
the DR register returns ei ther the DR register latch
content (pin configured as output) or the digital value applied to the I/O pin (pin configured as input).
70
O7O6O5O4O3O2O1O0
Bit 7:0 = O7-O0
Option Register 8 bits.
The OR register allow to distinguish in input mode
if the interrupt c apability or t he floating conf iguration is selected.
In output mode it select push-pull or open-drain
capability.
Each bit is set and cleared by software.
Input mode:
5.1.4.2 Data direction registers
Port A D a t a D irection Regi s ter (PAD DR)
Port B D a t a D irection Regi s ter (PBD DR)
Port C Data Direction Register (PCDDR)
0: floating input
1: input pull-up with interrupt
Output mode:
0: open-drain configuration
1: push-pull configuration
Port D Data Direction Register (PDDDR)
Port E D a t a D irection Regi s ter (PED DR)
Port F Data Direction Register (PFDDR)
Read/Write
Reset Value: 0000 0000 (00h) (input mode)
70
DD7DD6DD5DD4DD3DD2DD1DD0
Bit 7:0 = DD7-DD0
Data Direction Register 8 bits.
The DDR register gives the input/output direction
configuration of the pins. Each bits is set and
cleared by software.
0: Input mode
1: Output mode
28/93
28
Loading...
+ 65 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.