Compare microprocessor: PassMark — CPU Comparison

Difference between Microprocessor and Microcontroller

ByLawrence Williams

Hours

Updated

Microprocessor vs Microcontroller: Key Difference
  • Microprocessor consists of only a Central Processing Unit, whereas Micro Controller contains a CPU, Memory, I/O all integrated into one chip.
  • Microprocessor is used in Personal Computers whereas Micro Controller is used in an embedded system.
  • Microprocessor uses an external bus to interface to RAM, ROM, and other peripherals, on the other hand, Microcontroller uses an internal controlling bus.
  • Microprocessors are based on Von Neumann model Micro controllers are based on Harvard architecture
  • Microprocessor is complicated and expensive, with a large number of instructions to process but Microcontroller is inexpensive and straightforward with fewer instructions to process.

What is a Microprocessor?

A microprocessor is a controlling unit of a micro-computer wrapped inside a small chip. It performs Arithmetic Logical Unit (ALU) operations and communicates with the other devices connected with it. It is a single Integrated Circuit in which several functions are combined.

What is Microcontroller?

A microcontroller is a chip optimized to control electronic devices. It is stored in a single integrated circuit which is dedicated to performing a particular task and execute one specific application.

It is specially designed circuits for embedded applications and is widely used in automatically controlled electronic devices. It contains memory, processor, and programmable I/O.

Types of Microprocessor

Important types of Microprocessors are:

  • Complex Instruction Set Microprocessors
  • The Application Specific Integrated Circuit
  • Reduced Instruction Set Microprocessors
  • Digital Signal Multiprocessors (DSPs)

Types of Microcontroller

Here are important types of Microcontroller:

  • 8 bit Microcontroller
  • 16 bit Microcontroller
  • 32 bit Microcontroller
  • Embedded Microcontroller
  • External memory Microcontroller

History of Microprocessor

Here, are the important landmark from the history of Microprocessor

  • Fairchild Semiconductors invented the first IC (Integrated Circuit) in 1959.
  • In 1968, Robert Noyce, Gordan Moore, Andrew Grove found their own company Intel.
  • Intel grew from 3 man start-up in 1968 to industrial giant by 1981.
  • In 1971, INTEL created the first generation Microprocessor 4004 that would run at a clock speed of 108 kHz
  • From 1973 to 1978, second-generation 8-bit microprocessors were fabricated like Motorola 6800 and 6801, INTEL-8085, and Zilog’s-Z80.
  • In 1978, Intel 8008 third-generation process came into the market.
  • In the early 80s, Intel released fourth-generation 32-bit processors.
  • In 1995, intel released in fifth-generation 64-bit processors .

History of Microcontroller

Here, are important landmarks from the history of Microcontroller:

  • First used in 1975(Intel 8048)
  • The introduction of EEPROM in 1993
  • The same year, Atmel introduced the first microcontroller using Flash memory.

Difference Between Microprocessor and Microcontroller

Here is the difference between Microprocessor vs. Microcontroller

Microprocessor Microcontroller
Microprocessor is the heart of Computer system. Micro Controller is the heart of an embedded system.
It is only a processor, so memory and I/O components need to be connected externally Micro Controller has a processor along with internal memory and I/O components.
Memory and I/O has to be connected externally, so the circuit becomes large. Memory and I/O are already present, and the internal circuit is small.
You can’t use it in compact systems You can use it in compact systems.
Cost of the entire system is high Cost of the entire system is low
Due to external components, the total power consumption is high. Therefore, it is not ideal for the devices running on stored power like batteries. As external components are low, total power consumption is less. So it can be used with devices running on stored power like batteries.
Most of the microprocessors do not have power saving features. Most of the microcontrollers offer power-saving mode.
It is mainly used in personal computers. It is used mainly in a washing machine, MP3 players, and embedded systems.
Microprocessor has a smaller number of registers, so more operations are memory-based. Microcontroller has more register. Hence the programs are easier to write.
Microprocessors are based on Von Neumann model Micro controllers are based on Harvard architecture
It is a central processing unit on a single silicon-based integrated chip. It is a byproduct of the development of microprocessors with a CPU along with other peripherals.
It has no RAM, ROM, Input-Output units, timers, and other peripherals on the chip. It has a CPU along with RAM, ROM, and other peripherals embedded on a single chip.
It uses an external bus to interface to RAM, ROM, and other peripherals. It uses an internal controlling bus.
Microprocessor-based systems can run at a very high speed because of the technology involved. Microcontroller based systems run up to 200MHz or more depending on the architecture.
It’s used for general purpose
applications that allow you to handle loads of data.
It’s used for application-specific systems.
It’s complex and expensive, with a large number of instructions to process. It’s simple and inexpensive with less number of instructions to process.

Features of Microprocessor

Here are some important features of Microprocessor:

  • Offers built-in monitor/debugger program with interrupt capability
  • Large amount of instructions each carrying out a different variation of the same operation
  • Offers Parallel I/O
  • Instruction cycle timer
  • External memory interface

Features of Microcontroller

Here are some important features of Microcontroller:

  • Processor reset
  • Program and Variable Memory (RAM) I/O pins
  • Device clocking central processor
  • Instruction cycle timers

Applications of Microprocessor

Microprocessors are mainly used in devices like:

  • Calculators
  • Accounting system
  • Games machine
  • Complex industrial controllers
  • Traffic light
  • Control data
  • Military applications
  • Defense systems
  • Computation systems

Applications of Microcontroller

Microcontrollers are mainly used in devices like:

  • Mobile phones
  • Automobiles
  • CD/DVD players
  • Washing machines
  • Cameras
  • Security alarms
  • Keyboard controllers
  • Microwave oven
  • Watches
  • Mp3 players

Summary:

What is the Difference Between a Microcontroller and Microprocessor?

The key difference between a Microprocessor and a Microcontroller is the Microprocessor consists of only a Central Processing Unit, whereas the Microcontroller contains a CPU, Memory, I/O all integrated into one chip. A microcontroller is an inexpensive, straightforward, and small number of instructions to process, whereas a Microprocessor is complex and expensive, with many instructions.

Which is Better Microcontroller or Microprocessor?

Both of these processes are good. However, which one you should use depends upon your requirements. Microcontrollers are mainly used for small applications like washing machines, Cameras, Security alarms, Keyboard controllers, etc., Whereas Microprocessor is used in Personal Computers, Complex industrial controllers, Traffic light, Defense systems, etc.

Which is Faster Microprocessor or Microcontroller?

Microprocessors are much faster than microcontrollers. The clock speed of a microprocessor is above 1 GHz. While in the case of the Microcontroller, the clock speed is 200MHz or more, depending on the architecture.

Difference between Microprocessor and Microcontroller

— Advertisement —

 

Selecting the right device on which to base your new design can be daunting. The need to make the right balance of price, performance, and power consumption has many implications. First, there will be the immediate technology considerations for the design you are able to embark on. However, if a microcontroller (MCU) or microprocessor (MPU), becomes the basis of a platform approach, the decision can have long-lasting consequences. The difference between microprocessor and microcontroller becomes an important debate at this point.

Microcontroller vs Microprocessor: Primary Differences

Typically an MCU uses on-chip embedded Flash memory in which to store and execute its program. Storing the program this way means the MCU has a shorter start-up period and executes code quickly. The only practical limitation to using embedded memory is that the total available memory space is finite. Most Flash MCU devices available on the market have a maximum of 2 Mbytes of Program memory. This may prove to be a limiting factor, depending on the application.

MPUs do not have memory constraints in the same way. They use external memory to provide program and data storage. The program is typically stored in non-volatile memory, such as NAND or serial Flash. At start-up, this is loaded into an external DRAM and execution commences. This means the MPU will not be up and running as quickly as an MCU but the amount of DRAM and NVM you can connect to the processor is in the range of hundreds of Mbytes and even Gbytes for NAND.

Another difference is power. By embedding its own power supply, an MCU needs just one single voltage power rail. By comparison, an MPU requires several different voltage rails for core, DDR etc. The developer needs to cater to this with additional power ICs / converters on- board.

Difference Between Microprocessor and Microcontroller: Application Perspective

— Advertisement —

From the application perspective, some aspects of the design specification might drive device selection in particular ways. For example, is the number of peripheral interface channels required more than can be catered for by an MCU? Or, does the marketing specification stipulate a user interface capability that will not be possible with an MCU because it does not contain enough memory on-chip or has the required performance?

When embarking on the first design and knowing that, it is highly likely there will be many product variations. In that case, it is very possible a platform-based design approach will be preferred. This would stipulate more “headroom” in terms of processing power and interface capabilities in order to accommodate future feature upgrades.

Some measurement parameters

An attribute that is difficult to determine is the required processing performance any given design might require. Processing power, measured in terms of Dhrystone MIPS (DMIPS), helps quantify these criteria.

Explained below is a table for the difference between microprocessor and microcontroller.

Microcontroller Microprocessor
  • The microprocessor is the heart of a Computer system.
  • The microcontroller has an external processor along with internal memory and i/O components
  • It is just a processor. Memory and I/O components have to be connected externally
  • Since memory and I/0 are present internally, the circuit is small.
  • Since memory and I/O have to be connected externally, the circuit becomes large.
  • Can be used in compact systems and hence it is an efficient technique
  • Cannot be used in compact systems and hence inefficient
  • The cost of the entire system is low
  • Cost of the entire system increases
  • Due to external components, the entire power consumption is high. Hence it is not suitable to used with devices running on stored power like batteries.
  • Most of the microcontrollers have power-saving modes like idle mode and power-saving mode. This helps to reduce power consumption even further.
  • Since components are internal, most of the operations are internal instruction, hence speed is fast.
  • Since memory and I/O components are all external, each instruction will need an external operation, hence it is relatively slower.
  • Microcontrollers have more number of registers, hence the programs are easier to write.
  • Microprocessors have less number of registers, hence more operations are memory based
  • Microcontrollers are based on Harvard architecture where program memory and Data memory are separate
  • Microprocessors are based on the von Neumann model/architecture where programs and data are stored in the same memory module
  • Used mainly in washing machines, MP3 players
  • Mainly used in personal computers

For example, an ARM Cortex-M4-based microcontroller such as Atmel’s SAM4 MCU is rated at 150 DMIPS. Whereas an ARM Cortex-A5 application processor (MPU) such as Atmel’s SAMA5D3 can deliver up to 850 DMIPS. One way of estimating the DMIPS required is by looking at the performance-hungry parts of the application.

Running a full operating system (OS), such as Linux, Android or Windows CE, for your application would demand at least 300–400 DMIPS. For many applications, a straightforward RTOS might suffice and an allowance of 50 DMIPS would be more than adequate. Using an RTOS also has the benefit that it requires little memory space; a kernel of just a few kB is typical. Unfortunately, a full OS demands a memory management unit (MMU) in order to run; this, in turn, specifies the type of processor core to be used and requires more processor capability.

Difference Between Microprocessor and Microcontroller: Applications

For running applications that are more number-crunching intensive enough, DMIPS allowance needs to be reserved on top of any OS and other communication and control tasks. The more numeric-based the application, the more likely an MPU is required.

The user interface (UI) can be a serious consideration irrespective of the aim of the application. As consumers, we have become familiar and comfortable with using colourful and intuitive graphical UI. Industrial applications are increasingly using this method of operator interaction. The operating environment, however, can limit the usage of this one. For the UI there are a number of factors.

Why are the differences necessary?

Firstly, is the processing overhead required? An overhead of 80–100 DMIPS might suffice for a UI library such as Qt since it is widely used on top of Linux. The second factor is to do with the complexity of the UI. Higher processing power and memory is needed for more animations, effects, multimedia content, and more changes applied to the image to be displayed. And these requirements scale up with the resolution, that is why for applications designed to be UI-centric an MPU is more likely to suit.

On the other hand, a simpler UI with pseudo-static images on a lower resolution screen can be addressed by an MCU. Another argument in favour of the MPU is that it generally comes equipped with an embedded TFT LCD controller. Very few MCUs have this capability. The TFT LCD controller and some other external driver components have to be added externally. So, while possible to achieve with an MCU, the developer needs to look at the overall BOM.

Sampling a microcontroller

Some Flash MCUs are now coming onto the market with TFT LCD controllers embedded. There must however still be enough embedded SRAM memory available to drive the display. For example, the QVGA 320 x 240 16-colour format requires 150 kB of SRAM to feed and refresh the display.

This is a fairly high amount of SRAM to dedicate. Some extra memory might be required, which would further add to the BOM and bridge the gap with the MPU solution. More complex and advanced graphical UIs, especially using screens larger than 4. 3” inches, would stipulate an MPU. If MPUs are seen to dominate when it comes to run a UI on a colour TFT screen then MCUs are the kings for segment or dot matrix LCD control and other screens with serial interfaces.

Difference Between Microprocessor and Microcontroller: Connectivity Standpoint

From the connectivity standpoint, most MCU and MPU devices are available, with all the common popular peripheral interfaces. High-speed communication peripherals such as HS USB 2.0, multiple 10/100 Ethernet ports, or Gigabit Ethernet ports are generally only found on MPU. They are better capable to handle and process large amounts of data. Whether there are enough suitable channels and bandwidth to handle the data traffic is a key question.

Depending on the communication protocols used, the impact on code space using third-party stacks should be checked. Applications demanding high-speed connectivity, especially in combination with using OS-based stacks will require an MPU-based design.

Another key aspect driving the difference between microprocessor and microcontroller selection is the need for a real-time/deterministic behaviour of the application. Because of the processor core used in an MCU, as well as the embedded flash and considering the software used that is either an RTOS or bare metal C, the MCU will definitely take the lead on this aspect and will address perfectly the most time-critical and deterministic applications.

Difference Between Microprocessor and Microcontroller: Power Consumption

A final point to consider is power consumption. While MPUs do have low power modes there are not as many or as low as the ones you would find on a typical MCU. With the external hardware supporting an MPU as an added factor, putting an MPU into a low-power mode might also be slightly more complex.

Also, the actual consumption of an MCU is magnitudes lower than an MPU. In low power mode for example, with SRAM and register retention, you can consider a factor of 10 to 100. This is directly related to the amount of RAM and power required by an operating system to resume operation instantaneously. The decisions involved in selecting either an MCU or MPU-based approach are many and involve performance, capability, and the BOM budget.

Selecting one?

Broadly speaking, MCUs tend to be used in cost-optimised solutions which require tight control of BOM and power saving. Functionally rich and high-performance applications employ a scale, larger number of MPUs. Ultra-low power applications such as remote controls, consumer electronics, and smart meters where the design emphasis puts the longevity of battery life and none or little UI interaction find larger use of MCUs.

They are also used where highly deterministic behaviour is needed. MPUs are ideal for OS-based industrial and consumer applications. These might be computed intensively and require multiple high-speed connectivities or a rich UI.

Selecting a vendor offering highly compatible MCU and MPU products where you can easily migrate up and down and maximize software reuse provides the best return on investment over time.

The history of computer motherboard (Courtesy: http://www.atmel.com/images/mcu_vs_mpu_article.pdf)

One of the most popular Microcontrollers is the 8051 microcontroller.


Difference between MicroProcessor and MicroController

It is commonplace for most people to be confused when they have to differentiate between microprocessors and microcontrollers. At the very onset they may appear to be the same but they are certainly not. This article aims to throw light on the major differences between a microprocessor and microcontroller in the simplest of ways. Read on for more.

Now that you have gained basic knowledge about what a microcontroller and microprocessor are, you will find it convenient to differentiate between the two:















Micro Processor

Micro Controller

It forms the core of the processing system of a computer.

It is the heart of a specific embedded system in an electronic device like a washing machine, microwave oven, etc.

It is merely the processing unit. The input / output devices and the memory have to be connected externally.

The input/ output components, internal memory and external processor are all present within a micro controller.

Incapable of being used in compact systems because of its size, hence not so efficient.

Efficiently designed and compact in size, a microcontroller can be fitted into small and large devices alike.

The overall cost of the system increases as other components have to added for a microprocessor to function.

Cost-effective and affordable, a microcontroller has all required components placed internally.

Because of the presence of externally attached components, the overall power consumption is high. Microprocessors cannot be used on batteries and other stored sources of power such as batteries.

The overall power consumption is low because there are no external peripherals attached that draw extra power. Microcontrollers can also run on stored power sources like batteries.

Most microprocessors are devoid of power saving modes and features.

Power consumption can be further reduced in microcontrollers with the help of power saving modes such as the idle mode.

As the input/output components and memory are externally placed, instructions are operated from outside and are thus slow to process.

The speed of processing instructions is fast as most components are placed internally in the microcontroller.

The number of registers in microprocessors is less; given this, almost all operations are based on the unit’s memory

The programs used for operating microcontrollers are easier to develop because of the presence of more registers

The Von Neumann architecture/model forms the base of microprocessors. The same memory module is used for storing data and programs.

The Harvard architecture forms the base of microcontrollers wherein the data and programs are stored separately

Mainly used as processing units for personal computers

Used for washing machines, MP3 players and other electronic devices

Designed on silicon integrated chip/ chips hence expensive

Made with complementary ‘metal oxide semiconductor technology’ which makes the cost affordable

The general processing speed of microprocessors is 1 GHz or above. They work faster than microcontrollers.

Processing speed of a microcontroller is generally in the range of MHz to 50 MHz.

The tasks performed are software development, website development, documents making, game development, etc. These tasks are quite complex and require more speed and memory.

The tasks performed are generally less complex and limited.

What is a Microprocessor?

A microprocessor is defined as the unit that controls a micro-computer. A microprocessor is often referred to as the central processing unit but is much advanced with respect to its architectural design. It is designed on a silicon microchip. A microprocessor is capable of processing, executing, storing and passing on the results of logical instructions passed in binary language to it. Equipped to perform ALU (Arithmetic Logical Unit) related tasks, it communicates with connected devices and different parts of a computer to control data flow effectively.

Who Invented the Microprocessor?

Ted Hoff, who was associated with Intel as a young scientist, is accredited with the invention of microprocessors. Hoff received a feasible platform for the development of microprocessors when Intel was commissioned by a Japanese company by the name of BUSICOM. Hoff was asked to design a chip in the form of an entire mini-computer for BUSICOM’s new series of calculators. Albeit a complicated one, the chip was successfully designed by Hoff. Frederico Faggin, an engineer with Intel, was responsible for designing the chip into a workable product. The first microprocessor chip was named 4004 and was 1/8″ by 1/16″. It had 2300 transistors firmly etched into silicon and was equally powerful (if not more!) as ENIAC, which was built in 1946. ENIAC was a whopping 30 tons computer!

What is Microprocessor 8085?

The Intel 8085 was introduced in 1976 as an 8-bit microprocessor. The microprocessor is software-binary compatible with Intel 8080. It has two additional minor instructions for supporting its serial and interrupt input/output features. In comparison to Intel 8080, Intel 8085 requires reduced support circuitry. It has paved the way for the development of less expensive and simpler microcomputer systems.

What is Microcontroller?

A microcontroller is defined as a low-cost, small microcomputer. It is a small computer that is designed in a singular integrated circuit. Dedicated to perform specific tasks such receiving remote signals, managing embedded systems, displaying the information on a microwave, etc. a microcontroller can execute a single application only. In general, it consists of the memory (EPROM, RAM, ROM), the processor, input/output peripherals (timers, counters) that are programmable, serial ports, etc. Microcontrollers are mainly used in automatically controlled devices like cellphones, washing machines, cameras, microwave ovens and other electronics.

Who Invented the Microcontroller?

Gary Boone, who was associated with Texas Instruments invented the microcontroller during the period 1970-71. He successfully designed a singular integrated circuit chip that was capable of holding all the essential circuits contained in a calculator with the exception of keyboard and display unit. This revolutionary breakthrough took the world of electronics and communication by storm and was named TMS1802NC. Boone’s invention had 5000 transistors with 128 bits of access and 3000 bits of program memory.

Difference Between Microcontroller And Microprocessor

Introduction

Microcontroller and Microprocessor are the components which are very essential and important in designing various kinds of electronic devices. thus, Microcontrollers and Microprocessors are complex sequential digital circuits meant to carry out a job according to the program or instructions. But we always have some questions regarding them.

The most common questions are:

  • WHAT IS A MICROCONTROLLER?
  • And WHAT IS A MICROPROCESSOR? 
  • WHAT IS THE DIFFERENCE BETWEEN MICROCONTROLLER AND MICROPROCESSOR?

So, in this blog, we are going to discuss these three questions along with some additional information on Microcontroller and Microprocessor in detail. Let’s start by answering the first question that is What is a Microcontroller?

What is a Microcontroller?

A microcontroller is a programmable digital processor. thus, It has all the necessary peripherals. so, It does not require any additional ICs for operations and functions as a stand-alone system.

therefore, Microcontrollers have Central Processing Unit(CPU), Random Access Memory(RAM), Read-Only Memory(ROM), Input/ Output Ports(I/O ports), Timers and Counters, and Serial I/O.

Some of the most common microcontrollers are 

  1. 8-bit Microcontroller
  2. 16-bit Microcontroller
  3. 32-bit Microcontroller
  4. Embedded Microcontroller
  5. External memory Microcontroller

however, Microcontrollers are used in Embedded systems which is a combination of hardware and software both designed for some specific application. Microcontrollers are also known as Computer-On-A-Chip.

What is a Microprocessor?

A microprocessor is defined as a multipurpose, programmable logic device that has the capability to read binary instructions from memory, accepts binary data as input, and thus processes that data according to instructions to provide results as output.

Microprocessors have Arithmetic Logic Unit(ALU), Registers, Timing, and Control Units.

thus, Some of the Microprocessors are: 

  1. CISC(Complex Instruction Set Microprocessors)
  2. RISC(Reduced Instruction Set Microprocessor)
  3. Superscalar Processors
  4. ASIC(Application Specific Integrated Circuit)
  5. DSP-Digital Signal Microprocessor.

Microprocessors are also known as CPU-On-A-Chip.

Difference Between Microprocessor and Microcontroller

Microprocessor Microcontroller
1. Microprocessors are mainly used in computers. It is the CPU of the computer.e.g 8085,8086 etc. 1. Microcontrollers are used in Embedded Systems. thus, It is like a mini-computer that performs its own tasks. e.g. 8051,8951 etc.
2. Since it is only a processor hence memory and other peripherals are connected externally which makes the processor bulky. 2. Peripherals such as RAM,ROM, I/O ports and Timers, are In-Built in a Microcontroller. All these things are available on a single chip.
3. however, The overall cost of the system is High. 3. thus, The overall cost of the system is less.
4. Since Microprocessors have external components,total power consumption is high. Due to this fact,they should not be used with devices running on batteries. 4. Since Microcontrollers do not have many external components, total power consumption is low. so, Due to this fact, they can be used with devices running on batteries.
5. Microprocessors are based on the Von Neumann Model. 5. Microcontrollers are based on the Harvard Architecture
6. Microprocessors use external busses to access RAM, ROM, and other peripherals. 6. Microcontroller uses an internal controlling bus.
7. Microprocessors have a small number of registers due to which operations are memory-based. 7. Microcontroller has more registers due to which programs are easier to write in them.
8. Microprocessors do not have power-saving features. 8. Microcontrollers have power-saving features.
9. Microprocessor requires an External Memory for program and data storage. 9. Microcontrollers have an On-Chip memory embedded. Hence, it does not require any external memory for program and data storage.
10. thus, Systems based on Microprocessors run at a very high speed. 10. therefore, Systems based on Microcontroller run at speeds of 200Mhz or more depending on the Architecture.
11. Microprocessor is complex and expensive and requires a large number of instructions to process. 11. Microcontroller is simple and inexpensive, requiring less number of instructions to process.
12. Microprocessors are also used for general purpose applications that allow us to store large amounts of data. 12. Microcontrollers are thus used for application-specific systems.
13. Volatile Memory (RAM) of a Microprocessor is in the range of 512MB to 32GB. 13. Volatile Memory (RAM) of a Microcontroller is in the range of 2KB to 256KB.
14.  Hard disk (ROM) for the microprocessor is in the range of 128 GB to 2 TB. 14. Hard disk (ROM) for the microcontroller is in the range of 32KB to 2MB. 
15. Microprocessor is available in 32-bit and 64-bit. 15. Microcontroller is available in 8-bit, 16-bit, and 32-bit.
16. Peripheral Interface for microprocessors is USB, UART, and high-speed Ethernet. 16. Peripheral Interface for microcontrollers is I2C, SPI, and UART.

Applications of Microcontroller: 

The microcontroller is used in :

  1. Smart Phones
  2. Automobiles
  3. Camera
  4. Security Alarms
  5. Watches
  6. Keyboards

Applications of Microprocessor:

A microprocessor is used in :

  1. Desktops
  2. Laptops
  3. Workstations
  4. Server
  5. SuperComputers
  6. Routers

What to choose…. MICROCONTROLLER or MICROPROCESSOR?

Before answering these questions, first let’s summarise the key differences between microcontroller and microprocessor:-

  • thus, Microprocessors do not have any in-built peripherals. On the other hand, Microcontrollers have in-built peripherals due to which the Microprocessor is quite bulky whereas the Microcontroller is light weighted.
  • The cost of a Microprocessor is more than that of a Microcontroller.
  • The power consumption of a Microprocessor is more than that of a Microcontroller.
  • The speed of the Microprocessor is more than that of a Microcontroller.
  • A Microprocessor requires a large number of instructions to process whereas a Microcontroller requires fewer instructions to execute a process.
  • The Microcontroller has a power-saving feature that is not present in a Microprocessor.
  • A Microprocessor requires an Operating System to work on while Microcontroller does not require any Operating system to work.
  • A Microprocessor needs External memory to store data and instructions while a Microcontroller has Embedded memory in it.

From the above points, it is clear that both Microcontroller and microprocessor have their pros and cons. A microprocessor will be a better choice when you want to process a high amount of data at a very high speed.

conclusion:

On the other hand, a Microcontroller will be a better choice if you want to work on some tasks cost-effectively.

But out of both of them, a Microcontroller should be the first choice because we can implement any project idea cost-effectively with the help of a Microcontroller.

In the end, we can conclude that Microprocessors cannot take the place of Microcontrollers and vice versa, since both of them are useful in various applications. so, I hope this blog helps you in the differentiation between Microprocessors and Microcontrollers.

Written By: Utkarsh Pathak

Reviewed By: Vishal Rathod

If you are Interested In Machine Learning You Can Check Machine Learning Internship Program
Also Check Other Technical And Non Technical Internship Programs

Street light monitoring system using Iot

Introduction The Internet of Things these days is quite popular in the development of different low-cost systems with the help of a Microcontroller. Main aim

Read More »

Smart alarm clock using IOT

Introduction The Internet of Things these days is quite popular in the development of different low-cost systems with the help of a Microcontroller. These smart

Read More »

Weather reporting system using IOT

Introduction The Internet of Things helps to control and monitor different devices wirelessly over the Internet. The Internet acts as a medium for communication between

Read More »

Difference between Microprocessor and Microcontroller

Key difference: The difference between a microprocessor and a microcontroller lies in the presence of RAM, ROM, and other peripherals in a microcontroller. A microprocessor only contains the CPU and lacks the other components.

A microprocessor and a microcontroller, both are essential processors that are designed to run computers. The functions of both the processors are same. The basic difference between the two is that  the microprocessors are tasked to perform a variety of functions, whereas microcontrollers are small and task specific computers. This article helps to find more differences between the two processors.

Microprocessors are normally called as the Central Processing Unit or the CPU of a microcomputer. It is also said to be the heart and the brain of a computerized machine.

A microprocessor is required to perform an array of tasks. It is a small computer which is used to do arithmetic and logical operations like controlling the system and storing the data, etc. The micro processor processes the input or output data peripherals and gives the function to get back results. The first commercial Microprocessor was released by Intel in November 1971 and was named 4004; it was a 4-bit micro processor.

The operations performed by a microprocessor are general in their purpose. Therefore, it is considered essential to perform any logical operations in a computerized machine. The microprocessors are configured into microchips; it is crafted from miniature sized transistors and some other circuit elements on a solitary semi-conductor IC to serve their purpose in a computer. It is abbreviated by ‘µP’ or ‘uP’. There are five main type of processors:

  • Complex Instruction Set Microprocessors
  • Reduced Instruction Set Microprocessors
  • Superscalar processors
  • The Application Specific Integrated Circuit
  • Digital Signal Multiprocessors

Micro-controller is a computer on-a-chip which is optimized to manage electric gadgets. It is a device that includes microprocessor, memory and input/output devices on a single chip. It is said to be the heart of an embedded system.

Microcontrollers are specific in nature to the task they need to perform. It has a microprocessor on its board to carry out all the logical operations of the gadget. Once the microcontroller is programmed, it can work on its own on the stored set of instructions and can execute the operations or the tasks as and when required. It is intended to be self-satisfactory and lucrative. Also, a micro-controller is a set of fractions in a system, which is fundamental to complete the circuit board. A ‘fixed-in computer system’ is intended to carry out one or more functions again and again with real time work out limits. This system is embedded as an element in the hardware and motorized elements of a computerized machine.

Microcontrollers are intended to perform particular operations which help to control particular systems. It is abbreviated as ‘uC’, ‘µC’ or ‘MCU’.

Microcontrollers are like small computer in which a CPU, memory unit like RAM and ROM, I/O peripherals, timers, counters, are embedded in one integrated circuit i.e. IC. They are easily interfaced to external peripherals like serial ports, ADC, DAC, Bluetooth, Wi-Fi, etc. Here, the interfacing process is faster as compared to the microprocessor interfacing. Most of the times, microcontrollers use RISC or CISM architecture to perform a task in different machines. The different types of microcontrollers are:

  • 8-bit microcontroller
  • 16-bit microcontroller
  • 32-bit microcontroller
  • Embedded micro-controller
  • Embedded micro-controller

Comparison between Microprocessor and Microcontroller:

 

Microprocessor

Microcontroller

System

It is the heart of the computer system.

It is the heart of an embedded system.

Contains

It contains CPU, general purpose registers, stack pointers, program counters, clock timing and interrupt circuits.

It contains the circuitry of microprocessor and has built-in ROM, RAM, I/O devices, timers and counters.

Data memory

It has many instructions to move data between memory and CPU.

It has one or two instructions to move data between memory and CPU.

Circuit

It is large.

It is small.

Cost

Cost of the entire system increases.

Cost of the entire system is low.

Bit instructions

It has one or two bit handling instructions.

It has many bit handling instructions.

Register numbers

It has less number of registers; hence the operations are memory based.

It has more number of registers; hence the programs are easier to write.

Storage

It is based on Von Neumann architecture, where the program and data are stored in the same memory module.

It is based on the Harvard architecture, where the program memory and data memory are stored in separate module.

Time

Access time for memory and I/O devices is more.

Less access time for built-in memory and I/O devices.

Hardware

It requires more hardware.

It requires less hardware.

Difference Between Microprocessor and Microcontroller

There was a time when the size of a computer was the same as the size of a bus. Yes, those were the days when computers were invented and vacuum tubes were used to design processors. But now with time and advancement in technologies, processors have been so revolutionized that from the size of a bus they come in the size of a small chip.

Have you ever wondered what makes automatic washing machines “automated”? What makes smartwatches and smart gadgets so “smart”? How does the water purifier know what water pH to maintain and regulate everything on its own? The brain working behind these automated and smart devices is basically a small embedded chip with the microprocessors or the microcontroller.

What is Microprocessor?

As discussed in the introduction, vacuum tubes and relays were huge and unreliable as well, so they were soon replaced by transistors. With the advent of transistors, the CPU was no longer slow and bulky. It consisted of a large number of transistors embedded on a chip called integrated circuit (IC). These Integrated Circuits based processors gave birth to microcomputers – computers with CPU on a microchip(microprocessor), a memory system, a bus system and I/O ports.

A microprocessor is a programmable silicon chip that contains a central processing unit(CPU), that is, it has computing and decision making capabilities. In other words, it is an integrated circuit(IC) containing the arithmetic and logical unit (ALU), control unit (CU) and register arrays on a single chip required to interpret and execute instructions from a program. When combined and connected with other integrated circuits that provide storage for data, programs, input and output, it becomes the heart of a small computer, or microcomputer.

Programmable: The microprocessor can perform different sets of operations on the data it receives depending on the sequence of instructions supplied in the given program.

Integrated Circuits: It refers to a miniaturized electronic circuit consisting of semiconductor devices(transistors), as well as passive components bonded to a substrate or circuit board.

Some popular microprocessors are: Intel 8085 (8-bit microprocessor) and Intel 8086 (16-bit microprocessor).

Features of Microprocessor

  • Von-Neumann Architecture-stores data and code together.
  • Offers built-in monitor/debugger program with interrupt capability.
  • Supports a large instruction set, providing variations of the same operations based on different addressing modes.
  • It offers both serial and parallel I/O as system buses are provided externally.
  • Instruction cycle timer.
  • External memory interfacing is facilitated that is, memory can be connected externally.

What is Microcontroller?

As we know, a microprocessor is not a complete system and requires other components and peripherals to be connected externally. When we bring a microprocessor together with the other needed peripherals on a single integrated circuit, it becomes a microcontroller.

A microcontroller can thus be defined as a complete microprocessor system where memory (RAM/ROM), clocks, system buses, I/O ports, etc, all the necessary components and peripherals(other devices) are integrated with the microprocessor on a single chip.

So we can say that,

Microprocessor = Arithmetic Logical Unit (ALU) + Control Unit (CU) + General Purpose Registers (GPRS)

Microcontroller = Microprocessor + Memory (RAM and ROM) + System Buses (Data Bus, Address Bus, Control Bus) + Clocks + Input/Output (I/O) ports

What makes microcontrollers more economical than microprocessors is the reduction in cost, size and connection complexities of the system. Most of the automated devices and products that we see around us often use microcontrollers based embedded systems.

The above diagram shows how a microprocessor unit(MPU) is connected internally with the system components and peripherals all in a single chip to form a microcontroller system.

Features of Microcontroller

  • Harvard Architecture- stores data and code separately.
  • Processor reset
  • Program and Variable Memory (RAM) I/O pins
  • Device clocking central processor
  • Instruction cycle timers

History of Microprocessor and Microcontroller

Here are some important landmarks from the history of Microprocessor and Microcontroller.

  • In 1946, the first general purpose programmable computer system was developed using vacuum tubes, which was called ENIAC( Electronic Numerical Integrator and Computer).
  • Transistors were invented back in 1945 by J.Bardeen and W.H Brattain of Bell laboratories. *)) by Motorola Corporation, Z-8 by Zilog, F-8 by Fairchild, IMP-8 of National Semiconductors and PPS-8 of Rockwell International.
  • In 1977, an updated version of the 8080- Intel 8085 was introduced. The 16-bit microprocessors 8086 entered the marketplace in late 1970’s and early 1980’s.
  • The first computer system on a chip optimized for control applications – microcontroller was the Intel 8048 released in 1976, with both RAM and ROM on the same chip

Difference Between Microprocessor and Microcontroller

Sr No.. Microprocessor Microcontroller
1 A microprocessor is a programmable silicon chip that contains a central processing unit(CPU), that is, it has computing and decision making capabilities. A microcontroller is a complete microprocessor system where memory (RAM/ROM), clocks, system buses, I/O ports, etc, all the necessary components and peripherals are integrated with the microprocessor on a single chip.
2 Microprocessor contains Arithmetic and Logical Unit (ALU), general purpose registers, stack pointer, program counter, clock timing circuits and interrupt circuit. Microcontroller contains the circuitry of the microprocessor in addition it has in-built ROM, RAM, I/O devices, timers and counters.
3 Since memory and system buses are provided externally, access times for memory and I/O devices are more. Less access time due to in-built peripherals and hence processing speed is faster.
4 Microprocessor based system is more flexible from a design point of view as one can adjust the size of RAM, ROM and other peripherals as per requirement. Less flexible as memory and IO devices are all in-built and fixed.
5 It is based on Von-Neumann Architecture, i.e., it has a single memory map for data and code/program. Microcontrollers take advantage of the Harvard architecture, i. e, storing data and code in separate memory maps to speed up processing.
6 System requires more hardware and connecting peripherals externally makes the circuit more complex. Hardware is reduced due to the single chip microprocessor system where all the peripherals are in-built and internally connected. Less hardware, reduces circuit board size and increases reliability.
7 Microprocessor based systems are expensive. Everything comes in-built so the cost of a microcontroller based system is low as compared to the microprocessors.
8 Large instructions set: It has many instructions to move data between memory and CPU. Instructions are straightforward. It has only one or two instructions to move data between memory and CPU.
9 It is generally used in personal computers where you can buy and connect peripherals based on your requirements. Due to compact design and cost-effectiveness, it is preferred in embedded systems like washing machines, water purifiers, etc.

Applications of Microprocessor

Microprocessors are mainly used in devices like:

  • Personal computers (PCs).
  • Simple calculators.
  • Computer Games.
  • Accounting system.
  • Complex industrial controllers.
  • Military applications.
  • Defense systems.
  • Computation systems

Applications of Microcontroller

Microcontrollers are preferred in embedded products and the following are some of its applications:

  • Home appliances: Washing machine, water purifiers, refrigerators, microwave ovens, etc.
  • Gadgets and devices: Calculators, keyboard, printers, modems, mobile phones, etc.
  • Automobile engines, flight control systems, traffic lights, control systems, etc.
  • Military applications

Conclusion

The comparison table vividly depicts that both microprocessors and microcontrollers come with some advantages and disadvantages. The choice mainly depends on the system architecture, the hardware requirements and the budget. Microcontrollers are widely used in embedded systems that are dedicated to performing specific tasks, whereas microprocessor-based circuits are for complex system designs.

Azure IoT device types overview

Twitter

LinkedIn

Facebook

E-mail address

  • Article
  • Reading takes 2 minutes

IoT devices operate on a wide range of hardware platforms. From small 8-bit microcontrollers to the latest x86 processors used in desktop computers. Deciding which hardware to choose for an IoT device depends on many factors, this article outlines some of the key differences.

Key differences between different types of equipment

When choosing equipment, it is important to consider cost, power consumption, network connections, and available inputs and outputs.

  • Cost — Small, inexpensive devices are typically used to create the final product in bulk. However, the development of the device may be more costly given the use of a highly constrained device. The cost of development can be spread across all manufactured devices, so its share for each individual device will be small.

  • Power — If the device will run on battery power without being connected to the mains, the amount of power consumed by the device is relevant. Microcontrollers often use less power and are more suitable for battery operation.

  • Network access — There are many ways to connect your device to cloud services. Ethernet, Wi-Fi and cellular are other options available. The type of connection you select will depend on where the device is deployed and how it is being used. For example, a cellular network may be a good option given its large coverage, but it can be costly to use when carrying large amounts of traffic. On a wired Ethernet network, data transfer costs are low, but device portability is limited.

  • Inputs and outputs — The inputs and outputs available on a device directly affect the performance of the devices. As a rule, microcontrollers have many I/O functions built directly into the chip, and for them there is a wide range of sensors for direct connection.

Comparison of microcontrollers and microprocessors

IoT devices can be divided into two broad categories: microcontrollers (MCUs) and microprocessors (MCUs).

microcontrollers are less expensive and easier to operate than microprocessors. In a microcontroller, many functional elements such as memory, interfaces, and I/O are located on the chip itself. The microprocessor uses the functional components of the supporting chips. The microcontroller often uses a real-time operating system (RTOS) or runs without an operating system and sends real-time responses and highly deterministic responses to external events.

The microprocessor typically runs a general purpose OS such as Windows, Linux, or MacOSX that provides non-deterministic, real-time response. Usually no guarantees are given as to when a task will be completed.

Below is a table showing some significant differences between a microcontroller and a microprocessor based system.

Microcontroller (MCU) Microprocessor (MPU)
CPU Less than Read more
RAM Less than Read more
Flash Less than Read more
OS Bare Metal / RTOS general purpose (Windows / Linux)
Development complexity Harder Simpler
Power consumption Below Above
Cost Below Above
Deterministic Yes No, with exceptions
Device size Less than More than

Next steps

The type of IoT device you select directly affects how that device connects to Azure IoT.

Explore the various Azure IoT SDKs to find the one that works best for your device.

Baikal-S processor presented / Sudo Null IT News While the general public was vigorously discussing the report on testing servers based on Elbrus-8C by Sberbank, savoring the various details of this hot story, people a little more immersed in the industry were looking forward to the announcement of Baikal-S.

Why is that? Why is this processor so epochal?

Maybe it unconditionally rips competitors from Intel/AMD on tests, forcing the managers of these companies to feverishly learn Cyrillic? No, this is quite an “average” server processor of the Intel Xeon Gold 6148 level or the same ill-fated Intel Xeon Gold 6230.

Perhaps it has some unimaginable novelties in functionality that no one in the world could think of? Again, no, the functionality of the processor is absolutely standard and corresponds to similar solutions based on the ArmV8 architecture.

What is the uniqueness of this processor, what is the breakthrough, the reader will ask? The answer is very simple — namely, that this is the first competitive general-purpose high performance CPU in the modern history of Russia. Moreover, it is competitive in every sense — in terms of price, performance, and power consumption. No uniqueness and «analogue». Just a good chip that can adequately compete with competitors, with a clear market niche and prospects. At the conference, Baikal-S was called (absolutely right in my opinion) a «workhorse». This is the same “workhorse” that is able to replace hundreds of thousands and millions of Xeon-level processors currently operating in data centers and enterprises throughout Russia (and not only). And to do it in such a way that the word «import substitution» does not evoke a smirk and a feeling of inferiority in people, but pride in the country.

Let’s take a quick look at the characteristics of this processor: ArmV8 architecture, 48 cores of Cortex-A75 microarchitecture, core frequency 2-2. 5 GHz, TSMC 16nm process technology, TDP 120W. More technical details here.

This is how Baikal-S looks like compared to competitors according to its creators:

Comparison of Baikal-S with analogues ) and compare them with analogues/competitors, both domestic and foreign. Of the domestic ones, Elbrus-8SV and Elbrus-16S are presented in comparison, because these are essentially the only analogues that target the same niche as Baikal-S, as well as Baikal-M, so that the dynamics of development can be seen. Of the imported processors, Intel Xeon Gold 6148 was chosen as the basis. at the conference, the comparison was mainly with this processor and there is a wide range of benchmark results for it. In some cases, for Baikal-S at 2.5 GHz and Elbrus-16S, estimates were used, in the absence of actual data, but the error in the numbers should be small there. All «parrots» belong to the «bigger-better» category. It turned out something like this:

10.68 10.68 10.68 10.68 10.68 10.68 10.68 10.68 10.68 10.68 10.68 10.6LA0238

003

I also can’t help but note this slide from the presentation:

Software ecosystem

It is important because the transition to new hardware, especially a different architecture, is primarily a pain in porting / porting / accessibility of software. Future servers based on the Baikal-S processor can take full advantage of the broad ecosystem of the Arm architecture (albeit inferior to the x86 software ecosystem for now).

Of course, it’s not the beautiful presentations or benchmark numbers that speak fully about the success of any processor, but the number of sales in units and rubles. In this regard, the Baikal-S processor still has a long way to go, and the team of Baikal Electronics and its partners will have a lot of work to do. But Baikal-S has everything to start measuring the number of sales in hundreds of thousands.

Happy New Year 2022! For the domestic microelectronics industry, it will undoubtedly be extremely interesting and eventful!

Microcontroller and microprocessor — what’s the difference?

As part of various electronic devices, both microcontrollers and microprocessors are often found. Both of these components take commands from memory and perform logical and arithmetic operations on them, while working with I / O devices and other peripherals. So what’s the difference then?

Microcontroller

Microcontroller — (hereinafter MK) is a microcircuit designed for program control of electronic circuits. MK is performed on a single chip. It contains both a computing device and ROM and RAM. In addition, the MK most often contains I / O ports, timers, ADCs, serial and parallel interfaces. In some, you can even notice a Wi-Fi / Bluetooth module and even NFC support.

The first microcontroller patent was issued in 1971 years of Texas Instruments. The engineers of this company proposed to place on the chip not only the processor, but also the memory with input / output devices.

Block diagram of the microcontroller

Despite the fact that everything necessary for the operation of the microcontroller is already in it, sometimes they are used in tandem with external peripheral devices. For example, when the internal ROM is not enough (or it is simply missing), an external one is connected. This is exactly what they did with the ESP series microcontrollers. The ESP8266 has no onboard memory at all, while the ESP32 has a measly 448 KB. Therefore, flash-memory with a capacity of 1–16 MB is placed in their case (more precisely, under the radiator).

Then why not make a portable computer based on a microcontroller? The fact is that the computing power of the MK is often quite small. It is enough to control, for example, an irrigation system, a microwave oven, or some kind of machine.

For example, one of the powerful boards of the Arduino platform is Due. It is controlled by a 32-bit AT91SAM3X8E AVR microcontroller. Its clock frequency is 84 MHz. There is 512 KB of permanent memory, and 96 KB of operational memory. The MK has 54 digital GPIOs (12 of which support PWM), 12 analog inputs and 2 analog outputs (DAC). There are also various interfaces, such as UART, SPI, I2C.

Despite these minor characteristics, microcontrollers are very popular. They are used where a lot of computing power is not required — robotics, greenhouse controllers, household appliances.

Microprocessor

With a microprocessor (hereinafter referred to as MP), things are a little different. It contains an arithmetic logic unit, a synchronization and control unit, a memory device, registers and a bus. That is, MP contains only what is directly needed to perform arithmetic and logical operations. All other components (RAM, ROM, input / output devices, interfaces) must be connected externally.

Block diagram of a microprocessor device

The first microprocessors also appeared in the early 70s. The 4004 was considered the most popular at that time. This is a microprocessor developed by Intel and introduced on November 15, 1971. It had impressive characteristics for that period:

  • 2300 transistors;
  • clock frequency — 740 kHz;
  • bit depth of registers and bus — 4 bits;
  • manufacturing process — 10 microns;
  • crystal area: — 12 mm².

By the way, 4004 was made in a conventional DIP-16 package. This MP is the most popular chip to collect. Some copies sell for $400 each. Less rare ones cost about $250.

Within a couple of years, 8-bit MP made it possible to create the first household microcomputers.

Naturally, the advantage here is that you can choose to connect different peripherals with different characteristics to the MP (which is not possible in all cases on the MK). The second main difference between a microprocessor and a microcontroller is that MPs have more processing power. It does not make sense to put them in microwaves and «smart» light bulbs. Microprocessors are used where the computing power of the MK can no longer cope — game consoles, complex computing devices and devices, gadgets.

It turns out that in order to ensure the operability of the microprocessor, you need to connect at least a minimal set of peripherals to it. Cons:

  1. Size — if in the case of the MK everything is already in one case, then the minimum set of elements for the MP to work takes up more space.
  2. Price — usually, the entire «assembly» of components for MP comes out much more expensive than «bare» microcontrollers.

Pros:

  1. Performance — Microprocessors are more powerful than microcontrollers.
  2. Choice — in the case of MP, you have the opportunity to pick up components. This will allow you to put more suitable peripherals for your goals.

Application

The microcontroller has a clear simplicity: less hardware is required, it is easier to work with in software, and the cost starts at a penny. But this simplicity also applies to performance. As mentioned above, the microcontroller is not capable of providing high performance on a par with microprocessors. Although microprocessors require external hardware switching and are difficult to work with respect to MK, they can already be easily used in more complex devices.

However, sometimes craftsmen appear on the network who cram DOOM into the ESP32 microcontroller and even an NES game emulator.

Advertising on Tproger: we will find developers of the right stack and level for you.

More

Advertising on tproger.ru

Loading

DIY microprocessor. Part 1.1.

Introduction

This article provides an example of microcontroller development in FPGA. The article may be of interest to both students and novice developers, as well as professionals who have experience in developing devices, including those in FPGA, but for one reason or another did not have the opportunity to develop and use microprocessors “embedded in FPGA”. The following are two introductions — for students and for professionals. I would like this article to be of particular interest to each of these groups of readers. But since the motivation for reading this article is different for the two groups, two introductions follow.

All articles of the cycle:
  • DIY microprocessor. Part 1.1.
  • DIY microprocessor. Part 1.2.
  • DIY microprocessor. Part 2.1.
  • DIY microprocessor. Part 2.2. Bit Processor
  • DIY microprocessor. Part 3.1. Assembler and software simulator
  • DIY microprocessor. Part 3.2. Assembler and software simulator
  • DIY microprocessor. Part 4.1. How to debug the microcontroller built into the FPGA?
  • DIY microprocessor. Part 4.2. How to debug the microcontroller built into the FPGA?
  • DIY microprocessor. Part 4.3. How to debug the microcontroller built into the FPGA?
  • DIY microprocessor. Part 5.1. About the start of the project of the microcontroller embedded in the FPGA
  • DIY microprocessor. Part 5.2. About the start of the project of the microcontroller embedded in the FPGA
  • DIY microprocessor. Part 5.3. About the start of the project of the microcontroller embedded in the FPGA
  • DIY microprocessor. Part 5.4. About the start of the project of the microcontroller embedded in the FPGA

All files given in this article will be available on the Internet at the author’s website
www. iosfk.narod.ru.

Introduction for students

The following prompted me to write this article: my daughter, who studies at a fairly well-known St. Petersburg university, is now “taking” a course in microprocessors. But “passing” is the right word to use here. For memorizing the lecturer’s words and modest «labs» — this is how we once taught the computer course. But in order to understand what is at stake, we will have to make a short digression into recent, for me, history.

My experience with computers begins with nightmare memories of a machine, I think it was Promin, which was installed in our department at LETI, where I, then a fourth-year student, worked part-time as a laboratory assistant. So, the year is probably 1975. And term papers and diplomas with the use of computer calculations were just coming into vogue. And here is the term paper “Calculation of a transformer in an oil tank” — the name is precisely why I remember it because it was my first attempt to automate engineering work using a computer, as they would say now. I, as an employee of the department, was allowed to carry out part of the calculations on a computer. An algorithm was written, a program was compiled, and now the time has been received to work on the machine. Next is trouble.

It turns out that in a machine where the commands were given by special coding strips that had to be stuck into a special typesetting field, there were not enough multiplication commands to implement my algorithm. Even after I ran to the next department and borrowed multiplication bars from the same Promin, it turned out that two teams were missing. Of course, the course paper was calculated on a slide rule.

Let’s go back to today. Many of today’s students simply don’t realize how rapidly technology is changing. But as technology changes, the priorities for engineering work and teaching methods must also change. The way we learned yesterday is no longer possible to learn today. Today, a young engineer who cannot use ORCAD, PICAD, Electronics Workbench-type electrical circuit simulators, cannot describe a circuit in VHDL and write a hundred lines of code in C ++ is worthy of regret. If yesterday it was fashionable to program video games, databases and accounting programs, today the market has already changed.

A huge new market has opened up today — FPGA programming. If 2–3 years ago FPGA programming was understood as the development of peripherals for standard microprocessors, now the situation has changed radically. Now it’s time for «systems on a chip». More details about this will be written in the introduction for professionals. FPGA programming will soon smoothly move into the development of custom microcircuits — «systems on a chip». And there are already the first Russian successes in this direction (see K1).

So, to finish this introduction, I must say the following. If you are not taught this at your university — demand, demand as persistently as they demand stew in advertising. You are entitled to it. If you do not learn this now, then it will be very difficult to catch up with others. But, if there is no way to learn modern technologies at a university, then remember what his dad said to Scrooge McDuck: “Scrooge, work with your head, not with your hands. ” Most of the programs produced by large and well-known software companies have a student version, that is, they are completely free. They are available on the websites of the companies themselves and their dealers. As for Altera, the company sends out a CD, which also contains a student version of the software, articles and descriptions for microcircuits. In order for this article to serve in full measure, take the book L2. The book also comes with a CD with the necessary software and training examples for the MAXPLUS software.

Introductions for professionals

Let’s just say that standard microcircuits are running out of time. A new time begins — the time of «systems on a crystal». The development of the systems themselves, parts of such systems — library megafunctions or cores, is becoming not only a tempting prospect, but also a reality. Moreover, a profitable reality. So, according to data from the Internet, a company that sells a license for its processor core for telecommunications receives $ 150,000 at a time for each sale of a license, and $ 7 from each license issued by their chip for the first year of production and $2 per chip for subsequent years. Imagine that this is a processor for a cell phone or a video card, and count.

Over the past six months, the technological breakthrough of chip manufacturers has led to the emergence of chips that can work with a processor core at a frequency of up to 300 MHz. The resource that can be borrowed for the project has also grown. Hardware blocks appeared, for example, the ARM7TDMI processor in Excalibur series chips or multipliers in the Stratix series. And this means that the microprocessor implemented in the FPGA is able to compete with the average performance DSP. And when executing blocks that perform multiplication and division according to a user-defined algorithm, a microprocessor implemented in an FPGA and focused on a specific user task will have performance that is not lower, and maybe even higher, than the fastest DSPs.

The growth in the popularity of one direction or another can be estimated by the number of sites on the Internet that reflect the interests of developers.

Chip manufacturers offer various cores optimized for their products for embedding in user projects, eg http://www.altera.com/ipmegastore/index.html.

Triscend offers a 40-MHz 8051 core-on-chip, with a user-accessible FPGA. A similar product is available from Atmel Corp. — FPSLIC. A more detailed description of the proposed products is given in L3, 4.

Altera offers microcontrollers based on an ARM9T core (http://www.arm.com/) or MIPS32 4K core (http://www.mips.com/).

Part of the Altera™ Embedded Solutions Project, the Excalibur Processor and its implementation, the Nios™ Embedded Processor Software Engine. Nios is a general purpose, reconfigurable embedded processor that fits seamlessly into the Altera APEX™ device, leaving most of the logic available to house peripherals and user functions.

The Nios embedded processor core is a pipelined RISC processor that executes instructions in one clock cycle. More details about this processor can be found in L5-13. .by/IEESD-2000.

Designs and their parts are resold as intellectual property, i.e. they become a commodity. Site for reselling projects — http://www.hellobrain.com/.

But at the same time, non-profit centers exist and develop, such as sites offering open projects — and www.opencores.org. There are also sites that support the development of processors in FPGA http://www.fpgacpu.org/.

The growth of interest in the development of processors is reflected in the growth of publications of open-source projects on the website www.opencores.org. Now there are 35 microprocessor designs from the tiny tiny8 to the 32-bit Yellow Star.

As for Russian developers and developers from the CIS countries, the situation here is somewhat different. Chip manufacturers have a program to support core development partners (megafunctions). This is advertising, and service, and much more. But for Russian developers it is still almost impossible to get into partners, and this sharply limits their opportunities.

The advantage of the microprocessor «embedded in FPGA»

«embedded in FPGA» microprocessors and microcontrollers based on them have a major advantage over conventional microcontrollers of medium performance: they are absolutely synchronous with the rest of the project located in the same chip. If the device you are designing works in real time and with large data streams that you must extract from the periphery and give to the periphery, then the task of synchronization becomes quite serious.

All fast «small» microcontrollers work asynchronously (relative to the peripherals in Altera), and do not have a hardware «Ready» input, so they can only be synchronized with the peripherals by software, and to programmatically bind them to a synchronous project in Altera, you need, firstly , several processor instructions, which will take several clock cycles, secondly, it also requires an FPGA chip resource and, thirdly, it takes up quite a lot of space on the board.

Fast «large» processors have the ability to hardware synchronize on the «Ready» input, but they are expensive and take up even more space on the board. And the use of a «large» processor for small tasks is impractical. And this means that with the same speed of the processor core, a performance gain of 2-3 times will be obtained.

The next benefit is dedicated user commands. This means that when designing a microcontroller, the user can pre-program and determine the groups of the most frequently repeated commands in the instruction stream executed by the processor. If now a group of such instructions is combined into one specialized instruction, then the processor speed for this class of tasks will increase, and it will become easier to program it. Specialized user commands (see, for example, the description of NIOS processor commands) can be single-cycle or multicycle. They can be executed in the ALU of the microprocessor or in an additional computing unit connected to the ALU, such as FFT, FIR, etc.

Another advantage is that the microcontroller becomes «invisible». That is, of course there is a microcontroller, you just can’t see it anymore. This is not a cabinet, not a frame, not a set of boards, and not even a chip package. It is now just a file that is included in another file. But surprisingly, he performs his functions no worse, and often better than his «big brother».

And the last thing to note is that the microcontroller receives the peripherals and in such quantity as the user needs.

Peripherals can be the most exotic: from a simple UART to Ethernet MAC 10/100 controllers or DSP coprocessors.

Among the library elements that describe the peripherals for the microprocessor, the following are available:

  • Universal Asynchronous Transceiver (UART),
  • timer,
  • parallel input — output (PIO),
  • SRAM interface,
  • SDRAM controller,
  • FLASH memory interface,
  • serial peripheral interface (SPI),
  • I2C controller,
  • pulse width modulator (PWM),
  • IDE disk controller,
  • 10/100 Ethernet LAN Controller (MAC),
  • USB controller.

Of course, this list is far from complete, but it gives an idea of ​​the level of development of library elements that has been achieved. By connecting the required library elements, you can form the microcontroller necessary for a particular application.

We have a state machine, why do we need something else?

One often hears such reasoning: “To process something complex 16-bit or 32-bit, of course, a processor is applicable. But for something small, why do we need these programs, assemblers, etc. We also have a state machine, well, and a handful of triggers. We’ll get by with that too.»

To compare a microcontroller with a finite state machine, it is necessary to compare the labor intensity of the following works: write a small program, run. Moreover, writing a program for a microcontroller is much easier than writing a state machine in AHDL, VHDL, and so on.

  • To change the algorithm of the finite state machine, it is necessary to completely rewrite it, which requires a lot of time and effort, it is enough to change the firmware in the microcontroller.
  • To correct an error in a finite automaton, it is necessary to rework the entire project in which the automaton is described, and in the microcontroller version, you can only rewrite the program.
  • The state machine must have a limited number of states, since this requires additional logic cells, while the microcontroller is limited in the number of states only by the amount of program memory, which is several orders of magnitude more.
  • And the last but very significant addition. The state machine becomes more and more slow as the number of states increases, since the increase in the number of additional logical cells leads to an increase in the signal transit time. Each change of the automaton may lead to the need to re-verify the project.
  • Instructions executed by a microprocessor are defined in terms of execution time and are independent of the program running on that processor. Therefore, the microprocessor usually runs at the required speed, and this speed does not depend on the specific application, on changes or modifications to the program during debugging.

    If interest in this topic has not yet disappeared, then you should not wait until the static automaton in your devices grows into a terrible “monster”, with improvements and debugging, and you will have to abandon it. Then everything else in this article should also be of interest to you.

    This is the end of the lyrics and the beginning of the project

    The material presented in this article was written on the basis of the real development described in L14. The simplified microprocessor model described in this article is only an example for development or study. But nevertheless, it can be easily modified for practical use.

    The development methodology allows you to evaluate the complexity, determine the resource required to implement the microcontroller in the FPGA. The entire development process will consist of the following stages:

    1. Development of a design assignment.
    2. Development of a microprocessor block diagram.
    3. Development of opcode fields.
    4. Development of command codes.
    5. AHDL description of the blocks included in the microprocessor.
    6. Description of the microprocessor in AHDL.
    7. Writing firmware.
    8. Microprocessor simulation with firmware.
    9. Conclusions.

    What do we want?

    The famous hero of children’s fairy tales at first liked to bury money, and then for a long time he could not remember what he had done the night before and where the money had gone. To prevent this from happening to us, let’s first try to «draw a known field.» In the old language, this stage was called the development of technical specifications. So we want to design:

    1. RISC processor, because you don’t want to parse verbose instructions. Let all our commands be executed in one clock cycle.
    2. Applies to the processor Harvard structure. We will assume that we do not need to load the command memory and all commands will be stored in the command memory, which happens when the microcircuit is initialized. Let’s call the instruction memory — Program Space (PS). Let’s limit the PS address area to 16 bits. Further paging of memory is possible, but for most cases this will already be enough. For a specific implementation of the microprocessor, we introduce a parameter that describes the width of the PS address bus.
    3. Locate the data memory in a separate memory area. Let’s call it Data Space (DS). Let’s limit the DS address area to 16 bits as well. For a specific implementation of the microprocessor, we introduce a parameter that describes the width of the DS address bus.
    4. Let’s represent the I/O area as a set of registers, give them numbers 0..15.
    5. To implement real-time mode, you will need an interrupt request input — IRQ.
    6. To process interrupts and subroutine calls, we need a stack.
    7. The data bus width must be set. For definiteness, we choose the bit depth equal to 16 bits.
    8. We will assume that the RESET system signal, which operates inside the crystal, will also be applied to our microprocessor.

    Building a microprocessor core

  • The DS area will consist of one register,
  • I / O area will also consist of one register,
  • we apply the simplest structure for fetching data from memory, that is, asynchronous fetching and without a command pipeline,
  • we will assume that the interrupt request input is set synchronously with the clock frequency and the duration of the request input is 1 clock cycle.
  • These simplifications are made only to shorten the texts of descriptions, since it is rather difficult to provide extensive descriptions within the framework of a journal article. However, the DS address counter is exactly the same as the PS address counter. The increase in the number of registers is associated only with an increase in the description in the decoder area of ​​control signals that are generated during write operations to these registers and with the output bus multiplexer from the registers to the microprocessor internal bus.

    The interrupt request input is usually serviced by an interrupt controller that latches the request on an edge or level and sets the interrupt vector. The interrupt controller can be considered separately and is not a necessary link for this project. Thus, the above abbreviations should not have a significant impact on the material presented.

    Based on the task and the simplifications made for the microprocessor, we obtain the architecture shown in fig. 1.

    The microprocessor consists of a set of the following blocks:

    Control unit for generating control actions on all microprocessor units — ALU,

    Program memory address counter — PS_CNT,

    Program memory block — PS,

    Data memory block — DS,

    Stack

    Registers — Rg0 and Rg1.

    At the inputs of the microprocessor we will apply a clock signal — CLK and an interrupt request signal — IRQ.

    The RESET system signal is applied to the microprocessor, as well as to all other units of the system (not shown here).

    The outputs of the microprocessor will be the signals from the outputs of the registers Rg0 and Rg1.

    The program counter, when loading the chip or when the system is initialized by the RESET signal, is set to state 0 and then counts the program memory addresses.

    Addresses are input to the PS block. The data stored in program memory is selected according to the received address.

    Next, the data from the PS output goes to the ALU.

    For ALU, these will be the microprocessor instruction codes. The DS, Stack, Rg0 and Rg1 blocks communicate with the ALU on one internal data bus.

    The signal from the IRQ input enters the ALU and is decoded in the ALU as a command code, and the IRQ signal has priority in execution over the command code received by the ALU from the PS.

    Let’s choose the commands that meet our tasks

    Let’s describe the groups of commands that the microprocessor should execute.

    1. Service commands:

    Baikal-M

    Baikal-S, 2

    Baikal-S, 2. 5

    8

    16

    Intel Xeon Gold 6148

    SPECCPU INT 2017

    7.92

    98 71.5

    88 9000

    100

    SpecCPU FP 2017

    8,01

    80,4

    99

    16.55

    43

    100

    Coremark

    66195

    650000

    799500

    9008 430080003

    76232

    455000

    Whetstone

    16477

    230000

    282900

    16495

    43184

    162500

    7zip0003

    13638

    33490

    97000

    Geekbench 5, st

    217

    405

    498

    159 (x86)

    211 (x86)

    838

    Geekbench 5, MT

    1524

    13671 9000

    NOP No operation
  • Load command group:
    LDI Reg, < C > Loading into the register receiver constants — (data from the command memory at the current address)
  • Send command group:
    MOV Reg, Reg Writing the contents of one register to another
    MOV Reg, [Mem] Write register contents to memory
    MOV [Mem], Reg Write from memory to register
  • Branch commands:
    JMP Addr Jump to absolute address
    CALL Addr Calling a subroutine (with writing the return address on the stack)
    RET Subroutine return (by stack contents)
  • To study the principles of the microprocessor, this set of commands will be enough. In practice, the set of commands can be supplemented and extended to what is necessary to perform a specific set of user tasks. Arithmetic operations are removed from the list of commands, since the implementation of mathematical operations in the FPGA is sufficiently described, and they are not considered within the framework of this article.

    Let’s define command fields

    To define command fields it is necessary to define the largest required field for executing given commands. Obviously, for a given instruction set, the largest field is required for the instruction MOV Reg, [Mem] and MOV [Mem], Reg. The [Mem] field is 16 bits, the Reg field is 4 bits (for 16 registers). Therefore, we choose the PS memory capacity — 24 bits. Then the command to directly write from memory to the register will look like this:

    23….Cop — 4 bits…20 19…..Reg – 4 bits …16 15 …Mem – 16 bits. . 0

    The command MOV Reg, Reg transfer from register to register will look like this:

    19…..Reg – 4 bits …16 3 … Reg — 4 bits.. 0

    LDI Reg instruction — direct loading into the receiver register of data from the instruction memory at the current address:

    23….Cop — 4 bits…20 19…..Reg – 4 bits …16 15 …Const – 16 bits.. 0

    JMP Addr command — an unconditional jump command to an absolute address will look like this:

    15 …Mem – 16 bits.. 0

    CALL Addr command — the command to unconditionally call a subroutine at an absolute address will look like this:

    23….Cop — 4 bits…20 15 …Mem – 16 bits.. 0

    Command RET the command to unconditionally return from a subroutine or from an interrupt will look like this:

    The NOP command — “No operation” will look like this:

    So, we need to get eight instructions for the microprocessor, and, as we can see, the 4-bit opcode field allows us to have 16 instructions. It should be noted that for more powerful processors, the choice of opcode fields is a very serious task, which determines how efficient the processor will be for a particular set of instructions.

    Let’s define the command opcodes

    After the command fields are defined, and we know the bit width of the opcode field, we can determine the command opcodes.

    The easiest way to determine the command code is NOP — there are no requirements here, except for one — this command code must be at the input of the ALU when it receives the «RESET» signal. Since the further development of the project will inevitably lead to pipelining and other professional «tricks», we recommend choosing the command code NOP = 0.

    To somewhat simplify the visual perception of commands, we apply the following encoding: let the transition commands be located in the zone of codes from 8 to H «F». Then the hexadecimal opcodes of the commands will be:

    0 — NOP

    1 — JMP

    2 — CALL

    3-RET

    8 — MOV Reg, Reg

    9 — MOV Reg, [Mem]

    A — MOV [Mem], Reg

    B — LDI Reg

    Command code examples

    The NOP command will have code 000000, and JPM 1234 — the unconditional jump command at address 1234 — will have the command code — 101234, MOV 9, 5 — the command to transfer data from register 5 to register 9 will look like 8

  • , etc.

    Determine the requirements for the stack

    For this problem, we use a stack with a depth of 8 nestings and a bit width equal to the PS address bus. We implement the stack in a separate area from PS and DS — on an array of registers.

    Define interrupt requirements

    Let’s apply the following solution: when an interrupt request is received, we will jump to a fixed address and push the return address onto the stack.

    Define software requirements

    One of the main requirements for the development of embedded software for microcontrollers is the requirement for the need for tool software, that is, we will, at a minimum, need an editor and an assembler. More complex projects may require program simulators, high-level languages, operating systems, etc.

    As for the editor, there are editors such as EditPlus2 (
    http://www.editplus.com), Prisma, and other text editors that allow you to select keywords from a list generated by the user.

    For the convenience of writing programs, you can also create your own assembler, which is now not a difficult task even for an average programmer. Such an assembler associates a human-readable mnemonic with real microprocessor instructions.

    However, and quite often, developers use the instruction set of those microprocessors to which they are accustomed and to which software development tools already exist. Here, microprocessors with the MCS-51 instruction system are in first place, and PICmicro are in second place. For these microprocessors, there are both development tools and huge libraries of developed programs.

    Since the project described here is devoted only to the description of the microprocessor, we omit the further description of the requirements for the tool software. We will assume that we have an assembler that converts mnemonic instruction codes into machine codes and generates an instruction memory initialization file compatible with MaxPlus software.

    Conclusion on the task development stage

    We have developed a task for the microprocessor that performs the main functions, such as data transfer, program branching, interrupt processing.

    To be continued.

    China released the latest processor based on its own unique architecture. It is 50% more powerful than its predecessor

    Technique

    |

    Share

      Loongson officially unveiled the 3A5000 processor based on its own LoongArch architecture. It has nothing to do with x86, ARM and other Western architectures. Compared to its predecessor released in December 2019, the new 3A5000 is 30% more energy efficient and 50% more productive. In terms of its capabilities, it caught up with a number of AMD processors.

      Chinese CPU

      The Chinese company Loongson premiered its latest 3A5000 processor based on its own architecture. It is based on nothing from x86, nor from ARM with MIPS and RISC-V, writes the Tom’s Hardware portal.

      Unique Chinese architecture named LoongArch. According to the developers, the performance of the 3A5000 chip, also known as the LS3A5000, is at the level of the first generation AMD Ryzen. In other words, it still falls short of modern AMD and Intel chips.

      New Loongson designed for use in consumer desktops and notebooks.

      The next Loongson chips will surely be able to compete with the latest AMD and Intel

      The new processor will be sold only in China, at least for the first time after the release. The developers do not name the terms of its appearance outside the PRC, as well as its retail price, at least in the home market.

      Architectural features and capabilities of the processor

      Loongson claims that its LoongArch architecture’s instruction set consists of approximately 2,000 unique instructions. They managed to achieve increased energy efficiency of the processor by eliminating obsolete processor instructions.

      In addition to the basic instruction set, the Binary Transform (LBT), Vector Processing (LSX), Extended Vector Processing (LASX), and Virtualization (LVZ) instructions have also been implemented.

      Processor 3A5000 and the first laptop based on it

      The 3A5000 processor uses a 12nm process. Loongson does not specify in which company’s factories it is produced, and what are its current production volumes. All other Loongson processors are manufactured by STMicroelectronics, Loongson itself does not have its own factories.

      Each such chip contains four computing cores, the frequency of which reaches 2.5 GHz. Each core has a quartet of arithmetic logic units (ALUs) and two vector processing units of 256 bits each.

      Memory operation and comparison with other models

      Tom’s Hardware compared the new 3A5000 with its predecessor, the 3A4000 or LS3A4000. A more modern processor is ahead of it both in terms of performance and energy consumption, and the lead in both of these parameters is quite impressive.

      The 3A5000 is reported to be 50% more productive. Energy efficiency in his case is higher by a considerable 30%. To do this, the processor uses the technology of dynamic control of the supply voltage and the clock frequency of the cores, plus the function of disabling certain blocks if they are not currently involved is used.

      Anton Smirnov, AI Cloud: AI magic begins where servers are combined into “teams”

      Artificial intelligence

      Loongson achieved such outstanding results in less than two years. As CNews reported, the 3A4000 processor was introduced at the end of December 2019. In many ways, the big difference in the capabilities of the chips is associated with their topologies — if the 3A5000 is 12-nanometer, then the 3A4000 is only 28-nanometer.

      28nm Loongson 3A4000

      Loongson’s new brainchild contains two DDR4 RAM controllers, up to DDR4-3200. There is support for error correction protocol (ECC) memory and four HyperTransport 3.0 controllers. Also, the developers did not fail to implement in 3A5000 support for SM2, SM3 and SM4 — Chinese data encryption standards.

      Server processors from China

      For the first time, the upcoming premiere of the 3A5000 processor became known back in mid-April 2021. At the same time, information appeared that Loongson was preparing another chip — 3C5000.

      The 3C5000 processor differs from the 3A5000 not only in the name, but also in the scope of use. This is a server chip designed for use in multiprocessor configurations. There are almost no details about it: like the 3A5000, it is produced according to 12-nanometer standards, but at the same time it contains 16 computing cores. The 3C5000 should go on sale in China towards the end of 2021.

      How the future competitor of Intel and AMD

      appeared in China

      The Chinese company BLX IC Design Corporation is hiding behind the Loongson brand. It was founded in 2002 with the participation of the Institute of Computer Technology, the Chinese Academy of Sciences and the Jiangsu Zhongy Group.

      Drones, robots and VR: what innovations are in demand in metallurgy

      Industry innovation

      The company’s processor architecture was originally called «Godson» («Godson»). She was later renamed «Loongson» («Dragon’s Son») and is now known as LoongArch. It was developed completely independently of Western companies, and on its basis, for example, in September 2008, the Godson-3 processor was introduced. About 300 engineers from the Institute of Computer Technologies worked on its development, 200 of whom were engaged in hardware, and the other 100 in software. The development was funded by the Chinese government.

      BLX IC Design Corporation’s customer list for Loongson processors includes Lenovo (one of the world’s largest computer and server manufacturers) and China Rocket Research Institute. In 2019, the supply of these chips exceeded 500 thousand copies.

      • How much does 2,000 GB object storage cost today? Offers of dozens of suppliers — on the IT marketplace Market.CNews

      Elyas Kasmi

      which platform is better? / Amperka

      So, you have an idea for a project, but you are not sure which board to choose as the brain of the device? Let’s try to help you decide.

      If you just want to learn circuitry, programming, Linux and there is no specific goal other than learning yet, one of the ready-made training kits will be the best choice.

      But if you are already comfortable and want to make a specific project, this guide will help you decide on a development platform and make an informed choice.

      Arduino or Raspberry Pi? Microcontroller or microcomputer?

      All development boards can be divided into two broad categories:


      Boards on the microcontroller


      (MCU, MicroController Unit)

      Single Board Computers


      (SoC, System on a Chip)
      A typical representative is Arduino
      A typical representative is Raspberry Pi

      Microcontrollers can only do one task at a time, and they do it well. And single-board computers execute programs within the operating system (most often Linux), have greater performance and rich multimedia capabilities.

      There are also hybrid platforms, where both the microcontroller and the processor are located on the same board. The idea is to leave complex tasks to the powerful processor: accessing the network, processing media, and entrust the microcontroller with the function of precise control of drives, relays, sensors and other peripherals. You can create a hybrid yourself if you take one board from each family. All of them have common interfaces through which you can organize their interaction.

      In both camps, you can find specialized boards that stand out among others with some feature, but the table will help you compare the capabilities of average microcontrollers and computers.

      microcontroller single board computer
      Performance 1 core,

      tens-hundreds of MHz,

      dozens of KB of RAM,

      tens to hundreds of KB of permanent memory.
      1 or more cores,

      hundreds-thousands of MHz,

      hundreds of MB of RAM,

      gigabytes of permanent memory.
      multitasking No.

      But you can emulate.
      Yes.

      Managed by the OS.
      Convenience of working with the Internet

      ★☆☆

      Usually you need additional modules and deep knowledge of protocols.

      ★★★

      Easy to connect out of the box, the network module is usually already on board.

      Battery life

      ★★★

      Consumes units-tens mA. Weeks of battery life possible.

      ★☆☆

      Consumes hundreds to thousands of mA. The charge of a large battery is enough for ten hours.

      Reaction speed in time-critical projects

      ★★★

      100% control over the time and duration of the signals.

      ★☆☆

      Due to multitasking, a critical process can oversleep its time.

      Choice of programming languages

      ★☆☆

      Limited. More often C/C++.

      ★★★

      Python, JavaScript, Bash and dozens of others: any available in the OS.

      Opportunities for working with video, computer vision

      ☆☆☆

      Not enough power.

      ★★★

      OpenCV, hardware video codecs, HDMI output.

      Audio features

      ★★☆

      Sound synthesis is possible on powerful microcontrollers. Additional modules are needed to work with MP3/OGG/WAV.

      ★★★

      MP3/OGG/WAV support at OS level. HDMI audio output and/or 3.5mm jack.

      So, depending on your task, you have decided whether you need a microcontroller or a computer. How do you decide which board is the best fit?

      Since it doesn’t make much sense to compare microcontrollers and microcomputers face to face, we will separately present the advantages and disadvantages of specific boards within their family.

      Microcontroller comparison

      If we consider microcontroller boards in isolation from the tasks of your project, it is difficult to objectively describe the advantages and disadvantages of different platforms in a nutshell. What is generally a disadvantage may not play a role in your device, and vice versa.

      We tried to compare the boards, starting from the capabilities of the flagship DIY platform Arduino Uno, since the boards of this particular family gave an incredible kick to the development of hobby electronics around the world. Different companies produce modules, sensors, platforms, add-ons with the name «Arduino compatible», «Designed for Arduino», etc. Behind these words is electronic and software compatibility, first of all with the Arduino Uno, and only then with everything else.

      As a rule, with the help of tricks or additional components, you can connect anything and anything. But you want to focus on your project, and not on the fight against electronics? Therefore, willy-nilly, I want to compare any board on a microcontroller with the Arduino Uno. So let’s do it.

      16 MHz processor, 32 KB of permanent and 2 KB of RAM, 20 I / O ports, 6 analog inputs, 6 PWM channels, 2 hardware interrupts, maybe not impressive, but without the ballast in the form of an operating system and Interpreters, they allow you to solve almost any task of precise conducting a variety of sensors and actuators.

      Pros of the Arduino Uno

      • Tons of documentation, tutorials and prebuilt libraries, huge community, work from easy to learn Arduino IDE with Arduino C++ language. All this simply will not give you the opportunity to say «did not master.»
      • Native voltage of 5 volts, which is the de facto standard, and sockets for installing expansion cards, analog inputs, various hardware interfaces allow you to connect almost any peripherals, sensors and actuators.

      Same Arduino Uno, but with a slightly improved microcontroller.

      Pros of Arduino Leonardo

      • More analog inputs (12 vs 6) for sensors, more PWM channels (7 vs 6), more hardware interrupt pins (5 vs 2), separate independent Serial interfaces for USB and UART.
      • Arduino Leonardo can pretend to be a keyboard or mouse (HID device) for a computer. This makes it easy to make your own input device.

      Cons Arduino Leonardo

      • Due to slight differences in the pinout from the Arduino Uno, incompatibility with some expansion boards is possible. Such cases, however, are rare, and in our store we explicitly prescribe them.

      The same Arduino Leonardo, but made by us in Russia.

      Pros Iskra Neo

      • Much cheaper than the original.

      Arduino Mini

      Same Arduino Uno, but in a different form factor.

      Arduino Mini Pros

      • Compact. Only 30×18 mm.

      Cons Arduino Mini

      • Due to the form factor, it is impossible to install Arduino expansion boards without tricks. It is supposed to connect to additional modules by wires and / or through a prototyping board.
      • There is no USB port on the board, so you need to flash through a separate USB-Serial converter

      .

      The same Arduino Mini, but made by us in Russia.

      Pros Iskra Mini

      • Significantly cheaper than the original.
      • Available with soldered sockets and non-soldered holes.

      Same Arduino Leonardo, but in a different form factor.

      Arduino Micro Pros

      • Compact. Only 48×18 mm.

      Cons Arduino Micro

      • Due to the form factor, it is impossible to install Arduino expansion boards without tricks. It is supposed to connect to additional modules by wires and / or through a prototyping board.

      Like Arduino Uno, but based on a more powerful microcontroller of the same architecture. A great choice for «growth» or in case the Arduino Uno can no longer cope.

      Advantages of Arduino Mega 2560

      • Many times more memory: 256 KB of permanent and 8 KB of operational. Many times more ports: 60 of them 16 analog and 15 with PWM.

      Arduino Mega 2560 Cons

      • Slightly longer than the base Arduino Uno: 101x53mm vs 69x53mm.

      One of the most productive Arduino boards based on the Cortex-M3 microcontroller, similar in form factor to the Arduino Mega.

      Arduino Due Pros

      • 84 MHz processor and 512 KB of memory. 66 I/O pins, of which 12 can be analog inputs, 12 support PWM and all 66 can be configured as hardware interrupts.
      • Built-in CAN bus controller allows you to create a network of Due or interact with automotive electronics. Two DAC channels allow you to synthesize stereo sound with a resolution of 4. 88 Hz.

      Cons Arduino Due

      • The native voltage for the board is 3.3 V, not the traditional 5 V. You must ensure that the selected peripherals support this level or install voltage level converters.

      Espruino core board: programmed in JavaScript.

      Pros of Iskra JS

      • JavaScript is a high-level language. Programs are easier to write, they are more compact and expressive. Especially when it comes to numerous string operations, data arrays, web interface.
      • Powerful 168 MHz Cortex-M4 microcontroller, 1 MB flash, 192 KB RAM, dozens of PWM ports and analog inputs, 2 analog outputs, several I²C, SPI, UART — all this allows you to connect and simultaneously work with a wide variety of sensors and modules.

      Cons Iskra JS

      • Despite the fact that the native level for the board is 3.3 volts, the pins are tolerant of 5 volts: connecting five-volt peripherals is trivial.
      • Due to a different programming environment and ecosystem, there may not be a ready-made library for the selected peripheral. It will have to be implemented independently.

      All-in-one robotics platform contains most of the things you need to build any lightweight mobile robot. Strela, like any other Arduino, is programmed from the Arduino IDE, and at the core contains the same microcontroller as the Arduino Leonardo.

      Strela Pros

      • Built-in driver for two motors, 4 servo connectors, 4 buttons and 4 freely assignable LEDs, buzzer, slots for LCD screen and wireless module.
      • Powerful power regulator allows you to use many different batteries without tricks.
      • 11 inputs/outputs are output as three-pin connectors for easy connection of additional sensors and modules. The LCD screen, buttons and LEDs are connected via a port expander so they do not take up general purpose I/O.

      Cons Strela

      • The board does not have sockets for installing Arduino expansion boards.
      • Due to the changed pin numbering (compared to the base Arduino Leonardo), it is necessary to use slightly different functions to work with the pins of the board. They are provided in the library of the same name.

      Arduino Yún

      Unique hybrid of Arduino Leonardo and OpenWRT Linux microcomputer. An excellent choice for the «Internet of Things».

      Pros Arduino Yún

      • The board is equipped with Ethernet and Wi-Fi, through which you can communicate with the device and even reflash the platform remotely.
      • The power of Linux makes it possible to work with multimedia, and its networking capabilities make it easy to integrate with social networks and other web services.

      Arduino Yún cons

      • OpenWRT is a sliced ​​Linux. Not any Linux software can be installed on a microcomputer. And out of the box, only Bash and Python can be used as scripting programming languages.

      Board with powerful Cortex-M4 microcontroller. The platform is programmed not through the Arduino IDE, but through the mbed.org online environment. Subjectively, it is more powerful and slimmer than the Arduino IDE, although not as common. For an inquisitive mind — a great choice.

      Pros STM32 Nucleo F401RE

      • 84 MHz processor, 512 KB permanent and 96 KB RAM. 50 I/O ports, of which 16 are analog and 29 are PWM. The native voltage level is 3.3 V, but all pins are 5 V tolerant, so there should be no problems with electronic compatibility with Arduino peripherals.
      • Expansion board headers are the same configuration as the Arduino Uno, so you can put a lot of Arduino expansion boards on the Nucleo.
      • There is no separate SPI connector on the board. Arduino expansion boards that use SPI over the ICSP header won’t work without some tweaks.

      Cons STM32 Nucleo F401RE

      • Due to a different environment and ecosystem for programming, there may not be a ready-made library for the selected peripheral. It will have to be implemented independently.

      Compact board with powerful Cortex-M4 microcontroller. It is programmed from the familiar Arduino IDE.

      Teensy 3.2 Pros

      • Smaller than the Arduino Micro (35x17mm) but almost as powerful as the Nucleo: 72MHz processor, 256KB permanent and 64KB RAM, 34 I/O ports, of which 21 can be analog, and 12 support PWM.
      • Teensy 3.2 is very energy efficient. It does not have a voltage regulator, but the input can be anything from 3.3 to 5.5 V. The same voltage will be the logic level. In sleep mode, the board consumes only 0.25 mA, which makes it possible to operate on battery power for several months.
      • Built-in CAN bus controller allows you to create a network of Due or interact with automotive electronics. Two DAC channels allow you to synthesize stereo sound with a resolution of 4.88 Hz.

      Minuses Teensy 3.2

      • The board comes with unsoldered contacts. You have to solder the pin connectors or wiring yourself.
      • Due to the large difference in architecture with the classic Arduino, not all libraries for third-party peripherals can work out of the box.
      • The operating voltage is equal to the input, so it floats as the battery is discharged. This can be important when choosing a peripheral if it is designed for a particular voltage.

      Netduino 2

      The board repeats the Arduino Uno form factor, but has a powerful stuffing, sufficient to run programs written on the .NET platform. Netduino is programmed in C# or any other .NET language in the Visual Studio environment familiar to any .NET developer. The .NET Micro Framework is provided as a standard library.

      Netduino 2 Pros

      • Visual Studio comes with auto-completion, tooltips, MSDN context help, and a full debugger. Breakpoints, step-by-step execution of code, observation of variables are available to you. Debugging happens without tricks, just with a USB cable connected. Thanks to all this, the speed of development under Netduino is many times higher than the speed of development for other platforms.

      Cons of Netduino 2

      • There is no separate SPI connector on the board. Arduino expansion boards that use SPI over the ICSP header won’t work without some tweaks.
      • Due to a different programming environment and ecosystem, there may not be a ready-made library for the selected peripheral. It will have to be implemented independently.

      Netduino Plus 2

      Netduino Plus 2 Pros

      • Like Netduino, only more powerful and with Ethernet on board. An excellent choice for IoT projects.

      Netduino Plus 2 Cons

      • Same as Netduino 2.

      Single Board Computer Comparison

      The trendsetter in single board computers is the Raspberry Pi. This super-popular platform at one time turned the idea of ​​\u200b\u200bthe capabilities, dimensions and cost of a full-fledged computer for DIY electronics engineers.

      Again, for each project, one or another single board computer may be better suited, but due to the popularity of the Raspberry Pi, we will compare other platforms with it.

      Raspberry Pi 3 Model B

      One of the most popular single boards. Four 1200 MHz cores, 1 GB of RAM and a full-fledged Debian-based Linux will help you solve many tasks that require computing resources. Among them are computer vision, real-time sound processing, and the creation of web services.

      Pros of the Raspberry Pi 3 Model B

      • Tons of documentation, tutorials and libraries, huge community. All this simply will not give you the opportunity to say «did not master.»
      • Familiar HDMI, 3.5mm audio, 4 USB ports make it easy to connect a monitor, speakers, keyboard, mouse and other USB devices. BLE and Wi-Fi modules on board will help you connect your computer to other devices wirelessly.

      Cons of Raspberry Pi 3 Model B

      • There is no ADC on the board, so analog sensors can only be connected using external, additional components.
      • Only 1 hardware PWM channel is provided, which makes it difficult to work with peripherals that are controlled by PWM.

      BeagleBone Black

      Raspberry Pi-like microcomputer that provides more of the benefits of microcontroller boards. An excellent choice for IoT projects where you need to manage multiple sensors and actuators.

      BeagleBone Black Pros

      • Powerful Cloud9 IDE. You simply access BeagleBone through your browser and program in your favorite language, be it Python, JavaScript (Node.js), Bash or any other Linux language. The result can be checked instantly, and if something does not work, use the full-fledged debugger built into the environment.
      • 4 GB eMMC flash with Linux operating system already installed. The memory can be expanded with an external microSD card.
      • Ample opportunities for connecting peripherals. 8 PWM outputs and 7 analog inputs. Hardware interrupts are possible.

      Cons BeagleBone Black

      • Outlandish microHDMI connector for connecting a monitor. It is also used to transmit sound.