This user manual provides detailed information including how to use the devices, system and
bus architecture, memory organization and peripheral instructions. The target audiences for this
document are software developers, application developers and hardware developers. For more
information regarding pin assignment, package and electrical characteristics, please refer to the
HT32F52243/52253 datasheet.
The devices are high performance and low power consumption 32-bit microcontrollers based
around an Arm® Cortex®-M0+ processor core. The Cortex®-M0+ is a next-generation processor
core which is tightly coupled with Nested Vectored Interrupt Controller (NVIC), SysTick timer,
and including advanced debug support.
The devices operate at a frequency of up to 40 MHz for HT32F52243/52253 with a Flash accelerator
to obtain maximum efficiency. It provides up to 128 KB of embedded Flash memory for code/
data storage and 16 KB of embedded SRAM memory for system operation and application
program usage. A variety of peripherals, such as ADC, I2C, PDMA, DIV, USART, UART, SPI,
MCTM, GPTM, SCTM, CRC-16/32, RTC, WDT, SW-DP (Serial Wire Debug Port), etc., are
also implemented in the device series. Several power saving modes provide the flexibility for
maximum optimization between wakeup latency and power consumption, an especially important
consideration in low power applications.
Introduction
The above features ensure that the devices are suitable for use in a wide range of applications,
especially in areas such as white goods application control, power monitors, alarm systems,
consumer products, handheld equipment, data logging applications, motor control and so on.
Rev. 1.20 22 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Features
▄
Core
● 32-bit Arm® Cortex®-M0+ processor core
● Up to 40 MHz operating frequency for HT32F52243/52253
● Asynchronous serial communication operating baud-rate up to (f
● Capability of full duplex communication
● Fully programmable characteristics of serial communication including: word length, parity bit,
stop bit and bit order
● Error detection: Parity, overrun and frame error
▄
Cyclic Redundancy Check – CRC
● Support CRC16 polynomial: 0x8005, X16+X15+X2+1
● Support CCITT CRC16 polynomial: 0x1021, X16+X12+X5+1
● Support IEEE-802.3 CRC32 polynomial: 0x04C11DB7, X32+X26+X23+X22+X16+X12+X11+X10+
X8+X7+X5+X4+X2+X+1
● Support 1’s complement, byte reverse & bit reverse operation on data and checksum
● Support byte, half-word & word data size
● Programmable CRC initial seed value
● CRC computation done in 1 AHB clock cycle for 8-bit data and 4 AHB clock cycles for 32-bit
data
/2) MHz for master mode and (f
PCLK
/16) MHz and synchronous operating rate up to
PCLK
/3) MHz for slave mode
PCLK
/16) MHz
PCLK
Introduction
Rev. 1.20 25 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
▄
Peripheral Direct Memory Access – PDMA
● 6 channels with trigger source grouping
● 8-bit /16-bit /32-bit width data transfer
● Supports Address increment, decrement or xed mode
● 4-level programmable channel priority
● Auto reload mode
● Supports trigger source:
ADC, SPI, USART, UART, I2C, GPTM, MCTM and software request
▄
Hardware Divider – DIV
● Signed/unsigned 32-bit divider
● Operation in 8 clock cycles, Load in 1 clock cycle.
● Divide by zero error Flag
▄
Debug Support
● Serial Wire Debug Port – SW-DP
● 4 comparators for hardware breakpoint or code / literal patch
● 2 comparators for hardware watchpoints
▄
Package and Operation Temperature
● 33/46-pin QFN, 48/64-pin LQFP package
● Operation temperature range: -40 °C to +85 °C
Introduction
Rev. 1.20 26 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Device Information
Table 1. Features and Peripheral List
PeripheralsHT32F52243HT32F52253
Main Flash (KB)64127
Option Bytes Flash (KB)11
SRAM (KB)816
Timers
Communication
PDMA6 channels
Hardware Divider1
CRC-16/321
EXTI16
12-bit ADC
Number of channels
GPIOUp to 51
CPU frequencyUp to 40 MHz
Operating voltage2.0 V ~ 3.6 V
Operating temperature-40 °C ~ +85 °C
Package33/46-pin QFN, 48/64-pin LQFP
MCTM1
GPTM1
SCTM4
BFTM2
RTC1
WDT1
SPI2
USART2
UART4
I2C3
Introduction
1
12 Channels
Rev. 1.20 27 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Block Diagram
TX, RX
RTS/TXE
CTS/SCK
TX, RX
CH0 ~CH2
CH0N ~ CH2N
CH3, BRK
SCTM
ADC_IN0
AD C_I N11
V
V
DDA
PA ~ PC[15:0], PD[3:0]
IO Por t
GPIO
Syst em
U SA RT0 ~ 1
UART0 ~ 3
UART0
SCTM0 ~ 3
Powered by V
DD15
Bus Ma trix
AFIO
EXTI
MCTM
ADC
BOOT
Flash Memory
Interf ace
FMC
PDM A
Control
Control
Registers
Reg iste rs
AHB
Peripherals
SRAM
Controller
AHB to APB
Bridge
APB
CRC
-16/32
Powered by V
Flash
Memory
CKCU/R STCU
Contr ol Regi sters
Div ider
SRAM
WDT
SPI1 ~ 0
SPI1 ~ 0
I2C0 ~ 2
GPTM
BFTM0 ~ 1
RTC
PWRCU
Powered by V
DD15
Cl ock and res et co ntrol
DD
Powered by V
Pow er co ntrol
LSI
32 kHz
LSE
32,768 Hz
AF
X32KIN
X32KOUT
POR
/PD R
HSE
4 ~ 16 MHz
HSI
8 MHz
LDO
1.5 V
BOD
LVD
PLL
f
: 48 MH z
Max
DD
V
DD
V
SS
AF
XTALIN
XTALOUT
CLDO
AF
MOSI, MISO
SCK, SEL
AF
SDA
SCL
AF
CH3 ~ CH0
AFAF
RTCOUT
V
DD
V
SS
WAKEUP
nRST
Introduction
CAP.
SWCLK SWDIO
AFAF
SW-DP
Cortex®-M0+
Processor
NVIC
Interrupt request
PDMA
6 Channels
DMA request
AF
AF
AF
AF
AF
...
DDA
SSA
12- bit
SAR ADC
Powered by V
Power supply:
Bus:
Control signal:
Alternate function:
AF
Figure 1. Block Diagram
Rev. 1.20 28 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
2
Document Conventions
The conventions used in this document are shown in the following table.
Table 2. Document Conventions
NotationExampleDescription
0x0x5a05
0xnnnn_nnnn0x2000_010032-bit Hexadecimal address or data.
bb0101
NAME [n]ADDR [5]
NAME [m:n]ADDR [11:5]
Xb10X1Don’t care notation which means any value is allowed.
1918
RW
RO
RC
WC
W0C
WO
Reserved
WordData length of a word is 32-bit.
Half-wordData length of a half-word is 16-bit.
ByteData length of a byte is 8-bit.
SERDYIE PLLRDYIE
RW 0 RW 0
32
HSIRDYHSERDY
RO 1 RO 0
10
PDFBAK_PORF
RC 0 RC 1
32
SERDYFPLLRDYF
WC 0 WC 0
10
RXCFPAPF
RO 0 W0C 0
3130
DB_CKSRC
WO 0 WO 0
10
LLRDYReserved
RO 0
The number string with a 0x prefix indicates a
hexadecimal number.
The number string with a lowercase b prex indicates a
binary number.
Specic bit of NAME. NAME can be a register or eld of
register. For example, ADDR [5] means bit 5 of ADDR
register (eld).
Specic bits of NAME. NAME can be a register or eld
of register. For example, ADDR [11:5] means bit 11 to 5
of ADDR register (eld).
Software can read and write to this bit.
Software can only read this bit. A write operation will
have no effect.
Software can only read this bit. Read operation will
clear it to 0 automatically.
Software can read this bit or clear it by writing 1. Writing
a 0 will have no effect.
Software can read this bit or clear it by writing 0. Writing
a 1 will have no effect.
Software can only write to this bit. A read operation
always returns 0.
Reserved bit(s) for future use. Data read from these bits
is not well defined and should be treated as random
data. Normally these reserved bits should be set to a
0 value. Note that reserved bit must be kept at reset
value.
Document Conventions
Rev. 1.20 29 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
3
System Architecture
The system architecture of devices that includes the Arm® Cortex®-M0+ processor, bus architecture
and memory organization will be described in the following sections. The Cortex®-M0+ is a next
generation processor core which offers many new features. Integrated and advanced features make
the Cortex®-M0+ processor suitable for market products that require microcontrollers with high
performance and low power consumption. In brief, The Cortex®-M0+ processor includes AHB-Lite
bus interface. All memory accesses of the Cortex®-M0+ processor are executed on the AHB-Lite
bus according to the different purposes and the target memory spaces. The memory organization
uses a Harvard architecture, pre-dened memory map and up to 4 GB of memory space, making
the system exible and extendable.
Arm® Cortex®-M0+ Processor
The Cortex®-M0+ processor is a very low gate count, highly energy efficient processor that is
intended for microcontroller and deeply embedded applications that require an area optimized,
low-power processor. The processor is based on the ARMv6-M architecture and supports Thumb®
instruction sets; single-cycle I/O port; hardware multiplier and low latency interrupt respond time.
Some system peripherals listed below are also provided by Cortex®-M0+:
▄
Internal Bus Matrix connected with AHB-Lite Interface, Single-cycle I/O port and Debug
Accesses Port (DAP)
▄
Nested Vectored Interrupt Controller (NVIC)
▄
Optional Wakeup Interrupt Controller (WIC)
▄
Breakpoint and Watchpoint Unit
▄
Optional Memory Protection Unit (MPU)
▄
Serial Wire debug Port (SW-DP)
▄
Optional Micro Trace Buffer Interface (MTB)
The following gure shows the Cortex®-M0+ processor block diagram. For more information, refer
to the Arm® Cortex®-M0+ Technical Reference Manual.
System Architecture
Rev. 1.20 30 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Cortex-M0+ Components
Cortex®-M0+ Processor
Interrupts
‡ Wakeup
Interrupt
Controller (WIC)
‡ Optional Componect
Nested
Vectored
Interrupt
Controller
(NVIC)
Figure 2. Cortex®-M0+ Block Diagram
Bus Architecture
Execution Trace Interface
Cortex®-M0+
Processor
Core
‡ Memory
Protection
Unit
Bus Matrix
AHB-Lite Interface
to System
Debug
‡ Breakpoint
and
Watchpoint
Unit
‡ Debugger
Interface
‡ Single-cycle
I/O Port
System Architecture
‡ Debug
Access Port
(DAP)
‡ Serial Wire or JTAG
Debug Port
The HT32F52243/HT32F52253 series consist of one master and four slaves in the bus architecture.
The Cortex®-M0+ AHB-Lite bus is the master while the internal SRAM access bus, the internal
Flash memory access bus, the AHB peripherals access bus and the AHB to APB bridges are the
slaves. The single 32-bit AHB-Lite system interface provides simple integration to all system
regions include the internal SRAM region and the peripheral region. All of the master buses are
based on 32-bit Advanced High-performance Bus-Lite (AHB-Lite) protocol. The following gure
shows the bus architecture of the HT32F52243/HT32F52253 series.
Rev. 1.20 31 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
GPIO
Cortex®-M0+
Processor
Interrupt request
NVIC
PDMA
6 Channels
DMA request
I/O Port
System
Bus Matrix
Flash Memory Interface
PDMA
Control
Registers
AHB Peripherals
FMC
Control
Registers
SRAM Controller
AHB to APB
Bridge
GPIO
A~D
CRC
-16/32
Flash Memory
System Architecture
CKCU/RSTCU
Control Registers
SRAM
APB IPs
Figure 3. Bus Architecture
Memory Organization
The Arm® Cortex®-M0+ processor accesses and debug accesses share the single external
interface to external AHB peripheral. The processor accesses take priority over debug accesses.
The maximum address range of the Cortex®-M0+ is 4 GB since it has 32-bit bus address width.
Additionally, a pre-defined memory map is provided by the Cortex®-M0+ processor to reduce
the software complexity of repeated implementation of different device vendors. However, some
regions are used by the Arm® Cortex®-M0+ system peripherals. Refer to the Arm® Cortex®-M0+
Technical Reference Manual for more information. The following gure shows the memory map
of HT32F52243/HT32F52253 series of devices, including Code, SRAM, peripheral, and other pre-
dened regions.
Rev. 1.20 32 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Memory Map
0xFFFF_FFFF
0xE010_0000
Private peripheral bus
16 KB on-chip SRAM
128 KB on-chip Flash
Peripheral
SRAM
Code
0xE000_0000
0x4010_0000
0x4008_0000
0x4000_0000
0x2000_4000
0x2000_0000
0x1FF0_0400
0x1FF0_0000
0x1F00_0800
0x1F00_0000
0x0001_0000
0x0000_0000
Reserved
Reserved
AHB peripherals
APB peripherals
Reserved
Reserved
Option byte alias
Reserved
Boot loader
Reserved
Up to
512 KB
512 KB
16 KB
1 KB
2 KB
Up to
128 KB
0x400F_FFFF
0x400C_C000
0x400C_A000
0x400B_8000
0x400B_0000
0x4009_2000
0x4008_C000
0x4007_8000
0x4007_7000
0x4007_6000
0x4007_5000
0x4007_4000
0x4006_F000
0x4006_E000
0x4006_B000
0x4006_A000
0x4006_9000
0x4006_8000
0x4005_9000
0x4004_A000
0x4004_9000
0x4004_8000
0x4004_5000
0x4004_4000
0x4004_3000
0x4004_2000
0x4004_1000
0x4004_0000
0x4003_6000
0x4003_5000
0x4003_4000
0x4002_D000
0x4002_C000
0x4002_5000
0x4002_4000
0x4002_3000
0x4002_2000
0x4001_1000
0x4001_0000
0x4000_9000
0x4000_8000
0x4000_5000
0x4000_4000
0x4000_3000
0x4000_2000
0x4000_1000
0x4000_0000
Reserved
DIV
Reserved
GPIO A ~ D
Reserved
PDMA_REG0x4009_0000
Reserved
CRC0x4008_A000
CKCU/RSTCU0x4008_8000
Reserved0x4008_2000
FMC0x4008_0000
Reserved
BFTM1
BFTM0
SCTM3
SCTM1
Reserved
GPTM0
Reserved
RTC & PWRCU
Reserved
WDT
Reserved
Reserved
I2C1
I2C0
Reserved
SPI1
Reserved
UART3
UART1
USART1
Reserved
SCTM2
SCTM0
Reserved
MCTM
Reserved
EXTI
Reserved
AFIO
Reserved
ADC
Reserved
I2C2
Reserved
SPI0
Reserved
UART2
UART0
USART0
System Architecture
AHB
APB
Figure 4. Memory Map
Rev. 1.20 33 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Table 3. Register Map
Start AddressEnd AddressPeripheralBus
0x4000_00000x4000_0FFFUSART0
0x4000_10000x4000_1FFFUART0
0x4000_20000x4000_2FFFUART2
0x4000_30000x4000_3FFFReserved
0x4000_40000x4000_4FFFSPI0
0x4000_50000x4000_7FFFReserved
0x4000_80000x4000_8FFFI2C2
0x4000_90000x4000_FFFFReserved
0x4001_00000x4001_0FFFADC
0x4001_10000x4002_1FFFReserved
0x4002_20000x4002_2FFFAFIO
0x4002_30000x4002_3FFFReserved
0x4002_40000x4002_4FFFEXTI
0x4002_50000x4002_BFFFReserved
0x4002_C0000x4002_CFFFMCTM
0x4002_D0000x4003_3FFFReserved
0x4003_40000x4003_4FFFSCTM0
0x4003_50000x4003_5FFFSCTM2
0x4003_60000x4003_FFFFReserved
0x4004_00000x4004_0FFFUSART1
0x4004_10000x4004_1FFFUART1
0x4004_20000x4004_2FFFUART3
0x4004_30000x4004_3FFFReserved
0x4004_40000x4004_4FFFSPI1
0x4004_50000x4004_7FFFReserved
0x4004_80000x4004_8FFFI2C0
0x4004_90000x4004_9FFFI2C1
0x4004_A0000x4006_7FFFReserved
0x4006_80000x4006_8FFFWDT
0x4006_90000x4006_9FFFReserved
0x4006_A0000x4006_AFFFRTC/PWRCU
0x4006_B0000x4006_DFFFReserved
0x4006_E0000x4006_EFFFGPTM
0x4006_F0000x4007_3FFFReserved
0x4007_40000x4007_4FFFSCTM1
0x4007_50000x4007_5FFFSCTM3
0x4007_60000x4007_6FFFBFTM0
0x4007_70000x4007_7FFFBFTM1
0x4007_80000x4007_FFFFReserved
System Architecture
APB
Rev. 1.20 34 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Start AddressEnd AddressPeripheralBus
0x4008_00000x4008_1FFFFMC
0x4008_20000x4008_7FFFReserved
0x4008_80000x4008_9FFFCKCU/RSTCU
0x4008_A0000x4008_BFFFCRC
0x4008_C0000x4008_FFFFReserved
0x4009_00000x4009_1FFFPDMA_REG
0x4009_20000x400A_FFFFReserved
0x400B_00000x400B_1FFFGPIOA
0x400B_20000x400B_3FFFGPIOB
0x400B_40000x400B_5FFFGPIOC
0x400B_60000x400B_7FFFGPIOD
0x400B_80000x400C_9FFFReserved
0x400C_A0000x400C_BFFFDIV
0x400C_C0000x400F_FFFFReserved
Embedded Flash Memory
The HT32F52243/HT32F52253 series provide up to 128 KB on-chip Flash memory which is
located at address 0x0000_0000. It supports byte, half-word, and word access operations. Note that
the Flash memory only supports read operations for the bus access. Any write operations to the
Flash memory will cause a bus fault exception. The Flash memory has up to capacity of 128 pages.
Each page has a memory capacity of 1 KB and can be erased independently. A 32-bit programming
interface provides the capability of changing bits from 1 to 0. A data storage or rmware upgrade
can be implemented using several methods such as In System Programming (ISP), In Application
Programming (IAP) or In Circuit Programming (ICP). For more information, refer to the Flash
Memory Controller section.
System Architecture
AHB
Embedded SRAM Memory
The HT32F52243/HT32F52253 series contain up to 16 KB on-chip SRAM which is located at
address 0x2000_0000. It support byte, half-word and word access operations.
AHB Peripherals
The address of the AHB peripherals ranges from 0x4008_0000 to 0x400F_FFFF. Some peripherals
such as Clock Control Unit, Reset Control Unit and Flash Memory Controller are connected to the
AHB bus directly. The AHB peripherals clocks are always enabled after a system reset. Access to
registers for these peripherals can be achieved directly via the AHB bus. Note that all peripheral
registers in the AHB bus support only word access.
APB Peripherals
The address of APB peripherals ranges from 0x4000_0000 to 0x4007_FFFF. An APB to AHB
Bridge provides access capability between the CPU and the APB peripherals. Additionally, the
APB peripheral clocks are disabled after a system reset. Software must enable the peripheral clock
by setting up the APBCCRn register in the Clock Control Unit before accessing the corresponding
peripheral register. Note that the APB to AHB Bridge will duplicate the half-word or byte data to
word width when a half-word or byte access is performed on the APB peripheral registers. In other
words, the access result of a half-word or byte access on the APB peripheral register will vary
depending on the data bit width of the access operation on the peripheral registers.
Rev. 1.20 35 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
4
Flash Memory Controller (FMC)
Introduction
The Flash Memory Controller (FMC) provides functions of ash operation and pre-fetch buffer for
the embedded on-chip Flash memory. The figure below shows the block diagram of FMC which
includes programming interface, control registers, pre-fetch buffer, and access interface. Since the
access speed of Flash memory is slower than the CPU, a wide access interface with pre-fetch buffer
is provided to the Flash memory in order to reduce the wait state (which will cause instruction
gaps) of the CPU. The functions of word program/page erase are also provided for instruction/data
storage of Flash memory.
AHB Peripheral Bus
System Bus
Flash Memory Controller
Control Register
Pre-fetch Buffer
Wait State
Control
Addressing
Data
Programming
Control
Flash Memory Controller (FMC)
Flash
Information
Block
Main Flash
Memory
Figure 5. Flash Memory Controller Block Diagram
Features
▄
Up to 128 KB of on-chip Flash memory for storing instruction/data and options
● 128 KB (instruction/data + Option Byte)
● 64 KB (instruction/data + Option Byte)
▄
Page size of 1K Byte, totally up to 128 pages depending on the main Flash size
▄
Wide access interface with pre-fetch buffer to reduce instruction gaps
▄
Page erase and mass erase capability
▄
32-bit word programming
▄
Interrupt capability when ready or error occurs
▄
Flash read protection to prevent illegal code/data access
▄
Page erase/program protection to prevent unexpected operation
Rev. 1.20 36 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Functional Descriptions
Flash Memory Map
The following figure is the Flash memory map of the system. The address ranges from
0x0000_0000 to 0x1FFF_FFFF (0.5 GB). The address from 0x1F00_0000 to 0x1F00_07FF is
mapped to Boot Loader Block (2 KB). Additionally, the region addressed from 0x1FF0_0000 to
0x1FF0_03FF is the alias of Option Byte block (1 KB) which locates at the last page of the main
Flash physically. The memory mapping on system view is shown as below.
0x1FFF_FFFF
0x1FF0_0400
Flash Memory Controller (FMC)
Reserved
0x1FF0_0000
0x1F00_0800
0x1F00_0000
0x0000_0000
Figure 6. Flash Memory Map
Option Byte
Reserved
Boot Loader Block
Reserved
Main Flash Block
User Application
1 KB
2 KB
127 KB
or
64 KB
Rev. 1.20 37 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Flash Memory Architecture
The Flash memory consists of up to 128 KB main Flash with 1 KB per page and 2 KB Information
Block for Boot Loader. The main Flash memory contains totally 128 pages (or 64 pages for 64 KB
device) which can be erased individually. The following table shows the base address, size, and
protection setting bit of each page.
Table 4. Flash Memory and Option Byte
BlockNameAddress
Page 00x0000_0000 ~ 0x0000_03FFOB_PP [0]1 KB
Page 10x0000_0400 ~ 0x0000_07FFOB_PP [1]1 KB
Page 20x0000_0800 ~ 0x0000_0BFFOB_PP [2]1 KB
Page 30x0000_0C00 ~ 0x0000_0FFFOB_PP [3]1 KB
Main Flash
Block
Page 1240x0001_F000 ~ 0x0001_F3FFOB_PP [124]1 KB
Page 1250x0001_F400 ~ 0x0001_F7FFOB_PP [125]1 KB
Page 1260x0001_F800 ~ 0x0001_FBFFOB_PP [126]1 KB
Page 127
(Option Byte)
Information
Block
Boot Loader0x1F00_0000 ~ 0x1F00_07FFNA2 KB
Page
Protection Bit
.
.
.
.
.
Physical: 0x0001_FC00 ~ 0x0001_FFFF
Alias: 0x1FF0_0000 ~ 0x1FF0_03FF
.
.
.
.
.
.
.
.
.
.
OB_CP [1]1 KB
Size
.
.
.
.
.
Flash Memory Controller (FMC)
Notes:
1. The Information Block stores boot loader - this block can not be programmed or erased by
user.
2. The Option Byte is always located at last page of main Flash block.
Wait State Setting
When the HCLK clock is greater than the access speed of the Flash memory, the wait state cycles
must be inserted during the CPU fetch instructions or load data from Flash memory. The wait state
can be changed by setting the WAIT [1:0] of Flash Cache and Pre-fetch Control Register (CFCR).
In order to match the wait state requirement, the following two rules should be considered.
▄
HCLK clock is changed from lower to higher:
Change the wait state setting rst and then change the HCLK clock.
▄
HCLK clock is changed from higher to lower:
Change the HCLK clock rst and then change the wait state setting.
The following table shows the relationship between the wait state cycle and HCLK. The default
wait state is 0 since the HSI (8 MHz) is selected as the HCLK clock source after system reset.
Table 5. Relationship between wait state cycle and HCLK
Wait State CycleHCLK
00 MHz < HCLK ≤ 20 MHz
120 MHz < HCLK ≤ 40 MHz
Rev. 1.20 38 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Booting Conguration
The system provides two kinds of boot modes which can be selected using the BOOT pin. The
BOOT pin is sampled during a power-on reset or system reset. Once the logic value is decided, the
rst 4 words of vector will be remapped to the corresponding source according to the boot modes.
The boot mode is shown in the following table.
Table 6. Booting Modes
Boot mode selection pin
BOOT
0Boot LoaderThe Vector source is Boot Loader
1Main FlashThe Vector source is main Flash
The Vector Mapping Control Register, VMCR, is provided to change the vector remapping setting
temporarily after the chip reset. The reset initial value of the VMCR register is determined by the
BOOT pin status which will be sampled during the reset duration.
ModeDescriptions
Flash Memory Controller (FMC)
Boot Setting
0xC
0x8
0x4
Hard Fault
Handler
NMI Handler
Program Counter
Initial Stack Point0x0
Figure 7. Vector Remapping
1 : Main Flash0 : Boot Loader
+ 0xC
+ 0x8
+ 0x4
0x0000 0000
+ 0xC
+ 0x8
+ 0x4
0x1F00
0000
Rev. 1.20 39 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Page Erase
The FMC provides a page erase function which is used to reset partial content of Flash memory.
Each page can be erased independently without affecting the contents of other pages. The following
steps show the access sequence of the register for a page erase operation.
▄
Check the OPCR register to conrm that no Flash memory operation is in progress (OPM [3:0]
equals to 0xE or 0x6). Otherwise, wait until the previous operation has been nished.
▄
Write the page address to TADR register.
▄
Write page erase command to the OCMR register (CMD [3:0] = 0x8).
▄
Commit the page erase command to the FMC by setting OPCR register (set OPM [3:0] = 0xA).
▄
Wait until all the operations have been completed by checking the value of the OPCR register
(OPM [3:0] equals to 0xE).
▄
Read and verify the page if required.
Note that a correct target page address must be conrmed. The Software may run out of control if
the target erase page is being used for fetching code or accessing data. The FMC will not provide
any notication when this happens. Additionally, the page erase will be ignored on the protected
pages. A Flash Operation Error interrupt will be triggered by the FMC if the OREIEN bit in
the OIER register is set. The software can check the PPEF bit in the OISR register to detect this
condition in the interrupt handler. The following gure shows the page erase operation ow.
Flash Memory Controller (FMC)
No
No
Start
Is OPM equal to
0xE or 0x6 ?
Yes
Set TADR, OCMR
Commit command
by setting OPCR
Is OPM equal to 0xE ?
Yes
Finish
Figure 8. Page Erase Operation Flowchart
Rev. 1.20 40 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Mass Erase
The FMC provides a complete erase function which is used to initialize all the main Flash memory
contents to a high state. The following steps show the mass erase operation register access
sequence.
▄
Check the OPCR register to conrm that no Flash memory operation is in progress (OPM [3:0]
equals to 0xE or 0x6). Otherwise, wait until the previous operation has been nished.
▄
Write mass erase command to OCMR register (CMD [3:0] = 0xA).
▄
Commit the mass erase command to the FMC by setting the OPCR register (set OPM [3:0] = 0xA).
▄
Wait until all operations have been nished by checking the value of the OPCR register (OPM
[3:0] equals to 0xE).
▄
Read and verify the Flash memory if required.
Since all Flash data will be reset as 0xFFFF_FFFF, the mass erase operation can be implemented
by the program that runs in the SRAM or by the debugging tool that access the FMC register
directly. The software function that is executed on the Flash memory shall not trigger a mass erase
operation. The following gure shows the mass erase operation ow.
Flash Memory Controller (FMC)
No
No
Figure 9. Mass Erase Operation Flowchart
Is OPM equal to 0xE ?
Start
Is OPM equal to
0xE or 0x6 ?
Yes
Set OCMR = 0xA
Commit command
by setting OPCR
Yes
Finish
Rev. 1.20 41 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Word Programming
The FMC provides a 32-bit word programming function which is used to modify the Flash memory
content. The following steps show the word programming operation register access sequence.
▄
Check the OPCR register to conrm that no Flash memory operation is in progress (OPM [3:0]
equals to 0xE, or 0x6). Otherwise, wait until the previous operation has been nished.
▄
Write the word address to the TADR register. Write the data to the WRDR register.
▄
Write the word program command to the OCMR register (CMD [3:0] = 0x4).
▄
Commit the word program command to the FMC by setting the OPCR register (set OPM [3:0] = 0xA).
▄
Wait until all operations have been nished by checking the value of the OPCR register (OPM
[3:0] equals to 0xE).
▄
Read and verify the Flash memory if required.
Note that the word programming operation can not be applied to the same address twice.
Successive word programming operation to the same address must be separated by a page erase
operation. Additionally, the word programming operation will be ignored on protected pages.
A Flash operation error interrupt will be triggered by the FMC if the OREIEN bit in the OIER
register is set. The software can check the PPEF bit in the OISR register to detect this condition in
the interrupt handler. The following gure shows the word programming operation ow.
Flash Memory Controller (FMC)
No
No
Start
Is OPM equal to
0xE or 0x6 ?
Yes
Set TADR, WRDR
and OCMR
Commit command
by setting OPCR
Is OPM equal to 0xE ?
Yes
Finish
Figure 10. Word Programming Operation Flowchart
Rev. 1.20 42 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Option Byte Description
The Option Byte region can be treated as an independent Flash memory in which the base address
is 0x1FF0_0000. The following table shows the function description and the Option Byte memory
map.
1: Option Byte protection is disabled
OB_CP [31:2]
Reserved
Flash Option Byte Checksum
OB_CK [31:0]
OB_CK should be set as the content value sum of 5
registers which offset address is form 0x000 to 0x010
in Option Byte (0x000 + 0x004 + 0x008 + 0x00C +
0x010) when the OB_PP or OB_CP register content
is not equal to 0xFFFF_FFFF. Otherwise, both page
erase/program protection and security protection will
be enabled.
Flash Memory Controller (FMC)
0xFFFF_FFFF
0xFFFF_FFFF
0xFFFF_FFFF
0xFFFF_FFFF
0xFFFF_FFFF
0xFFFF_FFFF
Rev. 1.20 43 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Page Erase/Program Protection
The FMC provides page erase/program protection function to prevent unexpected operation of
Flash memory. The page erase (CMD [3:0] = 0x8 in the OCMR register) or word program (CMD
[3:0] = 0x4) command will not be accepted by FMC on the protected pages. When the page erase
or word programming command is sent to the FMC on a protected page, the PPEF bit in the OISR
register will then be set by the FMC and the Flash operation error interrupt will be triggered to
CPU by the FMC if the OREIEN bit in the OIER register is set. The page protection function can
be individually enabled for each page by conguring the OB_PP registers in the Option Byte. The
following table shows the access permission of the main Flash page when the page protection is
enabled.
Table 8. Access Permission of Protected Main Flash Page
Operation
ReadOO
ProgramXX
Page EraseXX
Mass EraseOO
Mode
Flash Memory Controller (FMC)
ISP / IAPICP / Debug mode
Notes:
1. The write protection is based on specic pages. The above access permission only affects
the pages of which the protection function has been enabled. Other pages are not affected.
2. Main Flash page protection is congured by the OB_PP [126:0]. Option Byte is physically
located at the last page of the main Flash. Option Byte page protection is congured by
the OB_CP [1] bit.
3. The page erase on the Option Byte area can disable the page protection of the main Flash.
4. The page protection of the Option Byte can only be disabled by a mass erase operation.
The following steps show the page erase/program protection procedure register access sequence.
▄
Check the OPCR register to conrm that no Flash memory operation is in program (OPM [3:0]
equals to 0xE or 0x6). Otherwise, wait until the previous operation has been nished.
▄
Write the OB_PP address to the TADR register (TADR = 0x1FF0_0000).
▄
Write the data which indicates the protection function of the corresponding page is enabled or
disabled into the WRDR register (0: Enabled, 1: Disabled).
▄
Write the word program command to the OCMR register (CMD [3:0] = 0x4).
▄
Commit the word program command to the FMC by setting the OPCR register (set OPM [3:0] =
0xA).
▄
Wait until all operations have been nished by checking the value of the OPCR register (OPM
[3:0] equals to 0xE).
▄
Read and verify the Option Byte if required.
▄
The OB_CK eld in the Option Byte must be updated according to the Option Byte checksum
rule.
▄
Apply a system reset to activate the new OB_PP setting.
Rev. 1.20 44 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Security Protection
The FMC provides a Security protection function to prevent illegal code/data access of the Flash
memory. This function is useful for protecting the software / rmware from the illegal users. The
function is activated by conguring the Option Byte OB_CP [0] bit. Once the function has been
enabled, all the main Flash data access through ICP/Debug mode, programming, and page erase
operation will not be allowed except the user’s application. However, the mass erase operation will
still be accepted by the FMC in order to disable this security protection function. The following
table shows the access permission of the Flash memory when the security protection is enabled.
Table 9. Access Permission When Security Protection is Enabled
Operation
ReadOX (read as 0)
ProgramO
Page EraseO
Mass EraseOO
Notes:
1. User application means the software that is executed or booted from main Flash memory
with the JTAG/SW debugger being disconnected. However, the Option Byte block and
page 0 are still in protection in which the Program/Page Erase can not be executed.
2. The Mass erase operation can erase the Option Byte block and disable the security protection.
The following steps show the Security protection procedure register access sequence.
Mode
User application
(1)
(1)
(1)
ICP/Debug mode
X
X
(2)
Flash Memory Controller (FMC)
▄
Check the OPCR register to conrm that no Flash memory operation is in progress (OPM [3:0]
equal to 0xE or 0x6). Otherwise, wait until the previous operation has been nished.
▄
Write the OB_CP address to the TADR register (TADR = 0x1FF0_0010).
▄
Write the data into the WRDR register to set OB_CP [0] to 0.
▄
Write the word program command to the OCMR register (CMD [3:0] = 0x4).
▄
Commit the word program command to the FMC by setting the OPCR register (set OPM = 0xA).
▄
Wait until all operations have been nished by checking the value of the OPCR register (OPM
[3:0] equals to 0xE).
▄
Read and verify the Option Byte if required.
▄
The OB_CK eld in the Option Byte must be updated according to the Option Byte checksum rule.
▄
Apply a system reset to activate the new OB_CP setting.
Rev. 1.20 45 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Register Map
The following table shows the FMC registers and reset values.
OISR0x018Flash Operation Interrupt and Status Register0x0001_0000
0x020
PPSR
CPSR0x030Flash Security Protection Status Register0x0000_00XX
VMCR0x100Flash Vector Mapping Control Register0x0000_000X
MDID0x180Flash Manufacturer and Device ID Register0x0376_XXXX
PNSR0x184Flash Page Number Status Register0x0000_00XX
PSSR0x188Flash Page Size Status Register0x0000_0400
DIDR0x18CDevice ID Register0x000X_XXXX
CFCR0x200Flash Pre-fetch Control Register0x0000_0051
CIDR00x310Custom ID Register 00xXXXX_XXXX
CIDR10x314Custom ID Register 10xXXXX_XXXX
CIDR20x318Custom ID Register 20xXXXX_XXXX
CIDR30x31CCustom ID Register 30xXXXX_XXXX
0x024
0x028
0x02C
Flash Page Erase/Program Protection Status
Register
Flash Memory Controller (FMC)
0xXXXX_XXXX
0xXXXX_XXXX
0xXXXX_XXXX
0xXXXX_XXXX
Note:
"X" means various reset values which depend on the Device, Flash value, Option Byte value,
or power on reset setting.
Rev. 1.20 46 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Register Descriptions
Flash Target Address Register – TADR
This register species the target address of the page erase and word programming operations.
Offset:0x000
Reset value:0x0000_0000
3130292827262524
TADB
Type/ResetRW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0
2322212019181716
TADB
Type/ResetRW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0
15141312111098
TADB
Type/ResetRW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0
76543210
TADB
Type/ResetRW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0
Flash Memory Controller (FMC)
BitsFieldDescriptions
[31:0]TADBFlash Target Address Bits
For programming operations, the TADR register species the address where the
data is written. Since the programming length is 32-bit, the TADR should be set as
word-aligned (4 bytes). The TADB [1:0] bits will be ignored during programming
operations. For page erase operations, the TADR register contains the page
address which is going to be erased. Since the page size is 1 KB, the TADB [9:0]
will be ignored in order to limit the target address as 1 Kbyte-aligned. For 128 KB
main Flash addressing, the TADB [31:17] should be zero while the TADB [31:16]
should be zero for 64 KB main Flash addressing. The region of which the address
ranges from 0x1FF0_0000 to 0x1FF0_03FF is the 1KB Option Byte. This field
for available Flash address must be under 0x1FFF_FFFF. Otherwise, the Invalid
Target Address interrupt will occur if the corresponding interrupt enable bit is set.
Rev. 1.20 47 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Flash Write Data Register – WRDR
This register species the data to be written for programming operation.
Offset:0x004
Reset value:0x0000_0000
3130292827262524
WRDB
Type/ResetRW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0
2322212019181716
WRDB
Type/ResetRW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0
15141312111098
WRDB
Type/ResetRW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0
76543210
WRDB
Type/ResetRW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0
Flash Memory Controller (FMC)
BitsFieldDescriptions
[31:0]WRDBFlash Write Data Bits
The data value for programming operation.
Rev. 1.20 48 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Flash Operation Command Register – OCMR
This register is used to specify the Flash operation commands that include the word programming, page erase
and mass erase.
Offset:0x00C
Reset value:0x0000_0000
3130292827262524
Reserved
Type/Reset
2322212019181716
Reserved
Type/Reset
15141312111098
Reserved
Type/Reset
76543210
ReservedCMD
Type/ResetRW 0 RW 0 RW 0 RW 0
BitsFieldDescriptions
[3:0]CMDFlash Operation Command
The following table shows the definitions of the operation command bits, CMD
[3:0], which specify the Flash memory operation. If an invalid command is set and
the IOCMIEN bit is set to 1, an Invalid Operation Command interrupt will occur.
CMD [3:0]Description
0x0Idle (default)
0x4Word program
0x8Page erase
0xAMass erase
OthersReserved
Flash Memory Controller (FMC)
Rev. 1.20 49 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Flash Operation Control Register – OPCR
This register is used for controlling the command commitment and checking the status of the FMC operations.
Offset:0x010
Reset value:0x0000_000C
3130292827262524
Reserved
Type/Reset
2322212019181716
Reserved
Type/Reset
15141312111098
Reserved
Type/Reset
76543210
ReservedOPMReserved
Type/ResetRW 0 RW 1 RW 1 RW 0
Flash Memory Controller (FMC)
BitsFieldDescriptions
[4:1]OPMOperation Mode
The following table shows the operation mode of the FMC. User can commit the
command which is set by the OCMR register to the main ash according to the
address alias setting in the TADR register. The content of the TADR, WRDR,
and OCMR registers should be prepared before setting this register. After all the
operations have been nished, the OPM eld will be set as 0xE or 0xF by the FMC
hardware. The Idle mode can be set when all the operations have been nished
for power saving purpose. Note that the operation status should be checked before
the next operation is executed to the FMC. The contents of the TADR, WRDR,
OCMR, and OPCR registers should not be changed until the previous operation
has been nished.
OPM [3:0]Description
0x6Idle (default)
0xACommit command to main Flash
0xEAll operation nished on main Flash
OthersReserved
Rev. 1.20 50 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Flash Operation Interrupt Enable Register – OIER
This register is used to enable or disable the FMC interrupt function. The FMC generates interrupts to the
controller when corresponding interrupt enable bits are set.
Offset:0x014
Reset value:0x0000_0000
3130292827262524
Reserved
Type/Reset
2322212019181716
Reserved
Type/Reset
15141312111098
Reserved
Type/Reset
76543210
ReservedOREIENIOCMIENOBEIENITADIENORFIEN
Type/ResetRW 0 RW 0 RW 0 RW 0 RW 0
BitsFieldDescriptions
[4]OREIENOperation Error Interrupt Enable
0: Operation error interrupt is disabled
1: Operation error interrupt is enabled
0: Invalid Operation Command interrupt is disabled
1: Invalid Operation Command interrupt is enabled
[2]OBEIENOption Byte Check Sum Error Interrupt Enable
0: Option Byte Check Sum Error interrupt is disabled
1: Option Byte Check Sum Error interrupt is enabled
[1]ITADIENInvalid Target Address Interrupt Enable
0: Invalid Target Address interrupt is disabled
1: Invalid Target Address interrupt is enabled
[0]ORFIENOperation Finished Interrupt Enable
0: Operation Finish interrupt is disabled
1: Operation Finish interrupt is enabled
Flash Memory Controller (FMC)
Rev. 1.20 51 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Flash Operation Interrupt and Status Register – OISR
This register indicates the FMC interrupt status which is used to check if a Flash operation has been nished or
an error occurs. The status bits, bit [4:0], are available when the corresponding bits in the OIER register are set.
Offset:0x018
Reset value:0x0001_0000
3130292827262524
Reserved
Type/Reset
2322212019181716
ReservedPPEFRORFF
Type/ResetRO 0 RO 1
15141312111098
Reserved
Type/Reset
76543210
ReservedOREFIOCMFOBEFITADFORFF
Type/ResetWC 0 WC 0 WC 0 WC 0 WC 0
BitsFieldDescriptions
[17]PPEFPage Erase/Program Protected Error Flag
0: Page Erase/Program Protected Error does not occur
1: Operation error occurs due to an invalid erase/program operation being
applied to a protected page
This bit is reset by hardware once a new ash operation command is committed.
[16]RORFFRaw Operation Finished Flag
0: The last ash operation command is not nished
1: The last ash operation command is nished
The RORFF bit is directly connected to the Flash memory for debugging purpose.
[4]OREFOperation Error Flag
0: No ash operation error occurred
1: The last ash operation is failed
This bit will be set when any flash operation error occurs such as an invalid
command, program error and erase error, etc. The ORE interrupt occurs if the
OREIEN bit in the OIER register is set. Reset this bit by writing 1.
[3]IOCMFInvalid Operation Command Flag
0: No invalid ash operation command was set
1: An invalid ash operation command has been written into the OCMR register.
The IOCM interrupt will be occurred if the IOCMIEN bit in the OIER register is set.
Reset this bit by writing 1.
[2]OBEFOption Byte Checksum Error Flag
0: Option Byte Checksum is correct
1: Option Byte Checksum is incorrect
The OBE interrupt will occur if the OBEIEN bit in the OIER register is set. This bit
is cleared to 0 by software writing 1 into it. However, the Option Byte Checksum
Error Flag can not be cleared by software until the interrupt condition is cleared
which means that the Option Byte checksum value has to be correctly modied or
the corresponding interrupt enable control is disabled. Otherwise, the interrupt will
be continually generated.
Flash Memory Controller (FMC)
Rev. 1.20 52 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
BitsFieldDescriptions
[1]ITADFInvalid Target Address Flag
0: The target address is valid
1: The target address is invalid
The data in the TADR field must be within the range from 0x0000_0000 to
0x1FFF_FFFF. Otherwise, an ITAD interrupt will be generated if the ITADIEN bit in
the OIER register is set. Reset this bit by writing 1.
[0]ORFFOperation Finished Flag
0: Operation is not nished
1: Last Flash operation is nished
The ORF interrupt will be generated if the ORFIEN bit in the OIER register is set.
Reset this bit by writing 1.
Flash Page Erase/Program Protection Status Register – PPSR
This register indicates the page protection status of the Flash page erase/program protection functions.
Offset:0x020 (0) ~ 0x02C (3)
Reset value:0xXXXX_XXXX
Flash Memory Controller (FMC)
3130292827262524
PPSBn
Type/ResetRO X RO X RO X RO X RO X RO X RO X RO X
2322212019181716
PPSBn
Type/ResetRO X RO X RO X RO X RO X RO X RO X RO X
15141312111098
PPSBn
Type/ResetRO X RO X RO X RO X RO X RO X RO X RO X
76543210
PPSBn
Type/ResetRO X RO X RO X RO X RO X RO X RO X RO X
BitsFieldDescriptions
[127:0]PPSBnPage Erase/Program Protection Status Bits (n = 0 ~ 127)
PPSB[n] = OB_PP[n]
0: The corresponding page n is protected
1: The corresponding page n is not protected
The content of this register is not dynamically updated and will only be reloaded
from the Option Byte when any kind of reset occurs. The erase or program
function of the specic pages are not allowed when the corresponding bits of the
PPSR register are reset to zero. The reset value of PPSR [127:0] is determined by
the Option Byte OB_PP [127:0] bits. Since the maximum page number of the main
flash is various and dependent on the chip specification. Therefore, each page
erase/program protection status bit may protect one or two pages, which depends
upon the chip specification. Other bits of the OB_PP and PPSR registers are
reserved for future usage.
Rev. 1.20 53 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Flash Security Protection Status Register – CPSR
This register indicates the Flash Memory Security protection status. The content of this register is not dynamically
updated and will only be reloaded by the Option Byte loader which is active when any kind of reset occurs.
Offset:0x030
Reset value:0x0000_00XX
3130292827262524
Reserved
Type/Reset
2322212019181716
Reserved
Type/Reset
15141312111098
Reserved
Type/Reset
76543210
ReservedOBPSBCPSB
Type/ResetRO X RO X
BitsFieldDescriptions
[1]OBPSBOption Byte Page Erase/Program Protection Status Bit
0: The Option Byte page is protected.
1: The Option Byte page is not protected.
The reset value of the OPBSB is determined by the Option Byte, OB_CP [1] bit.
[0]CPSBFlash Memory Security Protection Status Bit
0: Flash Memory Security protection is enabled
1: Flash Memory Security protection is not enabled
The reset value of the CPSB is determined by the Option Byte, OB_CP [0] bit.
Flash Memory Controller (FMC)
Rev. 1.20 54 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Flash Vector Mapping Control Register – VMCR
This register is used to control the vector mapping. The reset value of the VMCR register is determined by the
external booting pin, BOOT, during the power-on reset period.
Offset:0x100
Reset value:0x0000_000X
3130292827262524
Reserved
Type/Reset
2322212019181716
Reserved
Type/Reset
15141312111098
Reserved
Type/Reset
76543210
ReservedVMCBReserved
Type/ResetRW X
BitsFieldDescriptions
[1]VMCBVector Mapping Control Bit
The VMCB bit is used to control the mapping source of first 4-word vectors
addressed from 0x0 ~ 0xC. The following table shows the vector mapping setting.
BOOTVMCB [1]Descriptions
Low0
High1
The reset value of the VMCB bit is determined by the pin status of the external
BOOT pin during power-on reset and system reset. The vector mapping setting
can be changed temporarily by configuring the VMCB bit when the application
program is executed.
Boot Loader mode
The vector mapping source is the boot loader area.
Main Flash mode
The vector mapping source is the main Flash area.
Flash Memory Controller (FMC)
Rev. 1.20 55 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Flash Manufacturer and Device ID Register – MDID
This register is used to store the manufacture ID and device part number information which can be used as the
product identity.
Offset:0x180
Reset value:0x0376_XXXX
3130292827262524
MFID
Type/ResetRO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 1 RO 1
2322212019181716
MFID
Type/ResetRO 0 RO 1 RO 1 RO 1 RO 0 RO 1 RO 1 RO 0
15141312111098
ChipID
Type/ResetRO X RO X RO X RO X RO X RO X RO X RO X
76543210
ChipID
Type/ResetRO X RO X RO X RO X RO X RO X RO X RO X
BitsFieldDescriptions
[31:16]MFIDManufacturer ID
Read as 0x0376
[15:0]ChipIDChip ID
Read the last 4 digital code of the MCU device part number
Flash Memory Controller (FMC)
Rev. 1.20 56 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Flash Page Number Status Register – PNSR
This register is used to indicate the Flash memory page number.
Offset:0x184
Reset value:0x0000_00XX
3130292827262524
PNSB
Type/ResetRO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0
2322212019181716
PNSB
Type/ResetRO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0
15141312111098
PNSB
Type/ResetRO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0
76543210
PNSB
Type/ResetRO X RO X RO X RO X RO X RO X RO X RO X
Flash Memory Controller (FMC)
BitsFieldDescriptions
[31:0]PNSBFlash Page Number Status Bits
0x0000_0010: Totally 16 pages for the on-chip Flash memory device.
0x0000_0020: Totally 32 pages for the on-chip Flash memory device.
0x0000_0040: Totally 64 pages for the on-chip Flash memory device.
0x0000_0080: Totally 128 pages for the on-chip Flash memory device.
0x0000_00FF: Totally 255 pages for the on-chip Flash memory device.
They indicated the total page number of the on-chip Flash memory device.
Rev. 1.20 57 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Flash Page Size Status Register – PSSR
This register is used to indicate the page size in bytes.
Offset:0x188
Reset value:0x0000_0400
3130292827262524
PSSB
Type/ResetRO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0
2322212019181716
PSSB
Type/ResetRO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0
15141312111098
PSSB
Type/ResetRO 0 RO 0 RO 0 RO 0 RO 0 RO 1 RO 0 RO 0
76543210
PSSB
Type/ResetRO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0
Flash Memory Controller (FMC)
BitsFieldDescriptions
[31:0]PSSBFlash Page Size Status Bits
0x200: The page size is 512 Byte per page.
0x400: The page size is 1 KB per page.
0x800: The page size is 2 KB per page.
Device ID Register – DIDR
This register is used to store the device part number information which can be used as the product identity.
Offset:0x18C
Reset value:0x000X_XXXX
3130292827262524
Reserved
Type/Reset
2322212019181716
ReservedChipID
Type/ResetRO X RO X RO X RO X
15141312111098
ChipID
Type/ResetRO X RO X RO X RO X RO X RO X RO X RO X
76543210
ChipID
Type/ResetRO X RO X RO X RO X RO X RO X RO X RO X
BitsFieldDescriptions
[19:0]ChipIDChip ID
Read the complete 5 digital code of the MCU device part number.
Rev. 1.20 58 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Flash Pre-fetch Control Register – CFCR
This register is used for controlling the FMC pre-fetch module.
Offset:0x200
Reset value:0x0000_0011
3130292827262524
Reserved
Type/Reset
2322212019181716
Reserved
Type/Reset
15141312111098
Reserved
Type/Reset
76543210
ReservedPFBEReservedWAIT
Type/ResetRW 1RW 0 RW 0 RW 1
Flash Memory Controller (FMC)
BitsFieldDescriptions
[4]PFBEPre-fetch Buffer Enable Bit
0: Pre-fetch buffer is disabled.
1: Pre-fetch buffer is enabled (default).
The pre-fetch buffer is enabled in default. When the pre-fetch buffer is disabled,
the instruction and data are directly provided by the Flash memory.
[2:0]WAITFlash Wait State Setting
The WAIT[2:0] eld is used to set the HCLK wait clock during a non-sequential
address Flash access. The actual wait clock is given by (WAIT[2:0] - 1). Since
a wide access interface with a pre-fetch buffer is provided, the wait state of
sequential Flash access is very close to zero.
WAIT [2:0] Wait StatusAllowed HCLK Range
00100 MHz < HCLK ≤ 20 MHz
010120 MHz < HCLK ≤ 40 MHz
OthersReservedReserved
Rev. 1.20 59 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Custom ID Register n – CIDRn (n = 0 ~ 3)
This register is used to store the custom ID information which can be used as the custom identity.
Offset:0x310 (0) ~ 0x31C (3)
Reset value:Various depending on Flash Manufacture Privilege Information Block.
3130292827262524
CID
Type/ResetRO X RO X RO X RO X RO X RO X RO X RO X
2322212019181716
CID
Type/ResetRO X RO X RO X RO X RO X RO X RO X RO X
15141312111098
CID
Type/ResetRO X RO X RO X RO X RO X RO X RO X RO X
76543210
CID
Type/ResetRO X RO X RO X RO X RO X RO X RO X RO X
Flash Memory Controller (FMC)
BitsFieldDescriptions
[31:0]CIDnCustom ID
Read as the CIDn[31:0] (n = 0 ~ 3) field in the Custom ID registers in Flash
Manufacture Privilege Block.
Rev. 1.20 60 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
5
Power Control Unit (PWRCU)
Introduction
The power consumption can be regarded as one of the most important issues for many embedded
system applications. Accordingly the Power Control Unit, PWRCU, provides many types of power
saving modes such as Sleep, Deep-Sleep1, Deep-Sleep2, and Power-Down modes. These modes
reduce the power consumption and allow the application to achieve the best trade-off between the
conicting demands of CPU operating time, speed and power consumption. The dash line in the
Figure 11 indicates the power supply source of two digital power domains.
V
DD
nRST
WAKEUP
RTCOUT
RTC
LSI
LSE
WKUP1
WKUP2
WKUP3
HSE
PWR_CTRL
LDOOFF
LCM
DMOSON
WKUP4
SLEEPDEEP
SLEEPING
VDDDomain
LDO
DMOS
V
1.5 V Domain
DD15
CPUMemories
APB
INTF
Digital
Peripheral
HSI
3.3 V
POR/PDR
LVD
1.5 V
POR/PDR
PLL
Power Control Unit (PWRCU)
V
LDOOUT
V
DD15
LDO: Voltage Regulator
DMOS: Depletion MOS
Figure 11. PWRCU Block Diagram
LVD: Low Voltage Detector
POR/PDR: Power On Reset/Power Down Reset
Rev. 1.20 61 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Features
▄
Two power domains: VDD 3.3 V and V
▄
Four power saving modes: Sleep, Deep-Sleep1, Deep-Sleep2 and Power-Down modes.
▄
Internal Voltage regulator supplies 1.5 V voltage source.
▄
Additional Depletion MOS supplies 1.5 V voltage source with low leakage and low operating
current.
▄
A power reset is generated when one of the following events occurs:
● Power-on / Power-down reset (POR / PDR reset).
● When exiting Power-Down mode.
● The control bits BODEN = 1, BODRIS = 0 and the supply power VDD ≤ V
▄
BOD Brown Out Detector can issue a system reset or an interrupt when VDD power source is
lower than the Brown Out Detector voltage V
▄
LVD Low Voltage Detector can issue an interrupt or wakeup event when VDD is lower than a
programmable threshold voltage V
1.5 V power domains.
DD15
BOD
.
LVD
Power Control Unit (PWRCU)
.
BOD
.
Functional Descriptions
VDD Power Domain
LDO Power Control
The LDO will be automatically switched off when one of the following conditions occurs:
▄
The Power-Down or Deep-Sleep 2 mode is entered.
▄
The control bits BODEN = 1, BODRIS = 0 and the supply power VDD ≤ V
▄
The supply power VDD ≤ V
The LDO will be automatically switched on by hardware when the supply power VDD > V
of the following conditions occurs:
▄
Resume operation from the power saving mode - RTC wakeup, LVD wakeup and WAKEUP pin
rising edge.
▄
Detect a falling edge on the external reset pin (nRST).
▄
The control bit BODEN = 1 and the supply power VDD > V
To enter the Deep-Sleep1 mode, the PWRCU will request the LDO to operate in a low current
mode, LCM. To enter the Deep-Sleep 2 mode, the PWRCU will turn off the LDO and turn on the
DMOS to supply an alternative 1.5 V power.
Voltage Regulator
The voltage regulator, LDO, Depletion MOS, DMOS, Low voltage Detector, LVD, High Speed
Internal oscillator, HSS, Low Speed Internal RC oscillator, LSI, and the Low Speed External
Crystal oscillator, LSE are operated under the VDD power domain. The LDO can be congured to
operate in either normal mode (LDOOFF = 0, LDOLCM = 0, I
current mode (LDOOFF = 0, LDOLCM =1, I
An alternative 1.5 V power source is the output of the DMOS which has low static and driving
current characteristics. It is controlled using the DMOSON bit in the BAKCR register. The DMOS
output has weak output current and regulation capability and only operate in the Deep-Sleep 2
mode for data retention purposes in the V
PDR
= Low current mode) to supply the 1.5 V power.
OUT
power domain.
DD15
.
BOD
.
BOD
= High current mode) or low
OUT
POR
if any
Rev. 1.20 62 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Power On Reset (POR) / Power Down Reset (PDR)
The device has an integrated POR/PDR circuitry that allows proper operation starting from/down
to 2.0 V. The device remains in Power-Down mode when VDD is below a specied threshold V
without the need for an external reset circuit. For more details the power on / power down reset
threshold voltage, refer to the electrical characteristics of the corresponding datasheet.
V
DD
,
PDR
Power Control Unit (PWRCU)
V
POR
Hysteresis
V
PDR
POR Delay Time
t
RESET
RSTD
Figure 12. Power On Reset / Power Down Reset Waveform
Low Voltage Detector / Brown Out Detector
The Low Voltage Detector, LVD, can detect whether the supply voltage VDD is lower than a
programmable threshold voltage V
. It is selected by the LVDS bits in the LVDCSR register.
LV D
When a low voltage on the VDD power pin is detected, the LVDF ag will be active and an interrupt
will be generated and sent to the MCU core if the LVDEN and LVDIWEN bits in the LVDCSR
register are set. For more details concerning the LVD programmable threshold voltage V
to the electrical characteristics of the corresponding datasheet.
The Brown Out Detector, BOD, is used to detect if the VDD supply voltage is equal to or lower
than V
is lower than V
. When the BODEN bit in the LVDCSR register is set to 1 and the VDD supply voltage
BOD
then the BODF ag is active. The PWRCU will regard this as a power down
BOD
reset situation and then immediately disable the internal LDO regulator when the BODRIS bit is
cleared to 0 or issue an interrupt to notify the CPU to execute a power down procedure when the
BODRIS bit is set to 1. For more details concerning the Brown Out Detector voltage V
the electrical characteristics of the corresponding datasheet.
High Speed Internal Oscillator
The High Speed Internal Oscillator, HSI, is located in the VDD power domain. When exiting from
the Deep-Sleep mode, the HSI clock will be congured as the system clock for a certain period by
setting the PSRCEN bit to 1. This bit is located in the Global Clock Control Register, GCCR, in
the Clock Control Unit, CKCU. The system clock will not be switched back to the original clock
source used before entering the Deep-Sleep mode until the original clock source, which may be
either sourced from the PLL or HSE stabilizes. Also the system will force the HSI oscillator to be
the system clock after a wake up from Power-Down mode since a 1.5 V power on reset will occur.
Time
LV D
, refer to
BOD
, refer
Rev. 1.20 63 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
High Speed External Oscillator
The High Speed External Oscillator, HSE, is located in the VDD power domain. The HSE crystal
oscillator can be switched on or off using the HSEEN bit in the Global Clock Control Register
(GCCR). The HSE clock can then be used directly as the system clock source or be used as the PLL
input clock.
LSE, LSI and RTC
The Real Time Clock Timer clock source can be derived from either the Low Speed Internal RC
oscillator, LSI, or the Low Speed External Crystal oscillator, LSE. Before entering the power
saving mode by executing WFI/WFE instruction, the MCU needs to setup the compare register
with an expected wakeup time and enable the wakeup function to achieve the RTC timer wakeup
event. After entering the power saving mode for a certain amount of time, the Compare Match
ag, CMFLAG, will be asserted to wakeup the device when the compare match event occurs. The
details of the RTC conguration for wakeup timer will be described in the RTC chapter.
1.5 V Power Domain
The main functions that include the APB interface for the VDD domain, CPU core logic, AHB/APB
peripherals and memories and so on are located in this power domain. Once the 1.5 V is powered
up, the POR will generate a reset sequence on 1.5 V power domain. Subsequently, to enter the
expected power saving mode, the associated control bits including the LDOOFF, DMOSON and
LDOLCM bits must be congured. Then, once a WFI or WFE instruction is executed, the device
will enter an expected power saving mode which will be discussed in the following section.
Power Control Unit (PWRCU)
Operation Modes
Run Mode
In the Run mode, the system operates with full functions and all power domains are active. There
are two ways to reduce the power consumption in this mode. The rst is to slow down the system
clock by setting the AHBPRE eld in the CKCU AHBCFGR register, and the second is to turn
off the unused peripherals clock by setting the APBCCR0 and APBCCR1 registers or slow down
peripherals clock by setting the APBPCSR0 and APBPCSR1 registers to meet the application
requirement. Reducing the system clock speed before entering the sleep mode will also help to
minimize power consumption.
Additionally, there are several power saving modes to provide maximum optimization between
device performance and power consumption.
Table 11. Operation Mode Denitions
Mode nameHardware Action
RunAfter system reset, CPU fetches instructions to execute.
Sleep
Deep-Sleep1 ~ 2
Power-DownShut down the 1.5 V power domain
CPU clock will be stopped.
Peripherals, Flash and SRAM clocks can be stopped by setting.
Stop all clocks in the 1.5 V power domain.
Disable HSI, HSE, and PLL.
Turning on the LDO low current mode or DMOS to reduce the 1.5 V power
domain current.
Rev. 1.20 64 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Sleep Mode
By default, only the CPU clock will be stopped in the Sleep mode. Clearing the FMCEN or
SRAMEN bit in the CKCU AHBCCR register to 0 will have the effect of stopping the Flash
clock or SRAM clock after the system enters the Sleep mode. If it is not necessary for the CPU to
access the Flash memory and SRAM in the Sleep mode, it is recommended to clear the FMCEN
and SRAMEN bits in the AHBCCR register to minimize power consumption. To enter the Sleep
mode, it is only CPU executes a WFI or WFE instruction and lets the SLEEPDEEP signal to 0. The
system will exit from the Sleep mode via any interrupt or event trigger. The accompanying table
provides more information about the power saving modes.
Table 12. Enter/Exit Power Saving Modes
Mode
CPU
Instruction
Sleep
Deep-Sleep1100
Deep-Sleep21X1
Power-Down110
WFI or WFE
(Takes
effect)
Mode Entry
CPU
SLEEPDEEP
0XX
LDOOFF DMOSON
Mode Exit
WFI: Any interrupt
WFE:
Any wakeup event
Any interrupt (NVIC on) or
Any interrupt with
SEVONPEND = 1 (NVIC off)
Any EXTI in event mode or
RTC wakeup or
LVD wakeup
WAKEUP pin rising edge
RTC wakeup or
LVD wakeup
WAKEUP pin rising edge
RTC wakeup or
WAKEUP pin rising edge
or External reset (nRST)
(2)
(2)
or
or
(1)
or
Power Control Unit (PWRCU)
Notes:
1. Wakeup event means EXTI line in event mode, RTC, LVD, and WAKEUP pin rising edge
2. If the system allows the LVD activity to wake it up after the system has entered the power
saving mode, the LVDEWEN and LVDEN bits in the LVDCSR register must be set to 1 to
make sure that the system can be waked up by a LVD event and then the LDO regulator
can be turned on when system is woken up from the Deep-Sleep2 and Power-Down
modes.
Deep-Sleep Mode
To enter Deep-Sleep mode, configure the registers as shown in the preceding table and execute
the WFI or WFE instruction. In the Deep-Sleep mode, all clocks including PLL and high speed
oscillator, known as HSI and HSE, will be stopped. In addition, Deep-Sleep1 turns the LDO into
low current mode while Deep-Sleep2 turns off the LDO and uses a DMOS to keep 1.5 V power.
Once the PWRCU receives a wakeup event or an interrupt as shown in the preceding Mode-Exiting
table, the LDO will then operate in normal mode and the high speed oscillator will be enabled.
Finally, the CPU will return to Run mode to handle the wakeup interrupt if required. A Low
Voltage Detection also can be regarded as a wakeup event if the corresponding wakeup control bit
LVDEWEN in the LVDCSR register is enabled. The last wakeup event is a transition from low to
high on the external WAKEUP pin sent to the PWRCU to resume from Deep-Sleep mode. During
the Deep-Sleep mode, retaining the register and memory contents will shorten the wakeup latency.
Rev. 1.20 65 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Power-Down Mode
The Power-Down mode is derived from the Deep-Sleep mode of the CPU together with the
additional control bits LDOOFF and DMOSON. To enter the Power-Down mode, users can
congure the registers shown in the preceding Mode-Entering table and execute the WFI or WFE
instruction. A RTC wakeup trigger event, a LVD wakeup, a low to high transition on the external
WAKEUP pin or an external reset (nRST) signal will force the MCU out of the Power-Down mode.
In the Power-Down mode, the 1.5 V power supply will be turned off. The remaining active power
supplies are the 3.3 V power (V
After a system reset, the PORSTF bit in the RSTCU GRSR register, the PDF and PORF bits in the
PWRSR register should be checked by software to conrm if the device is being resumed from
the Power-Down mode by a power on reset or other reset events (nRST, WDT,…). If the device has
entered the Power-Down mode under the correct rmware procedure, then the PDF bit will be set.
The system information could be saved in the VDD power domain registers and be retrieved when
the 1.5 V power domain is powered on again. More information about the PDF and PORF bits in
the PWRSR register and PORSTF bit in the RSTCU GRSR register is shown in the following table.
Table 13. Power Status After System Reset
PORFPDF PORSTFDescription
101
001
011Restart from the Power-Down mode.
11xReserved
/ V
DD
).
DDA
Power-up for the rst time after the VDD power domain is reset:
Power on reset when VDD is applied for the rst time or executing
software reset command on the VDD domain.
Restart from unexpected loss of the 1.5 V power or other reset
(nRST, WDT,…)
Power Control Unit (PWRCU)
Register Map
The following table shows the PWRCU registers and reset values. Note all the registers in this unit
are located in the V
Table 14. PWRCU Register Map
RegisterOffsetDescriptionReset Value
PWRSR0x100Power Control Status Register0x0000_0001
PWRCR0x104Power Control Register0x0000_0000
PWRTEST0x108VDD Power Domain Test Register0x0000_0027
LVDCSR0x110
power domain.
DD
Low Voltage/Brown Out Detect Control and Status
Register
0x0000_0000
Rev. 1.20 66 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Register Descriptions
Power Control Status Register – PWRSR
This register indicates power control status.
Offset:0x100
Reset value: 0x0000_0001 (Reset only by VDD domain power on reset)
3130292827262524
Reserved
Type/Reset
2322212019181716
Reserved
Type/Reset
15141312111098
ReservedWUPF
Type/ResetRC 0
76543210
ReservedPDFPORF
Type/ResetRC 0 RC 1
Power Control Unit (PWRCU)
BitsFieldDescriptions
[8]WUPFExternal WAKEUP Pin Flag
0: The Wakeup pin is not asserted
1: The Wakeup pin is asserted
This bit is set by hardware when the WAKEUP pin asserts and is cleared by software
read. Software should read this bit to clear it after a system wake up from the power
saving mode.
[1]PDFPower Down Flag
0: Wakeup from abnormal V
1: Wakeup from Power-Down mode. The loss of V
This bit is set by hardware when the system has successfully entered the PowerDown mode This bit is cleared by software read.
[0]PORFPower On Reset Flag
0: VDD Power Domain reset does not occur
1: VDD Power Domain reset occurs
This bit is set by hardware when VDD power on reset occurs, either a hardware
power on reset or software reset. The bit is cleared by software read. This bit must
be cleared after the system is first powered on, otherwise it will be impossible to
detect when a VDD Power Domain reset has been triggered. When this bit is read
as 1, a read software loop must be implemented until the bit returns again to 0.
This software loop is necessary to conrm that the VDD Power Domain is ready for
access.
shutdown (Loss of V
DD15
is unexpected)
DD15
is under expectation.
DD15
Rev. 1.20 67 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Power Control Register – PWRCR
This register provides power control bits for the different kinds of power saving modes.
Offset:0x104
Reset value: 0x0000_0000 (Reset only by VDD domain power on reset)
3130292827262524
Reserved
Type/Reset
2322212019181716
Reserved
Type/Reset
15141312111098
DMOSSTSReserved V15RDYSCReservedWUPIENWUPEN
Type/ResetRO 0RW 0RW 0 RW 0
76543210
DMOSONReservedLDOOFFLDOLCMReservedPWRST
Type/ResetRW 0RW 0 RW 0WO 0
Power Control Unit (PWRCU)
BitsFieldDescriptions
[15]DMOSSTSDepletion MOS Status
This bit is set to 1 if the DMOSON bit in this register has been set to 1.
This bit is cleared to 0 if the DMOSON bit has been set to 0 or if a POR/PDR reset
occurred.
[12]V15RDYSC V
[9]WUPIENExternal WAKEUP Pin Interrupt Enable
Ready Source Selection.
DD15
0: VDDISO bit in the LPCR register located in the CKCU
1: V
POR
DD15
Setting this bit to determine what control signal of isolation cells is used to disable
the isolation function of the V
to VDD power domain level shifter.
DD15
0: Disable WAKEUP pin interrupt function
1: Enable WAKEUP pin interrupt function
The software can set the WUPIEN bit to 1 to assert the LPWUP interrupt in the NVIC
unit when both the WUPEN and WUPF bits are set to1.
Rev. 1.20 68 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
BitsFieldDescriptions
[8]WUPENExternal WAKEUP Pin Enable
0: Disable WAKEUP pin function
1: Enable WAKEUP pin function
The Software can set the WUPEN bit as 1 to enable the WAKEUP pin function
before entering the power saving mode. When WUPEN = 1, a rising edge on the
WAKEUP pin wakes up the system from the power saving mode. As the WAKEUP
pin is active high, this bit will set an input pull down mode when the bit is high. The
WAKEUP pin alternate function should rst be selected by conguring the PBCFG12
bit eld in the GPBCFGHR register to 0x0F before the WAKEUP pin is used. The
corresponding pull-up function on the WAKEUP pin should also be disabled by
clearing the PBPU[12] bit in the PBPUR register to 0 while the pull-down function
should be enabled by setting the PBPD[12] bit in the PBPDR register to 1.
Note: This bit is reset by a VDD Power Domain reset. Because this bit is located in
the VDD Power Domain, after reset activity there will be a delay until the bit is
active. The bit will not be active until the system reset nished and the VDD
Power Domain ISO signal has been disabled. This means that the bit cannot
be immediately set by software after a system reset finished and the VDD
Power domain ISO signal disabled. The delay time needed is a minimum of
three 32 kHz clock periods until the bit reset activity has nished.
[7]DMOSONDMOS Control
0: DMOS is OFF
1: DMOS is ON
A DMOS is implemented to provide an alternative voltage source for the 1.5 V power
domain when the CPU enters the Deep-Sleep mode (SLEEPDEEP = 1). The control
bit DMOSON is set by software and cleared by software or VDD power domain reset.
If the DMOSON bit is set to 1, the LDO will automatically be turned off when the
CPU enters the Deep-Sleep mode.
[3]LDOOFFLDO Operating Mode Control
0: The LDO operates in a low current mode when CPU enters the Deep-Sleep
mode (SLEEPDEEP = 1). The V
1: The LDO is turned off when the CPU enters the Deep-Sleep mode
(SLEEPDEEP=1). The V
Note: This bit is only available when the DMOSON bit is cleared to 0.
[2]LDOLCMLDO Low Current Mode
0: The LDO is operated in normal current mode.
1: The LDO is operated in low current mode.
Note: This bit is only available when CPU is in the Run mode. The LDO output
current capability will be limited at 10mA below and lower static current when
the LDOLCM bit is set. It is suitable for CPU is operated at lower speed
system clock to get a lower current consumption. This bit will be cleared to 0
when the LDO is power down or VDD power domain reset.
[0]PWRSTVDD Power Domain Software Reset
0: No action
1: VDD Power Domain Software Reset is activated.
It will reset all the related RTC and PWRCU registers.
DD15
power is available.
DD15
power is not available.
Power Control Unit (PWRCU)
Rev. 1.20 69 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
V
Power Domain Test Register – PWRTEST
DD
This register species a read-only value for the software to recognize whether VDD Power Domain is ready for
access.
Offset:0x108
Reset value: 0x0000_0027
3130292827262524
Reserved
Type/Reset
2322212019181716
Reserved
Type/Reset
15141312111098
Reserved
Type/Reset
76543210
PWRTEST
Type/ResetRO 0 RO 0 RO 1 RO 0 RO 0 RO 1 RO 1 RO 1
BitsFieldDescriptions
[7:0]PWRTESTVDD Power Domain Test Bits
A constant 0x27 will be read when the VDD Power Domain is ready for CPU access.
Low Voltage / Brown Out Detect Control and Status Register – LVDCSR
This register species ags, enable bits and option bits for low voltage detector.
Offset:0x110
Reset value: 0x0000_0000 (Reset only by VDD domain power on reset)
0: LVD event wakeup is disabled
1: LVD event wakeup is enabled
Setting this bit to 1 will enable the LVD event wakeup function to wake up the system
when a LVD condition occurs which result in the LVDF bit being asserted. If the
system requires to be waked up from the Deep-Sleep or Power-Down mode by a
LVD condition, this bit must be set to 1.
[20]LVDIWENLVD Interrupt Wakeup Enable
0: LVD interrupt wakeup is disabled
1: LVD interrupt wakeup is enabled
Setting this bit to 1 will enable the LVD interrupt function. When a LVD condition
occurs and the LVDIWEN bit is set to 1, a LVD interrupt will be generated and sent
to the CPU NVIC unit.
[19]LVDFLow Voltage Detect Status Flag
0: VDD is higher than the specic voltage level
1: VDD is equal to or lower than the specic voltage level
When the LVD condition occurs, the LVDF ag will be asserted. When the LVDF ag
is asserted, a LVD interrupt will be generated for CPU if the LVDIWEN bit is set to 1.
However, if the LVDEWEN bit is set to 1 and the LVDIWEN bit is cleared to 0, only
a LVD event will be generated rather than a LVD interrupt when the LVDF flag is
asserted.
[22], [18:17] LVDS [2:0]Low Voltage Detect Level Selection
For more details concerning the LVD programmable threshold voltage, refer to the
electrical characteristics of the corresponding datasheet.
[16]LVDENLow Voltage Detect Enable
0: Disable Low Voltage Detect
1: Enable Low Voltage Detect
Setting this bit to 1 will generate a LVD event when the VDD power is lower than
the voltage set by LVDS bits. Therefore when the LVD function is enabled before
the system is into the Deep-Sleep2 (DMOS is turn on and LDO is power down) or
Power-Down mode (DMOS and LDO is power down), the LVDEWEN bit has to be
enabled to avoid the LDO does not activate in the meantime when the CPU is woken
up by the low voltage detection activity.
[3]BODFBrown Out Detect Flag
0: VDD > V
1: VDD ≤ V
[1]BODRISBOD Reset or Interrupt Selection
0: Reset the whole chip
1: Generate Interrupt
[0]BODENBrown Out Detector Enable
0: Disable Brown Out Detector
1: Enable Brown Out Detector
BOD
BOD
Power Control Unit (PWRCU)
Rev. 1.20 71 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
6
Clock Control Unit (CKCU)
Introduction
The Clock Control unit (CKCU) provides functions of high speed internal RC oscillator (HSI),
High speed external crystal oscillator (HSE), Low speed internal RC oscillator (LSI), Low speed
external crystal oscillator (LSE), Phase Lock Loop (PLL), HSE clock monitor, clock prescaler,
clock multiplexer and clock gating. The clock of AHB, APB, and CPU are derived from system
clock (CK_SYS) which can come from HSI, HSE, LSI, LSE or PLL. Watchdog Timer and Real
Time Clock (RTC) use either LSI or LSE as their clock source.
A variety of internal clocks can also be wired out though CKOUT for debugging purpose. The
clock monitor can be used to get clock failure detection of HSE. Once the clock of HSE does not
function (could be broken down or removed or etc), CKCU will force to switch the system clock
source to HSI clock to prevent system halt.
Features
▄
4 ~ 16 MHz external crystal oscillator – HSE.
▄
Internal 8 MHz RC oscillator (HSI) with conguration option calibration and custom trimming
capability.
▄
PLL with selectable clock source (from HSE or HSI) for system clock.
▄
32,768 Hz external crystal oscillator (LSE) for Watchdog Timer, RTC or system clock.
▄
Internal 32 kHz RC oscillator (LSI) for Watchdog Timer, RTC or system clock.
The high speed external 4 to 16 MHz crystal oscillator (HSE) produces a highly accurate
clock source to the system clock. The related hardware configuration is shown in the following
gure. The crystal with specic frequency must be placed across the two HSE pins (XTALIN /
XTALOUT) and the external components such as resistors and capacitors are necessary to make it
oscillate properly.
The following guidelines are provided to improve the stability of the crystal circuit PCB layout.
▄
The crystal oscillator should be located as close as possible to the MCU so that the trace lengths
are kept as short as possible to reduce any parasitic capacitances.
▄
Shield any lines in the vicinity of the crystal by using a ground plane to isolate signals and
reduce noise.
▄
Keep frequently switching signal lines away from the crystal area to prevent crosstalk.
Clock Control Unit (CKCU)
OSC_EN
XTALOUTXTALIN
Crystal
4 MHz ~ 16 MHz
CL1CL2
Figure 14. External Crystal, Ceramic, and Resonators for HSE
The HSE crystal oscillator can be switched on or off using the HSEEN bit in the Global Clock
Control Register (GCCR). The HSERDY flag in the Global Clock Status Register (GCSR) will
indicate if the high-speed external crystal oscillator is stable. While switching on the HSE, the HSE
clock will still not be released until this HSERDY bit is set by the hardware. The specic delay
period is well-known as "Start-up time". As the HSE becomes stable, an interrupt will be generated
if the related interrupt enable bit HSERDYIE in the Global Clock Interrupt Register (GCIR) is set.
The HSE clock can then be used directly as the system clock source or be used as the PLL input
clock.
Rev. 1.20 74 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
High Speed Internal RC Oscillator – HSI
The high speed internal 8 MHz RC oscillator (HSI) is the default selection of clock source for the
CPU when the device is powered up. The HSI RC oscillator provides a clock source in a lower cost
because no external components are required. The HSI RC oscillator can be switched on or off
using the HSIEN bit in the Global Clock Control Register (GCCR). The HSIRDY ag in the Global
Clock Status Register (GCSR) will indicate if the internal RC oscillator is stable. The start-up
time of HSI is shorter than the HSE crystal oscillator. An interrupt can be generated if the related
interrupt enable bit HSIRDYIE in the Global Clock Interrupt Register (GCIR) is set as the HSI
becomes stable. The HSI clock can also be used as the PLL input clock.
The accuracy of the frequency of the high speed internal RC oscillator HSI can be calibrated via the
conguration options, but it is still less accurate than the HSE crystal oscillator. The applications,
the environments and the cost will determine the use of the oscillators.
Software could congure PSRCEN bit (Power Saving Wakeup RC Clock Enable) to 1 to force HSI
clock to be system clock when wake-up from Deep-Sleep or Power-Down mode. Subsequently, the
system clock is back to the original clock source (HSE or PLL) if the original clock source ready
flag is asserted. This function can reduce the wakeup time when using HSE or PLL as system
clock.
Clock Control Unit (CKCU)
Auto Trimming of High Speed Internal RC Oscillator – HSI
The frequency accuracy of the high speed internal RC oscillator HSI can vary from one chip to
another due to manufacturing process variations, this is why each device is factory calibrated by
HOLTEK for ±2% accuracy at VDD = 3.3 V and TA = 25°C. But the accuracy is not enough for
some applications and environments requirement. Therefore, this device provides the trimming
mechanism for HSI frequency calibration using more accurate external reference clock. The detail
block diagram is shown as Figure 15.
After reset, the factory trimming value is loaded in the HSICOARSE[4:0] and HSIFINE[7:0] bits
in the HSI Control Register (HSICR). The HSI frequency accuracy may be affected by the voltage
or temperature variation. If the application has to be driven by a more accurate HSI frequency, the
HSI frequency can be manually trimmed using the HSIFINE[7:0] bits in the HSI Control Register
(HSICR) or automatically adjusted via the Auto Trimming Controller (ATC) together with an
external reference clock in the application. The reference clock can be provided from the low speed
external crystal or ceramic resonator oscillator with a 32,768 Hz frequency or the external CKIN
pin with 1 kHz pulse.
Rev. 1.20 75 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Auto Trimming HSI Block Diagram
Fine-Trimming
Write Register
1
0
TMSEL
ATCEN
Auto Trimming
Controller
AT
Counter
Register
Clock Control Unit (CKCU)
Factory
Trimming Bits
External
pin (CKIN)
LSE
32.768 kHz
1
0
TRIMEN
/32
REFCLKSEL
Coarse [4:0]
1x
0x
Fine [7:0]
Figure 15. HSI Auto Trimming Block Diagram
Phase Locked Loop – PLL
This PLL can provide 4 ~ 48 MHz clock output which is 1 ~ 12 multiples of a fundamental
reference frequency of 4 ~ 16 MHz. The rationale of the clock synthesizer relies on the digital
Phase Locked Loop (PLL) which includes a reference divider, a feedback divider, a digital phase
frequency detector (PFD), a current-controlled charge pump, a built-in loop lter and a voltage-
controlled oscillator (VCO) to achieve a stable phase-locked state.
1 kHz
/1.024 kHz
Fine-Trimming
Read Register
Coarse-Trimming
8MHz HSI
Oscillator
Read Register
AHB Bus
8 MHz
= 48 ~ 96 MHz
VCO
OUT
CLK
IN
= 4 ~ 16 MHz
Ref. Divider
(NR)
/2
PD
Feedback Divider 2
(NF2)
B3~B0
CPVCO
Loop
Filter
Feedback Divider 1
(NF1)
/4
Output Divider 1
(NO1)
/2
Output Divider 2
(NO2)
S1~S0
PLL
OUT
= 4 ~ 48 MHz
Figure 16. PLL Block Diagram
Rev. 1.20 76 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Frequency of the PLL output clock can be determined by the following formula:
Considering the duty cycle with 50%, both input frequency and output frequency is divided by 2.
Assume that a given CLKIN frequency as PLL input generates a specic PLL output frequency; a
larger number of NF2 is suggested because it will cause the PLL more stable and less jittered but
enlarges the settling time. The output and feedback of divider 2 value are described in Ta ble 15 and
Table 16. All the conguration bits (S1 ~ S0, B3 ~ B0) in Table 15 and Table 16 are dened in the PLL
Conguration Register (PLLCFGR) and PLL Control Register (PLLCR) in the section of Register
Denition. Note that VCO
range, the output frequency of PLL will not be promised to match the above PLL
is ranged from 48 MHz to 96 MHz. If your congurations exceed this
OUT
formula.
OUT
The PLL can be switched on or off by using the PLLEN bit in the Global Clock Control Register
(GCCR). The PLLRDY ag in the Global Clock Status Register (GCSR) will indicate if the PLL
clock is stable. An interrupt can be generated if the related interrupt enable bit PLLRDYIE in the
Global Clock Interrupt Register (GCIR) is set as the PLL becomes stable.
Table 15. Output Divider2 Value Mapping
Output divider 2 setting bits S[1:0]
(POTD bits in the PLLCFGR register)
001
012
104
118
NO2 (Output divider 2 value)
Table 16. Feedback Divider2 Value Mapping
Feedback divider2 setting bits B[3:0]
(PFBD bits in the PLLCFGR register)
000016
00011
00102
00113
01004
01015
01106
01117
10008
10019
101010
101111
110012
.
.
.
111115
NF2 (Feedback divider 2 value)
.
.
.
Clock Control Unit (CKCU)
Rev. 1.20 77 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Low Speed External Crystal Oscillator – LSE
The low speed external crystal or ceramic resonator oscillator with 32,768 Hz frequency produces
a low power but highly accurate clock source for the circuits of Real-Time-Clock peripheral,
Watchdog Timer or system clock. The associated hardware conguration is shown in the following
figure. The crystal or ceramic resonator must be placed across the two LSE pins (X32KIN /
X32KOUT) and the external components such as resistors and capacitors are necessary to make it
oscillate properly. The LSE oscillator can be switched on or off by using the LSEEN bit in the RTC
Control Register (RTCCR). The LSERDY ag in the Global Clock Status Register (GCSR) will
indicate if the LSE clock is stable. An interrupt can be generated if the related interrupt enable bit
LSERDYIE in the Global Clock Interrupt Register (GCIR) is set as the LSE becomes stable.
Clock Control Unit (CKCU)
X32KIN
X32KOUT
32.768 kHz
C
L1
C
L2
Figure 17. External Crystal, Ceramic, and Resonators for LSE
Low Speed Internal RC Oscillator – LSI
The low speed internal RC oscillator with a frequency of about 32 kHz produces a low power clock
source for the Real-Time-Clock peripheral circuits, Watchdog Timer or system clock. The LSI
offers a low cost clock source because no external component is required to make it oscillate. The
LSI RC oscillator can be switched on or off by using the LSIEN bit in the RTC Control Register
(RTCCR). The LSI frequency accuracy is shown in the corresponding data sheet. The LSIRDY ag
in the Global Clock Status Register (GCSR) will indicate if the LSI clock is stable. An interrupt can
be generated if the related interrupt enable bit LSIRDYIE in the Global Clock Interrupt Register
(GCIR) is set as the LSI becomes stable.
Clock Ready Flag
The CKCU provides the corresponding clock ready flags for the HSI, HSE, PLL, LSI, and LSE
oscillator to indicate whether these clocks are stable. Before using them as the system clock source
or other purpose, it is necessary to conrm the specic clock ready ag is set. Software can check
the specific clock is ready or not by polling the individual clock ready status bits in the GCSR
register. Additionally, the CKCU can trigger an interrupt to notify specific clock is ready if the
corresponding interrupt enable bit in the GCIR is set. Software should clear the interrupt status bit
in the GCIR register by interrupt service routine.
Rev. 1.20 78 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
System Clock (CK_SYS) Selection
After the system reset occurs, the default system clock source CK_SYS will be the high speed
internal RC oscillator HSI. The CK_SYS may come from the HSI, HSE, LSE, LSI or PLL output
clock and it can be switched from one clock source to another by conguring the System Clock
Switch bits SW in the Global Clock Control Register GCCR. The system will still run under
the original clock until the destination clock gets ready when the SW value is changed. The
corresponding clock ready status bit in the Global Clock Status Register GCSR will indicate
whether the selected clock is ready to use or not. The CKCU also contains the clock source status
bits in the Clock Source Status Register CKST to indicate which clock is currently used as the
system clock. If a clock source or the PLL output clock is used as the system clock source, it is not
possible to stop it.More details about the clock enable function are described in the following.
If any event in the following occurs, the HSI will be enabled.
▄
Enable PLL and congure its source clock to HSI. (PLLEN, PLLSRC)
▄
Enable Clock monitor. (CKMEN)
▄
Congure clock switch register to HSI. (SW)
▄
Congure HSI enable register to 1. (HSIEN)
If any event in the following occurs, the HSE will be enabled.
Clock Control Unit (CKCU)
▄
Enable PLL and congure its source clock to HSE. (PLLEN, PLLSRC)
▄
Congure clock switch register to HSE. (SW)
▄
Congure HSE enable register to 1. (HSEEN)
If any event in the following occurs, the PLL is always under enable state
▄
Congure clock switch register to PLL. (SW)
▄
Congure PLL enable register to 1. (PLLEN)
The system clock selection programming guide is listed in the following.
1. Enable any clock source which will become the system clock or PLL input clock.
2. Conguring the PLLSRC register can not take effect before the ready ags of both HSI and HSE
are asserted,
3. Configuring the SW register to change the system clock source will take effect after the
corresponding ready flag of the clock source is asserted. Note that the system clock will be
forced to HSI if the clock monitor is enabled and the PLL output or HSE clock congured as the
system clock is stuck at 0 or 1.
Rev. 1.20 79 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
HSE Clock Monitor
The HSE Clock Monitor function is enabled by the HSE Clock Monitor Enable bit CKMEN in the
Global Clock Control Register GCCR. The HSE clock monitor function should be enabled after
the HSE oscillator start-up delay and disabled when the HSE oscillator is stopped. Once the HSE
oscillator failure is detected, the HSE oscillator will automatically be disabled. The HSE clock
stuck ag CKSF in the Global Clock Interrupt Register GCIR will be set and the HSE oscillator
failure event will be generated if the corresponding clock fail interrupt enable bit CKSIE in the
GCIR is set. This failure interrupt is connected to the exception vector of the CPU Non-Maskable
Interrupt (NMI). When the HSE oscillator failure occurs, the HSE will be turned off and the
system clock will be switched to the HSI automatically by the hardware. If the HSE is used as the
clock input of the PLL circuit whose output is used as the system clock, the PLL circuit will also be
turned off as well as the HSE when the failure happens.
Clock Output Capability
The device has the clock output capability to allow the clocks to be output on the specic external
output pin CKOUT. The configuration registers of the corresponding GPIO port must be well
congured in the Alternate Function I/O (AFIO) section to output the selected clock signal. There
are seven output clock signals to be selected via the device clock output source selection bits
CKOUTSRC in the Global Clock Conguration Register GCFGR.
Clock Control Unit (CKCU)
Table 17. CKOUT Clock Source
CKOUTSRC[2:0]Clock Source
000CK_REF = CK_PLL / (CKREFPRE + 1) / 2
001HCLKC / 16
010CK_SYS / 16
011CK_HSE / 16
100CK_HSI / 16
101CK_LSE
110CK_LSI
Rev. 1.20 80 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Register Map
The following table shows the CKCU register and reset value.
HSIATCR0x044HSI Auto Trimming Counter Register0x0000_0000
MCUDBGCR0x304MCU Debug Control Register0x0000_0000
Clock Control Unit (CKCU)
0xXXXX_0000
where X is undened
Rev. 1.20 81 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Register Descriptions
Global Clock Conguration Register – GCFGR
This register species the clock source for PLL / USART / Watchdog Timer / CKOUT.
Offset:0x000
Reset value: 0x0000_0102
3130292827262524
LPMODReserved
Type/ResetRO 0 RO 0 RO 0
2322212019181716
Reserved
Type/Reset
15141312111098
CKREFPREReservedPLLSRC
Type/ResetRW 0 RW 0 RW 0RW 0 RW 0RW 1
76543210
ReservedCKOUTSRC
Type/ResetRW 0 RW 1RW 0
Clock Control Unit (CKCU)
BitsFieldDescriptions
[31:29]LPMODLower Power Mode Status
000: When Chip is in Run mode
001: When Chip wants to enter Sleep mode
010: When Chip wants to enter Deep Sleep mode1
011: When Chip wants to enter Deep Sleep mode2
100: When Chip wants to enter Power Down mode
Others: Reserved
Set and reset by software to control the PLL clock source.
[2:0]CKOUTSRC CKOUT Clock Source Selection
000: CK_REF is selected
where CK_REF = CK_PLL / (CKREFPRE +1) / 2
001: (HCLKC / 16) is selected
010: (CK_SYS / 16) is selected
011: (CK_HSE / 16) is selected
100: (CK_HSI / 16) is selected
101: CK_LSE is selected
110: CK_LSI is selected
111: Reserved
Set and reset by software.
Rev. 1.20 82 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
Global Clock Control Register – GCCR
This register species the clock enable bits.
Offset:0x004
Reset value: 0x0000_0803
3130292827262524
Reserved
Type/Reset
2322212019181716
ReservedPSRCENCKMEN
Type/ResetRW 0 RW 0
15141312111098
ReservedHSIENHSEENPLLENHSEGAIN
Type/ResetRW 1 RW 0 RW 0 RW 0
76543210
ReservedSW
Type/ResetRW 0 RW 1 RW 1
Clock Control Unit (CKCU)
BitsFieldDescriptions
[17]PSRCENPower Saving Wakeup RC Clock Enable
0: No action
1: Use Internal 8 MHz RC clock (HSI) as system clock after power down wakeup.
The software can set the PSRCEN bit high before entering the power saving mode
in order to reduce the waiting time after a wakeup. When the PSRCEN bit is set to 1,
hardware will select HSI as clock source after the system wakeup from power saving
mode. Meanwhile, instruction can start execution since the HSI clock is provided to
CPU. After the original clock source (which selected as CK_SYS before enter power
saving mode) is ready, hardware will switch back the clock source as originally.
1: Enable external 4 ~ 16 MHz crystal oscillator clock monitor
When hardware detects HSE clock stuck at low/high state, internal hardware will
switch the system clock to internal high speed RC clock (HSI).
[11]HSIENInternal High Speed Clock Enable
0: Internal 8 MHz RC oscillator clock is set to off
1: Internal 8 MHz RC oscillator clock is set to on
Set and reset by software. This bit can not be reset if HSI clock is used as system
clock.
[10]HSEENExternal High Speed Clock Enable
0: External 4 ~ 16 MHz crystal oscillator clock is set to off
1: External 4 ~ 16 MHz crystal oscillator clock is set to on
Set and reset by software. This bit can not be reset if the HSE clock is used as
system clock.
[9]PLLENPLL Enable
0: PLL off
1: PLL on
Set and reset by software to enable PLL. This bit cannot be reset if the PLL clock is
used as system clock.
[8]HSEGAINExternal High Speed Clock Gain Selection
0: HSE low gain mode
1: HSE high gain mode
Rev. 1.20 83 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
BitsFieldDescriptions
[2:0]SWSystem Clock Switch
00x: CK_PLL clock out as system clock
010: CK_HSE as system clock
011: CK_HSI as system clock
110: CK_LSE as system clock
111: CK_LSI as system clock
Other: CK_HSI as system clock
Set and reset by software to select CK_SYS source. Set by hardware to force HSI
(0b011) as system clock when clock failure of the HSE oscillator that is used directly
or indirectly as system clock (if the clock monitor is enabled).
Note: When switch the system clock using SW bit, the system clock is not
immediately switched and need to wait a moment. The SW can monitor the
CKSWST bit in the clock source status register CKSTR to make sure which
clock is using as system clock.
Global Clock Status Register – GCSR
This register indicates the clock ready status.
Offset:0x008
Reset value: 0x0000_0028
Clock Control Unit (CKCU)
3130292827262524
Reserved
Type/Reset
2322212019181716
Reserved
Type/Reset
15141312111098
Reserved
Type/Reset
76543210
ReservedLSIRDYLSERDYHSIRDYHSERDYPLLRDYReserved
Type/ResetRO 1 RO 0 RO 1 RO 0 RO 0
BitsFieldDescriptions
[5]LSIRDYInternal Low Speed Oscillator Ready Flag
0: Internal 32 kHz RC oscillator is not ready
1: Internal 32 kHz RC oscillator is ready
Set by hardware to indicate whether the LSI is stable to be used.
[4]LSERDYExternal Low Speed Oscillator Ready Flag
0: External 32,768 Hz crystal oscillator is not ready
1: External 32,768 Hz crystal oscillator is ready
Set by hardware to indicate whether the LSE is stable to be used.
[3]HSIRDYInternal High Speed Oscillator Ready Flag
0: Internal 8 MHz RC oscillator is not ready
1: Internal 8 MHz RC oscillator is ready
Set by hardware to indicate whether the HSI is stable to be used.
[2]HSERDYExternal High Speed Oscillator Ready Flag
0: External 4 ~ 16 MHz crystal oscillator is not ready
1: External 4 ~ 16 MHz crystal oscillator is ready
Set by hardware to indicate whether the HSE is stable to be used.
Rev. 1.20 84 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
BitsFieldDescriptions
[1]PLLRDYPLL Clock Ready Flag
0: PLL is not ready
1: PLL is ready
Set by hardware to indicate whether the PLL output is stable to be used.
Global Clock Interrupt Register – GCIR
This register species interrupt enable and ag bits.
PCLK = Peripheral Clock; CK_AHB = AHB and CPU clock
Clock Control Unit (CKCU)
Rev. 1.20 98 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
HSI Control Register – HSICR
This register is used to control the frequency trimming of the HSI RC oscillation.
Offset:0x040
Reset value: 0xXXXX_0000 where X is undened
3130292827262524
Reserved HSICOARSE
Type/ResetRO X RO X RO XRO X RO X
2322212019181716
HSIFINE
Type/Reset RW X RW X RW XRW X RW X RW X RW X RW X
15141312111098
Reserved
Type/Reset
76543210
FLOCKREFCLKSELTMSELReservedATCENTRIMEN
Type/Reset RO 0 RW 0 RW 0RW 0RW 0 RW 0
Clock Control Unit (CKCU)
BitsFieldDescriptions
[28:24]HSICOARSE HSI Clock Coarse Trimming Value
These bits are initialized automatically at startup. They are adjusted by factory
trimming and can not trim by program.
[23:16]HSIFINEHSI Clock Fine Trimming Value
These bits are initialized automatically at startup. They are also adjusted by factory
trimming. But these bits provide an additional user-programmable trimming value
that is added to the HSICOARSE[4:0] bits to get high accuracy or compensate
the variations in voltage and temperature that inuence the HSI frequency. It can
be programmed by software or Auto Trimming Controller (ATC) with an external
reference clock.
[7]FLOCKFrequency Lock
0: HSI frequency is not trimmed into target range
1: HSI frequency is trimmed into target range
This bit is used to select the reference clock for the HSI Auto Trimming Controller,
ATC.
[4]TMSELTrimming Mode Selection
0: Automatic by Auto Trimming Controller
1: Manual by user program
This bit is used to select the HSI RC oscillator trimming function by the ATC
hardware or user program via the HSIFINE[7:0] bits in the HSI Control Register.
[1]ATCENAuto Trimming Controller Enable
0: Disable Auto Trimming Controller
1: Enable Auto Trimming Controller
Rev. 1.20 99 of 501September 19, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F52243/HT32F52253
BitsFieldDescriptions
[0]TRIMENTrimming Enable
0: HSI Trimming is disabled
1: HSI Trimming is enabled
The bit enables the HSI RC oscillator trimming function by the ATC hardware or
user program.
HSI Auto Trimming Counter Register – HSIATCR
This register contains the counter value of the HSI auto trimming controller.