2.1 Chip Positioning
With fully optimized processor resources and the most economical cost advantage, the innovativeArm The Cortex-M23 core is introduced into industrial applications such as high-speed signal acquisition, mixed signal processing, motor control, sensor networks, etc.
What is the Arm Cortex-M23 core? The Arm Cortex-M23 is the successor to the Cortex-M0 and Cortex-M0+, an embedded microprocessor core based on the latest Armv8-M architecture. It adopts the von Neumann structure two-stage pipeline and supports the complete Armv8-M benchmark instruction set, which maximizes the compactness of the code. It is also compatible with all Armv6-M instructions, which can help engineers easily transfer code from Cortex-M0/M0+ processors to Cortex-M23. The new Cortex-M23.The 10.5pt] core is equipped with independent resources such as single-cycle hardware multiplier, hardware divider, hardware frequency divider, and nested vector interrupt controller (NVIC), and has enhanced debugging, error correction and traceability capabilities for easier development. Subsequent products can also support the mandatory isolation and protection of trusted and untrusted software in hardware by loading TrustZone technology, thus achieving multiple security requirements. The GD32E230 seriesCortex-M23 coreMCU is the latest embedded application solution with the advantages of small size, low cost, high energy efficiency and flexibility, and supports security extension.
2.2 Main parameters of GD32E231
From the parameters, we can see that this chip is positioned as a mid-to-low-end general-purpose MCU controller, focusing on cost performance. The main frequency is 72MHz, It can meet the needs of most applications.
The PWM module can output PWM with dead time control, which can be applied to motor control or power supply IGBT control.
In terms of function, it is a microprocessor with high cost performance.
2.3 Main Architecture of GD32E231
In terms of architecture, M-23 core, interrupt controller, DMA, 72MHZ SYS CLK, and various peripherals are a more mainstream architecture, which is basically the same as the previous ones. Since it adopts ARM, it seems that there are not many changes. There are also multiple clock sources and the number of peripherals is also a conventional setting. It has to be said that the domestic ARM MCU is basically the same as that of foreign manufacturers, and there are almost no technical obstacles to domestic substitution. It is enough for most applications. There are also many options for packaging. Since the speed is not too high, the use of LQFP48 and other packages can not only reduce the welding failure rate, but also reduce the difficulty of DIY welding for developers.
[attach]2.4 Memory map of GD32E231
This table can be said to be the bridge between hardware and software, and is the most important information. In the past, I didn't understand these things very well and often ignored them. Now I often encounter memory maps at work. I have come into contact with the use of FPGA to design the MCU core myself, and then I understand how we control peripherals through the driver provided by the manufacturer. For example: The BASE address of GPIO is 0x40000000; this is a 32-bit CPU. In our design, GPIO will have control registers, input registers, output registers, etc. A byte is 8 bits, and an address is usually a byte. If a 32-bit register occupies 4 bytes, the next register is 0x40000004; the next one is 0x40000008. In practice, a baseaddress + offset is usually given. Four offsets equal 4 bytes. If the input register address is 0x40000008, then after reading the input and configuring the input direction, the value of the input register can be directly read: data = *(volatile u32*)(0x40000008); And the driver library helps you write a program to implement this operation. The operations of other peripherals are similar, which is to distinguish the functions of the registers on the peripherals. Some need to be configured, and some need to be read. How to write library files is probably how the underlying engineers operate and configure these registers.
(The above is my personal understanding, my level is limited, and it is for reference only.)
2.5 The clock system of GD32E231 is not difficult and very clear.
2.6 ADC and PWM
The ADC performance is sufficient to meet most requirements, and the PWM module can also be used in a variety of applications. For detailed description, please refer to the attached manual.
Generally speaking, GD32E231 is a cost-effective MCU compatible with GD32E230. It can be used in industrial control, robots, aircraft, Internet of Things and other application fields. It is not difficult to develop and has a broad market in the future, which is worth looking forward to.