Figure 51. 20-pin, 4.40 mm body, 0.65 mm pitch .................................................................................101
Figure 52. 20-lead, plastic small outline (300 mils) package ...............................................................101
Figure 53. STM8S903K3/F3 ordering information scheme ..................................................................104
7/116DocID15590 Rev 8
STM8S903K3 STM8S903F3Introduction
Introduction1
This datasheet contains the description of the device features, pinout, electrical characteristics,
mechanical data and ordering information.
For complete information on the STM8S microcontroller memory, registers and peripherals,
•
please refer to the STM8S microcontroller family reference manual (RM0016).
For information on programming, erasing and protection of the internal Flash memory
•
please refer to the STM8S Flash programming manual (PM0051).
For information on the debug and SWIM (single wire interface module) refer to the STM8
•
SWIM communication protocol and debug module user manual (UM0470).
For information on the STM8 core, please refer to the STM8 CPU programming manual
•
(PM0044).
DocID15590 Rev 88/116
DescriptionSTM8S903K3 STM8S903F3
Description2
The STM8S903K3 and STM8S903F3 8-bit microcontrollers offer 8 Kbytes Flash program
memory, plus integrated true data EEPROM. The STM8S microcontroller family reference
manual (RM0016) refers to devices in this family as low-density. They provide the following
benefits: performance, robustness, and reduced system cost.
Device performance and robustness are ensured by advanced core and peripherals made
in a state-of-the art technology, a 16 MHz clock frequency, robust I/Os, independent watchdogs
with separate clock source, and a clock security system.
The system cost is reduced thanks to an integrated true data EEPROM for up to 300
kwrite/erase cycles and a high system integration level with internal clock oscillators, watchdog
and brown-out reset.
Full documentation is offered as well as a wide choice of development tools.
The following section intends to give an overview of the basic features of the device functional
modules and peripherals.
For more detailed information please refer to the corresponding family reference manual
(RM0016).
Central processing unit STM84.1
The 8-bit STM8 core is designed for code efficiency and performance.
It contains 6 internal registers which are directly addressable in each execution context, 20
addressing modes including indexed indirect and relative addressing and 80 instructions.
Architecture and registers
Harvard architecture
•
3-stage pipeline
•
32-bit wide program memory bus - single cycle fetching for most instructions
•
X and Y 16-bit index registers - enabling indexed addressing modes with or without offset
•
and read-modify-write type data manipulations
8-bit accumulator
•
24-bit program counter - 16-Mbyte linear memory space
•
16-bit stack pointer - access to a 64 K-level stack
•
8-bit condition code register - 7 condition flags for the result of the last instruction
•
Addressing
20 addressing modes
•
Indexed indirect addressing mode for look-up tables located anywhere in the address
•
space
Stack pointer relative addressing mode for local variables and parameter passing
•
Instruction set
80 instructions with 2-byte average instruction size
•
Standard data movement and logic/arithmetic functions
•
8-bit by 8-bit multiplication
•
16-bit by 8-bit and 16-bit by 16-bit division
•
Bit manipulation
•
Data transfer between stack and accumulator (push/pop) with direct stack access
•
Data transfer using the X and Y registers or direct memory-to-memory transfers
•
Single wire interface module (SWIM) and debug module (DM)4.2
The single wire interface module and debug module permits non-intrusive, real-time in-circuit
debugging and fast memory programming.
11/116DocID15590 Rev 8
STM8S903K3 STM8S903F3Product overview
SWIM
Single wire interface module for direct access to the debug module and memory programming.
The interface can be activated in all device operation modes. The maximum data transmission
speed is 145 bytes/ms.
Debug module
The non-intrusive debugging module features a performance close to a full-featured emulator.
Beside memory and peripherals, also CPU operation can be monitored in real-time by means
of shadow registers.
R/W to RAM and peripheral registers in real-time
•
R/W access to all resources by stalling the CPU
•
Breakpoints on all program-memory instructions (software breakpoints)
•
Two advanced breakpoints, 23 predefined configurations
•
Interrupt controller4.3
Nested interrupts with three software priority levels
•
32 interrupt vectors with hardware priority
•
Up to 28 external interrupts on 7 vectors including TLI
•
Trap and reset interrupts
•
Flash program and data EEPROM memory4.4
8 Kbytes of Flash program single voltage Flash memory
•
640 bytes true data EEPROM
•
User option byte area
•
Write protection (WP)
Write protection of Flash program memory and data EEPROM is provided to avoid unintentional
overwriting of memory that could result from a user software malfunction.
There are two levels of write protection. The first level is known as MASS (memory access
security system). MASS is always enabled and protects the main Flash program memory,
data EEPROM and option bytes.
To perform in-application programming (IAP), this write protection can be removed by writing
a MASS key sequence in a control register. This allows the application to write to data
EEPROM, modify the contents of main program memory or the device option bytes.
A second level of write protection, can be enabled to further protect a specific area of memory
known as UBC (user boot code). Refer to the figure below.
The size of the UBC is programmable through the UBC option byte, in increments of 1 page
(64-byte block) by programming the UBC option byte in ICP mode.
This divides the program memory into two areas:
Main program memory: Up to 8 Kbytes minus UBC
•
User-specific boot code (UBC): Configurable up to 8 Kbytes
•
The UBC area remains write-protected during in-application programming. This means that
the MASS keys do not unlock the UBC area. It protects the memory used to store the boot
DocID15590 Rev 812/116
UBC area
Program memory area
Data memory area ( 640 bytes)
Remains write protectedduring IAP
Data
EEPROM
memory
Write access possible forIAP
Option bytes
Programmable
bytes(1 page)
up to 8 Kbytes
(in 1 page steps)
area from 64
Low density
Flash program
memory
(8 Kbytes)
Product overviewSTM8S903K3 STM8S903F3
program, specific code libraries, reset and interrupt vectors, the reset routine and usually the
IAP and communication routines.
Figure 2: Flash memory organization
Read-out protection (ROP)
The read-out protection blocks reading and writing the Flash program memory and data
EEPROM memory in ICP mode (and debug mode). Once the read-out protection is activated,
any attempt to toggle its status triggers a global erase of the program and data memory. Even
if no protection can be considered as totally unbreakable, the feature provides a very high
level of protection for a general purpose microcontroller.
Clock controller4.5
The clock controller distributes the system clock (f
to the core and the peripherals. It also manages clock gating for low power modes and ensures
clock robustness.
Features
Clock prescaler: To get the best compromise between speed and current consumption
•
the clock frequency to the CPU and peripherals can be adjusted by a programmable
prescaler.
Safe clock switching: Clock sources can be changed safely on the fly in run mode
•
through a configuration register. The clock signal is not switched until the new clock source
is ready. The design guarantees glitch-free switching.
Clock management: To reduce power consumption, the clock controller can stop the
•
clock to the core, individual peripherals or memory.
Master clock sources: Four different clock sources can be used to drive the master
•
clock:
-
1-16 MHz high-speed external crystal (HSE)
MASTER
) coming from different oscillators
13/116DocID15590 Rev 8
Bit
STM8S903K3 STM8S903F3Product overview
Up to 16 MHz high-speed user-external clock (HSE user-ext)
-
16 MHz high-speed internal RC oscillator (HSI)
-
128 kHz low-speed internal RC (LSI)
-
Startup clock: After reset, the microcontroller restarts by default with an internal 2 MHz
•
clock (HSI/8). The prescaler ratio and clock source can be changed by the application
program as soon as the code execution starts.
Clock security system (CSS): This feature can be enabled by software. If an HSE clock
•
failure occurs, the internal RC (16 MHz/8) is automatically selected by the CSS and an
interrupt can optionally be generated.
Configurable main clock output (CCO): This outputs an external clock for use by the
•
application.
Table 2: Peripheral clock gating bit assignments in CLK_PCKENR1/2 registers
For efficent power management, the application can be put in one of four different low-power
modes. You can configure each mode to obtain the best compromise between lowest power
consumption, fastest start-up time and available wakeup sources.
Wait mode: In this mode, the CPU is stopped, but peripherals are kept running. The
•
wakeup is performed by an internal or external interrupt or reset.
Active halt mode with regulator on: In this mode, the CPU and peripheral clocks are
•
stopped. An internal wakeup is generated at programmable intervals by the auto wake up
unit (AWU). The main voltage regulator is kept powered on, so current consumption is
higher than in active halt mode with regulator off, but the wakeup time is faster. Wakeup
is triggered by the internal AWU interrupt, external interrupt or reset.
Active halt mode with regulator off: This mode is the same as active halt with regulator
•
on, except that the main voltage regulator is powered off, so the wake up time is slower.
Halt mode: In this mode the microcontroller uses the least power. The CPU and peripheral
•
clocks are stopped, the main voltage regulator is powered off. Wakeup is triggered by
external event or reset.
Watchdog timers4.7
The watchdog system is based on two independent timers providing maximum security to
the applications.
DocID15590 Rev 814/116
Product overviewSTM8S903K3 STM8S903F3
Activation of the watchdog timers is controlled by option bytes or by software. Once activated,
the watchdogs cannot be disabled by the user program without performing a reset.
Window watchdog timer
The window watchdog is used to detect the occurrence of a software fault, usually generated
by external interferences or by unexpected logical conditions, which cause the application
program to abandon its normal sequence.
The window function can be used to trim the watchdog behavior to match the application
perfectly.
The application software must refresh the counter before time-out and during a limited time
window.
A reset is generated in two situations:
1. Timeout: At 16 MHz CPU clock the time-out period can be adjusted between 75 µs up to
64 ms.
2. Refresh out of window: The downcounter is refreshed before its value is lower than the
one stored in the window register.
Independent watchdog timer
The independent watchdog peripheral can be used to resolve processor malfunctions due to
hardware or software failures.
It is clocked by the 128 kHZ LSI internal RC clock source, and thus stays active even in case
of a CPU clock failure
The IWDG time base spans from 60 µs to 1 s.
Auto wakeup counter4.8
Used for auto wakeup from active halt mode
•
Clock source: Internal 128 kHz internal low frequency RC oscillator or external clock
•
LSI clock can be internally connected to TIM1 input capture channel 1 for calibration
•
Beeper4.9
The beeper function outputs a signal on the BEEP pin for sound generation. The signal is in
the range of 1, 2 or 4 kHz.
The beeper output port is only available through the alternate function remap option bit AFR7.
TIM1 - 16-bit advanced control timer4.10
This is a high-end timer designed for a wide range of control applications. With its
complementary outputs, dead-time control and center-aligned PWM capability, the field of
applications is extended to motor control, lighting and half-bridge driver
16-bit up, down and up/down autoreload counter with 16-bit prescaler
•
Four independent capture/compare channels (CAPCOM) configurable as input capture,
•
output compare, PWM generation (edge and center aligned mode) and single pulse mode
output
15/116DocID15590 Rev 8
STM8S903K3 STM8S903F3Product overview
Synchronization module to control the timer with external signals or to synchronise with
•
TIM5 or TIM6
Break input to force the timer outputs into a defined state
•
Three complementary outputs with adjustable dead time
•
Encoder mode
•
Interrupt sources: 3 x input capture/output compare, 1 x overflow/update, 1 x break
•
TIM5 - 16-bit general purpose timer4.11
16-bit autoreload (AR) up-counter
•
15-bit prescaler adjustable to fixed power of 2 ratios 1…32768
Interrupt sources: 3 x input capture/output compare, 1 x overflow/update
•
Synchronization module to control the timer with external signals or to synchronize with
•
TIM1 or TIM6
TIM6 - 8-bit basic timer4.12
Timer
size
(bits)
16TIM1
16TIM5
8TIM6
8-bit autoreload, adjustable prescaler ratio to any power of 2 from 1 to 128
•
Clock source: CPU clock
•
Interrupt source: 1 x overflow/update
•
Synchronization module to control the timer with external signals or to synchronize with
•
TIM1 or TIM5.
Table 3: TIM timer features
PrescalerCounter
to 65536
from 1 to 32768
from 1 to 128
Counting
mode
CAPCOM
channels
Complementary
outputs
Ext.
trigger
No03UpAny power of 2
No00UpAny power of 2
Timer
synchronization/
chaining
YesYes34Up/downAny integer from 1
Analog-to-digital converter (ADC1)4.13
The STM8S903K3 family products contain a 10-bit successive approximation A/D converter
(ADC1) with up to 7 external and 1 internal multiplexed input channels and the following main
features:
Input voltage range: 0 to V
•
DD
DocID15590 Rev 816/116
Product overviewSTM8S903K3 STM8S903F3
Conversion time: 14 clock cycles
•
Single and continuous and buffered continuous conversion modes
•
Buffer size (n x 10 bits) where n = number of input channels
•
Scan mode for single and continuous conversion of a sequence of channels
•
Analog watchdog capability with programmable upper and lower thresholds
•
Internal reference voltage on channel AIN7
•
Analog watchdog interrupt
•
External trigger input
•
Trigger from TIM1 TRGO
•
End of conversion (EOC) interrupt
•
Internal bandgap reference voltage
Channel AIN7 is internally connected to the internal bandgap reference voltage. The internal
bandgap reference is constant and can be used, for example, to monitor VDD. It is independent
of variations in VDDand ambient temperature TA.
Communication interfaces4.14
The following communication interfaces are implemented:
I/O pins used simultaneously for high current source/sink must be uniformly spaced around the package. In addition, the total driven current must respect the absolute maximum ratings ( see section
"Absolute maximum ratings").
(2)
When the MCU is in Halt/Active-halt mode, PA1 is automatically configured in input weak pull-up and cannot be used for waking up the device. In this mode, the output state of PA1 is not driven. It is
recommended to use PA1 only in input mode if Halt/Active-halt is used in the application.
(3)
In the open-drain output column, ‘T’ defines a true open-drain I/O (P-buffer, weak pull-up, and protection diode to VDDare not implemented)
(4)
The PD1 pin is in input pull-up during the reset phase and after internal reset release.
I/O pins used simultaneously for high current source/sink must be uniformly spaced around the package. In addition, the total driven current must respect the absolute maximum ratings ( see section
"Absolute maximum ratings").
(2)
When the MCU is in Halt/Active-halt mode, PA1 is automatically configured in input weak pull-up and cannot be used for waking up the device. In this mode, the output state of PA1 is not driven. It is
recommended to use PA1 only in input mode if Halt/Active-halt is used in the application.
(3)
In the open-drain output column, ‘T’ defines a true open-drain I/O (P-buffer, weak pull-up, and protection diode to VDDare not implemented)
(4)
The PD1 pin is in input pull-up during the reset phase and after internal reset release.
25/116DocID15590 Rev 8
STM8S903K3 STM8S903F3Pinout and pin description
Alternate function remapping5.6
As shown in the rightmost column of the pin description table, some alternate functions can
be remapped at different I/O ports by programming one of eight AFR (alternate function
remap) option bits. When the remapping option is active, the default alternate function is no
longer available.
To use an alternate function, the corresponding peripheral must be enabled in the peripheral
registers.
Alternate function remapping does not effect GPIO capabilities of the I/O ports (see the GPIO
section of the family reference manual, RM0016).
DocID15590 Rev 826/116
0x00 9FFF
Flash program memory
(8 Kbytes)
0x00 0000
RAM
0x00 03FF
(1 Kbyte)
513 bytes stack
0x00 4000
0x00 427F
640 bytes data EEPROM
Reserved
Reserved
Reserved
0x00 4280
0x00 A000
0x00 47FF
0x00 8000
32 interrupt vectors
0x00 807F
GPIO and periph. reg.
0x00 5000
0x00 57FF
0x00 5800
0x00 7FFF
0x00 480B
0x00 4FFF
0x00 7EFF
CPU/SWIM/debug/ITC
registers
0x00 7F00
Reserved
Reserved
Option bytes
0x00 480A
0x00 4800
0x00 0800
0x00 3FFF
0x00 8080
Reserved
Unique ID
0x00 4864
0x00 4865
0x00 4870
0x00 4871
Memory and register mapSTM8S903K3 STM8S903F3
Memory and register map6
Memory map6.1
Figure 7: Memory map
27/116DocID15590 Rev 8
STM8S903K3 STM8S903F3Memory and register map
Register map6.2
I/O port hardware register map6.2.1
Table 7: I/O port hardware register map
0x00 5000
0x00 5005
0x00 500A
Port A
Port B
Port C
Register nameRegister labelBlockAddress
Reset
status
0x00Port A data output latch registerPA_ODR
(1)
Port A input pin value registerPA_IDR0x00 5001
0xXX
0x00Port A data direction registerPA_DDR0x00 5002
0x00Port A control register 1PA_CR10x00 5003
0x00Port A control register 2PA_CR20x00 5004
0x00Port B data output latch registerPB_ODR
(1)
Port B input pin value registerPB_IDR0x00 5006
0xXX
0x00Port B data direction registerPB_DDR0x00 5007
0x00Port B control register 1PB_CR10x00 5008
0x00Port B control register 2PB_CR20x00 5009
0x00Port C data output latch registerPC_ODR
(1)
Port C input pin value registerPB_IDR0x00 500B
0xXX
0x00Port C data direction registerPC_DDR0x00 500C
0x00 500F
0x00 5014
Port D
Port E
0x00Port C control register 1PC_CR10x00 500D
0x00Port C control register 2PC_CR20x00 500E
0x00Port D data output latch registerPD_ODR
(1)
Port D input pin value registerPD_IDR0x00 5010
0xXX
0x00Port D data direction registerPD_DDR0x00 5011
0x02Port D control register 1PD_CR10x00 5012
0x00Port D control register 2PD_CR20x00 5013
0x00Port E data output latch registerPE_ODR
(1)
Port E input pin value registerPE_IDR0x00 5015
0xXX
0x00Port E data direction registerPE_DDR0x00 5016
0x00Port E control register 1PE_CR10x00 5017
DocID15590 Rev 828/116
Memory and register mapSTM8S903K3 STM8S903F3
0x00 5019
Port F
(1)
Depends on the external circuitry.
General hardware register map6.2.2
0x00 501E to
Reserved area (60 bytes)
Register nameRegister labelBlockAddress
Port F input pin value registerPF_IDR0x00 501A
Table 8: General hardware register map
Register nameRegister labelBlockAddress
Reset
status
0x00Port E control register 2PE_CR2Port E0x00 5018
0x00Port F data output latch registerPF_ODR
0xXX
0x00Port F data direction registerPF_DDR0x00 501B
0x00Port F control register 1PF_CR10x00 501C
0x00Port F control register 2PF_CR20x00 501D
Reset
status
(1)
0x00 5059
0x00 505A
0x00 505B
0x00 505C
0x00 505D
0x00 505E
0x00 505F
0x00 5060 to
0x00 5061
0x00 5062
0x00 5063
Flash
FLASH _IAPSR
Reserved area (2 bytes)
FLASH _PUKRFlash
Reserved area (1 byte)
0x00Flash control register 1FLASH_CR1
0x00Flash control register 2FLASH_CR2
0xFFFlash complementary control register 2FLASH_NCR2