Figure 178. CRC Data Bit and Byte Reversal Example ........................................................................ 481
List of Figures
Rev. 1.00 20 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
1 Introduction
Overview
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
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
advanced debug support.
The devices operate at a frequency of up to 20 MHz for HT32F50231/50241 to obtain maximum
efciency. It provides up to 64 KB of embedded Flash memory for code / data storage and 8 KB
of embedded SRAM memory for system operation and application program usage. A variety of
peripherals, such as Hardware Divider DIV, ADC, I2C, USART, UART, SPI, BFTM, MCTM,
GPTM, PWM, CRC-16/32, RTC, WDT and SW-DP (Serial Wire Debug Port), etc., are also
implemented in the device series. Several power saving modes provide the exibility for maximum
optimization between wakeup latency and power consumption, which is an especially important
consideration in low power applications.
1 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.
24/28-pin SSOP, 28-pin SOP,
24/33-pin QFN and 44/48-pin LQFP
Rev. 1.00 25 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Block Diagram
TX, RX
RTS/TXE
CTS/SCK
TX, RX
CH0 ~CH2
CH0N ~ CH2N
CH3, BRK
PWMx_CH0
~
PWMx_CH3
AF
AF
AFAF
SWCLK
SWDIO
AF
SW-DP
Cortex®-M0+
Processor
NVIC
Interrupt request
PA ~ PB[15:0], PC[7:0]
I/O Port
GPIO
System
USART
UART0 ~ 1
UART0
PWM0 ~ 1
UART0
Bus Matrix
AFIO
EXTI
MCTM
BOOT
AF
Flash Memory
Interface
FMC
Control Registers
AHB Peripherals
SRAM
Controller
AHB to APB
Bridge
APB
CRC
-16/32
Powered by V
Flash
Memory
CKCU/RSTCU
Control Registers
Divider
SRAM
WDT
SPI0 ~ 1
I2C0 ~ 1
GPTM
BFTM0 ~ 1
DD15
POR
/PDR
HSE
4 ~ 20 MHz
Clock and reset contr ol
LDO
1.5 V
VDD
VSS
AF
XTALIN
XTALOUT
CLDO
1 Introduction
CAP.
BOD
LVD
Powered by V
Power control
HSI
20 MHz
DD
AF
MOSI, MISO
SCK, SEL
AF
SDA
SCL
AF
GT_CH0
~
GT_CH3
AF
ADC_IN0
...
ADC_IN11
VDDA
VSSA
Power supply:
Bus:
Control signal:
Alternate function:
12-bit
SAR ADC
Powered by V
AF
DDA
Powered by V
DD15
ADC
RTC
PWRCU
Powered by V
32 kHz
32,768 Hz
X32KIN
X32KOUT
LSI
LSE
AF
DD
AF
RTCOUT
VDD
VSS
AF
WAKEUP0 ~ 1
nRST
Figure 1. Block Diagram
Rev. 1.00 26 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
2 Document Conventions
Unless otherwise specied, this document uses the conventions which showed as follows.
Table 2. Document Conventions
NotationExampleDescription
0x0x5a05
0xnnnn_nnnn 0x2000_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
Word
Half-wordData length of a half-word is 16-bit.
ByteData length of a byte is 8-bit.
SERDYIE PLLRDYIE
RW 0RW 0
32
HSIRDYHSERDY
RO 1RO 0
10
PDFBAK_PORF
RC 0RC 1
32
SERDYF PLLRDYF
WC 0WC 0
10
ReservedMIF
W0C 0
3130
DB_CKSRC
WO 0WO 0
10
LLRDYReserved
RO 0
The number string with a 0x prex indicates a hexadecimal
number.
The number string with a lowercase b prefix indicates a
binary number.
Specific bit of NAME. NAME can be a register or field of
register. For example, ADDR [5] means bit 5 of ADDR register
(eld).
Specific bits of NAME. NAME can be a register or field 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 dened 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.
Data length of a word is 32-bit.
2 Document Conventions
Rev. 1.00 27 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
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+:
3 System Architecture
▄
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.
Rev. 1.00 28 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
®
-M0+ Components
Cortex
Execution Trace Interface
Cortex®-M0+ Processor
Interrupts
Vectored
Interrupt
Controller
‡ Wakeup
Interrupt
Controller (WIC)
‡ Optional Component
Figure 2. Cortex®-M0+ Block Diagram
Bus Architecture
Nested
(NVIC)
Cortex®-M0+
Processor
Core
‡ Memory
Protection
Unit
AHB-Lite Interface
to System
Bus Matrix
Debug
‡ Breakpoint
and
Watchpoint
Unit
‡ Debugger
Interface
‡ Single-cycle
I/O Port
3 System Architecture
‡ Debug
Access Port
(DAP)
‡ Serial Wire or
JTAG Debug Port
The HT32F50231/50241 series devices 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 HT32F50231/50241 series.
Rev. 1.00 29 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
GPIO
I/O Port
Cortex®-M0+
Processor
System
NVIC
Interrupt request
Figure 3. Bus Architecture
Bus Matrix
Flash Memory
Interface
FMC
Control Registers
AHB Peripherals
SRAM Controller
AHB to APB
Bridge
Flash Memory
3 System Architecture
CKCU/RSTCU
Control Registers
SRAM
APB IPs
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 HT32F50231/50241 series of devices, including Code, SRAM, peripheral and other pre-dened
regions.
Rev. 1.00 30 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Memory Map
0xFFFF_FFFF
Peripheral
SRAM
Code
0xE010_0000
0xE000_0000
0x4010_0000
0x4008_0000
0x4000_0000
0x2000_2000
0x2000_0000
0x1FF0_0400
0x1FF0_0000
0x1F00_0800
0x1F00_0000
0x0001_0000
Reserved
Private peripheral bus
Reserved
AHB peripherals
APB peripherals
Reserved
8 KB on-chip SRAM
Reserved
Option byte alias
Reserved
Boot loader
Reserved
512 KB
512 KB
8 KB
1 KB
2 KB
0x400F_FFFF
0x400C_C000
0x400C_A000
0x400B_6000
0x400B_0000
0x4008_C000
0x4008_A000
0x4008_8000
0x4008_2000
0x4008_0000
0x4007_8000
0x4007_7000
0x4007_6000
0x4007_2000
0x4007_1000
0x4006_F000
0x4006_E000
0x4006_B000
0x4006_A000
0x4006_9000
0x4006_8000
0x4004_A000
0x4004_9000
0x4004_8000
0x4004_5000
0x4004_4000
0x4004_2000
0x4004_1000
0x4003_2000
0x4003_1000
0x4002_D000
0x4002_C000
0x4002_5000
0x4002_4000
0x4002_3000
0x4002_2000
0x4001_1000
0x4001_0000
0x4000_5000
0x4000_4000
0x4000_2000
0x4000_1000
0x4000_0000
Reserved
DIV
Reserved
GPIO A ~ C
Reserved
CRC
CKCU & RSTCU
Reserved
FMC
Reserved
BFTM1
BFTM0
Reserved
PWM1
Reserved
GPTM
Reserved
RTC & PWRCU
Reserved
WDT
Reserved
I2C1
I2C0
Reserved
SPI1
Reserved
UART1
Reserved
PWM0
Reserved
MCTM
Reserved
EXTI
Reserved
AFIO
Reserved
ADC
Reserved
SPI0
Reserved
UART0
USART
3 System Architecture
AHB
APB
Up to
64 KB
0x0000_0000
Up to
64 KB on-chip Flash
Figure 4. Memory Map
Rev. 1.00 31 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Table 3. Register Map
Start AddressEnd AddressPeripheralBus
0x4000_00000x4000_0FFFUSART
0x4000_10000x4000_1FFFUART0
0x4000_20000x4000_3FFFReserved
0x4000_40000x4000_4FFFSPI0
0x4000_50000x4000_FFFFReserved
0x4001_00000x4001_0FFFADC
0x4001_10000x4002_1FFFReserved
0x4002_20000x4002_2FFFAFIO
0x4002_30000x4002_3FFFReserved
0x4002_40000x4002_4FFFEXTI
0x4002_50000x4002_BFFFReserved
0x4002_C0000x4002_CFFFMCTM
0x4002_D0000x4003_0FFFReserved
0x4003_10000x4003_1FFFPWM0
0x4003_20000x4004_0FFFReserved
0x4004_10000x4004_1FFFUART1
0x4004_20000x4004_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_0FFFReserved
0x4007_10000x4007_1FFFPWM1
0x4007_20000x4007_5FFFReserved
0x4007_60000x4007_6FFFBFTM0
0x4007_70000x4007_7FFFBFTM1
0x4007_80000x4007_FFFFReserved
0x4008_00000x4008_1FFFFMC
0x4008_20000x4008_7FFFReserved
0x4008_80000x4008_9FFFCKCU & RSTCU
0x4008_A0000x4008_BFFFCRC
0x4008_C0000x400A_FFFFReserved
0x400B_00000x400B_1FFFGPIOA
0x400B_20000x400B_3FFFGPIOB
0x400B_40000x400B_5FFFGPIOC
0x400B_60000x400C_9FFFReserved
0x400C_A0000x400C_BFFFDIV
0x400C_C0000x400F_FFFFReserved
3 System Architecture
APB
AHB
Rev. 1.00 32 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Embedded Flash Memory
The HT32F50231/50241 series provide up to 64 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 64 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.
Embedded SRAM Memory
The HT32F50231/50241 series contain up to 8 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.
3 System Architecture
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.00 33 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
4 Flash Memory Controller (FMC)
Introduction
The Flash Memory Controller, FMC, provides functions of flash operation and pre-fetch buffer
for the embedded on-chip Flash memory. Figure below shows the block diagram of FMC which
includes programming interface, control register, 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 CPU wait state, which will cause instruction
gaps. The functions of word programming / page erase are also provided for instruction / data
storage of Flash memory.
4 Flash Memory Controller (FMC)
Flash Memory Controller
AHB
Peripheral
Bus
System Bus
Control Register
Pre-fetch Buffer
Figure 5. Flash Memory Controller Block Diagram
Features
▄
Up to 64 KB of on-chip Flash memory for storing instruction / data and option bytes
● 64 KB (instruction / data + Option Byte)
● 32 KB (instruction / data + Option Byte)
▄
Page size of 1 KB, totally up to 64 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
Wait State
Control
Addressing
Data
Programming
Control
Flash
Information
Block
Main Flash
Memory
Rev. 1.00 34 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
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). Besides, address 0x1FF0_0000 to 0x1FF0_03FF is the alias
of Option Byte block (1 KB) which locates at the last page of main Flash physically. The memory
mapping on system view is shown as below.
0x1FFF_FFFF
0x1FF0_0400
0x1FF0_0000
0x1F00_0800
Reserved
Option Byte
Reserved
4 Flash Memory Controller (FMC)
1 KB
Figure 6. Flash Memory Map
0x1F00_0000
0x0000_0000
Boot Loader Block
Reserved
Main Flash Block
User Application
2 KB
63 KB
or
32 KB
Rev. 1.00 35 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Flash Memory Architecture
The Flash memory consists of up to 64 KB main Flash with 1 KB per page and 2 KB Information
Block for Boot Loader. The main Flash memory contains totally 64 pages (or 32 pages for 32 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
BlockNameAddressPage Protection BitSize
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
Information Block Boot Loader0x1F00_0000 ~ 0x1F00_07FFNA2 KB
Notes:
1. Information Block stores boot loader – This block can not be programmed or erased by user.
2. Option Byte is always located at last page of main Flash block.
The system provides two kinds of booting mode which can be selected through the BOOT pin. The
value of BOOT pin is sampled during the 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
booting mode. The booting mode is shown in the following table.
Table 5. Booting Modes
Booting Mode Selection Pin
BOOT
0Boot LoaderThe source of Vector is Boot Loader
1Main FlashThe source of Vector is main Flash
The Flash Vector Mapping Control Register, VMCR, is provided to change the setting of the vector
remapping temporarily after the chip reset. The reset value of VMCR is determined by the BOOT
pin status which will be sampled during the reset duration.
ModeDescriptions
4 Flash Memory Controller (FMC)
Boot Setting
0xC
Hard Fault Handler
0x8
0x4
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.00 37 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Page Erase
The FMC provides a page erase function which is used to reset partial content of Flash memory.
Any page can be erased independently without affecting others. The following steps show the
access sequence of the register for page erase.
▄
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 the page erase command to OCMR register (Set CMD [3:0] = 0x8).
▄
Commit page erase command to FMC by setting OPCR register (Set OPM [3:0] = 0xA).
▄
Wait until all the operations have been completed by checking the value of 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 to fetch code or access data. The FMC will not provide
any notification when this happens. Additionally, the page erase operation will be ignored on
the protected pages. When this occurs, the OREF bit will be set by the FMC and then a Flash
Operation Error interrupt will be generated 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.
4 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.00 38 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Mass Erase
The FMC provides a mass erase function which is used for resetting all the main Flash memory
content. The following steps show the register access sequence for mass erase operation.
▄
Check OPCR register to confirm 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 (Set CMD [3:0] = 0xA).
▄
Commit mass erase command to FMC by setting OPCR register (Set OPM [3:0] = 0xA).
▄
Wait until all operations have been nished by checking the value of 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 accesses FMC registers
directly. The software function that is executed on the Flash memory shall not trigger a mass erase
operation. The following gure displays the mass erase operation ow.
4 Flash Memory Controller (FMC)
No
No
Start
Is OPM equal to 0xE or 0x6 ?
Yes
Set OCMR = 0xA
Commit command
by setting OPCR
Is OPM equal to 0xE ?
Yes
Finish
Figure 9. Mass Erase Operation Flowchart
Rev. 1.00 39 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Word Programming
The FMC provides a 32 bits word programming function which is used for modifying the Flash
memory content. The following steps show the sequence of register access for word programming.
▄
Check OPCR register to confirm 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 word address to TADR register. Write data to WRDR register.
▄
Write word program command to OCMR register (Set CMD [3:0] = 0x4).
▄
Commit word program command to FMC by setting OPCR register (Set OPM [3:0] = 0xA).
▄
Wait until all operations have been nished by checking the value of 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 successively applied to the same address
twice. Successive word programming operation to the same address must be separated by a page
erase operation. Besides, the word program will be ignored on protected pages. When this occurs,
the OREF bit will be set by the FMC and then a Flash Operation Error interrupt will be generated if
the OREIEN bit in the OIER register is set. Software can check the PPEF bit in the OISR register to
detect this condition in the interrupt handler. The following gure displays the word programming
operation ow.
4 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.00 40 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Option Byte Description
The Option Byte can be treated as an independent Flash memory of which base address is
0x1FF0_0000. The following table shows the function description and Option Byte memory map.
0: Flash Page n Erase / Program Protection is enabled
1: Flash Page n Erase / Program Protection is disabled
OB_PP [n] (n = 63 ~ 127)
Reserved
Flash Security Protection
OB_CP [0]
0: Flash Security protection is enabled
1: Flash Security protection is disabled
Option Byte Protection
OB_CP [1]
0: Option Byte protection is enabled
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 from 0x000 to 0x010 in
Option Byte (0x000 + 0x004 + 0x008 + 0x00C + 0x010)
when the OB_PP or OB_CP register’s content is not equal
to 0xFFFF_FFFF. Otherwise, both page erase / program
protection and security protection will be enabled.
4 Flash Memory Controller (FMC)
0xFFFF_FFFF
0xFFFF_FFFF
0xFFFF_FFFF
0xFFFF_FFFF
0xFFFF_FFFF
0xFFFF_FFFF
Rev. 1.00 41 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Page Erase / Program Protection
FMC provides functions of page erase / program protection to prevent unexpected operation of Flash
memory. The page erase (CMD [3:0] = 0x8 in the OCMR register) or word programming (CMD [3:0]
= 0x4) command will not be accepted by FMC on the protected pages. When the page erase or word
programming command aimed at the protected pages is sent to the FMC, the PPEF bit in the OISR
register will then be set by the FMC and the Flash operation error interrupt will be triggered to inform
the CPU if the OREIEN bit in the OIER register is set. The page protection function can be enabled for
each page independently by setting the OB_PP registers of the Option Byte. The following table shows
the access permission of the main Flash page when the page protection is enabled.
Table 7. Access Permission of Protected Main Flash Page
Operation
ReadOO
ProgramXX
Page EraseXX
Mass EraseOO
Mode
4 Flash Memory Controller (FMC)
ISP / IAPICP / Debug Mode
Notes:
1. Note that the setting of write protection is based on page. The above access permission only
affects the pages that enable protection function. Other pages are not affected.
2. Main Flash page protection is configured by OB_PP [127:0]. Option Byte is physically
located at the last page of main Flash Option Byte page protection is congured by the
OB_CP [1] bit.
3. The page erase on Option Byte area can disable the page protection of main Flash.
4. The page protection of Option Byte can only be disabled by a mass erase operation.
The following steps show the register access sequence for page erase / program protection procedure.
▄
Check OPCR register to confirm 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 OB_PP address to TADR register (TADR = 0x1FF0_0000).
▄
Write the data, which indicates the protection function of corresponding page is enabled or
disabled, to the WRDR register (0: Enabled, 1: Disabled).
▄
Write word programming command to the OCMR register (Set CMD [3:0] = 0x4).
▄
Commit word programming command to 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 active the new OB_PP setting.
Rev. 1.00 42 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Security Protection
FMC provides a Security protection function to prevent illegal code / data access of the Flash
memory. This function is useful for protecting the software / firmware from illegal users. The
function is activated by setting 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
will not be allowed except the user’s application. But the mass erase operation will still be accepted
by FMC in order to disable this function. The following table shows the access permission of Flash
memory when the security protection is enabled.
Table 8. 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 area and
page 0 are still under protection where the Program / Page Erase operations are not
accepted.
2. The Mass erase operation can erase the Option Byte area and disable the security
protection.
Mode
User Application
(Note 1)
(Note 1)
(Note 1)
4 Flash Memory Controller (FMC)
ICP / Debug Mode
X
X
The following steps show the register access sequence for Security protection procedure.
▄
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 OB_CP address to the TADR register (TADR = 0x1FF0_0010).
▄
Write the WRDR register to set the OB_CP [0] as 0.
▄
Write word programming command to the OCMR register (Set CMD [3:0] = 0x4).
▄
Commit word programming command to 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 active the new OB_CP setting.
Rev. 1.00 43 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
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_000X
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
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
4 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.00 44 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Register Descriptions
Flash Target Address Register – TADR
This register species the target address of the page erase and word programming operation.
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
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 bits, the TADR shall be set as wordaligned (4 bytes). The TADB [1:0] 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 64 KB main Flash addressing,
TADB [31:16] should be zero and TADB [31:15] should be zero for 32 KB. Address
from 0x1FF0_0000 to 0x1FF0_03FF is the 1 KB Option Byte. This eld for available
Flash address, it must be under 0x1FFF_FFFF. Otherwise, the Invalid Target Address
interrupt will be occurred if the corresponding interrupt enable bit is set.
4 Flash Memory Controller (FMC)
Rev. 1.00 45 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
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
4 Flash Memory Controller (FMC)
BitsFieldDescriptions
[31:0]WRDBFlash Write Data Bits
The data value for programming operation.
Rev. 1.00 46 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Flash Operation Command Register – OCMR
This register is used to specify the Flash operation commands that include 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 definitions of CMD [3:0] bits which specify the Flash
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 programming
0x8Page erase
0xAMass erase
OthersReserved
4 Flash Memory Controller (FMC)
Rev. 1.00 47 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
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
4 Flash Memory Controller (FMC)
BitsFieldDescriptions
[4:1]OPMOperation Mode
The following table shows the operation modes of the FMC. Users can commit
command which is set by the OCMR register to the FMC according to the address
alias setting in the TADR register. The contents of TADR, WRDR and OCMR
registers shall be prepared before setting this register. After all the operation has
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.
Note that the operation status should be checked before the next action is applied to
the FMC. The contents of 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.00 48 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Flash Operation Interrupt Enable Register – OIER
This register is used to enable or disable interrupt function of FMC. The FMC will generate interrupts when the
corresponding interrupt enable bit is set and the interrupt condition occurs.
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
4 Flash Memory Controller (FMC)
Rev. 1.00 49 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Flash Operation Interrupt and Status Register – OISR
This register indicates the status of the FMC interrupt to check if an operation has been nished or an error
occurs. The status bits, bit [4:0], if set high, are available to trigger the interrupt when the corresponding enable
bits in the OIER register are set high.
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 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, such as invalid command,
program error and erase error, etc., occurs. 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
This bit will be set high when an invalid ash operation command has been written
into the OCMR register. The IOCM interrupt will occur if the IOCMIEN bit in the
OIER register is set. Reset this bit by writing 1.
4 Flash Memory Controller (FMC)
Rev. 1.00 50 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
BitsFieldDescriptions
[2]OBEFOption Byte Check Sum Error Flag
0: Check sum of Option Byte is correct
1: Check sum of Option Byte is incorrect
This bit will be set high when the 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 check sum value has to be correctly modified or
the corresponding interrupt control is disabled. Otherwise, the interrupt will be
continually generated.
[1]ITADFInvalid Target Address Flag
0: The target address is valid
1: The target address is invalid
The data in the TADR eld must be in the range from 0x0000_0000 to 0x1FFF_
FFFF. Otherwise, this bit will be set high and 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 ash operation command is nished
This bit will be set high when the last ash 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.
4 Flash Memory Controller (FMC)
Rev. 1.00 51 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Flash Page Erase / Program Protection Status Register – PPSR
This register indicates the status of Flash page erase / program protection.
Offset:0x020 (0) ~ 0x02C (3)
Reset value: 0xXXXX_XXXX
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
4 Flash Memory Controller (FMC)
BitsFieldDescriptions
[127:0]PPSBnPage Erase / Program Protection Status Bits (n = 0 ~ 127)
PPSB[n] = OB_PP[n]
0: The corresponding page is protected
1: The corresponding page 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 specic pages is not allowed when the corresponding bits of the PPSR registers
are reset. The reset value of PPSR [127:0] is determined by the Option Byte OB_
PP [127:0]. Since the maximum page number of the main flash is various and
dependent on the chip specification. Therefore, the every page erase / program
protection status bit may protect one or two pages and dependent on the chip
specication. The other remained bits of OB_PP and PPSR registers are reserved.
Rev. 1.00 52 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Flash Security Protection Status Register – CPSR
This register indicates the status of the Flash Memory Security protection. 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_000X
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 OBPSB is determined by the Option Byte, OB_CP [1].
[0]CPSBFlash Security Protection Status Bit
0: Flash Security protection is enabled
1: Flash Security protection is not enabled
The reset value of CPSB is determined by the Option Byte, OB_CP [0].
4 Flash Memory Controller (FMC)
Rev. 1.00 53 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
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 bits is used to control the mapping source of rst 4-word vector (address
0x0 ~ 0xC). The following table shows the vector mapping setting.
BOOTVMCBDescriptions
Low0
High1
Boot Loader mode
The vector mapping source is the boot loader area.
Main Flash mode
The vector mapping source is the main Flash area.
4 Flash Memory Controller (FMC)
The reset value of VMCR is determined by the pins status of BOOT during power-on
reset and system reset. The vector mapping setting can be changed temporarily by
setting the VMCB bit when the application is running.
Rev. 1.00 54 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Flash Manufacturer and Device ID Register – MDID
This register species 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 codes of the MCU device part number.
4 Flash Memory Controller (FMC)
Rev. 1.00 55 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Flash Page Number Status Register – PNSR
This register species the page number of Flash memory.
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
4 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
Rev. 1.00 56 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Flash Page Size Status Register – PSSR
This register species 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
4 Flash Memory Controller (FMC)
BitsFieldDescriptions
[31:0]PSSBStatus Bits of Flash Page Size
0x200: That means the page size is 512 Byte per page
0x400: That means the page size is 1 KB per page
0x800: That means the page size is 2 KB per page
Rev. 1.00 57 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Device ID Register – DIDR
This register species 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
4 Flash Memory Controller (FMC)
BitsFieldDescriptions
[19:0]ChipIDChip ID
Read the complete 5 digital codes of the MCU device part number.
Rev. 1.00 58 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Custom ID Register n – CIDRn, n = 0 ~ 3
This register species 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
4 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.00 59 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
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 and Deep-Sleep2 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.
Domain
V
DD
LDOOFF
VDD
nRST
WAKEUP0
WAKEUP1
RTCOUT
WKUP1
WKUP2
WKUP3
RTCOUT
LCM
DMOSON
LDO
Controller
WKUP5
LDO
DMOS
V
DD15
V
DD
POR/PDR
LVD
1.5 V
POR/PDR
V
LDOOUT
5 Power Control Unit (PWRCU)
LSI
LSE
HSE
LDO: Voltage Regulator
DMOS: Depletion MOS
LVD: Low Voltage Detector
POR/PDR: Power On Reset/Power Down Reset
Figure 11. PWRCU Block Diagram
PWR_CTRL
SLEEPDEEP
SLEEPING
WKUP4
V
1.5 V Domain
DD15
CPUMemories
RTC
Digital
Peripheral
HSI
Rev. 1.00 60 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Features
▄
Three power domains: V
▄
Three power saving modes: Sleep, Deep-Sleep1 and Deep-Sleep2 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).
● 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
Functional Descriptions
DD, VDDIO
and V
.
LVD
1.5 V power domains.
DD15
.
BOD
BOD
5 Power Control Unit (PWRCU)
.
VDD Power Domain
LDO Power Control
The LDO will be automatically switched off when the following condition occurs:
▄
The Deep-Sleep2 mode is entered.
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, EXTI wakeup and
WAKEUP pins.
▄
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-Sleep2 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, Low Speed
Internal RC oscillator, LSI, Low Speed External Crystal oscillator, LSE, and the High Speed External
Crystal oscillator, HSE, are operated under the VDD power domain. The LDO can be configured
to operate in either normal mode (LDOOFF = 0, LDOLCM = 0, I
current mode (LDOOFF = 0, LDOLCM = 1, I
= Low current mode) to supply the 1.5 V power. An
OUT
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 PWRCR register. The DMOS output has
weak output current and regulation capability and only operates in the Deep-Sleep2 mode for data
retention purposes in the V
power domain.
DD15
BOD
.
= High current mode) or low
OUT
POR
if any
Power On Reset (POR) / Power Down Reset (PDR)
The device has an integrated POR / PDR circuitry that allows proper operation starting from
V
. For more details concerning the power on / power down reset threshold voltage, refer to the
POR
electrical characteristics of the corresponding datasheet.
Rev. 1.00 61 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
V
DD
V
POR
Hysteresis
V
PDR
5 Power Control Unit (PWRCU)
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 flag 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
, refer to the electrical characteristics of the corresponding datasheet.
LV D
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 issue a system reset 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
characteristics of the corresponding datasheet.
Time
, refer to the electrical
BOD
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 be used directly as the system clock source.
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 wake up the device when the compare match event occurs. The
details of the RTC conguration for wakeup timer will be described in the RTC chapter.
Rev. 1.00 62 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
1.5 V Power Domain
The main functions that include high speed internal oscillator, HSI, MCU 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.
High Speed Internal Oscillator
The High Speed Internal Oscillator, HSI, is located in the V
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 stabilizes.
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.
power domain. When exiting from
DD15
5 Power Control Unit (PWRCU)
Additionally, there are several power saving modes to provide maximum optimization between
device performance and power consumption.
Table 10. Operation Mode Denitions
Mode NameHardware Action
RunAfter system reset, CPU fetches instructions to execute.
Sleep
Deep-Sleep1 ~ 2
1. CPU clock will be stopped.
2. Peripherals, Flash and SRAM clocks can be stopped by setting.
1. Stop all clocks in the 1.5 V power domain.
2. Disable HSI, HSE.
3. Turning on the LDO low current mode or DMOS to reduce the 1.5 V power
domain current.
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.
Rev. 1.00 63 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Table 11. Enter / Exit Power Saving Modes
Mode Entry
Mode
Sleep
Deep-Sleep1100
Deep-Sleep21X1
Notes:
1. Wakeup event means EXTI line in event mode, RTC, LVD and WAKEUP pins
2. If the system allows the LVD activity to wake it up after the system has entered the power saving mode,
CPU
Instruction
WFI or WFE
(Takes effect)
CPU
SLEEPDEEP
0XX
LDOOFF DMOSON
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 pins
Any EXTI in event mode or
RTC wakeup or LVD wakeup
WAKEUP pins
the LVDEWEN and LVDEN bits in the LVDCSR register must be set to 1 to make sure that the system
can be woken up by an LVD event and then the LDO regulator can be turned on when system is woken
up from the Deep-Sleep2 mode.
Mode Exit
(1)
or
(2)
or
(2)
5 Power Control Unit (PWRCU)
or
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 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 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.
Table 12. Power Status After System Reset
PORF PORSTFDescription
11
01Restart from unexpected loss of the 1.5 V power or other reset (nRST, WDT, …)
Register Map
The following table shows the PWRCU registers and reset values. Note all the registers in this unit
are located in the V
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.
power domain.
DD15
Table 13. PWRCU Register Map
RegisterOffsetDescriptionReset Value
PWRSR0x100Power Control Status Register0x0000_0010
PWRCR0x104Power Control Register0x0000_0000
LVDCSR0x110Low Voltage / Brown Out Detect Control and Status Register 0x0000_0000
Rev. 1.00 64 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Register Descriptions
Power Control Status Register – PWRSR
This register indicates power control status.
Offset:0x100
Reset value: 0x0000_0010
3130292827262524
Reserved
Type/Reset
2322212019181716
Reserved
Type/Reset
15141312111098
ReservedWUPF1WUPF
Type/ResetRC 0 RC 0
76543210
ReservedPORFReserved
Type/ResetRC 1
BitsFieldDescriptions
[9]WUPF1External WAKEUP1 Pin Flag
0: The WAKEUP1 pin is not asserted
1: The WAKEUP1 pin is asserted
This bit is set by hardware when the WAKEUP1 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.
[8]WUPF0External WAKEUP0 Pin Flag
0: The WAKEUP0 pin is not asserted
1: The WAKEUP0 pin is asserted
This bit is set by hardware when the WAKEUP0 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.
[4]PORFPower On Reset Flag
0: V
1: V
This bit is set by hardware when
power on reset or software reset. The bit is cleared by software read. This bit must be
cleared after the system is rst powered on, otherwise it will be impossible to detect
when a
read software loop must be implemented until the bit returns again to 0.
Power Domain reset does not occur
DD15
Power Domain reset occurs
DD15
V
Power Domain reset has been triggered. When this bit is read as 1, a
DD15
V
power on reset occurs, either a hardware
DD15
5 Power Control Unit (PWRCU)
Rev. 1.00 65 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Power Control Register – PWRCR
This register provides power control bits for the different kinds of power saving modes.
Offset:0x104
Reset value: 0x0000_0000
3130292827262524
Reserved
Type/Reset
2322212019181716
ReservedWUP1TYPEWUP0TYPE
Type/ResetRW 0 RW 0 RW 0 RW 0
15141312111098
DMOSSTSReservedWUP1IENWUP1ENWUP0IENWUP0EN
Type/Reset RO 0RW 0 RW 0 RW 0 RW 0
76543210
DMOSONReservedLDOOFFLDOLCMReservedPWCURST
Type/Reset RW 0RW 0 RW 0WO 0
5 Power Control Unit (PWRCU)
BitsFieldDescriptions
[19:18]WUP1TYPE WAKEUP1 Signal Trigger Type
WUP1TYPE [1:0]WAKEUP Signal Trigger Type
00Positive-edge Triggered
01Negative-edge Triggered
10High-level Sensitive
11Low-level Sensitive
[17:16]WUP0TYPE WAKEUP0 Signal Trigger Type
WUP0TYPE [1:0]WAKEUP Signal Trigger Type
00Positive-edge Triggered
01Negative-edge Triggered
10High-level Sensitive
11Low-level Sensitive
[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.
[11]WUP1IENExternal WAKEUP1 Pin Interrupt Enable
0: Disable WAKEUP1 pin interrupt function
1: Enable WAKEUP1 pin interrupt function
The software can set the WUP1IEN bit to 1 to assert the WKUP interrupt in the NVIC
unit when both the WUP1EN and WUPF1 bits are set to 1.
Rev. 1.00 66 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
BitsFieldDescriptions
[10]WUP1ENExternal WAKEUP1 Pin Enable
0: Disable WAKEUP1 pin function
1: Enable WAKEUP1 pin function
The Software can set the WUP1EN bit as 1 to enable the WAKEUP1 pin function
before entering the power saving mode. When WUP1EN = 1, a change on the
WAKEUP1 pin wakes up the system from the power saving mode. If the WAKEUP1
pin is active high, this bit will set an input pull down mode. The corresponding
register bits which should be properly setup are the PBPD[9] to 1 in the PBPDR
register, the PBPU[9] to 0 in the PBPUR register and the PBCFG9[3:0] eld to 0xF
in the GPBCFGHR register.
Note: Because this bit is located in the V
Power Domain reset. The WAKEUP1 pin signal has to keep a minimum of three 32
kHz clock periods until the activity has been detected for wake up the system.
[9]WUP0IENExternal WAKEUP0 Pin Interrupt Enable
0: Disable WAKEUP0 pin interrupt function
1: Enable WAKEUP0 pin interrupt function
The software can set the WUP0IEN bit to 1 to assert the WKUP interrupt in the NVIC
unit when both the WUP0EN and WUPF0 bits are set to 1.
[8]WUP0ENExternal WAKEUP0 Pin Enable
0: Disable WAKEUP0 pin function
1: Enable WAKEUP0 pin function
The Software can set the WUP0EN bit as 1 to enable the WAKEUP0 pin function
before entering the power saving mode. When WUP0EN = 1, a change on the
WAKEUP0 pin wakes up the system from the power saving mode. If the WAKEUP0
pin is active high, this bit will set an input pull down mode. The corresponding
register bits which should be properly setup are the PBPD[12] to 1 in the PBPDR
register, the PBPU[12] to 0 in the PBPUR register and the PBCFG12[3:0] eld to
0xF in the GPBCFGHR register.
Note: Because this bit is located in the V
Domain reset. The WAKEUP0 pin signal has to keep a minimum of three 32 kHz
clock periods until the activity has been detected for wake up the system.
[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
power is not available
DD15
Note: This bit is only available when the DMOSON bit is cleared to 0.
power is available
DD15
Power Domain and reset by a V
DD15
Power Domain and reset by a V
DD15
DD15
DD15
Power
5 Power Control Unit (PWRCU)
Rev. 1.00 67 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
BitsFieldDescriptions
[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 10 mA below and lower static current when
the LDOLCM bit is set. It is suitable for CPU, which is operated at lower speed
system clock, to get a lower current consumption. This bit will be cleared to 0
when the LDO is powered down or VDD power domain is reset.
[0]PWCURSTPower Control Unit Software Reset
0: No action
1: Power Control Unit Software Reset is activated
When this bit is set, it will reset all the related RTC and PWRCU registers.
Low Voltage / Brown Out Detect Control and Status Register – LVDCSR
This register species ags, enable bits and option bits for low voltage detector.
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 an LVD condition occurs which result in the LVDF bit being asserted. If the
system requires to be woken up from the Deep-Sleep mode by an 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 an LVD condition
occurs and the LVDIWEN bit is set to 1, an LVD interrupt will be generated and sent
to the CPU NVIC unit.
Rev. 1.00 68 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
BitsFieldDescriptions
[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 flag will be asserted. When the LVDF flag
is asserted, an 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 an LVD
event will be generated rather than an LVD interrupt when the LVDF ag 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 an LVD event when the VDD power is equal to or
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), 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
5 Power Control Unit (PWRCU)
Rev. 1.00 69 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
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, 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 and LSE. 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 through 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.
6 Clock Control Unit (CKCU)
Rev. 1.00 70 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
SPIx, USART, UARTx,
HT32F50231/HT32F50241
HSI Auto
Trimming
Controller
20 MHz
HSI RC
HSIEN
4 ~ 20 MHz
HSE XTAL
HSEEN
32.768 kHz
LSE XTAL
(1)
LSEEN
32 kHz
LSI RC
CK_LSE
CK_IN
CK_LSE
CK_LSI
(2)
CK_HSI
CK_HSE
WDTSRC
WDTEN
RTCSRC
SW[2:0]
Clock
Monitor
(1)
CK_SYS
CK_WDT
CK_RTC
CKREFEN
AHB Prescaler
1,2,4,8,16,32
Prescaler
CKREFPRE
CM0PEN
CK_AHB
FMCEN
CM0PEN
SRAMEN
CM0PEN
BMEN
CM0PEN
APBEN
1 ~ 32
GPIOAEN
GPIOCEN
CM0PEN
(control by H/W)
Divider
2
8
CK_REF
STCLK
(to SysTick)
CK_GPIO
(to GPIO port)
FCLK
(Free running clock)
HCLKC
®
-M0+)
(to Cortex
HCLKF
(to Flash)
HCLKS
(to SRAM)
HCLKBM
(to Bus Matrix)
HCLKAPB
(to APB Bridge)
6 Clock Control Unit (CKCU)
(1)
RTCEN
CKOUTSRC[2:0]
000
001
010
CKOUT
011
100
101
110
Legend:
HSE = High Speed External clock
HSI = High Speed Internal clock
LSE = Low Speed External clock
LSI = Low Speed Internal clock
Notes:
1. This control bit is located at RTC Control Register, RTCCR.
2. The CK_IN signal is sourced from the external pin, CKIN.
Internal 20 MHz RC oscillator (HSI) with conguration option calibration and custom trimming
capability.
▄
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.
▄
HSE clock monitor
Function Descriptions
High Speed External Crystal Oscillator – HSE
The high speed external 4 to 20 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.
6 Clock Control Unit (CKCU)
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.
OSC_EN
XTALOUTXTALIN
R
ext
Crystal
C
L1
C
L2
Figure 14. External Crystal, Ceramic and Resonators for HSE
Rev. 1.00 72 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
The HSE crystal oscillator can be switched on or off using the HSEEN bit in the Global Clock
Control Register (GCCR). The HSERDY f lag 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”. The HSE clock can then be used directly as the system
clock source.
High Speed Internal RC Oscillator – HSI
The high speed internal 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 flag 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.
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 the PSRCEN bit (Power Saving Wakeup RC Clock Enable) to 1 to force HSI
clock to be system clock when wake-up from Deep-Sleep1/2 mode. Subsequently, the system clock is
back to the original clock source if the original clock source ready ag is asserted. This function can
reduce the wakeup time when using HSE as system clock.
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 = 5 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
detailed block diagram is shown as Figure 15.
6 Clock Control Unit (CKCU)
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 voltage or
temperature variations. If the application has to be driven by a more accurate HSI frequency, users
can trim manually the HSI frequency using the HSIFINE[7:0] bits in the HSI Control Register
(HSICR) or automatically adjust the HSI frequency using the Auto Trimming Controller (ATC)
together with an external reference clock in the application. The reference clock can be provided
form the following clock sources:
The low speed external crystal or ceramic resonator oscillator with 32.768 kHz 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 gure. The
crystal or ceramic resonator must be placed across the two LSE pins (X32KIN / X32KOUT) and the
external 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.
6 Clock Control Unit (CKCU)
X32KIN
32.768 kHz
C
L1
Figure 16. External Crystal, Ceramic and Resonators for LSE
Low Speed Internal RC Oscillator – LSI
The low speed internal RC oscillator with frequency of about 32 kHz produces a low power
clock source for the circuits of Real-Time-Clock peripheral, Watchdog Timer or system clock.
The LSI is also a clock source of low cost because no external component is needed to make it
oscillates. The accuracy of the frequency of the low speed internal RC oscillator LSI is shown as
the corresponding data sheet. The LSIRDY ag in the Global Clock Status Register (GCSR) will
indicate if the LSI clock is stable.
Clock Ready Flag
CKCU provides clock ready ags for HSI, HSE, LSI and LSE to conrm those clocks are stable
before using them as system clock source or other purpose. Software can check specic clock is
ready or not by polling separate clock ready status bits in GCSR register.
X32KOUT
C
L2
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, LSI and LSE output clock
and it can be switched from one clock source to another via 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. The corresponding clock ready status bits 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. More details about function of clock enable are
described in below.
Rev. 1.00 75 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
If any following action takes effect, the HSI is always under enable state.
▄
Enable Clock monitor. (CKMEN)
▄
Congure clock switch register bits to select the HSI. (SW)
▄
Congure HSI enable register bit to 1. (HSIEN)
If any following action takes effect, the HSE is always under enable state.
▄
Congure clock switch register bits to select the HSE. (SW)
▄
Congure HSE enable register bit to 1. (HSEEN)
Programming guide of System clock selection is listed in following.
1. Enable any source clock which will become system clock.
2. Conguring the SW register bits to change system clock source will take effect after ready ag
of source clock is asserted. Note that system clock will force to HSI if clock monitor is enabled
and HSE clock congured as system clock is stuck at 0 or 1.
6 Clock Control Unit (CKCU)
HSE Clock Monitor
The main function of the oscillator check is enabled by the HSE Clock Monitor Enable bit CKMEN
in the Global Clock Control Register, GCCR. The HSE clock monitor should be enabled after the
HSE oscillator start-up delay and be 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 flag CKSF in the Global Clock Interrupt Register GCIR will be set and an event of main
oscillator failure will be generated if the clock fail interrupt enable bit CKSIE in the GCIR is set.
This failure interrupt is connected to the exception vector of CPU Non-Maskable Interrupt, NMI. If
the HSE is directly used as the system clock, 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.
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 section, AFIO, 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.
Table 14. CKOUT Clock Source
CKOUTSRC[2:0]Clock Source
000CK_REF = CK_SYS / (CKREFPRE + 1) / 2
001CK_AHB / 16
010CK_SYS / 16
011CK_HSE / 16
100CK_HSI / 16
101CK_LSE
110CK_LSI
Rev. 1.00 76 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Register Map
The following table shows the CKCU register and reset value.
MCUDBGCR 0x304MCU Debug Control Register0x0000_0000
6 Clock Control Unit (CKCU)
0xXXXX_0000
where X is undened
Rev. 1.00 77 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Register Descriptions
Global Clock Conguration Register – GCFGR
This register species the low power mode status and clock source for CKOUT.
Offset:0x000
Reset value: 0x0000_0002
3130292827262524
LPMODReserved
Type/ResetRO 0 RO 0 RO 0
2322212019181716
Reserved
Type/Reset
15141312111098
CKREFPRE
Type/ResetRW 0 RW 0 RW 0RW 0 RW 0
76543210
Reserved
Type/ResetRW 0 RW 1 RW 0
Reserved
CKOUTSRC
BitsFieldDescriptions
[31:29]LPMODLower Power Mode Status
000: When Chip is in running mode
001: When Chip wants to enter Sleep mode
010: When Chip wants to enter Deep-Sleep1 mode
011: When Chip wants to enter Deep-Sleep2 mode
Others: Reserved
Set and reset by software to control CK_REF clock prescaler setting.
[2:0]CKOUTSRC CKOUT Clock Source Selection
000: (CK_SYS / (CKREFPRE + 1) / 2 ) is selected
001: (CK_AHB / 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.
6 Clock Control Unit (CKCU)
Rev. 1.00 78 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
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
ReservedHSIENHSEENReservedHSEGAIN
Type/ResetRW 1 RW 0RW 0
76543210
ReservedSW
Type/ResetRW 0 RW 1 RW 1
6 Clock Control Unit (CKCU)
BitsFieldDescriptions
[17]PSRCENPower Saving Wakeup RC Clock Enable
0: No action
1: Use Internal RC clock (HSI) as system clock after a Deep-Sleep1/2 mode wakeup
Software can set PSRCEN to high before entering Deep-Sleep1/2 mode in order to
reduce the waiting time after wakeup. When PSRCEN = 1, hardware will select HSI
as clock source after the system wakeup from Deep-Sleep1/2 mode. Meanwhile,
instruction can start execution since the HSI clock is provided to MCU. After the
original clock source, which is selected as CK_SYS before entering Deep-Sleep1/2
mode, is ready, hardware will switch back the clock source as originally.
When hardware detects HSE clock stuck at low / high state, internal hardware will switch
the system clock to internal high speed RC clock (HSI). The only way to recover the
system clock is by an external reset, a power on reset or by clearing CKSF by software.
[11]HSIENInternal High Speed Clock Enable
0: Internal RC oscillator clock is set to off
1: Internal 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 crystal oscillator clock is set to off
1: External 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.
Rev. 1.00 79 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
BitsFieldDescriptions
[8]HSEGAINExternal High Speed Clock Gain Selection
0: HSE low gain mode
1: HSE high gain mode
[2:0]SWSystem Clock Switch
010: CK_HSE as system clock
011: CK_HSI as system clock
110: CK_LSE as system clock
111: CK_LSI as system clock
Others: CK_HSI as system clock
These bits are set and reset by software to select CK_SYS source. If the HSE
oscillator is used directly or indirectly as the system clock and the HSE clock monitor
function is enabled, once the HSE failure is detected, these bits will be set by
hardware to force HSI (b011) as the system clock.
Note: When switch the system clock using the SW bits, the system clock is not
immediately switched and a certain delay is necessary. The software can
monitor the CKSWST bit in the clock source status register CKSTR to make
sure which clock is currently used as system clock.
6 Clock Control Unit (CKCU)
Rev. 1.00 80 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Global Clock Status Register – GCSR
This register indicates the clock ready status.
Offset:0x008
Reset value: 0x0000_0028
3130292827262524
Reserved
Type/Reset
2322212019181716
Reserved
Type/Reset
15141312111098
Reserved
Type/Reset
76543210
ReservedLSIRDYLSERDYHSIRDYHSERDYReserved
Type/ResetRO 1 RO 0 RO 1 RO 0
6 Clock Control Unit (CKCU)
BitsFieldDescriptions
[5]LSIRDYInternal Low Speed Clock Ready Flag
0: Internal 32 kHz RC oscillator clock is not ready
1: Internal 32 kHz RC oscillator clock is ready
Set by hardware to indicate that the LSI is stable to be used.
[4]LSERDYExternal Low Speed Clock Ready Flag
0: External 32.768 kHz RC oscillator clock is not ready
1: External 32.768 kHz RC oscillator clock is ready
Set by hardware to indicate that the LSE is stable to be used.
[3]HSIRDYInternal High Speed Clock Ready Flag
0: Internal RC oscillator clock is not ready
1: Internal RC oscillator clock is ready
Set by hardware to indicate that the HSI is stable to be used.
[2]HSERDYExternal High Speed Clock Ready Flag
0: External crystal oscillator clock is not ready
1: External crystal oscillator clock is ready
Set by hardware to indicate that the HSE is stable to be used.
Rev. 1.00 81 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Global Clock Interrupt Register – GCIR
This register species interrupt enable and ag bits.
PCLK = Peripheral Clock; CK_AHB = AHB and CPU clock
Rev. 1.00 92 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
HSI Control Register – HSICR
This register is to control the frequency trimming of HSI RC oscillation.
Offset:0x040
Reset value: 0xXXXX_0000 where X is undened
3130292827262524
Reserved
Type/ResetRO X RO X RO X RO X RO X
2322212019181716
HSIFINE
Type/ResetRW X RW X RW X RW X RW X RW X RW X RW X
15141312111098
Reserved
Type/Reset
76543210
FLOCK
Type/ResetRO 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0 RW 0
REFCLKSEL
TMSELATMSELLTRSELATCENTRIMEN
HSICOARSE
6 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 cannot 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 more accurate or compensate
the variations in voltage and temperature that inuence the frequency of the HSI.
It can be programmed by software or automatically adjusted by the 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
These bits are used to select the reference clock for the HSI Auto Trimming Controller.
[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 ATC hardware
or user programming via the HSIFINE[7:0] bits in the HSI Control Register.
[3]ATMSELAutomatic Trimming Mode Selection
0: Auto Trimming Controller is used binary search to approach the target range
1: Auto Trimming Controller is used linear search to approach the target range
This bit is selected the automatic trimming method by ATC hardware for HSI RC oscillator.
[2]LTRSELLock Target Range Selection
0: 0.1 % variation
1: 0.2 % variation
This bit is selected the lock target range of the internal HSI RC oscillator trimming
function for 0.1 % or 0.2 % variation.
Rev. 1.00 93 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
BitsFieldDescriptions
[1]ATCENATC Enable
0: Disable Auto Trimming Controller
1: Enable Auto Trimming Controller
[0]TRIMENTrimming Enable
0: HSI Trimming is disable
1: HSI Trimming is enable
The bit enables the HSI RC oscillator trimming function by ATC hardware or user
programming.
HSI Auto Trimming Counter Register – HSIATCR
This register contains the counter value of the HSI auto trimming controller.
Offset:0x044
Reset value: 0x0000_0000
3130292827262524
Reserved
Type/Reset
2322212019181716
Reserved
Type/Reset
15141312111098
ReservedATCNT
Type/ResetRO 0 RO 0 RO 0 RO 0 RO 0 RO 0
76543210
ATCNT
Type/ResetRO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0 RO 0
6 Clock Control Unit (CKCU)
BitsFieldDescriptions
[13:0]ATCNTAuto Trimming Counter
These bits contain the counter value of the HSI auto trimming controller.
0: PWM1 counter continues to count even if the core is halted
1: PWM1 counter is stopped when the core is halted
Set and reset by software.
[30]DBPWM0PWM0 Debug Mode Enable
0: PWM0 counter continues to count even if the core is halted
1: PWM0 counter is stopped when the core is halted
Set and reset by software.
[19]DBUR1UART1 Debug Mode Enable
0: Same behavior as in normal mode
1: UART1 timeout is frozen when the core is halted
Set and reset by software.
[18]DBUR0UART0 Debug Mode Enable
0: Same behavior as in normal mode
1: UART0 timeout is frozen when the core is halted
Set and reset by software.
[17]DBBFTM1BFTM1 Debug Mode Enable
0: BFTM1 counter continues even if the core is halted
1: BFTM1 counter is stopped when the core is halted
Set and reset by software.
[16]DBBFTM0BFTM0 Debug Mode Enable
0: BFTM0 counter continues to count even if the core is halted
1: BFTM0 counter is stopped when the core is halted
Set and reset by software.
[14]DBDSLP2Debug Deep-Sleep2
0: LDO = Off (but turn on DMOS), FCLK = Off and HCLK = Off in Deep-Sleep2 mode
1: LDO = On, FCLK = On and HCLK = On in Deep-Sleep2 mode
Set and reset by software.
Rev. 1.00 96 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
BitsFieldDescriptions
[13]DBI2C1I2C1 Debug Mode Enable
0: Same behavior as in normal mode
1: I2C1 timeout is frozen when the core is halted
Set and reset by software.
[12]DBI2C0I2C0 Debug Mode Enable
0: Same behavior as in normal mode
1: I2C0 timeout is frozen when the core is halted
Set and reset by software.
[11]DBSPI1SPI1 Debug Mode Enable
0: Same behavior as in normal mode
1: SPI1 FIFO timeout is frozen when the core is halted
Set and reset by software.
[10]DBSPI0SPI0 Debug Mode Enable
0: Same behavior as in normal mode
1: SPI0 FIFO timeout is frozen when the core is halted
Set and reset by software.
[8]DBUSRUSART Debug Mode Enable
0: Same behavior as in normal mode
1: USART timeout is frozen when the core is halted
Set and reset by software.
[6]DBGPTMGPTM Debug Mode Enable
0: GPTM counter continues to count even if the core is halted
1: GPTM counter is stopped when the core is halted
Set and reset by software.
[4]DBMCTMMCTM Debug Mode Enable
0: MCTM counter continues even if the core is halted
1: MCTM counter is stopped when the core is halted
Set and reset by software.
[3]DBWDTWatchdog Timer Debug Mode Enable
0: Watchdog Timer counter continues to count even if the core is halted
1: Watchdog Timer counter is stopped when the core is halted
Set and reset by software.
[1]DBDSLP1Debug Deep-Sleep1
0: LDO = Low power mode, FCLK = Off and HCLK = Off in Deep-Sleep1 mode
1: LDO = On, FCLK = On and HCLK = On in Deep-Sleep1 mode
Set and reset by software.
[0]DBSLPDebug Sleep Mode
0: LDO = On, FCLK = On and HCLK = Off in Sleep mode
1: LDO = On, FCLK = On and HCLK = On in Sleep mode
Set and reset by software.
6 Clock Control Unit (CKCU)
Rev. 1.00 97 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
7 Reset Control Unit (RSTCU)
Introduction
The Reset Control Unit, RSTCU, has three kinds of reset, the power on reset, system reset and
APB unit reset. The power on reset, known as a cold reset, resets the full system during a power
up. A system reset resets the processor core and peripheral IP components with the exception of
the debug port controller. The resets can be triggered by an external signal, internal events and the
reset generators. More information about these resets will be described in the following section.
1.5 V Core
V
DD15
V
DD
nRST
V
DD
WDTRST
Power
RESET
Brown Out
Detector
RESET
V
DD
Domain
POR
POR15
BODRST
Filter
SYSRESETREQ
POR
Reset
generator
Filter
Filter
WDT_RSTn
----
Filter
PWCURST
Delay
RTC/PWRCU reset
WDT reset
SYSRESETREQPORRESETn
SYSRESETn
PORRESETn
Cortex®-M0+RSTCU
SYSRESETREQ
HRESETn
NVIC
HRESETn
CM0+ Core
CORERESTn
System Components
(BusMatrix, PMU)
System Debug
Components
7 Reset Control Unit (RSTCU)
USRRST
Reset
generator
USART reset
Figure 17. RSTCU Block Diagram
Rev. 1.00 98 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Functional Descriptions
Power On Reset
The Power on reset, POR, is generated by either an external reset or the internal reset generator.
Both types have an internal lter to prevent glitches from causing erroneous reset operations. By
referring to Figure 18, the POR15 active low signal will be de-asserted when the internal LDO
voltage regulator is ready to provide a 1.5 V power. In addition to the POR15 signal, the Power
Control Unit, PWRCU, will assert the BODF signal as a Power Down Reset, PDR, when the
BODEN bit in the LVDCSR register is set and the brown-out event occurs. For more details about
the PWRCU function, refer to the PWRCU chapter.
V
DD
V
DD15
7 Reset Control Unit (RSTCU)
t
1
PORRESETn
SYSRESETn
* This timing is dependent on the internal LDO regulator output capacitor value.
Figure 18. Power On Reset Sequence
System Reset
A system reset is generated by a power on reset (PORRESETn), a Watchdog Timer reset (WDT_RSTn),
nRST pin or a software reset (SYSRESETREQ) event. For more information about SYSRESETREQ
event, refer to the related chapter in the Cortex®-M0+ reference manual.
AHB and APB Unit Reset
The AHB and APB unit reset can be divided into hardware and software resets. A hardware
reset can be generated by either power on reset or system reset for all AHB and APB units.
Each functional IP connected to the AHB and APB buses can be reset individually through the
associated software reset bits in the RSTCU. For example, the application software can generate a
USART reset via the USRRST bit in the APBPRSTR0 register.
t
2
t1= 25 μs *Typical.
= 100 μs
t
t
3
2
= 150 μs
t
3
Rev. 1.00 99 of 486July 31, 2018
32-Bit Arm® Cortex®-M0+ MCU
HT32F50231/HT32F50241
Register Map
The following table shows the RSTCU registers and reset values.