Follow UsLearn Embedded Systems Together, let’s learn and grow together
First of all, “embedded” is a concept, and there is no accurate definition; each book has its own definition. However, the main idea is the same: compared to general-purpose systems like PCs, embedded systems are specialized systems with a streamlined structure, retaining only the necessary parts in hardware and software while eliminating the unnecessary ones. Therefore, embedded systems generally have characteristics such as portability, low power consumption, and single performance.
Then, MCU, DSP, and FPGA all belong to the category of embedded systems and are tools used to achieve specific purposes.
MCU, commonly known as “microcontroller”, has evolved over the years and is no longer just the Princeton structure 51; its performance has also greatly improved. Because MCUs must execute programs sequentially, they are suitable for control applications, widely used in industry. ARM, originally a company specializing in MCU design, has gained a huge market share in the microcontroller market in recent years due to advanced technology and appropriate strategies. ARM microcontrollers come in many varieties, from low-end M0 (used in small appliances) to high-end A8 and A9 (used in smartphones and tablets), so ARM microcontrollers do not necessarily need to run an operating system; it depends on the application scenario.
DSP, or Digital Signal Processor, has a different structure from MCUs, accelerating computation speed and emphasizing computational capability. It can be seen as a super-fast MCU. Low-end DSPs, such as the C2000 series, are mainly used in motor control, although TI refers to it as DSC (Digital Signal Controller), which is something between MCU and DSP. High-end DSPs, such as the C5000/C6000 series, are generally used in video image processing and communication devices that require a lot of computation.
FPGA, or Field-Programmable Gate Array, has no inherent function; it is like a blank sheet of paper, and its functionality entirely depends on the design by programming personnel (all its processes are hardware, including VHDL and Verilog HDL programming, which are also considered hardware, generally referred to as writing “logic”). If you are skilled enough, you can turn it into an MCU or a DSP. Since the internal structures of MCUs and DSPs are predefined, they can only perform sequential processing through software programming, while FPGAs can handle both parallel and sequential processing, making them comparatively faster.
So why do MCU, DSP, and FPGA coexist? This is because the internal structures of MCUs and DSPs are meticulously designed by IC designers, and they consume much less power and cost significantly less than FPGAs when performing the same functions. Moreover, the development of FPGAs is inherently complex, requiring more manpower and financial resources to achieve the same functionality.
Therefore, each of the three has its strengths and areas of application. However, there is currently a trend of integration among the three; ARM’s M4 series has added a streamlined DSP core, and TI’s DaVinci series is essentially an ARM + DSP structure. The FPGAs recently launched by ALTERA and Xilinx also include ARM cores. Thus, the relationships among the three are increasingly resembling the three primary colors in a Venn diagram.
In summary, “you have me, and I have you”.
Where to Start Learning for Hardware Engineers?
Microcontroller: Usually without an operating system, used for simple control, such as elevators and air conditioners.
DSP: Used for complex calculations, such as Discrete Cosine Transform and Fast Fourier Transform, commonly used in image processing, in devices like digital cameras.
ARM: A British chip design company that does not manufacture chips but sells intellectual property.
FPGA: Field-Programmable Gate Array, circuit design completed using hardware description languages (Verilog or VHDL), can be quickly programmed onto FPGA for testing, is a mainstream technology for modern IC design verification.
Embedded systems are tailored compared to desktop computers, with various forms and may have limitations in size, power consumption, and cost, with high real-time requirements, such as oscilloscopes, smartphones, tablets, fully automatic washing machines, routers, and digital cameras. Although the existence of desktop computers is not visible in these devices, one or more embedded systems are at work.
Different choices are provided based on the complexity of the functional objects and computational processing. For simple home appliance control embedded systems, a simple 8-bit microcontroller is sufficient, cost-effective. For smartphones and game consoles, 32-bit ARM and DSP chips must be used. FPGA is a more hardware-oriented implementation method.
Thus, to become a hardware engineer through learning, one should start with microcontrollers, then learn ARM and DSP.
Detailed Introduction to the Seven Major Mainstream Microcontrollers on the Market
Microcontrollers are now ubiquitous, with a wide variety, making it overwhelming for developers, and their development has been quite rapid, evolving from 4-bit and 8-bit in the 1980s to various high-speed microcontrollers today.
Various manufacturers are competing in speed, memory, and functionality, leading to a plethora of representative microcontroller manufacturers: Atmel, TI, ST, MicroChip, ARM… and China’s Hongjing STC microcontroller is also noteworthy…
Below is a comparison of the advantages and disadvantages of 51, MSP430, TMS, STM32, PIC, AVR, and STC microcontrollers and their functionalities…
51 Microcontroller
The most widely used 8-bit microcontroller is also the easiest for beginners to learn, first introduced by Intel. Due to its typical structure and centralized management of dedicated registers, numerous logical bit manipulation functions, and a rich instruction system aimed at control, it is considered a “classic” and laid the foundation for the development of other microcontrollers.
The reason the 51 microcontroller has become a classic and easy-to-learn microcontroller mainly has the following characteristics:
Characteristics:
1. From internal hardware to software, it has a complete bit-oriented operating system, called a bit processor, where the processing object is bits rather than words or bytes. It can not only process certain special function registers within the chip at the bit level, such as transferring, setting, clearing, and testing, but also perform logical operations on bits, making its functionality very complete and easy to use.
2. Additionally, a dual-function address range has been specially opened up in the internal RAM area, allowing for extremely flexible use, which undoubtedly provides great convenience to users.
3. Multiplication and division instructions facilitate programming. Many 8-bit microcontrollers do not have multiplication functionality, requiring a subroutine for multiplication, which is quite inconvenient.
Disadvantages: (Although it is classic, its drawbacks are still apparent)
1. Functions like AD, EEPROM, etc., require expansion, increasing the hardware and software burden.
2. Although the I/O pins are simple to use, they lack output capability when at a high level, which is the most significant weakness of the 51 series microcontroller.
3. The operating speed is too slow, especially with dual data pointers; improvements here could greatly enhance programming convenience.
4. The 51 series has poor protection capabilities and is easily damaged.
Application Scope:
Currently widely used in educational settings and low-performance requirement scenarios.
Most used devices: 8051, 80C51
MSP430 Microcontroller
The MSP430 series microcontroller is a 16-bit ultra-low power mixed-signal processor launched by Texas Instruments in 1996, notable for its low power consumption and fast speed. Its assembly language is flexible, with many addressing modes, few instructions, and easy to learn. This is mainly due to its integration of many analog circuits, digital circuits, and microprocessors into a single chip to provide a “single-chip” solution. Its rapid development and expanding application range are primarily due to the following characteristics…
Characteristics:
1. Powerful processing capability, adopting a RISC architecture with rich addressing modes (7 types of source operand addressing, 4 types of destination operand addressing), concise 27 core instructions, and a large number of analog instructions; many registers and on-chip data memory can participate in various calculations; there are also efficient lookup processing instructions; high processing speed, with a 125 ns instruction cycle driven by an 8MHz crystal. These features ensure the ability to compile high-efficiency source programs.
2. In terms of processing speed, it can achieve a 125 ns instruction cycle under the drive of an 8MHz crystal. The 16-bit data width, 125 ns instruction cycle, and multifunctional hardware multiplier (capable of performing multiplication and addition) can implement certain algorithms for digital signal processing (such as FFT).
3. The ultra-low power consumption of the MSP430 microcontroller is due to its unique approach to reducing the chip’s power supply voltage and flexible, controllable operating clock. The power supply voltage ranges from 1.8 to 3.6V, allowing it to operate at a current of about 200-400uA under a 1MHz clock condition, with the lowest power consumption in clock shutdown mode being only 0.1uA.
Disadvantages:
1. Personally, I feel it is not easy to learn, not suitable for beginners, and there is relatively little information available, often requiring one to search the official website.
2. It occupies a relatively large instruction space, as it is a 16-bit microcontroller, with programs measured in words; some instructions can occupy as much as 6 bytes. Although the program appears concise, it occupies significantly more space compared to PIC microcontrollers.
Application Scope:
More commonly used in low-power and ultra-low-power industrial applications.
Most used devices: MSP430F series, MSP430G2 series, MSP430L09 series
TMS Microcontroller
Here, I would also like to mention the TMS series microcontrollers, which are not considered mainstream. They are 8-bit CMOS microcontrollers launched by TI, featuring various storage modes and peripheral interface modes, suitable for complex real-time control scenarios. Although not as excellent as STM32 or as flashy as MSP430, the TMS370C series microcontrollers provide high cost-effectiveness for real-time system control by integrating advanced peripheral function modules and various memory configurations. They also use high-performance silicon gate CMOS EPROM and EEPROM technology. Low power consumption CMOS technology, wide operating temperature range, noise suppression, coupled with high performance and rich on-chip peripheral functions, make the TMS370C series microcontrollers applicable in automotive electronics, industrial motor control, computers, communications, and consumer electronics.
STM32 Microcontroller
The STM32 series microcontroller launched by ST is known in the industry for its high cost-performance ratio, perhaps unparalleled, and its powerful functionality. It is based on the ARM Cortex-M core designed specifically for high-performance, low-cost, low-power embedded applications, and features top-notch peripherals: 1μs dual 12-bit ADC, 4 megabits/second UART, 18 megabits/second SPI, etc. In terms of power consumption and integration, it also performs well, although slightly inferior to MSP430 in terms of power consumption, this does not affect engineers’ enthusiasm for it. Due to its simple structure and easy-to-use tools, combined with its powerful functionality, it is well-known in the industry… Its powerful features are primarily reflected in:
Characteristics:
1. Core: ARM32-bit Cortex-M3 CPU, maximum operating frequency of 72MHz, 1.25 DMIPS/MHz, single-cycle multiplication, and hardware division.
2. Memory: On-chip integrated Flash memory of 32-512KB. SRAM memory of 6-64KB.
3. Clock, reset, and power management: Power supply voltage of 2.0-3.6V and I/O interface driving voltage. POR, PDR, and programmable voltage detector (PVD). 4-16MHz crystal oscillator. Built-in factory-calibrated 8MHz RC oscillation circuit. Internal 40 kHz RC oscillation circuit. PLL for CPU clock. Calibrated 32kHz crystal oscillator for RTC.
4. Debugging mode: Serial debugging (SWD) and JTAG interface. Up to 112 fast I/O ports, up to 11 timers, and up to 13 communication interfaces.
Most used devices: STM32F103 series, STM32 L1 series, STM32W series
PIC Microcontroller
The PIC microcontroller series is a product of Microchip Technology, divided into three levels: basic, mid-range, and high-end, and is one of the fastest-growing microcontrollers in market share. The CPU adopts a RISC architecture, with 33, 35, and 58 instructions, belonging to a reduced instruction set, and uses a Harvard dual-bus structure for fast operation, enabling parallel processing of program memory access and data memory access. This pipelined instruction structure completes two tasks in one cycle: executing an instruction and fetching the next instruction from program memory. Overall, this results in each instruction requiring only one cycle, which is one reason for its high efficiency. Additionally, the reasons why the PIC microcontroller has become popular include the following characteristics:
Characteristics:
1. It features low operating voltage, low power consumption, and strong driving capability. The I/O ports of the PIC series microcontrollers are bidirectional, and their output circuit is a CMOS complementary push-pull output circuit. The I/O pins include direction registers to set input or output status, solving the problem of the 51 series I/O pins being both input and output at high levels.
2. When set to 1, it is in input status, and regardless of whether the pin is high or low, it presents a high-impedance state externally; when set to 0, it is in output status, and regardless of the pin’s level, it presents a low-impedance state, with a considerable driving capability, allowing for 25mA of current at low level and 20mA of output current at high level. Compared to the 51 series, this is a significant advantage.
3. It can directly drive a digital tube display with a simple external circuit. Its A/D is 10-bit, meeting precision requirements. It also has online debugging and programming (ISP) capabilities.
Disadvantages:
Its special function registers (SFR) are not all concentrated in a fixed address range (80~FFH) like the 51 series but are scattered across four address ranges. Only five special registers, PCL, STATUS, FSR, PCLATH, and INTCON, appear in four storage bodies simultaneously. However, during programming, one has to interact with the special registers repeatedly, setting or clearing the sixth bit (RP1) and the fifth bit (RP0) of the status register STATUS. Data transfer and logical operations are primarily conducted through the working register W (equivalent to the accumulator A in the 51 series), while the 51 series can directly transfer between registers, making the bottleneck phenomenon more severe in PIC microcontrollers compared to the 51 series, which should be a well-known issue for programmers.
Most used devices: PIC16F873, PIC16F877
AVR Microcontroller
The AVR microcontroller is a relatively new microcontroller launched by Atmel, notable for its high performance, high speed, and low power consumption. It eliminates machine cycles, using clock cycles as instruction cycles and implementing pipelined operations. AVR microcontroller instructions are measured in words, and most instructions are single-cycle instructions. A single cycle can execute the current instruction function while simultaneously fetching the next instruction. Typically, the clock frequency is 4~8MHz, so the shortest instruction execution time is 250~125ns. The AVR microcontroller has become quite popular recently, mainly due to the following characteristics:
Characteristics:
1. The AVR series does not have a structure similar to accumulator A; it primarily uses registers R16~R31 to perform A’s function. In AVR, there is no data pointer DPTR like in the 51 series; instead, three 16-bit registers, X (composed of R26, R27), Y (composed of R28, R29), and Z (composed of R30, R31), complete the data pointer function (equivalent to having three sets of DPTR) and can perform post-increment or pre-decrement operations. In the 51 series, all logical operations must occur in A; however, AVR allows operations between any two registers, eliminating the back-and-forth in A, which is a significant improvement over the 51 series.
2. The special registers of AVR are concentrated in the address range 00~3F, eliminating the need for the storage selection process required by PIC, making it more convenient to use. The address range of the internal RAM of AVR is 0~00DF (AT90S2313) and 0060~025F (AT90S8515, AT90S8535), which occupy the address space for data; this internal RAM is primarily used for data storage and typically does not possess the functionality of general-purpose registers. When programs become complex, the general-purpose registers R0~R31 may prove insufficient; the 51 series has as many as 128 general-purpose registers (four times that of AVR), preventing this issue during programming.
3. The I/O pins of AVR are similar to those of PIC; it also has direction registers to control input or output status. In output status, the high-level output current is around 10mA, and the low-level input current is 20mA. Although this is not as good as PIC, it still outperforms the 51 series…
Disadvantages:
1. There is no bit manipulation; all control and judgment of related register bits are done in byte form.
2. There are significant differences in the syntax of C language between AVR and 51, which can be quite uncomfortable for friends starting to learn the 51 microcontroller.
3. There are only 32 general-purpose registers (R0~R31), and the first 16 registers (R0~R15) cannot directly interact with immediate numbers, which reduces generality. In contrast, all general-purpose registers (address 00~7FH) in the 51 series can directly interact with immediate numbers, clearly giving it an advantage over the latter.
Most used devices: ATUC64L3U, ATxmega64A1U, AT90S8515
STC Microcontroller
When it comes to STC microcontrollers, some might say that STC can also be considered mainstream, and they might be criticized for it~~ We base this on the fact that STC is a relatively good microcontroller domestically. The STC microcontroller is a single-clock/machine-cycle microcontroller produced by Hongjing. In simple terms, the STC microcontroller is a combination of 51 and AVR; some say AVR is a replacement for 51 microcontrollers. However, the AVR microcontroller has significant differences in bit control and C language syntax. The STC microcontroller combines the advantages of both 51 and AVR; although its functionality is not as powerful as AVR, it covers almost all the features found in AVR, and since the STC microcontroller is based on the 51 core, it provides great convenience for engineers familiar with the 51 microcontroller, saving them the time of learning AVR while retaining various functionalities of AVR…
The STC microcontroller is a new generation of 8051 microcontroller with high speed, low power consumption, and strong anti-interference capabilities. Its instruction code is fully compatible with traditional 8051 but is 8~12 times faster, with an internal MAX810 dedicated reset circuit integrated. It features 4 PWM channels, 8 high-speed 10-bit A/D converters, and is designed for motor control in high-interference environments, becoming a brand new series of microcontrollers following the 51 microcontroller…
Characteristics:
1. Downloading and burning programs using the serial port is convenient and easy to use, with a wealth of learning materials and videos available. The most famous is probably the video by Teacher Du, through which many friends interested in microcontrollers have gotten started. It also has a wide voltage range: 5.5~3.8V, 2.4~3.8V, and a low power consumption design: idle mode, power-off mode (can be awakened by external interrupts).
2. The STC microcontroller is convenient for application programming and debugging; it comes with 10-bit AD, internal EEPROM, and can operate at 1T/machine cycle, 8~12 times faster than traditional 51 microcontrollers, and is also relatively inexpensive.
3. It features 4 capture/compare units; the STC12C2052AD series has 2 channels and can also implement 4 timers or 4 external interrupts, with 2 hardware 16-bit timers, compatible with the standard 8051 timer. The 4 PCA channels can also implement 4 timers, with a hardware watchdog, high-speed SPI communication ports, full-duplex asynchronous serial ports, compatible with the standard 8051 serial port, and has an advanced instruction set architecture, compatible with the standard 8051 instruction set.
PS: Although the STC microcontroller’s functionality is not as powerful as AVR or STM32, and its price is not as low as 51 or STM32, these aspects are not particularly important. What matters is that it is one of the more outstanding domestic microcontrollers, and I hope domestic microcontrollers can continue to thrive…
Most used devices: STC12C2052AD
Freescale Microcontroller
Mainly targeting S08, S12 microcontrollers, of course, Freescale microcontrollers are far more than this. The Freescale series microcontrollers adopt a Harvard architecture and pipelined instruction structure, exhibiting low cost and high performance in various fields. Their architecture saves a lot of time in product development. Additionally, Freescale provides various integrated modules and bus interfaces, allowing them to play a more flexible role in different systems! The unique features of Freescale microcontrollers include:
1. Full series: from low-end to high-end, from 8-bit to 32-bit, all series are available. The 8-bit/32-bit pin-compatible QE128 allows for direct migration from 8-bit to 32-bit, filling a gap in the industry regarding 8/32-bit compatible architecture.
2. Multiple system clock modules: three modules, seven operating modes. Various clock source input options; different MCUs have different clock generation mechanisms, which can be RC oscillators, external clocks or crystals, or internal clocks. Most CPUs have all three modules! They can operate in seven modes: FEI, FEE, FBI, FBILP, FBE, FBELP, STOP.
3. Various communication module interfaces: Freescale microcontrollers almost all integrate various communication interface modules internally: including serial communication interface module SCI, multi-master I2C bus module, serial peripheral interface module SPI, MSCAN08 controller module, and universal serial bus module (USB/PS2).
4. More selectable modules: includes LCD driver module, temperature sensor, ultra-high frequency transmission module, synchronous processor module, and some MCUs with screen display modules OSD, as well as a few MCUs with ringing detection module RING and dual-tone multi-frequency/tone generator DMG module.
5. High reliability, strong anti-interference, and various pin counts and packaging options.
6. Low power consumption; although the power consumption of Freescale series microcontrollers may not be as low as that of MSP430, they feature static “waiting” and “stop” modes, significantly reducing overall power consumption! Recently launched ultra-low power models have begun to rival MSP430!
Article sourced from the internet; copyright belongs to the original author. If there is any infringement, please contact for removal.
Follow us【Learn Embedded Systems Together】, let’s learn and grow together.
If you find the article good, click “Share“, “Like“, or “Read“!
Leave a Comment
Your email address will not be published. Required fields are marked *